[SCM] ardour Debian packaging branch, master, updated. upstream/2.8-73-gb177712

freee at users.alioth.debian.org freee at users.alioth.debian.org
Wed Jul 22 16:54:48 UTC 2009


The following commit has been merged in the master branch:
commit 7f9c676c2b0ba9586fd2d1c59d7aa2484efb30b6
Author: Free Ekanayaka <free at 64studio.com>
Date:   Sun Apr 19 18:21:32 2009 +0200

    Imported Upstream version 2.8

diff --git a/SConstruct b/SConstruct
index e7df3c7..c276f98 100644
--- a/SConstruct
+++ b/SConstruct
@@ -21,7 +21,7 @@ import SCons.Node.FS
 SConsignFile()
 EnsureSConsVersion(0, 96)
 
-ardour_version = '2.7.1'
+ardour_version = '2.8'
 
 subst_dict = { }
 
@@ -32,7 +32,7 @@ subst_dict = { }
 opts = Options('scache.conf')
 opts.AddOptions(
     ('ARCH', 'Set architecture-specific compilation flags by hand (all flags as 1 argument)',''),
-    ('WINDOWS_KEY', 'Set X Modifier (Mod1,Mod2,Mod3,Mod4,Mod5) for "Windows" key', 'Mod4'),
+    ('WINDOWS_KEY', 'Set X Modifier (Mod1,Mod2,Mod3,Mod4,Mod5) for "Windows" key', 'Mod4><Super'),
     BoolOption('AUDIOUNITS', 'Compile with Apple\'s AudioUnit library. (experimental)', 0),
     BoolOption('COREAUDIO', 'Compile with Apple\'s CoreAudio library', 0),
     BoolOption('GTKOSX', 'Compile for use with GTK-OSX, not GTK-X11', 0),
@@ -59,8 +59,8 @@ opts.AddOptions(
     BoolOption('GPROFILE', 'Compile with support for gprofile (Developers only)', 0),
     BoolOption('FREEDESKTOP', 'Install MIME type, icons and .desktop file as per the freedesktop.org spec (requires xdg-utils and shared-mime-info). "scons uninstall" removes associations in desktop database', 0),
     BoolOption('TRANZPORT', 'Compile with support for Frontier Designs (if libusb is available)', 1),
-    BoolOption('AUBIO', "Use Paul Brossier's aubio library for feature detection (if available)", 1)
-    
+    BoolOption('AUBIO', "Use Paul Brossier's aubio library for feature detection (if available)", 1),
+    BoolOption('AUSTATE', "Build with support for AU settings & presets saving/loading", 0)
 )
 
 #----------------------------------------------------------------------
@@ -394,28 +394,6 @@ tarball_bld = Builder (action = tarballer,
 env.Append (BUILDERS = {'Distribute' : dist_bld})
 env.Append (BUILDERS = {'Tarball' : tarball_bld})
 
-#
-# Make sure they know what they are doing
-#
-
-if env['VST']:
-    if os.path.isfile('.personal_use_only'):
-        print "Enabling VST support. Note that distributing a VST-enabled ardour\nis a violation of several different licences.\nBuild with VST=false if you intend to distribute ardour to others."
-    else:
-        sys.stdout.write ("Are you building Ardour for personal use (rather than distribution to others)? [no]: ")
-        answer = sys.stdin.readline ()
-        answer = answer.rstrip().strip()
-        if answer == "yes" or answer == "y":
-            fh = open('.personal_use_only', 'w')
-            fh.close()
-            print "OK, VST support will be enabled"
-        else:
-            print 'You cannot build Ardour with VST support for distribution to others.\nIt is a violation of several different licenses. Build with VST=false.'
-            sys.exit (-1);
-else:
-    if os.path.isfile('.personal_use_only'):
-        os.remove('.personal_use_only')
-
 ####################
 # push environment
 ####################
@@ -423,9 +401,11 @@ else:
 def pushEnvironment(context):
     if os.environ.has_key('PATH'):
 	context.Append(PATH = os.environ['PATH'])
+	context['ENV']['PATH'] = os.environ['PATH']
 	
     if os.environ.has_key('PKG_CONFIG_PATH'):
 	context.Append(PKG_CONFIG_PATH = os.environ['PKG_CONFIG_PATH'])
+	context['ENV']['PKG_CONFIG_PATH'] = os.environ['PKG_CONFIG_PATH']
 	    
     if os.environ.has_key('CC'):
 	context['CC'] = os.environ['CC']
@@ -737,6 +717,14 @@ elif ((re.search ("i[0-9]86", config[config_cpu]) != None) or (re.search ("x86_6
     if ((env['DIST_TARGET'] == 'i686') or (env['DIST_TARGET'] == 'x86_64')) and build_host_supports_sse:
         opt_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"])
         debug_flags.extend (["-msse", "-mfpmath=sse", "-DUSE_XMMINTRIN"])
+
+    if (env['VST']):
+        #
+        # everything must be 32 bit for VST (we're not replicating Cakewalk's hack, yet ...)
+        # 
+        opt_flags.extend(["-m32"])
+        debug_flags.extend(["-m32"])
+
 # end of processor-specific section
 
 # optimization section
@@ -748,7 +736,7 @@ if env['FPU_OPTIMIZATION']:
     elif env['DIST_TARGET'] == 'i686' or env['DIST_TARGET'] == 'x86_64':
         opt_flags.append ("-DBUILD_SSE_OPTIMIZATIONS")
         debug_flags.append ("-DBUILD_SSE_OPTIMIZATIONS")
-        if env['DIST_TARGET'] == 'x86_64':
+        if env['DIST_TARGET'] == 'x86_64' and not env['VST']:
             opt_flags.append ("-DUSE_X86_64_ASM")
             debug_flags.append ("-DUSE_X86_64_ASM")
         if build_host_supports_sse != 1:
@@ -763,6 +751,17 @@ else:
     env['LIBDIR']='lib'
 
 #
+# no VST on x86_64
+#
+
+if env['DIST_TARGET'] == 'x86_64' and env['VST']:
+    print "\n\n=================================================="
+    print "You cannot use VST plugins with a 64 bit host. Please run scons with VST=0"
+    print "\nIt is theoretically possible to build a 32 bit host on a 64 bit system."
+    print "However, this is tricky and not recommended for beginners."
+    sys.exit (-1)
+
+#
 # a single way to test if we're on OS X
 #
 
@@ -851,10 +850,7 @@ def prep_libcheck(topenv, libinfo):
             GTKROOT = os.path.expanduser ('~/gtk/inst')
             libinfo.Append(CPPPATH= GTKROOT + "/include", LIBPATH= GTKROOT + "/lib")
             libinfo.Append(CXXFLAGS="-I" + GTKROOT + "/include", LINKFLAGS="-L" + GTKROOT + "/lib")
-
-
-                
-
+	    
 prep_libcheck(env, env)
 
 
diff --git a/gtk2_ardour/SAE-de-keypad.bindings.in b/gtk2_ardour/SAE-de-keypad.bindings.in
index e8e3e1b..dad2ead 100644
--- a/gtk2_ardour/SAE-de-keypad.bindings.in
+++ b/gtk2_ardour/SAE-de-keypad.bindings.in
@@ -8,8 +8,9 @@
 (gtk_accel_path "<Actions>/Transport/ToggleRoll" "space")
 (gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<%PRIMARY%>period")
 (gtk_accel_path "<Actions>/Transport/record-roll" "<%PRIMARY%>space")
+(gtk_accel_path "<Actions>/Editor/play-from-edit-point-and-return" "<%LEVEL4%>space")
 
-(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%PRIMARY%>,")
+(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%PRIMARY%>comma")
 
 (gtk_accel_path "<Actions>/Editor/align-regions-end" "<%PRIMARY%><%SECONDARY%>less")
 (gtk_accel_path "<Actions>/Editor/align-regions-end-relative" "<%PRIMARY%>less")
@@ -82,7 +83,7 @@
 (gtk_accel_path "<Actions>/Editor/duplicate-region" "<%PRIMARY%>d")
 (gtk_accel_path "<Actions>/Editor/multi-duplicate-region" "<%PRIMARY%><%TERTIARY%>d")
 (gtk_accel_path "<Actions>/Editor/toggle-follow-playhead" "f")
-(gtk_accel_path "<Actions>/Common/toggle-rhythm-ferret" "<%WINDOW%>f")
+(gtk_accel_path "<Actions>/Editor/toggle-rhythm-ferret" "<%WINDOW%>f")
 ; (gtk_accel_path "<Actions>/Editor/set-edit-point" "g")
 ; (gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-gain" "g")
 (gtk_accel_path "<Actions>/Editor/nudge-backward" "g")
@@ -121,6 +122,7 @@
 (gtk_accel_path "<Actions>/Editor/editor-delete" "BackSpace")
 (gtk_accel_path "<Actions>/Editor/remove-last-capture" "<%PRIMARY%>Delete")
 
+(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary-noselection" "<%LEVEL4%>leftarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary" "leftarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-backward-to-grid" "<%TERTIARY%><%LEVEL4%>leftarrow")
 (gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
@@ -131,6 +133,7 @@
 
 (gtk_accel_path "<Actions>/Editor/selected-marker-to-previous-region-boundary" "<%PRIMARY%><%TERTIARY%>leftarrow")
 
+(gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary-noselection" "<%LEVEL4%>rightarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary" "rightarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-forward-to-grid" "<%TERTIARY%><%LEVEL4%>rightarrow")
 (gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
diff --git a/gtk2_ardour/SAE-de-nokeypad.bindings.in b/gtk2_ardour/SAE-de-nokeypad.bindings.in
index 27c824e..bcd7f6d 100644
--- a/gtk2_ardour/SAE-de-nokeypad.bindings.in
+++ b/gtk2_ardour/SAE-de-nokeypad.bindings.in
@@ -8,8 +8,9 @@
 (gtk_accel_path "<Actions>/Transport/ToggleRoll" "space")
 (gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<%PRIMARY%>period")
 (gtk_accel_path "<Actions>/Transport/record-roll" "<%PRIMARY%>space")
+(gtk_accel_path "<Actions>/Editor/play-from-edit-point-and-return" "<%LEVEL4%>space")
 
-(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%PRIMARY%>,")
+(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%PRIMARY%>comma")
 
 (gtk_accel_path "<Actions>/Editor/align-regions-end" "<%PRIMARY%><%SECONDARY%>less")
 (gtk_accel_path "<Actions>/Editor/align-regions-end-relative" "<%PRIMARY%>less")
@@ -82,7 +83,7 @@
 (gtk_accel_path "<Actions>/Editor/duplicate-region" "<%PRIMARY%>d")
 (gtk_accel_path "<Actions>/Editor/multi-duplicate-region" "<%PRIMARY%><%TERTIARY%>d")
 (gtk_accel_path "<Actions>/Editor/toggle-follow-playhead" "f")
-(gtk_accel_path "<Actions>/Common/toggle-rhythm-ferret" "<%SECONDARY%>f")
+(gtk_accel_path "<Actions>/Editor/toggle-rhythm-ferret" "<%SECONDARY%>f")
 ; (gtk_accel_path "<Actions>/Editor/set-edit-point" "g")
 ; (gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-gain" "g")
 (gtk_accel_path "<Actions>/Editor/nudge-backward" "g")
@@ -120,6 +121,7 @@
 (gtk_accel_path "<Actions>/Editor/editor-delete" "BackSpace")
 (gtk_accel_path "<Actions>/Editor/remove-last-capture" "<%PRIMARY%>BackSpace")
 
+(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary-noselection" "<%LEVEL4%>leftarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary" "leftarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-backward-to-grid" "<%TERTIARY%><%LEVEL4%>leftarrow")
 (gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
@@ -130,6 +132,7 @@
 
 (gtk_accel_path "<Actions>/Editor/selected-marker-to-previous-region-boundary" "<%PRIMARY%><%TERTIARY%>leftarrow")
 
+(gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary-noselection" "<%LEVEL4%>rightarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary" "rightarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-forward-to-grid" "<%TERTIARY%><%LEVEL4%>rightarrow")
 (gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
diff --git a/gtk2_ardour/SAE-us-keypad.bindings.in b/gtk2_ardour/SAE-us-keypad.bindings.in
index e4d9814..88085b0 100644
--- a/gtk2_ardour/SAE-us-keypad.bindings.in
+++ b/gtk2_ardour/SAE-us-keypad.bindings.in
@@ -8,7 +8,8 @@
 (gtk_accel_path "<Actions>/Transport/ToggleRoll" "space")
 (gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<%PRIMARY%>period")
 (gtk_accel_path "<Actions>/Transport/record-roll" "<%PRIMARY%>space")
-
+(gtk_accel_path "<Actions>/Editor/play-from-edit-point-and-return" "<%LEVEL4%>space")
+(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%PRIMARY%>comma")
 (gtk_accel_path "<Actions>/Editor/align-regions-end" "<%PRIMARY%><%SECONDARY%>less")
 (gtk_accel_path "<Actions>/Editor/align-regions-end-relative" "<%PRIMARY%>less")
 (gtk_accel_path "<Actions>/Editor/align-regions-start" "<%LEVEL4%><%SECONDARY%>less")
@@ -61,7 +62,6 @@
 (gtk_accel_path "<Actions>/Editor/insert-region" "i")
 (gtk_accel_path "<Actions>/Editor/addExistingAudioFiles" "<%PRIMARY%>i")
 (gtk_accel_path "<Actions>/Editor/invert-selection" "<%TERTIARY%>i")
-(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%SECONDARY%>o")
 (gtk_accel_path "<Actions>/Main/Open" "<%PRIMARY%>o")
 (gtk_accel_path "<Actions>/Main/Recent" "<%PRIMARY%><%TERTIARY%>o")
 (gtk_accel_path "<Actions>/Editor/naturalize-region" "<%LEVEL4%>o")
@@ -81,7 +81,7 @@
 (gtk_accel_path "<Actions>/Editor/duplicate-region" "<%PRIMARY%>d")
 (gtk_accel_path "<Actions>/Editor/multi-duplicate-region" "<%PRIMARY%><%TERTIARY%>d")
 (gtk_accel_path "<Actions>/Editor/toggle-follow-playhead" "f")
-(gtk_accel_path "<Actions>/Common/toggle-rhythm-ferret" "<%WINDOW%>f")
+(gtk_accel_path "<Actions>/Editor/toggle-rhythm-ferret" "<%WINDOW%>f")
 ; (gtk_accel_path "<Actions>/Editor/set-edit-point" "g")
 ; (gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-gain" "g")
 (gtk_accel_path "<Actions>/Editor/nudge-backward" "g")
@@ -120,6 +120,7 @@
 (gtk_accel_path "<Actions>/Editor/editor-delete" "BackSpace")
 (gtk_accel_path "<Actions>/Editor/remove-last-capture" "<%PRIMARY%>Delete")
 
+(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary-noselection" "<%LEVEL4%>leftarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary" "leftarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-backward-to-grid" "<%TERTIARY%><%LEVEL4%>leftarrow")
 (gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
@@ -130,6 +131,7 @@
 
 (gtk_accel_path "<Actions>/Editor/selected-marker-to-previous-region-boundary" "<%PRIMARY%><%TERTIARY%>leftarrow")
 
+(gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary-noselection" "<%LEVEL4%>rightarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary" "rightarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-forward-to-grid" "<%TERTIARY%><%LEVEL4%>rightarrow")
 (gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
diff --git a/gtk2_ardour/SAE-us-nokeypad.bindings.in b/gtk2_ardour/SAE-us-nokeypad.bindings.in
index a84ee2b..33fe2f0 100644
--- a/gtk2_ardour/SAE-us-nokeypad.bindings.in
+++ b/gtk2_ardour/SAE-us-nokeypad.bindings.in
@@ -8,7 +8,8 @@
 (gtk_accel_path "<Actions>/Transport/ToggleRoll" "space")
 (gtk_accel_path "<Actions>/Transport/ToggleRollForgetCapture" "<%PRIMARY%>period")
 (gtk_accel_path "<Actions>/Transport/record-roll" "<%PRIMARY%>space")
-
+(gtk_accel_path "<Actions>/Editor/play-from-edit-point-and-return" "<%LEVEL4%>space")
+(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%PRIMARY%>comma")
 (gtk_accel_path "<Actions>/Editor/align-regions-end" "<%PRIMARY%><%SECONDARY%>less")
 (gtk_accel_path "<Actions>/Editor/align-regions-end-relative" "<%PRIMARY%>less")
 (gtk_accel_path "<Actions>/Editor/align-regions-start" "<%LEVEL4%><%SECONDARY%>less")
@@ -61,7 +62,6 @@
 (gtk_accel_path "<Actions>/Editor/insert-region" "i")
 (gtk_accel_path "<Actions>/Editor/addExistingAudioFiles" "<%PRIMARY%>i")
 (gtk_accel_path "<Actions>/Editor/invert-selection" "<%TERTIARY%>i")
-(gtk_accel_path "<Actions>/Common/ToggleOptionsEditor" "<%SECONDARY%>o")
 (gtk_accel_path "<Actions>/Main/Open" "<%PRIMARY%>o")
 (gtk_accel_path "<Actions>/Main/Recent" "<%PRIMARY%><%TERTIARY%>o")
 (gtk_accel_path "<Actions>/Editor/naturalize-region" "<%LEVEL4%>o")
@@ -81,7 +81,7 @@
 (gtk_accel_path "<Actions>/Editor/duplicate-region" "<%PRIMARY%>d")
 (gtk_accel_path "<Actions>/Editor/multi-duplicate-region" "<%PRIMARY%><%TERTIARY%>d")
 (gtk_accel_path "<Actions>/Editor/toggle-follow-playhead" "f")
-(gtk_accel_path "<Actions>/Common/toggle-rhythm-ferret" "<%SECONDARY%>f")
+(gtk_accel_path "<Actions>/Editor/toggle-rhythm-ferret" "<%SECONDARY%>f")
 ; (gtk_accel_path "<Actions>/Editor/set-edit-point" "g")
 ; (gtk_accel_path "<Actions>/MouseMode/set-mouse-mode-gain" "g")
 (gtk_accel_path "<Actions>/Editor/nudge-backward" "g")
@@ -119,6 +119,7 @@
 (gtk_accel_path "<Actions>/Editor/editor-delete" "BackSpace")
 (gtk_accel_path "<Actions>/Editor/remove-last-capture" "<%PRIMARY%>BackSpace")
 
+(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary-noselection" "<%LEVEL4%>leftarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary" "leftarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-backward-to-grid" "<%TERTIARY%><%LEVEL4%>leftarrow")
 (gtk_accel_path "<Actions>/Editor/edit-cursor-to-previous-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
@@ -129,6 +130,7 @@
 
 (gtk_accel_path "<Actions>/Editor/selected-marker-to-previous-region-boundary" "<%PRIMARY%><%TERTIARY%>leftarrow")
 
+(gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary-noselection" "<%LEVEL4%>rightarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary" "rightarrow")
 (gtk_accel_path "<Actions>/Editor/playhead-forward-to-grid" "<%TERTIARY%><%LEVEL4%>rightarrow")
 (gtk_accel_path "<Actions>/Editor/edit-cursor-to-next-region-sync" "<%TERTIARY%><%SECONDARY%>leftarrow")
diff --git a/gtk2_ardour/SConscript b/gtk2_ardour/SConscript
index 7e3bbe2..2e7beab 100644
--- a/gtk2_ardour/SConscript
+++ b/gtk2_ardour/SConscript
@@ -52,8 +52,8 @@ gtkardour.Merge ([
     libraries['sigc2'],
     libraries['sndfile-ardour'],
     libraries['sysmidi'],
-    libraries['vamp'],
     libraries['vamphost'],
+    libraries['vamp'],
     libraries['xml'],
     libraries['xslt']
 ])
diff --git a/gtk2_ardour/about.cc b/gtk2_ardour/about.cc
index a0e97c9..098fc28 100644
--- a/gtk2_ardour/about.cc
+++ b/gtk2_ardour/about.cc
@@ -169,7 +169,14 @@ static const char* translators[] = {
 	N_("Portuguese:\n\tRui Nuno Capela <rncbc at rncbc.org>\n"),
 	N_("Brazilian Portuguese:\n\tAlexander da Franca Fernandes <alexander at nautae.eti.br>\
 \n\tChris Ross <chris at tebibyte.org>\n"),
-	N_("Spanish:\n\t Alex Krohn <alexkrohn at fastmail.fm>\n"),
+	N_("Spanish:\n\tAlex Krohn <alexkrohn at fastmail.fm>\
+\n\tAngel Bidinost <angelbidinost at hotmail.com>\
+\n\tPablo Enrici <pabloenrici at gmail.com>\
+\n\tPablo Fernández <pablo.fbus at gmail.com>\
+\n\tGiovanni Martínez <giovannisirias at gmail.com>\
+\n\tDavid Täht <d at teklibre.com>\
+\n\tOscar Valladarez <dulcevendetta at hotmail.com>\
+\n\tDaniel Vidal <danielvidalchornet at gmail.com>\n"),
 	N_("Russian:\n\t Igor Blinov <pitstop at nm.ru>\n"),
 	N_("Greek:\n\t Klearchos Gourgourinis <muadib at in.gr>\n"),
 	N_("Swedish:\n\t Petter Sundlöf <petter.sundlof at gmail.com>\n"),
diff --git a/gtk2_ardour/add_route_dialog.cc b/gtk2_ardour/add_route_dialog.cc
index d5e207a..4bd7f10 100644
--- a/gtk2_ardour/add_route_dialog.cc
+++ b/gtk2_ardour/add_route_dialog.cc
@@ -1,19 +1,19 @@
 /*
-    Copyright (C) 2003 Paul Davis 
+  Copyright (C) 2003 Paul Davis 
 
-    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 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.
+  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+  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., 675 Mass Ave, Cambridge, MA 02139, USA.
 
 */
 
@@ -22,10 +22,12 @@
 
 #include <sigc++/bind.h>
 #include <gtkmm/stock.h>
+#include <gtkmm/separator.h>
 #include <pbd/error.h>
 #include <pbd/convert.h>
 #include <gtkmm2ext/utils.h>
 #include <ardour/profile.h>
+#include <ardour/session.h>
 
 #include "utils.h"
 #include "add_route_dialog.h"
@@ -36,6 +38,7 @@ using namespace Gtkmm2ext;
 using namespace sigc;
 using namespace std;
 using namespace PBD;
+using namespace ARDOUR;
 
 static const char* channel_setup_names[] = {
 	N_("Mono"),
@@ -62,6 +65,7 @@ AddRouteDialog::AddRouteDialog ()
 	: Dialog (_("ardour: add track/bus")),
 	  track_button (_("Tracks")),
 	  bus_button (_("Busses")),
+	  template_button (_("Using this template:")),
 	  routes_adjustment (1, 1, 128, 1, 4),
 	  routes_spinner (routes_adjustment)
 {
@@ -89,7 +93,7 @@ AddRouteDialog::AddRouteDialog ()
 			}
 		}
 	}
-
+	
 	set_name ("AddRouteDialog");
 	set_wmclass (X_("ardour_add_track_bus"), "Ardour");
 	set_position (Gtk::WIN_POS_MOUSE);
@@ -98,64 +102,110 @@ AddRouteDialog::AddRouteDialog ()
 	name_template_entry.set_name ("AddRouteDialogNameTemplateEntry");
 	track_button.set_name ("AddRouteDialogRadioButton");
 	bus_button.set_name ("AddRouteDialogRadioButton");
+	template_button.set_name ("AddRouteDialogRadioButton");
 	routes_spinner.set_name ("AddRouteDialogSpinner");
 	
 	RadioButton::Group g = track_button.get_group();
 	bus_button.set_group (g);
+	template_button.set_group (g);
 	track_button.set_active (true);
 
-	HBox *hbrb = manage (new HBox);
+	/* add */
 
-	hbrb->set_spacing (6);
-	hbrb->pack_start (routes_spinner, true, false, 5);
-	hbrb->pack_start (track_button, true, false, 5);
-	hbrb->pack_start (bus_button, true, false, 5);
+	HBox* hbox1 = manage (new HBox);
+	hbox1->set_spacing (6);
+	Label* label1 = manage (new Label (_("Add this many:")));
+	hbox1->pack_start (*label1, PACK_SHRINK);
+	hbox1->pack_start (routes_spinner, PACK_SHRINK);
 
-	aframe.set_label (_("Add"));
-	aframe.set_shadow_type (SHADOW_IN);
-	aframe.add (*hbrb);
+	HBox* hbox2 = manage (new HBox);
+	hbox2->set_spacing (6);
+	hbox2->set_border_width (6);
+	hbox2->pack_start (*hbox1, PACK_EXPAND_WIDGET);
+
+	/* templates */
+
+	hbox3 = new HBox;
+	hbox3->set_spacing (6);
+	hbox3->set_border_width (6);
+	hbox3->pack_start (template_button, PACK_SHRINK);
+
+	hbox9 = new HBox;
+	hbox9->set_spacing (6);
+	hbox9->set_border_width (6);
+	hbox9->pack_start (track_template_combo, PACK_EXPAND_WIDGET);
+	
+	/* separator */
+
+	hbox4 = new HBox;
+	hbox4->set_spacing (6);
+	Label* label2 = manage (new Label (_("OR")));
+	hbox4->pack_start (*(manage (new HSeparator)), PACK_EXPAND_WIDGET);
+	hbox4->pack_start (*label2, false, false);
+	hbox4->pack_start (*(manage (new HSeparator)), PACK_EXPAND_WIDGET);
+
+	/* we need more control over the visibility of these boxes */
+	/*
+	  hbox3->set_no_show_all (true);
+	  hbox9->set_no_show_all (true);
+	  hbox4->set_no_show_all (true);
+	*/
+	/* track/bus choice & modes */
+
+	HBox* hbox5 = manage (new HBox);
+	hbox5->set_spacing (6);
+	hbox5->pack_start (track_button, PACK_EXPAND_PADDING);
+	hbox5->pack_start (bus_button, PACK_EXPAND_PADDING);
 
-	set_popdown_strings (channel_combo, channel_combo_strings);
-	set_popdown_strings (track_mode_combo, track_mode_strings);
-	channel_combo.set_active_text (channel_combo_strings.front());
 	channel_combo.set_name (X_("ChannelCountSelector"));
+	track_mode_combo.set_name (X_("ChannelCountSelector"));
+
+	set_popdown_strings (channel_combo, channel_combo_strings, true);
+	set_popdown_strings (track_mode_combo, track_mode_strings, true);
+
+	channel_combo.set_active_text (channel_combo_strings.front());
+	track_mode_combo.set_active_text (track_mode_strings.front());
 
 	track_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
 	bus_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
+	template_button.signal_clicked().connect (mem_fun (*this, &AddRouteDialog::track_type_chosen));
 
-	track_mode_combo.set_active_text (track_mode_strings.front());
-	track_mode_combo.set_name (X_("ChannelCountSelector"));
 	
-#if NOT_USEFUL_YET
-	HBox *hbnt = manage (new HBox);
+	VBox* vbox1 = manage (new VBox);
+	vbox1->set_spacing (6);
+	vbox1->set_border_width (6);
 
-	hbnt->pack_start (*(manage (new Label (_("Name (template)")))), false, false);
-	hbnt->pack_start (name_template_entry, true, true);
-#endif
-	VBox *dvbox = manage (new VBox);
-	HBox *dhbox = manage (new HBox);
+	Frame* frame1 = manage (new Frame (_("Channel Configuration")));
+	frame1->add (channel_combo);
+	Frame* frame2 = manage (new Frame (_("Track Mode")));
+	frame2->add (track_mode_combo);
 
-	ccframe.set_label (_("Channel Configuration"));
-	ccframe.set_shadow_type (SHADOW_IN);
+	vbox1->pack_start (*hbox5, PACK_SHRINK);
+	vbox1->pack_start (*frame1, PACK_SHRINK);
 
-	dvbox->pack_start (channel_combo, true, false, 5);
 	if (!ARDOUR::Profile->get_sae()) {
-		dvbox->pack_start (track_mode_combo, true, false, 5);
+		vbox1->pack_start (*frame2, PACK_SHRINK);
 	}
-	dhbox->pack_start (*dvbox, true, false, 5);
 
-	ccframe.add (*dhbox);
+	get_vbox()->set_spacing (6);
+	get_vbox()->set_border_width (6);
 
-	get_vbox()->pack_start (aframe, true, false, 10);
-	get_vbox()->pack_start (ccframe, true, false);
-#if NOT_USEFUL_YET
-	get_vbox()->pack_start (*hbnt, false, false);
-#endif
+	get_vbox()->pack_start (*hbox2, PACK_SHRINK);
+	get_vbox()->pack_start (*hbox3, PACK_SHRINK);
+	get_vbox()->pack_start (*hbox9, PACK_SHRINK);
+	get_vbox()->pack_start (*hbox4, PACK_SHRINK);
+	get_vbox()->pack_start (*vbox1, PACK_SHRINK);
 
 	get_vbox()->show_all ();
 
+	/* track template info will be managed whenever
+	   this dialog is shown, via ::on_show()
+	*/
+
 	add_button (Stock::CANCEL, RESPONSE_CANCEL);
 	add_button (Stock::ADD, RESPONSE_ACCEPT);
+
+	track_type_chosen ();
 }
 
 AddRouteDialog::~AddRouteDialog ()
@@ -165,10 +215,18 @@ AddRouteDialog::~AddRouteDialog ()
 void
 AddRouteDialog::track_type_chosen ()
 {
-	if (track_button.get_active()) {
-		track_mode_combo.set_sensitive (true);
-	} else {
+	if (template_button.get_active()) {
 		track_mode_combo.set_sensitive (false);
+		channel_combo.set_sensitive (false);
+		track_template_combo.set_sensitive (true);
+	} else {
+		track_template_combo.set_sensitive (false);
+		channel_combo.set_sensitive (true);
+		if (track_button.get_active()) {
+			track_mode_combo.set_sensitive (true);
+		} else {
+			track_mode_combo.set_sensitive (false);
+		}
 	}
 }
 
@@ -228,3 +286,59 @@ AddRouteDialog::channels ()
 	return 0;
 }
 
+string
+AddRouteDialog::track_template ()
+{
+	if (!template_button.get_active()) {
+		return string ();
+	}
+
+	string str = track_template_combo.get_active_text();
+
+	for (vector<Session::RouteTemplateInfo>::iterator x = route_templates.begin(); x != route_templates.end(); ++x) {
+		if ((*x).name == str) {
+			return (*x).path;
+		}
+	}
+
+	return string();
+}
+
+void
+AddRouteDialog::on_show ()
+{
+	refill_track_templates ();
+	Dialog::on_show ();
+}
+
+void
+AddRouteDialog::refill_track_templates ()
+{
+	route_templates.clear ();
+	Session::get_route_templates (route_templates);
+  
+	if (!route_templates.empty()) {
+		vector<string> v;
+		for (vector<Session::RouteTemplateInfo>::iterator x = route_templates.begin(); x != route_templates.end(); ++x) {
+			v.push_back ((*x).name);
+		}
+		set_popdown_strings (track_template_combo, v);
+		track_template_combo.set_active_text (v.front());
+	} 
+
+	reset_template_option_visibility ();
+}
+
+void
+AddRouteDialog::reset_template_option_visibility ()
+{
+	if (route_templates.empty()) {
+		hbox3->hide ();
+		hbox9->hide ();
+		hbox4->hide ();
+	} else {
+		hbox3->show_all ();
+		hbox9->show_all ();
+		hbox4->show_all ();
+	}
+}
diff --git a/gtk2_ardour/add_route_dialog.h b/gtk2_ardour/add_route_dialog.h
index 53f4805..5da6e70 100644
--- a/gtk2_ardour/add_route_dialog.h
+++ b/gtk2_ardour/add_route_dialog.h
@@ -32,6 +32,7 @@
 #include <gtkmm/comboboxtext.h>
 
 #include <ardour/types.h>
+#include <ardour/session.h>
 
 class AddRouteDialog : public Gtk::Dialog
 {
@@ -40,23 +41,37 @@ class AddRouteDialog : public Gtk::Dialog
 	~AddRouteDialog ();
 
 	bool track ();
-	std::string name_template ();
 	int channels ();
 	int count ();
+
+	std::string name_template ();
+	std::string track_template ();
+
 	ARDOUR::TrackMode mode();
 
   private:
 	Gtk::Entry name_template_entry;
 	Gtk::RadioButton track_button;
 	Gtk::RadioButton bus_button;
+	Gtk::RadioButton template_button;
 	Gtk::Adjustment routes_adjustment;
 	Gtk::SpinButton routes_spinner;
 	Gtk::ComboBoxText channel_combo;
 	Gtk::ComboBoxText track_mode_combo;
-	Gtk::Frame aframe;
-	Gtk::Frame ccframe;
+	Gtk::ComboBoxText track_template_combo;
 
+	std::vector<ARDOUR::Session::RouteTemplateInfo> route_templates;
+	
 	void track_type_chosen ();
+	void refill_track_templates ();
+
+	Gtk::HBox* hbox3;
+	Gtk::HBox* hbox9;
+	Gtk::HBox* hbox4;
+	
+	void reset_template_option_visibility ();
+	
+	void on_show ();
 };
 
 #endif /* __gtk_ardour_add_route_dialog_h__ */
diff --git a/gtk2_ardour/ardour-sae.menus b/gtk2_ardour/ardour-sae.menus
index 23cf943..3e2e8b6 100644
--- a/gtk2_ardour/ardour-sae.menus
+++ b/gtk2_ardour/ardour-sae.menus
@@ -75,6 +75,8 @@
 	           <separator/>
 		   <menuitem action='playhead-to-next-region-boundary'/>
 		   <menuitem action='playhead-to-previous-region-boundary'/>
+		   <menuitem action='playhead-to-next-region-boundary-noselection'/>
+		   <menuitem action='playhead-to-previous-region-boundary-noselection'/>
 		   <menuitem action='playhead-to-next-region-sync'/>
 		   <menuitem action='playhead-to-previous-region-sync'/>
 		   <separator/>
diff --git a/gtk2_ardour/ardour.menus.in b/gtk2_ardour/ardour.menus.in
index 3f00dbc..f692061 100644
--- a/gtk2_ardour/ardour.menus.in
+++ b/gtk2_ardour/ardour.menus.in
@@ -77,6 +77,8 @@
 	           <separator/>
 		   <menuitem action='playhead-to-next-region-boundary'/>
 		   <menuitem action='playhead-to-previous-region-boundary'/>
+		   <menuitem action='playhead-to-next-region-boundary-noselection'/>
+		   <menuitem action='playhead-to-previous-region-boundary-noselection'/>
 		   <menuitem action='playhead-to-next-region-sync'/>
 		   <menuitem action='playhead-to-previous-region-sync'/>
 		   <separator/>
diff --git a/gtk2_ardour/ardour_image_compositor_socket.h b/gtk2_ardour/ardour_image_compositor_socket.h
index 6ed92ef..03f0086 100644
--- a/gtk2_ardour/ardour_image_compositor_socket.h
+++ b/gtk2_ardour/ardour_image_compositor_socket.h
@@ -46,6 +46,8 @@ namespace ardourvis
 	/** the number of characters used to for the size of the image data message */
 	const int32_t IMAGE_DATA_MESSAGE_SIZE_CHARS = 32 ;
 
+	/** the number of characters in a return/reply message */
+	const int32_t RETURN_MSG_SIZE = 3 ;
 	// ------------------------------------------------------------------------- //
 	// Main Actions
 	// we join the action chars with items to create the message
diff --git a/gtk2_ardour/ardour_ui.cc b/gtk2_ardour/ardour_ui.cc
index 3208880..411f8d4 100644
--- a/gtk2_ardour/ardour_ui.cc
+++ b/gtk2_ardour/ardour_ui.cc
@@ -58,6 +58,7 @@
 #include <ardour/audioengine.h>
 #include <ardour/playlist.h>
 #include <ardour/utils.h>
+#include <ardour/plugin.h>
 #include <ardour/audio_diskstream.h>
 #include <ardour/audiofilesource.h>
 #include <ardour/recent_sessions.h>
@@ -225,6 +226,8 @@ ARDOUR_UI::ARDOUR_UI (int *argcp, char **argvp[])
 	ARDOUR::Diskstream::DiskOverrun.connect (mem_fun(*this, &ARDOUR_UI::disk_overrun_handler));
 	ARDOUR::Diskstream::DiskUnderrun.connect (mem_fun(*this, &ARDOUR_UI::disk_underrun_handler));
 
+	ARDOUR::Plugin::PresetFileExists.connect (mem_fun(*this, &ARDOUR_UI::preset_file_exists_handler));
+
 	/* handle dialog requests */
 
 	ARDOUR::Session::Dialog.connect (mem_fun(*this, &ARDOUR_UI::session_dialog));
@@ -2853,6 +2856,13 @@ ARDOUR_UI::add_route (Gtk::Window* float_window)
 		return;
 	}
 
+	string template_path = add_route_dialog->track_template();
+
+	if (!template_path.empty()) {
+	  session->new_route_from_template (count, template_path);
+	  return;
+	}
+	
 	uint32_t input_chan = add_route_dialog->channels ();
 	uint32_t output_chan;
 	string name_template = add_route_dialog->name_template ();
@@ -2961,6 +2971,45 @@ ARDOUR_UI::xrun_handler(nframes_t where)
 	}
 }
 
+bool
+ARDOUR_UI::preset_file_exists_handler ()
+{
+	/* if driven from another thread, say "do not overwrite" and show the user nothing.
+	 */
+
+	if (!Gtkmm2ext::UI::instance()->caller_is_ui_thread()) {	\
+		return false;
+	}
+	
+ 	HBox* hbox = new HBox();
+	Image* image = new Image (Stock::DIALOG_QUESTION, ICON_SIZE_DIALOG);
+	Gtk::Dialog dialog (_("Preset Exists"), true, false);
+	Label  message (_("\
+A preset with this name already exists for this plugin.\n\
+\n\
+What you would like to do?\n"));
+	image->set_alignment(ALIGN_CENTER, ALIGN_TOP);
+	hbox->pack_start (*image, PACK_EXPAND_WIDGET, 12);
+	hbox->pack_end (message, PACK_EXPAND_PADDING, 12);
+	dialog.get_vbox()->pack_start(*hbox, PACK_EXPAND_PADDING, 6);
+	dialog.add_button (_("Overwrite the existing preset"), RESPONSE_ACCEPT);
+	dialog.add_button (_("Leave the existing preset alone"), RESPONSE_REJECT);
+	dialog.set_default_response (RESPONSE_ACCEPT);
+	dialog.set_position (WIN_POS_MOUSE);
+	dialog.set_type_hint (Gdk::WINDOW_TYPE_HINT_UTILITY); // need to make it float above the preset name dialog
+
+	message.show();
+	image->show();
+	hbox->show();
+
+	switch (dialog.run ()) {
+	case RESPONSE_ACCEPT:
+		return true;
+	default:
+		return false;
+	}
+}
+
 void
 ARDOUR_UI::disk_overrun_handler ()
 {
diff --git a/gtk2_ardour/ardour_ui.h b/gtk2_ardour/ardour_ui.h
index 204e52c..a0c84a1 100644
--- a/gtk2_ardour/ardour_ui.h
+++ b/gtk2_ardour/ardour_ui.h
@@ -659,6 +659,8 @@ class ARDOUR_UI : public Gtkmm2ext::UI
 	void disk_speed_dialog_gone (int ignored_response, Gtk::MessageDialog*);
 	void disk_overrun_handler ();
 	void disk_underrun_handler ();
+	
+	bool preset_file_exists_handler ();
 
 	void session_dialog (std::string);
 	int pending_state_dialog ();
diff --git a/gtk2_ardour/ardour_ui2.cc b/gtk2_ardour/ardour_ui2.cc
index 20bc625..6ff37bc 100644
--- a/gtk2_ardour/ardour_ui2.cc
+++ b/gtk2_ardour/ardour_ui2.cc
@@ -370,16 +370,17 @@ ARDOUR_UI::setup_transport ()
 
 	speed_display_box.add (speed_display_label);
 	speed_display_box.set_name (X_("ShuttleDisplay"));
+	set_size_request_to_display_given_text (speed_display_label, X_("> 24.0"), 2, 2);
 
 	shuttle_units_button.set_name (X_("ShuttleButton"));
 	shuttle_units_button.signal_clicked().connect (mem_fun(*this, &ARDOUR_UI::shuttle_unit_clicked));
 	
-	shuttle_style_button.set_name (X_("ShuttleButton"));
+	shuttle_style_button.set_name (X_("ShuttleStyleButton"));
 
 	vector<string> shuttle_strings;
 	shuttle_strings.push_back (_("sprung"));
 	shuttle_strings.push_back (_("wheel"));
-	set_popdown_strings (shuttle_style_button, shuttle_strings);
+	set_popdown_strings (shuttle_style_button, shuttle_strings, true);
 	shuttle_style_button.signal_changed().connect (mem_fun (*this, &ARDOUR_UI::shuttle_style_changed));
 
 	Frame* sdframe = manage (new Frame);
@@ -389,8 +390,9 @@ ARDOUR_UI::setup_transport ()
 
 	mtc_port_changed ();
 	sync_option_combo.signal_changed().connect (mem_fun (*this, &ARDOUR_UI::sync_option_changed));
-	const guint32 FUDGE = 25; // Combo's are stupid - they steal space from the entry for the button
-	set_size_request_to_display_given_text (sync_option_combo, X_("Igternal"), 2+FUDGE, 10);
+	// XXX HOW TO USE set_popdown_strings() and combo_fudge with this when we don't know
+	// the real strings till later?
+	set_size_request_to_display_given_text (sync_option_combo, X_("Igternal"), 4+COMBO_FUDGE, 10);
 
 	shbox->pack_start (*sdframe, false, false);
 	shbox->pack_start (shuttle_units_button, true, true);
@@ -771,15 +773,33 @@ ARDOUR_UI::use_shuttle_fract (bool force)
 	
 	last_shuttle_request = now;
 
-	bool neg = (shuttle_fract < 0.0);
+	if (Config->get_shuttle_units() == Semitones) {
 
-	double fract = 1 - sqrt (1 - (shuttle_fract * shuttle_fract)); // Formula A1
+		const double step = 1.0 / 24.0; // range is 24 semitones up & down
+		double semitones;
+		double speed;
 
-	if (neg) {
-		fract = -fract;
+		semitones = round (shuttle_fract / step);
+		speed = pow (2.0, (semitones / 12.0));
+
+		session->request_transport_speed (speed);
+
+	} else {
+
+		bool neg;
+		double fract;
+		
+		neg = (shuttle_fract < 0.0);
+
+		fract = 1 - sqrt (1 - (shuttle_fract * shuttle_fract)); // Formula A1
+
+		if (neg) {
+			fract = -fract;
+		}
+
+		session->request_transport_speed (shuttle_max_speed * fract);
 	}
 
-	session->request_transport_speed (shuttle_max_speed * fract); // Formula A2
 	shuttle_box.queue_draw ();
 }
 
@@ -850,10 +870,11 @@ ARDOUR_UI::update_speed_display ()
 			if (Config->get_shuttle_units() == Percentage) {
 				snprintf (buf, sizeof (buf), "%.2f", x);
 			} else {
+
 				if (x < 0) {
-					snprintf (buf, sizeof (buf), "< %.1f", 12.0 * fast_log2 (-x));
+					snprintf (buf, sizeof (buf), "< %d", (int) round (12.0 * fast_log2 (-x)));
 				} else {
-					snprintf (buf, sizeof (buf), "> %.1f", 12.0 * fast_log2 (x));
+					snprintf (buf, sizeof (buf), "> %d", (int) round (12.0 * fast_log2 (x)));
 				}
 			}
 			speed_display_label.set_text (buf);
@@ -878,8 +899,6 @@ ARDOUR_UI::editor_realized ()
 	Config->map_parameters (mem_fun (*this, &ARDOUR_UI::parameter_changed));
 
 	set_size_request_to_display_given_text (speed_display_box, _("-0.55"), 2, 2);
-	const guint32 FUDGE = 25; // Combo's are stupid - they steal space from the entry for the button
-	set_size_request_to_display_given_text (shuttle_style_button, _("sprung"), 2+FUDGE, 10);
 	reset_dpi();
 }
 
diff --git a/gtk2_ardour/ardour_ui_ed.cc b/gtk2_ardour/ardour_ui_ed.cc
index 14158ab..2916257 100644
--- a/gtk2_ardour/ardour_ui_ed.cc
+++ b/gtk2_ardour/ardour_ui_ed.cc
@@ -203,7 +203,7 @@ ARDOUR_UI::install_actions ()
 
 	ActionManager::register_action (common_actions, X_("goto-editor"), _("Show Editor"),  mem_fun(*this, &ARDOUR_UI::goto_editor_window));
 	ActionManager::register_action (common_actions, X_("goto-mixer"), _("Show Mixer"),  mem_fun(*this, &ARDOUR_UI::goto_mixer_window));
-	ActionManager::register_action (common_actions, X_("toggle-editor-mixer-on-top"), _("Toggle Editor Mixer on Top"),  mem_fun(*this, &ARDOUR_UI::toggle_editor_mixer_on_top));
+	ActionManager::register_action (common_actions, X_("toggle-editor-mixer-on-top"), _("Toggle Editor or Mixer on Top"),  mem_fun(*this, &ARDOUR_UI::toggle_editor_mixer_on_top));
 	ActionManager::register_toggle_action (common_actions, X_("ToggleOptionsEditor"), _("Preferences"), mem_fun(*this, &ARDOUR_UI::toggle_options_window));
 	act = ActionManager::register_toggle_action (common_actions, X_("ToggleInspector"), _("Track/Bus Inspector"), mem_fun(*this, &ARDOUR_UI::toggle_route_params_window));
 	ActionManager::session_sensitive_actions.push_back (act);
diff --git a/gtk2_ardour/au_pluginui.mm b/gtk2_ardour/au_pluginui.mm
index a46021f..205364b 100644
--- a/gtk2_ardour/au_pluginui.mm
+++ b/gtk2_ardour/au_pluginui.mm
@@ -67,7 +67,8 @@ AUPluginUI::AUPluginUI (boost::shared_ptr<PluginInsert> insert)
 
 	HBox* smaller_hbox = manage (new HBox);
 
-	smaller_hbox->pack_start (preset_label, false, false, 10);
+	smaller_hbox->set_spacing (6);
+	smaller_hbox->pack_start (preset_label, false, false, 4);
 	smaller_hbox->pack_start (preset_combo, false, false);
 	smaller_hbox->pack_start (save_button, false, false);
 	smaller_hbox->pack_start (automation_mode_label, false, false);
diff --git a/gtk2_ardour/automation_line.cc b/gtk2_ardour/automation_line.cc
index 21a7a2f..bf9bd15 100644
--- a/gtk2_ardour/automation_line.cc
+++ b/gtk2_ardour/automation_line.cc
@@ -846,13 +846,29 @@ AutomationLine::line_drag (uint32_t i1, uint32_t i2, float fraction, bool with_p
 	line_drag_cp1 = i1;
 	line_drag_cp2 = i2;
 	
+	//check if one of the control points on the line is in a selected range
+	bool range_found = false;
 	ControlPoint *cp;
-
 	for (uint32_t i = i1 ; i <= i2; i++) {
 		cp = nth (i);
-		modify_view_point (*cp, trackview.editor.unit_to_frame (cp->get_x()), ((_height - cp->get_y()) /_height) + ydelta, with_push);
+		if ( cp->selected )
+			range_found = true;
 	}
-
+	
+	if (range_found) {
+		for (vector<ControlPoint*>::iterator i = control_points.begin(); i != control_points.end(); ++i) {
+			if ( (*i)->selected ) {
+				modify_view_point (*(*i), trackview.editor.unit_to_frame ((*i)->get_x()), ((_height - (*i)->get_y()) /_height) + ydelta, with_push);
+			}
+		}
+	} else {
+		ControlPoint *cp;
+		for (uint32_t i = i1 ; i <= i2; i++) {
+			cp = nth (i);
+			modify_view_point (*cp, trackview.editor.unit_to_frame (cp->get_x()), ((_height - cp->get_y()) /_height) + ydelta, with_push);
+		}
+	}
+	
 	if (line_points.size() > 1) {
 		line->property_points() = line_points;
 	}
diff --git a/gtk2_ardour/crossfade_edit.cc b/gtk2_ardour/crossfade_edit.cc
index 99b11c5..b57a8cc 100644
--- a/gtk2_ardour/crossfade_edit.cc
+++ b/gtk2_ardour/crossfade_edit.cc
@@ -857,9 +857,9 @@ CrossfadeEditor::build_presets ()
 	fade_in_presets = new Presets;
 	fade_out_presets = new Presets;
 
-	/* FADE OUT */
+	/* FADE IN */
 
-	p = new Preset ("Linear (-6dB)", "crossfade_in_dipped");
+	p = new Preset ("Linear (-6dB)", "crossfade-in-linear");
 	p->push_back (PresetPoint (0, 0));
 	p->push_back (PresetPoint (0.000000, 0.000000));
 	p->push_back (PresetPoint (0.166667, 0.166366));
@@ -870,7 +870,7 @@ CrossfadeEditor::build_presets ()
 	p->push_back (PresetPoint (1.000000, 1.000000));
 	fade_in_presets->push_back (p);
 
-	p = new Preset ("S(1)-curve", "crossfade_in_default");
+	p = new Preset ("S(1)-curve", "crossfade-in-S1");
 	p->push_back (PresetPoint (0, 0));
 	p->push_back (PresetPoint (0.1, 0.01));
 	p->push_back (PresetPoint (0.2, 0.03));
@@ -879,7 +879,7 @@ CrossfadeEditor::build_presets ()
 	p->push_back (PresetPoint (1, 1));
 	fade_in_presets->push_back (p);
 
-	p = new Preset ("S(2)-curve", "crossfade_in_default");
+	p = new Preset ("S(2)-curve", "crossfade-in-S2");
 	p->push_back (PresetPoint (0.0, 0.0));
 	p->push_back (PresetPoint (0.055, 0.222));
 	p->push_back (PresetPoint (0.163, 0.35));
@@ -888,7 +888,7 @@ CrossfadeEditor::build_presets ()
 	p->push_back (PresetPoint (1.0, 1.0));
 	fade_in_presets->push_back (p);
 
-	p = new Preset ("Constant Power (-3dB)", "crossfade_in_constant");
+	p = new Preset ("Constant Power (-3dB)", "crossfade-in-constant-power");
 
 	p->push_back (PresetPoint (0.000000, 0.000000));
 	p->push_back (PresetPoint (0.166667, 0.282192));
@@ -901,20 +901,8 @@ CrossfadeEditor::build_presets ()
 	fade_in_presets->push_back (p);
 
 	if (!Profile->get_sae()) {
-		// p = new Preset ("hiin.xpm");
-		p = new Preset ("Long cut", "crossfade_in_fast-cut");
-		p->push_back (PresetPoint (0, 0));
-		p->push_back (PresetPoint (0.0207373, 0.197222));
-		p->push_back (PresetPoint (0.0645161, 0.525));
-		p->push_back (PresetPoint (0.152074, 0.802778));
-		p->push_back (PresetPoint (0.276498, 0.919444));
-		p->push_back (PresetPoint (0.481567, 0.980556));
-		p->push_back (PresetPoint (0.767281, 1));
-		p->push_back (PresetPoint (1, 1));
-		fade_in_presets->push_back (p);
-		
-		// p = new Preset ("loin.xpm");
-		p = new Preset ("Short cut", "crossfade_in_transition");
+
+	  	p = new Preset ("Short cut", "crossfade-in-short-cut");
 		p->push_back (PresetPoint (0, 0));
 		p->push_back (PresetPoint (0.389401, 0.0333333));
 		p->push_back (PresetPoint (0.629032, 0.0861111));
@@ -924,9 +912,7 @@ CrossfadeEditor::build_presets ()
 		p->push_back (PresetPoint (1, 1));
 		fade_in_presets->push_back (p);
 		
-		
-		// p = new Preset ("regin2.xpm");
-		p = new Preset ("Slow cut", "crossfade_in_slow-cut");
+		p = new Preset ("Slow cut", "crossfade-in-slow-cut");
 		p->push_back (PresetPoint (0, 0));
 		p->push_back (PresetPoint (0.304147, 0.0694444));
 		p->push_back (PresetPoint (0.529954, 0.152778));
@@ -935,12 +921,33 @@ CrossfadeEditor::build_presets ()
 		p->push_back (PresetPoint (0.919355, 0.730556));
 		p->push_back (PresetPoint (1, 1));
 		fade_in_presets->push_back (p);
+		
+		p = new Preset ("Fast cut", "crossfade-in-fast-cut");
+		p->push_back (PresetPoint (0, 0));
+		p->push_back (PresetPoint (0.0737327, 0.308333));
+		p->push_back (PresetPoint (0.246544, 0.658333));
+		p->push_back (PresetPoint (0.470046, 0.886111));
+		p->push_back (PresetPoint (0.652074, 0.972222));
+		p->push_back (PresetPoint (0.771889, 0.988889));
+		p->push_back (PresetPoint (1, 1));
+		fade_in_presets->push_back (p);
+
+		p = new Preset ("Long cut", "crossfade-in-long-cut");
+		p->push_back (PresetPoint (0, 0));
+		p->push_back (PresetPoint (0.0207373, 0.197222));
+		p->push_back (PresetPoint (0.0645161, 0.525));
+		p->push_back (PresetPoint (0.152074, 0.802778));
+		p->push_back (PresetPoint (0.276498, 0.919444));
+		p->push_back (PresetPoint (0.481567, 0.980556));
+		p->push_back (PresetPoint (0.767281, 1));
+		p->push_back (PresetPoint (1, 1));
+		fade_in_presets->push_back (p);
 	}
 	
 	/* FADE OUT */
 
 	// p = new Preset ("regout.xpm");
-	p = new Preset ("Linear (-6dB cut)", "crossfade_out_dipped");
+	p = new Preset ("Linear (-6dB cut)", "crossfade-out-linear");
 	p->push_back (PresetPoint (0, 1));
 	p->push_back (PresetPoint (0.000000, 1.000000));
 	p->push_back (PresetPoint (0.166667, 0.833033));
@@ -951,7 +958,7 @@ CrossfadeEditor::build_presets ()
 	p->push_back (PresetPoint (1.000000, 0.000000));
 	fade_out_presets->push_back (p);
 
-	p = new Preset ("S(1)-Curve", "crossfade_out_default");
+	p = new Preset ("S(1)-Curve", "crossfade-out-S1");
 	p->push_back (PresetPoint (0, 1));
 	p->push_back (PresetPoint (0.1, 0.99));
 	p->push_back (PresetPoint (0.2, 0.97));
@@ -960,7 +967,7 @@ CrossfadeEditor::build_presets ()
 	p->push_back (PresetPoint (1, 0));
 	fade_out_presets->push_back (p);
 
-	p = new Preset ("S(2)-Curve", "crossfade_out_default");
+	p = new Preset ("S(2)-Curve", "crossfade-out-S2");
 	p->push_back (PresetPoint (0.0, 1.0));
 	p->push_back (PresetPoint (0.163, 0.678));
 	p->push_back (PresetPoint (0.055, 0.783));
@@ -970,7 +977,7 @@ CrossfadeEditor::build_presets ()
 	fade_out_presets->push_back (p);
 
 	// p = new Preset ("linout.xpm");
-	p = new Preset ("Constant Power (-3dB cut)", "crossfade_out_constant");
+	p = new Preset ("Constant Power (-3dB cut)", "crossfade-out-constant-power");
 	p->push_back (PresetPoint (0.000000, 1.000000));
 	p->push_back (PresetPoint (0.166667, 0.948859));
 	p->push_back (PresetPoint (0.333333, 0.851507));
@@ -982,7 +989,7 @@ CrossfadeEditor::build_presets ()
 	
 	if (!Profile->get_sae()) {
 		// p = new Preset ("hiout.xpm");
-		p = new Preset ("Slow end/cut", "crossfade_out_fast-cut");
+		p = new Preset ("Short cut", "crossfade-out-short-cut");
 		p->push_back (PresetPoint (0, 1));
 		p->push_back (PresetPoint (0.305556, 1));
 		p->push_back (PresetPoint (0.548611, 0.991736));
@@ -992,19 +999,17 @@ CrossfadeEditor::build_presets ()
 		p->push_back (PresetPoint (1, 0));
 		fade_out_presets->push_back (p);
 		
-		// p = new Preset ("loout.xpm");
-		p = new Preset ("Fast start/cut", "crossfade_out_transition");
+		p = new Preset ("Slow cut", "crossfade-out-slow-cut");
 		p->push_back (PresetPoint (0, 1));
-		p->push_back (PresetPoint (0.023041, 0.697222));
-		p->push_back (PresetPoint (0.0553,   0.483333));
-		p->push_back (PresetPoint (0.170507, 0.233333));
-		p->push_back (PresetPoint (0.370968, 0.0861111));
-		p->push_back (PresetPoint (0.610599, 0.0333333));
+		p->push_back (PresetPoint (0.228111, 0.988889));
+		p->push_back (PresetPoint (0.347926, 0.972222));
+		p->push_back (PresetPoint (0.529954, 0.886111));
+		p->push_back (PresetPoint (0.753456, 0.658333));
+		p->push_back (PresetPoint (0.9262673, 0.308333));
 		p->push_back (PresetPoint (1, 0));
 		fade_out_presets->push_back (p);
 		
-		// p = new Preset ("regout2.xpm");
-		p = new Preset ("Slow Fade", "crossfade_out_slow-fade");
+		p = new Preset ("Fast cut", "crossfade-out-fast-cut");
 		p->push_back (PresetPoint (0, 1));
 		p->push_back (PresetPoint (0.080645, 0.730556));
 		p->push_back (PresetPoint (0.277778, 0.289256));
@@ -1012,6 +1017,18 @@ CrossfadeEditor::build_presets ()
 		p->push_back (PresetPoint (0.695853, 0.0694444));
 		p->push_back (PresetPoint (1, 0));
 		fade_out_presets->push_back (p);
+		
+		// p = new Preset ("loout.xpm");
+		p = new Preset ("Long cut", "crossfade-out-long-cut");
+		p->push_back (PresetPoint (0, 1));
+		p->push_back (PresetPoint (0.023041, 0.697222));
+		p->push_back (PresetPoint (0.0553,   0.483333));
+		p->push_back (PresetPoint (0.170507, 0.233333));
+		p->push_back (PresetPoint (0.370968, 0.0861111));
+		p->push_back (PresetPoint (0.610599, 0.0333333));
+		p->push_back (PresetPoint (1, 0));
+		fade_out_presets->push_back (p);
+		
 	}
 }
 
diff --git a/gtk2_ardour/curvetest.cc b/gtk2_ardour/curvetest.cc
index 63804bd..a2cc764 100644
--- a/gtk2_ardour/curvetest.cc
+++ b/gtk2_ardour/curvetest.cc
@@ -1,3 +1,4 @@
+
 /*
     Copyright (C) 2000-2007 Paul Davis 
 
@@ -18,10 +19,13 @@
 */
 
 #include <iostream>
+#include <iomanip>
 #include <fstream>
 #include <cfloat>
 #include <unistd.h>
 
+#include <pbd/id.h>
+
 #include <ardour/curve.h>
 
 using namespace std;
@@ -31,6 +35,10 @@ using namespace PBD;
 int
 curvetest (string filename)
 {
+	// needed to initialize ID objects/counter used
+	// by Curve et al.
+	PBD::ID::init ();
+
 	ifstream in (filename.c_str());
 	stringstream line;
 	Curve c (-1.0, +1.0, 0, true);
@@ -64,7 +72,7 @@ curvetest (string filename)
 	c.get_vector (minx, maxx, foo, 1024);
 	
 	for (int i = 0; i < 1024; ++i) {
-	        cout << minx + (((double) i / 1024.0) * (maxx - minx)) << ' ' << foo[i] << endl;
+	        cout << setw(20) << setprecision(20) << minx + (((double) i / 1024.0) * (maxx - minx)) << ' ' << foo[i] << endl;
 	}
 	
 	return 0;
diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc
index eee60e0..d8902f8 100644
--- a/gtk2_ardour/editor.cc
+++ b/gtk2_ardour/editor.cc
@@ -855,6 +855,10 @@ Editor::catch_vanishing_regionview (RegionView *rv)
 	   audioregionview by itself.
 	*/
 
+	if (rv->get_canvas_group() == drag_info.item) {
+		end_grab (drag_info.item, 0);
+	}
+
 	if (clicked_regionview == rv) {
 		clicked_regionview = 0;
 	}
@@ -2077,8 +2081,10 @@ Editor::add_selection_context_items (Menu_Helpers::MenuList& items)
 	items.push_back (MenuElem (_("Duplicate range"), bind (mem_fun(*this, &Editor::duplicate_dialog), false)));
 	items.push_back (MenuElem (_("Create chunk from range"), mem_fun(*this, &Editor::create_named_selection)));
 	items.push_back (SeparatorElem());
-	items.push_back (MenuElem (_("Consolidate range"), bind (mem_fun(*this, &Editor::bounce_range_selection), true)));
-	items.push_back (MenuElem (_("Bounce range to region list"), bind (mem_fun(*this, &Editor::bounce_range_selection), false)));
+	items.push_back (MenuElem (_("Consolidate range"), bind (mem_fun(*this, &Editor::bounce_range_selection), true, false)));
+	items.push_back (MenuElem (_("Consolidate range with processing"), bind (mem_fun(*this, &Editor::bounce_range_selection), true, true)));
+	items.push_back (MenuElem (_("Bounce range to region list"), bind (mem_fun(*this, &Editor::bounce_range_selection), false, false)));
+	items.push_back (MenuElem (_("Bounce range to region list with processing"), bind (mem_fun(*this, &Editor::bounce_range_selection), false, true)));
 	items.push_back (MenuElem (_("Export range"), mem_fun(*this, &Editor::export_selection)));
 }
 
@@ -2851,12 +2857,6 @@ Editor::setup_toolbar ()
 {
 	string pixmap_path;
 
-#ifdef GTKOSX
-	const guint32 FUDGE = 38; // Combo's are stupid - they steal space from the entry for the button
-#else
-	const guint32 FUDGE = 24; // Combo's are stupid - they steal space from the entry for the button
-#endif
-
 	/* Mode Buttons (tool selection) */
 
 	vector<ToggleButton *> mouse_mode_buttons;
@@ -2911,8 +2911,7 @@ Editor::setup_toolbar ()
 	edit_mode_strings.push_back (edit_mode_to_string (Lock));
 
 	edit_mode_selector.set_name ("EditModeSelector");
-	Gtkmm2ext::set_size_request_to_display_given_text (edit_mode_selector, longest (edit_mode_strings).c_str(), 2+FUDGE, 10);
-	set_popdown_strings (edit_mode_selector, edit_mode_strings);
+	set_popdown_strings (edit_mode_selector, edit_mode_strings, true);
 	edit_mode_selector.signal_changed().connect (mem_fun(*this, &Editor::edit_mode_selection_done));
 
 	mode_box->pack_start(edit_mode_selector);
@@ -2991,8 +2990,7 @@ Editor::setup_toolbar ()
 	ARDOUR_UI::instance()->tooltips().set_tip (zoom_out_full_button, _("Zoom to Session"));
 
 	zoom_focus_selector.set_name ("ZoomFocusSelector");
-	Gtkmm2ext::set_size_request_to_display_given_text (zoom_focus_selector, _("Playhead"), FUDGE, 0);
-	set_popdown_strings (zoom_focus_selector, zoom_focus_strings);
+	set_popdown_strings (zoom_focus_selector, zoom_focus_strings, true);
 	zoom_focus_selector.signal_changed().connect (mem_fun(*this, &Editor::zoom_focus_selection_done));
 	ARDOUR_UI::instance()->tooltips().set_tip (zoom_focus_selector, _("Zoom focus"));
 
@@ -3005,20 +3003,17 @@ Editor::setup_toolbar ()
 	snap_box.set_border_width (2);
 
 	snap_type_selector.set_name ("SnapTypeSelector");
-	Gtkmm2ext::set_size_request_to_display_given_text (snap_type_selector, _("SMPTE Seconds"), 2+FUDGE, 10);
-	set_popdown_strings (snap_type_selector, snap_type_strings);
+	set_popdown_strings (snap_type_selector, snap_type_strings, true);
 	snap_type_selector.signal_changed().connect (mem_fun(*this, &Editor::snap_type_selection_done));
 	ARDOUR_UI::instance()->tooltips().set_tip (snap_type_selector, _("Snap/Grid Units"));
 
 	snap_mode_selector.set_name ("SnapModeSelector");
-	Gtkmm2ext::set_size_request_to_display_given_text (snap_mode_selector, _("Magnetic Snap"), 2+FUDGE, 10);
-	set_popdown_strings (snap_mode_selector, snap_mode_strings);
+	set_popdown_strings (snap_mode_selector, snap_mode_strings, true);
 	snap_mode_selector.signal_changed().connect (mem_fun(*this, &Editor::snap_mode_selection_done));
 	ARDOUR_UI::instance()->tooltips().set_tip (snap_mode_selector, _("Snap/Grid Mode"));
 
-	edit_point_selector.set_name ("SnapModeSelector");
-	Gtkmm2ext::set_size_request_to_display_given_text (edit_point_selector, _("Playhead"), 2+FUDGE, 10);
-	set_popdown_strings (edit_point_selector, edit_point_strings);
+	edit_point_selector.set_name ("EditPointSelector");
+	set_popdown_strings (edit_point_selector, edit_point_strings, true);
 	edit_point_selector.signal_changed().connect (mem_fun(*this, &Editor::edit_point_selection_done));
 	ARDOUR_UI::instance()->tooltips().set_tip (edit_point_selector, _("Edit point"));
 
@@ -4285,7 +4280,6 @@ Editor::on_key_release_event (GdkEventKey* ev)
 void
 Editor::reset_x_origin (nframes64_t frame)
 {
-	//cerr << "resetting x origin" << endl;
 	queue_visual_change (frame);
 }
 
@@ -4474,12 +4468,19 @@ Editor::post_zoom ()
 void
 Editor::queue_visual_change (nframes64_t where)
 {
-//	pending_visual_change.pending = VisualChange::Type (pending_visual_change.pending | VisualChange::TimeOrigin);
-//	pending_visual_change.time_origin = where;
+	pending_visual_change.pending = VisualChange::Type (pending_visual_change.pending | VisualChange::TimeOrigin);
+	
+	/* if we're moving beyond the end, make sure the upper limit of the horizontal adjustment
+	   can reach.
+	*/
+	
+	if (where > session->current_end_frame()) {
+		horizontal_adjustment.set_upper ((where + current_page_frames()) / frames_per_unit);
+	}
+	
+	pending_visual_change.time_origin = where;
 
 	if (pending_visual_change.idle_handler_id < 0) {
-		pending_visual_change.pending = VisualChange::Type (pending_visual_change.pending | VisualChange::TimeOrigin);
-		pending_visual_change.time_origin = where;
 		pending_visual_change.idle_handler_id = g_idle_add (_idle_visual_changer, this);
 	}
 }
@@ -4521,7 +4522,7 @@ Editor::idle_visual_changer ()
 		update_fixed_rulers ();
 		redisplay_tempo (true);
 	}
-	//cerr << "Editor::idle_visual_changer () called ha v:l:u:ps:fpu = " << horizontal_adjustment.get_value() << ":" << horizontal_adjustment.get_lower() << ":" << horizontal_adjustment.get_upper() << ":" << horizontal_adjustment.get_page_size() << ":" << frames_per_unit << endl;//DEBUG
+	// cerr << "Editor::idle_visual_changer () called ha v:l:u:ps:fpu = " << horizontal_adjustment.get_value() << ":" << horizontal_adjustment.get_lower() << ":" << horizontal_adjustment.get_upper() << ":" << horizontal_adjustment.get_page_size() << ":" << frames_per_unit << endl;//DEBUG
 	pending_visual_change.idle_handler_id = -1;
 	return 0; /* this is always a one-shot call */
 }
diff --git a/gtk2_ardour/editor.h b/gtk2_ardour/editor.h
index 983f39d..1ce860c 100644
--- a/gtk2_ardour/editor.h
+++ b/gtk2_ardour/editor.h
@@ -286,6 +286,7 @@ class Editor : public PublicEditor
 	void clear_playlists (TimeAxisView*);
 
 	TrackViewList* get_valid_views (TimeAxisView*, ARDOUR::RouteGroup* grp = 0);
+	void get_onscreen_tracks (TrackViewList&);
 
 	Width editor_mixer_strip_width;
 	void maybe_add_mixer_strip_width (XMLNode&);
@@ -777,18 +778,20 @@ class Editor : public PublicEditor
 	Cursor* playhead_cursor;
 	ArdourCanvas::Group* cursor_group;
 
-	void    cursor_to_region_boundary (Cursor*, int32_t dir);
-	void    cursor_to_next_region_boundary (Cursor*);
-	void    cursor_to_previous_region_boundary (Cursor*);
+	nframes64_t get_region_boundary (nframes64_t pos, int32_t dir, bool with_selection, bool only_onscreen);
+
+	void    cursor_to_region_boundary (bool with_selection, int32_t dir);
+	void    cursor_to_next_region_boundary (bool with_selection);
+	void    cursor_to_previous_region_boundary (bool with_selection);
 	void    cursor_to_next_region_point (Cursor*, ARDOUR::RegionPoint);
 	void    cursor_to_previous_region_point (Cursor*, ARDOUR::RegionPoint);
 	void    cursor_to_region_point (Cursor*, ARDOUR::RegionPoint, int32_t dir);
 	void    cursor_to_selection_start (Cursor *);
 	void    cursor_to_selection_end   (Cursor *);
 
-	void    selected_marker_to_region_boundary (int32_t dir);
-	void    selected_marker_to_next_region_boundary ();
-	void    selected_marker_to_previous_region_boundary ();
+	void    selected_marker_to_region_boundary (bool with_selection, int32_t dir);
+	void    selected_marker_to_next_region_boundary (bool with_selection);
+	void    selected_marker_to_previous_region_boundary (bool with_selection);
 	void    selected_marker_to_next_region_point (ARDOUR::RegionPoint);
 	void    selected_marker_to_previous_region_point (ARDOUR::RegionPoint);
 	void    selected_marker_to_region_point (ARDOUR::RegionPoint, int32_t dir);
@@ -1766,6 +1769,7 @@ public:
 	void redisplay_route_list();
 	bool ignore_route_list_reorder;
 	bool no_route_list_redisplay;
+	bool sync_track_view_list_and_route_list ();
 
 	void build_route_list_menu ();
 	void show_route_list_menu ();
@@ -1919,7 +1923,7 @@ public:
 	bool write_region (string path, boost::shared_ptr<ARDOUR::AudioRegion>);
 	void export_region ();
 	void bounce_region_selection ();
-	void bounce_range_selection (bool replace);
+	void bounce_range_selection (bool replace, bool enable_processing = true);
 	void external_edit_region ();
 
 	int write_audio_selection (TimeSelection&);
diff --git a/gtk2_ardour/editor_actions.cc b/gtk2_ardour/editor_actions.cc
index 0776b91..0a24236 100644
--- a/gtk2_ardour/editor_actions.cc
+++ b/gtk2_ardour/editor_actions.cc
@@ -128,9 +128,13 @@ Editor::register_actions ()
 	act = ActionManager::register_action (editor_actions, "toggle-selected-region-fades", _("Toggle Region Fades"), bind (mem_fun(*this, &Editor::toggle_selected_region_fades), 0));
 	ActionManager::session_sensitive_actions.push_back (act);
 
-	act = ActionManager::register_action (editor_actions, "playhead-to-next-region-boundary", _("Playhead to Next Region Boundary"), bind (mem_fun(*this, &Editor::cursor_to_next_region_boundary), playhead_cursor));
+	act = ActionManager::register_action (editor_actions, "playhead-to-next-region-boundary", _("Playhead to Next Region Boundary"), bind (mem_fun(*this, &Editor::cursor_to_next_region_boundary), true ));
 	ActionManager::session_sensitive_actions.push_back (act);
-	act = ActionManager::register_action (editor_actions, "playhead-to-previous-region-boundary", _("Playhead to Previous Region Boundary"), bind (mem_fun(*this, &Editor::cursor_to_previous_region_boundary), playhead_cursor));
+	act = ActionManager::register_action (editor_actions, "playhead-to-next-region-boundary-noselection", _("Playhead to Next Region Boundary (No Track Selection)"), bind (mem_fun(*this, &Editor::cursor_to_next_region_boundary), false ));
+	ActionManager::session_sensitive_actions.push_back (act);
+	act = ActionManager::register_action (editor_actions, "playhead-to-previous-region-boundary", _("Playhead to Previous Region Boundary"), bind (mem_fun(*this, &Editor::cursor_to_previous_region_boundary), true));
+	ActionManager::session_sensitive_actions.push_back (act);
+	act = ActionManager::register_action (editor_actions, "playhead-to-previous-region-boundary-noselection", _("Playhead to Previous Region Boundary (No Track Selection"), bind (mem_fun(*this, &Editor::cursor_to_previous_region_boundary), false));
 	ActionManager::session_sensitive_actions.push_back (act);
 
 	act = ActionManager::register_action (editor_actions, "playhead-to-next-region-start", _("Playhead to Next Region Start"), bind (mem_fun(*this, &Editor::cursor_to_next_region_point), playhead_cursor, RegionPoint (Start)));
@@ -147,11 +151,15 @@ Editor::register_actions ()
 	act = ActionManager::register_action (editor_actions, "playhead-to-previous-region-sync", _("Playhead to Previous Region Sync"), bind (mem_fun(*this, &Editor::cursor_to_previous_region_point), playhead_cursor, RegionPoint (SyncPoint)));
 	ActionManager::session_sensitive_actions.push_back (act);
 
-	act = ActionManager::register_action (editor_actions, "selected-marker-to-next-region-boundary", _("to Next Region Boundary"), mem_fun(*this, &Editor::selected_marker_to_next_region_boundary));
+	act = ActionManager::register_action (editor_actions, "selected-marker-to-next-region-boundary", _("to Next Region Boundary"), bind (mem_fun(*this, &Editor::selected_marker_to_next_region_boundary), true));
 	ActionManager::session_sensitive_actions.push_back (act);
-	act = ActionManager::register_action (editor_actions, "selected-marker-to-previous-region-boundary", _("to Previous Region Boundary"), mem_fun(*this, &Editor::selected_marker_to_previous_region_boundary));
+	act = ActionManager::register_action (editor_actions, "selected-marker-to-next-region-boundary-noselection", _("to Next Region Boundary (No Track Selection)"), bind (mem_fun(*this, &Editor::selected_marker_to_next_region_boundary), false));
 	ActionManager::session_sensitive_actions.push_back (act);
-
+	act = ActionManager::register_action (editor_actions, "selected-marker-to-previous-region-boundary", _("to Previous Region Boundary"), bind (mem_fun(*this, &Editor::selected_marker_to_previous_region_boundary), true));
+	ActionManager::session_sensitive_actions.push_back (act);
+	act = ActionManager::register_action (editor_actions, "selected-marker-to-previous-region-boundary-noselection", _("to Previous Region Boundary (No Track Selection)"), bind (mem_fun(*this, &Editor::selected_marker_to_previous_region_boundary), false));
+	ActionManager::session_sensitive_actions.push_back (act);
+	
 	act = ActionManager::register_action (editor_actions, "edit-cursor-to-next-region-start", _("to Next Region Start"), bind (mem_fun(*this, &Editor::selected_marker_to_next_region_point), RegionPoint (Start)));
 	ActionManager::session_sensitive_actions.push_back (act);
 	act = ActionManager::register_action (editor_actions, "edit-cursor-to-next-region-end", _("to Next Region End"), bind (mem_fun(*this, &Editor::selected_marker_to_next_region_point), RegionPoint (End)));
diff --git a/gtk2_ardour/editor_imageframe.cc b/gtk2_ardour/editor_imageframe.cc
index d2defd4..1cb1748 100644
--- a/gtk2_ardour/editor_imageframe.cc
+++ b/gtk2_ardour/editor_imageframe.cc
@@ -1081,19 +1081,32 @@ Editor::markerview_end_handle_end_trim (ArdourCanvas::Item* item, GdkEvent* even
 void
 Editor::handle_new_imageframe_time_axis_view(const string & track_name, void* src)
 {
+	route_redisplay_does_not_sync_order_keys = true;
+	no_route_list_redisplay = true;
+
 	ImageFrameTimeAxis* iftav ;
 	iftav = new ImageFrameTimeAxis(track_name, *this, *session, *track_canvas) ;
 	iftav->set_time_axis_name(track_name, this) ;
 	track_views.push_back(iftav) ;
 
-	TreeModel::Row row = *(route_display_model->append());
 
+	TreeModel::Row row = *(route_display_model->append());
+#if 1 // fake Route workaround
+	row[route_display_columns.route] = 
+		session->new_video_track(iftav->name());
+#endif
 	row[route_display_columns.text] = iftav->name();
 	row[route_display_columns.tv] = iftav;
+	row[route_display_columns.visible] = true;
 	route_list_display.get_selection()->select (row);
 
 	iftav->GoingAway.connect(bind(mem_fun(*this, &Editor::remove_route), (TimeAxisView*)iftav)) ;
+	iftav->set_old_order_key (route_display_model->children().size() - 1);
 	iftav->gui_changed.connect(mem_fun(*this, &Editor::handle_gui_changes)) ;
+
+	no_route_list_redisplay = false;
+	redisplay_route_list ();
+	route_redisplay_does_not_sync_order_keys = false;
 }
 
 void
diff --git a/gtk2_ardour/editor_keyboard.cc b/gtk2_ardour/editor_keyboard.cc
index 6d8bbda..257ebc4 100644
--- a/gtk2_ardour/editor_keyboard.cc
+++ b/gtk2_ardour/editor_keyboard.cc
@@ -78,7 +78,28 @@ Editor::kbd_driver (sigc::slot<void,GdkEvent*> theslot, bool use_track_canvas, b
 void
 Editor::kbd_mute_unmute_region ()
 {
-	if (entered_regionview) {
+	if (!selection->regions.empty ()) {
+
+		if (selection->regions.size() > 1) {
+			begin_reversible_command (_("mute regions"));
+		} else {
+			begin_reversible_command (_("mute region"));
+		}
+
+		for (RegionSelection::iterator i = selection->regions.begin(); i != selection->regions.end(); ++i) {
+
+			XMLNode &before = (*i)->region()->playlist()->get_state ();
+			(*i)->region()->set_muted (!(*i)->region()->muted ());
+			XMLNode &after = (*i)->region()->playlist()->get_state ();
+
+			session->add_command (new MementoCommand<ARDOUR::Playlist>(*((*i)->region()->playlist()), &before, &after));
+
+		}
+
+		commit_reversible_command ();
+
+	} else if (entered_regionview) {
+		
 		begin_reversible_command (_("mute region"));
 		XMLNode &before = entered_regionview->region()->playlist()->get_state();
 		
@@ -87,6 +108,7 @@ Editor::kbd_mute_unmute_region ()
 		XMLNode &after = entered_regionview->region()->playlist()->get_state();
 		session->add_command (new MementoCommand<ARDOUR::Playlist>(*(entered_regionview->region()->playlist()), &before, &after));
 		commit_reversible_command();
+		
 	}
 }
 
diff --git a/gtk2_ardour/editor_mixer.cc b/gtk2_ardour/editor_mixer.cc
index c5809a3..de0a27c 100644
--- a/gtk2_ardour/editor_mixer.cc
+++ b/gtk2_ardour/editor_mixer.cc
@@ -222,6 +222,17 @@ Editor::update_current_screen ()
 			goto almost_done;
 		}
 
+#undef DEBUG_CURRENT_SCREEN
+#if DEBUG_CURRENT_SCREEN
+
+		cerr << "@ " << frame << " last " << last_update_frame << " follow " << _follow_playhead 
+		     << " ret " << session->requested_return_frame()
+		     << " left " << leftmost_frame
+		     << " right " << leftmost_frame + current_page_frames()
+		     << " speed " << session->transport_speed ()
+		     << endl;
+#endif
+
 		/* only update if the playhead is on screen or we are following it */
 
 		if (_follow_playhead && session->requested_return_frame() < 0) {
@@ -234,7 +245,10 @@ Editor::update_current_screen ()
 #undef CONTINUOUS_SCROLL
 #ifndef  CONTINUOUS_SCROLL
 				if (frame < leftmost_frame || frame > leftmost_frame + current_page_frames()) {
-					
+
+#ifdef DEBUG_CURRENT_SCREEN
+					cerr << "\trecenter...\n";
+#endif 					
 					if (session->transport_speed() < 0) {
 						if (frame > (current_page_frames()/2)) {
 							center_screen (frame-(current_page_frames()/2));
@@ -382,11 +396,15 @@ Editor::session_going_away ()
 		current_bbt_points = 0;
 	}
 
-	/* mixer strip will be deleted all by itself 
-	   when its route is deleted.
-	*/
+	/* get rid of any existing editor mixer strip */
 
-	current_mixer_strip = 0;
+	if (current_mixer_strip) {
+		if (current_mixer_strip->get_parent() != 0) {
+			global_hpacker.remove (*current_mixer_strip);
+		}
+		delete current_mixer_strip;
+		current_mixer_strip = 0;
+	}
 
 	WindowTitle title(Glib::get_application_name());
 	title += _("Editor");
diff --git a/gtk2_ardour/editor_mouse.cc b/gtk2_ardour/editor_mouse.cc
index f8f7002..2fed8e1 100644
--- a/gtk2_ardour/editor_mouse.cc
+++ b/gtk2_ardour/editor_mouse.cc
@@ -519,6 +519,24 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp
 
 	button_selection (item, event, item_type);
 
+	//ctrl-drag or right-click-drag on a "range" ruler should start a range drag
+	if (event->type == GDK_BUTTON_PRESS) {
+		if (event->button.button == 3 || ( (event->button.button == 1) && (Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier) ))) {
+			if (item_type == TransportMarkerBarItem) {
+				start_range_markerbar_op (item, event, CreateTransportMarker);
+				return true;
+			}
+			if (item_type == RangeMarkerBarItem) {
+				start_range_markerbar_op (item, event, CreateRangeMarker);
+				return true;
+			}
+			if (item_type == CdMarkerBarItem) {
+				start_range_markerbar_op (item, event, CreateCDMarker);
+				return true;
+			}
+		}
+	}
+
 	if (drag_info.item == 0 &&
 	    (Keyboard::is_delete_event (&event->button) ||
 	     Keyboard::is_context_menu_event (&event->button) ||
@@ -575,40 +593,15 @@ Editor::button_press_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemTyp
 			case MarkerBarItem:
 			case TempoBarItem:
 			case MeterBarItem:
-				if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) {
-					start_cursor_grab_no_stop(&playhead_cursor->canvas_item, event);
-				}
-				return true;
-				break;
-
-				
+			case TransportMarkerBarItem:
 			case RangeMarkerBarItem:
-				if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) {		
-					start_cursor_grab_no_stop(&playhead_cursor->canvas_item, event);
-				} else {
-					start_range_markerbar_op (item, event, CreateRangeMarker); 
-				}	
-				return true;
-				break;
-
 			case CdMarkerBarItem:
 				if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) {
 					start_cursor_grab_no_stop(&playhead_cursor->canvas_item, event);
-				} else {
-					start_range_markerbar_op (item, event, CreateCDMarker); 
 				}
 				return true;
 				break;
 
-			case TransportMarkerBarItem:
-				if (!Keyboard::modifier_state_equals (event->button.state, Keyboard::PrimaryModifier)) {
-					start_cursor_grab_no_stop(&playhead_cursor->canvas_item, event);
-				} else {
-					start_range_markerbar_op (item, event, CreateTransportMarker);
-				}
-				return true;
-				break;
-				
 			default:
 				break;
 			}
@@ -1000,7 +993,7 @@ Editor::button_release_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemT
 			case CdMarkerBarItem:
 			case TempoBarItem:
 			case MeterBarItem:
-				popup_ruler_menu (pixel_to_frame(event->button.x), item_type);
+				popup_ruler_menu (where, item_type);
 				break;
 
 			case MarkerItem:
@@ -1795,6 +1788,7 @@ Editor::motion_handler (ArdourCanvas::Item* item, GdkEvent* event, ItemType item
 	case MarkerViewHandleEndItem:
 	/* </CMT Additions> */
 	  if (drag_info.item && (event->motion.state & Gdk::BUTTON1_MASK ||
+				 (event->motion.state & Gdk::BUTTON3_MASK) ||
 				 (event->motion.state & Gdk::BUTTON2_MASK))) {
 		  if (!from_autoscroll) {
 			  maybe_autoscroll_horizontally (&event->motion);
@@ -1983,9 +1977,9 @@ Editor::end_grab (ArdourCanvas::Item* item, GdkEvent* event)
 		return false;
 	}
 	
-	drag_info.item->ungrab (event->button.time);
+	drag_info.item->ungrab (event ? event->button.time : 0);
 
-	if (drag_info.finished_callback) {
+	if (drag_info.finished_callback && event) {
 		drag_info.last_pointer_x = drag_info.current_pointer_x;
 		drag_info.last_pointer_y = drag_info.current_pointer_y;
 		(this->*(drag_info.finished_callback)) (item, event);
@@ -3205,24 +3199,11 @@ Editor::line_drag_motion_callback (ArdourCanvas::Item* item, GdkEvent* event)
 
 	double cy = drag_info.grab_y + drag_info.cumulative_y_drag + dy;
 
-	// calculate zero crossing point. back off by .01 to stay on the
-	// positive side of zero
-	double zero_gain_y = (1.0 - ZERO_GAIN_FRACTION) * line->height() - .01;
-
-	// line->parent_group().i2w(_unused, zero_gain_y);
-
-	// make sure we hit zero when passing through
-	if ((cy < zero_gain_y and (cy - dy) > zero_gain_y)
-			or (cy > zero_gain_y and (cy - dy) < zero_gain_y)) {
-		cy = zero_gain_y;
-	}
-
 	drag_info.cumulative_y_drag = cy - drag_info.grab_y;
 
 	cy = max (0.0, cy);
 	cy = min ((double) line->height(), cy);
 
-
 	double fraction = 1.0 - (cy / line->height());
 
 	bool push;
diff --git a/gtk2_ardour/editor_ops.cc b/gtk2_ardour/editor_ops.cc
index bc934ea..fb331ea 100644
--- a/gtk2_ardour/editor_ops.cc
+++ b/gtk2_ardour/editor_ops.cc
@@ -688,7 +688,8 @@ Editor::build_region_boundary_cache ()
 				break;	
 
 			case SyncPoint:
-				rpos = r->adjust_to_sync (r->first_frame());
+				rpos = r->sync_position ();
+				//r->adjust_to_sync (r->first_frame());
 				break;
 
 			default:
@@ -774,7 +775,8 @@ Editor::find_next_region (nframes64_t frame, RegionPoint point, int32_t dir, Tra
 			break;
 
 		case SyncPoint:
-			rpos = r->adjust_to_sync (r->first_frame());
+			rpos = r->sync_position ();
+			// r->adjust_to_sync (r->first_frame());
 			break;
 		}
 
@@ -804,6 +806,7 @@ Editor::find_next_region_boundary (nframes64_t pos, int32_t dir, const TrackView
 	nframes64_t distance = max_frames;
 	nframes64_t current_nearest = -1;
 
+
 	for (TrackViewList::const_iterator i = tracks.begin(); i != tracks.end(); ++i) {
 		nframes64_t contender;
 		nframes64_t d;
@@ -829,10 +832,45 @@ Editor::find_next_region_boundary (nframes64_t pos, int32_t dir, const TrackView
 	return current_nearest;
 }
 
+nframes64_t
+Editor::get_region_boundary (nframes64_t pos, int32_t dir, bool with_selection, bool only_onscreen)
+{
+	nframes64_t target;
+	TrackViewList tvl;
+
+	if (with_selection && Config->get_region_boundaries_from_selected_tracks()) {
+
+		if (!selection->tracks.empty()) {
+			
+			target = find_next_region_boundary (pos, dir, selection->tracks);
+			
+		} else {
+			
+			if (only_onscreen || Config->get_region_boundaries_from_onscreen_tracks()) {
+				get_onscreen_tracks (tvl);
+				target = find_next_region_boundary (pos, dir, tvl);
+			} else {
+				target = find_next_region_boundary (pos, dir, track_views);
+			}
+		}
+		
+	} else {
+
+		if (only_onscreen || Config->get_region_boundaries_from_onscreen_tracks()) {
+			get_onscreen_tracks (tvl);
+			target = find_next_region_boundary (pos, dir, tvl);
+		} else {
+			target = find_next_region_boundary (pos, dir, track_views);
+		}
+	}
+	
+	return target;
+}
+
 void
-Editor::cursor_to_region_boundary (Cursor* cursor, int32_t dir)
+Editor::cursor_to_region_boundary (bool with_selection, int32_t dir)
 {
-	nframes64_t pos = cursor->current_frame;
+	nframes64_t pos = playhead_cursor->current_frame;
 	nframes64_t target;
 
 	if (!session) {
@@ -844,37 +882,24 @@ Editor::cursor_to_region_boundary (Cursor* cursor, int32_t dir)
 		pos += dir;
 	}
 
-	if (!selection->tracks.empty()) {
-		
-		target = find_next_region_boundary (pos, dir, selection->tracks);
-		
-	} else {
-		
-		target = find_next_region_boundary (pos, dir, track_views);
-	}
-	
-	if (target < 0) {
+	if ((target = get_region_boundary (pos, dir, with_selection, false)) < 0) {
 		return;
 	}
 
 
-	if (cursor == playhead_cursor) {
-		session->request_locate (target);
-	} else {
-		cursor->set_position (target);
-	}
+	session->request_locate (target);
 }
 
 void
-Editor::cursor_to_next_region_boundary (Cursor* cursor)
+Editor::cursor_to_next_region_boundary (bool with_selection)
 {
-	cursor_to_region_boundary (cursor, 1);
+	cursor_to_region_boundary (with_selection, 1);
 }
 
 void
-Editor::cursor_to_previous_region_boundary (Cursor* cursor)
+Editor::cursor_to_previous_region_boundary (bool with_selection)
 {
-	cursor_to_region_boundary (cursor, -1);
+	cursor_to_region_boundary (with_selection, -1);
 }
 
 void
@@ -923,7 +948,8 @@ Editor::cursor_to_region_point (Cursor* cursor, RegionPoint point, int32_t dir)
 		break;
 
 	case SyncPoint:
-		pos = r->adjust_to_sync (r->first_frame());
+		pos = r->sync_position ();
+		// r->adjust_to_sync (r->first_frame());
 		break;	
 	}
 	
@@ -1022,7 +1048,7 @@ Editor::cursor_to_selection_end (Cursor *cursor)
 }
 
 void
-Editor::selected_marker_to_region_boundary (int32_t dir)
+Editor::selected_marker_to_region_boundary (bool with_selection, int32_t dir)
 {
 	nframes64_t target;
 	Location* loc;
@@ -1054,16 +1080,7 @@ Editor::selected_marker_to_region_boundary (int32_t dir)
 		pos += dir;
 	}
 
-	if (!selection->tracks.empty()) {
-		
-		target = find_next_region_boundary (pos, dir, selection->tracks);
-		
-	} else {
-		
-		target = find_next_region_boundary (pos, dir, track_views);
-	}
-	
-	if (target < 0) {
+	if ((target = get_region_boundary (pos, dir, with_selection, false)) < 0) {
 		return;
 	}
 
@@ -1071,15 +1088,15 @@ Editor::selected_marker_to_region_boundary (int32_t dir)
 }
 
 void
-Editor::selected_marker_to_next_region_boundary ()
+Editor::selected_marker_to_next_region_boundary (bool with_selection)
 {
-	selected_marker_to_region_boundary (1);
+	selected_marker_to_region_boundary (with_selection, 1);
 }
 
 void
-Editor::selected_marker_to_previous_region_boundary ()
+Editor::selected_marker_to_previous_region_boundary (bool with_selection)
 {
-	selected_marker_to_region_boundary (-1);
+	selected_marker_to_region_boundary (with_selection, -1);
 }
 
 void
@@ -3611,7 +3628,7 @@ Editor::freeze_thread ()
 gint
 Editor::freeze_progress_timeout (void *arg)
 {
-	interthread_progress_bar.set_fraction (current_interthread_info->progress/100);
+	interthread_progress_bar.set_fraction (current_interthread_info->progress);
 	return !(current_interthread_info->done || current_interthread_info->cancel);
 }
 
@@ -3649,7 +3666,7 @@ Editor::freeze_route ()
 	pthread_attr_init(&attr);
 	pthread_attr_setstacksize(&attr, 500000);
 
-	pthread_create (&itt.thread, &attr, _freeze_thread, this);
+	pthread_create_and_store (X_("freezer"), &itt.thread, &attr, _freeze_thread, this);
 
 	pthread_attr_destroy(&attr);
 
@@ -3666,7 +3683,7 @@ Editor::freeze_route ()
 }
 
 void
-Editor::bounce_range_selection (bool replace)
+Editor::bounce_range_selection (bool replace, bool enable_processing)
 {
 	if (selection->time.empty()) {
 		return;
@@ -3701,7 +3718,7 @@ Editor::bounce_range_selection (bool replace)
 		itt.progress = false;
 
                 XMLNode &before = playlist->get_state();
-		boost::shared_ptr<Region> r = atv->audio_track()->bounce_range (start, start+cnt, itt);
+		boost::shared_ptr<Region> r = atv->audio_track()->bounce_range (start, start+cnt, itt, enable_processing);
 		
 		if (replace) {
 			list<AudioRange> ranges;
diff --git a/gtk2_ardour/editor_region_list.cc b/gtk2_ardour/editor_region_list.cc
index b83d131..0e14391 100644
--- a/gtk2_ardour/editor_region_list.cc
+++ b/gtk2_ardour/editor_region_list.cc
@@ -398,24 +398,12 @@ Editor::region_list_display_button_press (GdkEventButton *ev)
 		return true;
 	}
 
-	if (region == 0) {
-		return false;
-	}
-
-	switch (ev->button) {
-	case 1:
-		break;
-
-	case 2:
-		// audition on middle click (stop audition too)
+	if (region != 0 && Keyboard::is_button2_event (ev)) {
+		// start/stop audition 
 		if (!Keyboard::modifier_state_equals (ev->state, Keyboard::PrimaryModifier)) {
 			consider_auditioning (region);
 		}
 		return true;
-		break;
-
-	default:
-		break; 
 	}
 
 	return false;
@@ -460,7 +448,7 @@ Editor::consider_auditioning (boost::shared_ptr<Region> region)
 		if (r == last_audition_region) {
 			return;
 		}
-	}
+	} 
 
 	session->audition_region (r);
 	last_audition_region = r;
diff --git a/gtk2_ardour/editor_route_list.cc b/gtk2_ardour/editor_route_list.cc
index b62865c..86c7c9d 100644
--- a/gtk2_ardour/editor_route_list.cc
+++ b/gtk2_ardour/editor_route_list.cc
@@ -122,6 +122,8 @@ Editor::remove_route (TimeAxisView *tv)
 	TrackViewList::iterator i;
 	TreeModel::Children rows = route_display_model->children();
 	TreeModel::Children::iterator ri;
+	boost::shared_ptr<Route> route;
+	TimeAxisView* next_tv;
 
 	if (tv == entered_track) {
 		entered_track = 0;
@@ -135,6 +137,7 @@ Editor::remove_route (TimeAxisView *tv)
 
 	for (ri = rows.begin(); ri != rows.end(); ++ri) {
 		if ((*ri)[route_display_columns.tv] == tv) {
+			route = (*ri)[route_display_columns.route];
 			route_display_model->erase (ri);
 			break;
 		}
@@ -143,14 +146,29 @@ Editor::remove_route (TimeAxisView *tv)
 	route_redisplay_does_not_sync_order_keys = false;
 
 	if ((i = find (track_views.begin(), track_views.end(), tv)) != track_views.end()) {
-		track_views.erase (i);
+		i = track_views.erase (i);
+		
+		if (track_views.empty()) {
+			next_tv = 0;
+		} else if (i == track_views.end()) {
+			next_tv = track_views.front();
+		} else {
+			next_tv = (*i);
+		}
 	}
 
-	/* since the editor mixer goes away when you remove a route, set the
-	 * button to inactive and untick the menu option
-	 */
+	if (current_mixer_strip && (current_mixer_strip->route() == route)) {
 
-	ActionManager::uncheck_toggleaction ("<Actions>/Editor/show-editor-mixer");
+		if (next_tv) {
+			set_selected_mixer_strip (*next_tv);
+		} else {
+			/* make the editor mixer strip go away by setting the
+			 * button to inactive (which also unticks the menu option)
+			 */
+			
+			ActionManager::uncheck_toggleaction ("<Actions>/Editor/show-editor-mixer");
+		}
+	}
 }
 
 void
@@ -296,7 +314,7 @@ Editor::redisplay_route_list ()
 		}
 
 		bool visible = (*i)[route_display_columns.visible];
-
+		
 		if (visible) {
 			tv->set_marked_for_display (true);
 			position += tv->show_at (position, n, &edit_controls_vbox);
@@ -310,6 +328,13 @@ Editor::redisplay_route_list ()
 		++n;
 	}
 
+	/* whenever we go idle, update the track view list to reflect the new order.
+	   we can't do this here, because we could mess up something that is traversing
+	   the track order and has caused a redisplay of the list.
+	*/
+
+	Glib::signal_idle().connect (mem_fun (*this, &Editor::sync_track_view_list_and_route_list));
+
 	full_canvas_height = position + canvas_timebars_vsize;
 	vertical_adjustment.set_upper (full_canvas_height);
 	if ((vertical_adjustment.get_value() + canvas_height) > vertical_adjustment.get_upper()) {
@@ -325,6 +350,22 @@ Editor::redisplay_route_list ()
 	}
 }
 
+bool
+Editor::sync_track_view_list_and_route_list ()
+{
+	TreeModel::Children rows = route_display_model->children();
+	TreeModel::Children::iterator i;
+
+	track_views.clear ();
+
+	for (i = rows.begin(); i != rows.end(); ++i) {
+		TimeAxisView *tv = (*i)[route_display_columns.tv];
+		track_views.push_back (tv);
+	}
+	
+	return false; // do not call again (until needed)
+}
+
 void
 Editor::hide_all_tracks (bool with_select)
 {
diff --git a/gtk2_ardour/editor_rulers.cc b/gtk2_ardour/editor_rulers.cc
index 1a58f28..dd33f48 100644
--- a/gtk2_ardour/editor_rulers.cc
+++ b/gtk2_ardour/editor_rulers.cc
@@ -424,6 +424,8 @@ Editor::popup_ruler_menu (nframes64_t where, ItemType t)
 	
 	case CdMarkerBarItem:
 		// TODO
+		ruler_items.push_back (MenuElem (_("Clear all locations"), mem_fun(*this, &Editor::clear_markers)));
+		ruler_items.push_back (MenuElem (_("Unhide locations"), mem_fun(*this, &Editor::unhide_markers)));
 		ruler_items.push_back (MenuElem (_("New CD track marker"), bind ( mem_fun(*this, &Editor::mouse_add_new_marker), where, true, false)));
 		break;
 		
diff --git a/gtk2_ardour/editor_selection.cc b/gtk2_ardour/editor_selection.cc
index 5771edd..e6a0695 100644
--- a/gtk2_ardour/editor_selection.cc
+++ b/gtk2_ardour/editor_selection.cc
@@ -252,6 +252,16 @@ Editor::set_selected_control_point_from_click (Selection::Operation op, bool no_
 }
 
 void
+Editor::get_onscreen_tracks (TrackViewList& tvl)
+{
+	for (TrackViewList::iterator i = track_views.begin(); i != track_views.end(); ++i) {
+		if ((*i)->y_position < canvas_height) {
+			tvl.push_back (*i);
+		}
+	}
+}
+
+void
 Editor::get_relevant_audio_tracks (set<AudioTimeAxisView*>& relevant_tracks)
 {
 	/* step one: get all selected tracks and all tracks in the relevant edit groups */
diff --git a/gtk2_ardour/generic_pluginui.cc b/gtk2_ardour/generic_pluginui.cc
index a5bfc38..75474f7 100644
--- a/gtk2_ardour/generic_pluginui.cc
+++ b/gtk2_ardour/generic_pluginui.cc
@@ -448,14 +448,16 @@ GenericPluginUI::build_control_ui (guint32 port_index, PBD::Controllable* mcontr
 
 			control_ui->pack_start (control_ui->label, true, true);
 			control_ui->pack_start (*control_ui->button, false, true);
-			control_ui->pack_start (control_ui->automate_button, false, false);
+			//control_ui->pack_start (control_ui->automate_button, false, false);
 
-			control_ui->button->signal_clicked().connect (bind (mem_fun(*this, &GenericPluginUI::control_port_toggled), control_ui));
-		
-			if(plugin->get_parameter (port_index) == 1){
+			if(plugin->get_parameter (port_index) > 0.5){
 				control_ui->button->set_active(true);
 			}
 
+			control_ui->button->signal_clicked().connect (bind (mem_fun(*this, &GenericPluginUI::control_port_toggled), control_ui));
+		
+			plugin->ParameterChanged.connect (bind (mem_fun(*this, &GenericPluginUI::toggle_parameter_changed), control_ui));
+	
 			return control_ui;
 		}
 	
@@ -477,9 +479,6 @@ GenericPluginUI::build_control_ui (guint32 port_index, PBD::Controllable* mcontr
 			control_ui->adjustment->set_lower (log(control_ui->adjustment->get_lower()));
 		}
 	
-		float delta = desc.upper - desc.lower;
-
-		control_ui->adjustment->set_page_size (delta/100.0);
 		control_ui->adjustment->set_step_increment (desc.step);
 		control_ui->adjustment->set_page_increment (desc.largestep);
 
@@ -574,9 +573,10 @@ GenericPluginUI::build_control_ui (guint32 port_index, PBD::Controllable* mcontr
 		control_ui->meterinfo->packed = true;
 		
 		output_controls.push_back (control_ui);
+
+		plugin->ParameterChanged.connect (bind (mem_fun(*this, &GenericPluginUI::parameter_changed), control_ui));
 	}
 	
-	plugin->ParameterChanged.connect (bind (mem_fun(*this, &GenericPluginUI::parameter_changed), control_ui));
 	return control_ui;
 }
 
@@ -640,6 +640,18 @@ GenericPluginUI::control_adjustment_changed (ControlUI* cui)
 }
 
 void
+GenericPluginUI::toggle_parameter_changed (uint32_t abs_port_id, float val, ControlUI* cui)
+{
+	if (!cui->ignore_change && cui->port_index == abs_port_id) {
+		if (val > 0.5) {
+			cui->button->set_active (true);
+		} else {
+			cui->button->set_active (false);
+		}
+	}
+}
+
+void
 GenericPluginUI::parameter_changed (uint32_t abs_port_id, float val, ControlUI* cui)
 {
 	if (cui->port_index == abs_port_id) {
@@ -668,14 +680,6 @@ GenericPluginUI::update_control_display (ControlUI* cui)
 				break;
 			}
 		}
-	} else if (cui->adjustment == 0) {
-
-		if (val > 0.5) {
-			cui->button->set_active (true);
-		} else {
-			cui->button->set_active (false);
-		}
-
 	} else {
 		if (cui->logarithmic) {
 			val = log(val);
@@ -690,9 +694,9 @@ GenericPluginUI::update_control_display (ControlUI* cui)
 void
 GenericPluginUI::control_port_toggled (ControlUI* cui)
 {
-	if (!cui->ignore_change) {
-		insert->set_parameter (cui->port_index, cui->button->get_active());
-	}
+	cui->ignore_change++;
+	insert->set_parameter (cui->port_index, cui->button->get_active());
+	cui->ignore_change--;
 }
 
 void
diff --git a/gtk2_ardour/icons/ardour-sae.png b/gtk2_ardour/icons/ardour-sae.png
deleted file mode 100644
index 11b94bf..0000000
Binary files a/gtk2_ardour/icons/ardour-sae.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade-in-S1.png b/gtk2_ardour/icons/crossfade-in-S1.png
new file mode 100644
index 0000000..09d6279
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-in-S1.png differ
diff --git a/gtk2_ardour/icons/crossfade-in-S2.png b/gtk2_ardour/icons/crossfade-in-S2.png
new file mode 100644
index 0000000..d7aaf5f
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-in-S2.png differ
diff --git a/gtk2_ardour/icons/crossfade-in-constant-power.png b/gtk2_ardour/icons/crossfade-in-constant-power.png
new file mode 100644
index 0000000..13a0a05
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-in-constant-power.png differ
diff --git a/gtk2_ardour/icons/crossfade-in-fast-cut.png b/gtk2_ardour/icons/crossfade-in-fast-cut.png
new file mode 100644
index 0000000..3565ee2
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-in-fast-cut.png differ
diff --git a/gtk2_ardour/icons/crossfade-in-linear.png b/gtk2_ardour/icons/crossfade-in-linear.png
new file mode 100644
index 0000000..7b8980a
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-in-linear.png differ
diff --git a/gtk2_ardour/icons/crossfade-in-long-cut.png b/gtk2_ardour/icons/crossfade-in-long-cut.png
new file mode 100644
index 0000000..578346a
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-in-long-cut.png differ
diff --git a/gtk2_ardour/icons/crossfade-in-short-cut.png b/gtk2_ardour/icons/crossfade-in-short-cut.png
new file mode 100644
index 0000000..465698f
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-in-short-cut.png differ
diff --git a/gtk2_ardour/icons/crossfade-in-slow-cut.png b/gtk2_ardour/icons/crossfade-in-slow-cut.png
new file mode 100644
index 0000000..8080e3a
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-in-slow-cut.png differ
diff --git a/gtk2_ardour/icons/crossfade-out-S1.png b/gtk2_ardour/icons/crossfade-out-S1.png
new file mode 100644
index 0000000..6313690
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-out-S1.png differ
diff --git a/gtk2_ardour/icons/crossfade-out-S2.png b/gtk2_ardour/icons/crossfade-out-S2.png
new file mode 100644
index 0000000..35efbea
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-out-S2.png differ
diff --git a/gtk2_ardour/icons/crossfade-out-constant-power.png b/gtk2_ardour/icons/crossfade-out-constant-power.png
new file mode 100644
index 0000000..359f370
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-out-constant-power.png differ
diff --git a/gtk2_ardour/icons/crossfade-out-fast-cut.png b/gtk2_ardour/icons/crossfade-out-fast-cut.png
new file mode 100644
index 0000000..39d00c0
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-out-fast-cut.png differ
diff --git a/gtk2_ardour/icons/crossfade-out-linear.png b/gtk2_ardour/icons/crossfade-out-linear.png
new file mode 100644
index 0000000..a9fb6a3
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-out-linear.png differ
diff --git a/gtk2_ardour/icons/crossfade-out-long-cut.png b/gtk2_ardour/icons/crossfade-out-long-cut.png
new file mode 100644
index 0000000..66c9bb5
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-out-long-cut.png differ
diff --git a/gtk2_ardour/icons/crossfade-out-short-cut.png b/gtk2_ardour/icons/crossfade-out-short-cut.png
new file mode 100644
index 0000000..43c6a57
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-out-short-cut.png differ
diff --git a/gtk2_ardour/icons/crossfade-out-slow-cut.png b/gtk2_ardour/icons/crossfade-out-slow-cut.png
new file mode 100644
index 0000000..b740ad2
Binary files /dev/null and b/gtk2_ardour/icons/crossfade-out-slow-cut.png differ
diff --git a/gtk2_ardour/icons/crossfade_in_constant.png b/gtk2_ardour/icons/crossfade_in_constant.png
deleted file mode 100644
index ce7d480..0000000
Binary files a/gtk2_ardour/icons/crossfade_in_constant.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_in_default.png b/gtk2_ardour/icons/crossfade_in_default.png
deleted file mode 100644
index 57258aa..0000000
Binary files a/gtk2_ardour/icons/crossfade_in_default.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_in_dipped.png b/gtk2_ardour/icons/crossfade_in_dipped.png
deleted file mode 100644
index 667e9d9..0000000
Binary files a/gtk2_ardour/icons/crossfade_in_dipped.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_in_fast-cut.png b/gtk2_ardour/icons/crossfade_in_fast-cut.png
deleted file mode 100644
index a55dab5..0000000
Binary files a/gtk2_ardour/icons/crossfade_in_fast-cut.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_in_slow-cut.png b/gtk2_ardour/icons/crossfade_in_slow-cut.png
deleted file mode 100644
index fe76c3b..0000000
Binary files a/gtk2_ardour/icons/crossfade_in_slow-cut.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_in_slow-fade.png b/gtk2_ardour/icons/crossfade_in_slow-fade.png
deleted file mode 100644
index a105967..0000000
Binary files a/gtk2_ardour/icons/crossfade_in_slow-fade.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_in_transition.png b/gtk2_ardour/icons/crossfade_in_transition.png
deleted file mode 100644
index 482e8a6..0000000
Binary files a/gtk2_ardour/icons/crossfade_in_transition.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_out_constant.png b/gtk2_ardour/icons/crossfade_out_constant.png
deleted file mode 100644
index 602ba80..0000000
Binary files a/gtk2_ardour/icons/crossfade_out_constant.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_out_default.png b/gtk2_ardour/icons/crossfade_out_default.png
deleted file mode 100644
index 4ea3a2b..0000000
Binary files a/gtk2_ardour/icons/crossfade_out_default.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_out_dipped.png b/gtk2_ardour/icons/crossfade_out_dipped.png
deleted file mode 100644
index 3f1e84c..0000000
Binary files a/gtk2_ardour/icons/crossfade_out_dipped.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_out_fast-cut.png b/gtk2_ardour/icons/crossfade_out_fast-cut.png
deleted file mode 100644
index 33eaafe..0000000
Binary files a/gtk2_ardour/icons/crossfade_out_fast-cut.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_out_slow-cut.png b/gtk2_ardour/icons/crossfade_out_slow-cut.png
deleted file mode 100644
index fd62602..0000000
Binary files a/gtk2_ardour/icons/crossfade_out_slow-cut.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_out_slow-fade.png b/gtk2_ardour/icons/crossfade_out_slow-fade.png
deleted file mode 100644
index d752879..0000000
Binary files a/gtk2_ardour/icons/crossfade_out_slow-fade.png and /dev/null differ
diff --git a/gtk2_ardour/icons/crossfade_out_transition.png b/gtk2_ardour/icons/crossfade_out_transition.png
deleted file mode 100644
index a48e645..0000000
Binary files a/gtk2_ardour/icons/crossfade_out_transition.png and /dev/null differ
diff --git a/gtk2_ardour/icons/poweroff.png b/gtk2_ardour/icons/poweroff.png
deleted file mode 100644
index 6ad33b0..0000000
Binary files a/gtk2_ardour/icons/poweroff.png and /dev/null differ
diff --git a/gtk2_ardour/icons/poweron.png b/gtk2_ardour/icons/poweron.png
deleted file mode 100644
index b4d151e..0000000
Binary files a/gtk2_ardour/icons/poweron.png and /dev/null differ
diff --git a/gtk2_ardour/imageframe.cc b/gtk2_ardour/imageframe.cc
index 7ff05ee..8758819 100644
--- a/gtk2_ardour/imageframe.cc
+++ b/gtk2_ardour/imageframe.cc
@@ -35,7 +35,7 @@ ImageFrame::ImageFrame(Group& parentx, ArtPixBuf* pbuf, double x, double y, Gtk:
 : Item(GNOME_CANVAS_ITEM(g_object_new(get_type(),0)))
 {
   item_construct(parentx);
-  set("pixbuf", pbuf, "x", x,"y", y,"width", w,"height", h, 0);
+  set("pixbuf", pbuf, "x", x,"y", y,"width", w,"height", h, "anchor", anchor, 0);
 }
 
 ImageFrame::ImageFrame(Group& parentx)
diff --git a/gtk2_ardour/imageframe_socket_handler.cc b/gtk2_ardour/imageframe_socket_handler.cc
index 96b61ca..9279a17 100644
--- a/gtk2_ardour/imageframe_socket_handler.cc
+++ b/gtk2_ardour/imageframe_socket_handler.cc
@@ -316,8 +316,7 @@ ImageFrameSocketHandler::send_imageframe_time_axis_removed(const string & track_
 	send_message(msgBuffer.str()) ;
 
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 		
 /**
@@ -357,8 +356,7 @@ ImageFrameSocketHandler::send_imageframe_time_axis_renamed(const string & new_id
 	send_message(msgBuffer.str()) ;
 
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 
 //------------------------
@@ -393,8 +391,7 @@ ImageFrameSocketHandler::send_marker_time_axis_removed(const string & track_id,
 	send_message(msgBuffer.str()) ;
 
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 		
 /**
@@ -434,8 +431,7 @@ ImageFrameSocketHandler::send_marker_time_axis_renamed(const string & new_id, co
 	send_message(msgBuffer.str()) ;
 	
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 
 //---------------------------------
@@ -476,8 +472,7 @@ ImageFrameSocketHandler::send_imageframe_time_axis_group_removed(const string &
 	send_message(msgBuffer.str()) ;
 
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 
 /**
@@ -521,8 +516,7 @@ ImageFrameSocketHandler::send_imageframe_time_axis_group_renamed(const string &
 	send_message(msgBuffer.str()) ;
 	
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 
 
@@ -561,8 +555,7 @@ ImageFrameSocketHandler::send_imageframe_view_position_change(nframes_t pos, voi
 	send_message(msgBuffer.str()) ;
 	
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 		
 /**
@@ -596,8 +589,7 @@ ImageFrameSocketHandler::send_imageframe_view_duration_change(nframes_t dur, voi
 	send_message(msgBuffer.str()) ;
 	
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 		
 /**
@@ -632,8 +624,7 @@ ImageFrameSocketHandler::send_imageframe_view_renamed(const string & new_id, con
 	send_message(msgBuffer.str()) ;
 	
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 		
 /**
@@ -669,8 +660,7 @@ ImageFrameSocketHandler::send_imageframe_view_removed(const string & item_id, vo
 	send_message(msgBuffer.str()) ;
 
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 
 
@@ -709,8 +699,7 @@ ImageFrameSocketHandler::send_marker_view_position_change(nframes_t pos, void* s
 	send_message(msgBuffer.str()) ;
 
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 		
 /**
@@ -742,8 +731,7 @@ ImageFrameSocketHandler::send_marker_view_duration_change(nframes_t dur, void* s
 	send_message(msgBuffer.str()) ;
 
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }	
 
 		
@@ -780,8 +768,7 @@ ImageFrameSocketHandler::send_marker_view_renamed(const string & new_id, const s
 	send_message(msgBuffer.str()) ;
 	
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 		
 /**
@@ -815,8 +802,7 @@ ImageFrameSocketHandler::send_marker_view_removed(const string & item_id, void*
 	send_message(msgBuffer.str()) ;
 
 	// XXX should do something with the return
-	std::string retmsg ;
-	read_message(retmsg) ;
+	read_result();
 }
 
 
@@ -2323,6 +2309,25 @@ ImageFrameSocketHandler::read_message(std::string& msg)
 	return(retcode) ;
 }
 
+/**
+ * Reads a reply message ("RT0"/"RT1") from the Socket
+ *
+ * @return true if "RT0" was received,, otherwise false
+ */
+bool
+ImageFrameSocketHandler::read_result()
+{
+	char buf[(ardourvis::RETURN_MSG_SIZE)+1] ;
+	int retcode = ::recv(theArdourToCompositorSocket, buf, ardourvis::RETURN_MSG_SIZE, 0) ;
+	buf[ardourvis::RETURN_MSG_SIZE]='\0';
+	if (retcode > 0) {
+	  std::cout << "Received Result [" << buf << "]\n" ;
+	  if (retcode == ardourvis::RETURN_MSG_SIZE && buf == ardourvis::RETURN_TRUE) {
+	    return (true);
+	  }
+	}
+	return(false) ;
+}
 
 /**
  * Convenience method to string_compose and send a success messasge back to the Image Compositor
diff --git a/gtk2_ardour/imageframe_socket_handler.h b/gtk2_ardour/imageframe_socket_handler.h
index 3a87f5b..0835f18 100644
--- a/gtk2_ardour/imageframe_socket_handler.h
+++ b/gtk2_ardour/imageframe_socket_handler.h
@@ -669,6 +669,13 @@ class ImageFrameSocketHandler : public sigc::trackable
 		 * @return the return value from the socket call
 		 */
 		int read_message(std::string& msg) ;
+
+		/**
+		 * Reads a return message ("RT0"/"RT1") from the Socket
+		 *
+		 * @return true if "RT0" was received,, otherwise false
+		 */
+		bool read_result();
 		
 		/**
 		 * Convenience method to compose and send a success messasge back to the Image Compositor
diff --git a/gtk2_ardour/imageframe_time_axis.cc b/gtk2_ardour/imageframe_time_axis.cc
index f3630e7..700a160 100644
--- a/gtk2_ardour/imageframe_time_axis.cc
+++ b/gtk2_ardour/imageframe_time_axis.cc
@@ -138,6 +138,7 @@ ImageFrameTimeAxis::~ImageFrameTimeAxis ()
 void
 ImageFrameTimeAxis::set_height (uint32_t h)
 {
+	bool changed = (height == 0) || (h != height);
 	VisualTimeAxis::set_height(h) ;
 	
 	// tell out view helper of the change too
@@ -146,8 +147,10 @@ ImageFrameTimeAxis::set_height (uint32_t h)
 		view->set_height((double) height) ;
 	}
 	
+	if (changed) {
 	// tell those interested that we have had our height changed
-	 gui_changed("track_height",(void*)0); /* EMIT_SIGNAL */
+		gui_changed("track_height",(void*)0); /* EMIT_SIGNAL */
+	}
 }
 
 /**
diff --git a/gtk2_ardour/imageframe_view.cc b/gtk2_ardour/imageframe_view.cc
index f353813..d129147 100644
--- a/gtk2_ardour/imageframe_view.cc
+++ b/gtk2_ardour/imageframe_view.cc
@@ -67,7 +67,7 @@ ImageFrameView::ImageFrameView(const string & item_id,
 	uint32_t width,
 	uint32_t height,
 	uint32_t num_channels)
-  : TimeAxisViewItem(item_id, *parent, *tv, spu, basic_color, start, duration,
+  : TimeAxisViewItem(item_id, *parent, *tv, spu, basic_color, start, duration, false,
 		     TimeAxisViewItem::Visibility (TimeAxisViewItem::ShowNameText|
 						   TimeAxisViewItem::ShowNameHighlight|
 						   TimeAxisViewItem::ShowFrame|
@@ -86,7 +86,16 @@ ImageFrameView::ImageFrameView(const string & item_id,
 	memcpy(the_rgb_data, rgb_data, (width*height*num_channels)) ;
 
 	ArtPixBuf* pbuf ;
-	pbuf = art_pixbuf_new_rgba(the_rgb_data, width, height, (num_channels * width));
+	if (num_channels==3)
+	  pbuf = art_pixbuf_new_rgb(the_rgb_data, width, height, (num_channels * width));
+	else if (num_channels==4)
+	  pbuf = art_pixbuf_new_rgba(the_rgb_data, width, height, (num_channels * width));
+	else  {
+	  ; // error unsupported image data format
+	  art_free(the_rgb_data);
+	  std::cerr << "imageframe_view: unsupported image data format" << std::endl;
+	  return;
+	}
 	imageframe = 0 ;
 	
 	//calculate our image width based on the track height
diff --git a/gtk2_ardour/keyboard.cc b/gtk2_ardour/keyboard.cc
index 24ca17f..dd15387 100644
--- a/gtk2_ardour/keyboard.cc
+++ b/gtk2_ardour/keyboard.cc
@@ -648,7 +648,23 @@ Keyboard::load_keybindings (string path)
 
 	release_keys.clear ();
 
+	bool show_bindings = (getenv ("ARDOUR_SHOW_BINDINGS") != 0);
+
 	for (n = names.begin(), b = bindings.begin(), g = groups.begin(); n != names.end(); ++n, ++b, ++g) {
+
+		if (show_bindings) {
+			
+			cerr << "Action: " << (*n) << " Group: " << (*g) << " binding = ";
+			
+			if ((*b).get_key() != GDK_VoidSymbol) {
+				cerr << (*b).get_key() << " w/mod = " << hex << (*b).get_mod() << dec << " = " << (*b).get_abbrev();
+			} else {
+				cerr << "unbound";
+			}
+			
+			cerr << endl;
+		}
+
 		if ((*b).get_mod() & Gdk::RELEASE_MASK) {
 			release_keys.insert (pair<AccelKey,two_strings> (*b, two_strings (*g, *n)));
 		}
diff --git a/gtk2_ardour/lv2_plugin_ui.cc b/gtk2_ardour/lv2_plugin_ui.cc
index 07599a8..26a7074 100644
--- a/gtk2_ardour/lv2_plugin_ui.cc
+++ b/gtk2_ardour/lv2_plugin_ui.cc
@@ -44,14 +44,20 @@ void
 LV2PluginUI::parameter_changed (uint32_t port_index, float val)
 {
 	if (val != _values[port_index]) {
-		const LV2UI_Descriptor* ui_desc = slv2_ui_instance_get_descriptor(_inst);
-		LV2UI_Handle ui_handle = slv2_ui_instance_get_handle(_inst);
-		if (ui_desc->port_event)
-			ui_desc->port_event(ui_handle, port_index, 4, 0, &val);
-		_values[port_index] = val;
+		parameter_update(port_index, val);
 	}
 }
 
+void
+LV2PluginUI::parameter_update (uint32_t port_index, float val)
+{
+	const LV2UI_Descriptor* ui_desc = slv2_ui_instance_get_descriptor(_inst);
+	LV2UI_Handle ui_handle = slv2_ui_instance_get_handle(_inst);
+	if (ui_desc->port_event)
+		ui_desc->port_event(ui_handle, port_index, 4, 0, &val);
+	_values[port_index] = val;
+}
+
 bool
 LV2PluginUI::start_updating(GdkEventAny* event)
 {
@@ -107,9 +113,13 @@ LV2PluginUI::LV2PluginUI (boost::shared_ptr<PluginInsert> pi, boost::shared_ptr<
 	_values = new float[num_ports];
 	for (uint32_t i = 0; i < num_ports; ++i) {
 		bool ok;
-		_values[i] = lv2p->nth_parameter(i, ok);
-		if (ok)
-			lv2_ui_write(this, i, 4, /* FIXME: format */0, &_values[i]);
+		uint32_t port = lv2p->nth_parameter(i, ok);
+		if (ok) {
+			_values[port] = lv2p->get_parameter(port);
+			if (lv2p->parameter_is_control(port) && lv2p->parameter_is_input(port)) {
+				parameter_update(port, _values[port]);
+			}
+		}
 	}
 		
 	_lv2->ParameterChanged.connect(mem_fun(*this, &LV2PluginUI::parameter_changed));
diff --git a/gtk2_ardour/lv2_plugin_ui.h b/gtk2_ardour/lv2_plugin_ui.h
index 1af0239..fe8dd85 100644
--- a/gtk2_ardour/lv2_plugin_ui.h
+++ b/gtk2_ardour/lv2_plugin_ui.h
@@ -69,6 +69,7 @@ class LV2PluginUI : public PlugUIBase, public Gtk::VBox
 			const void*      buffer);
 	
 	void parameter_changed(uint32_t, float);
+	void parameter_update(uint32_t, float);
 	bool configure_handler (GdkEventConfigure*);
 	void save_plugin_setting ();
 	void output_update();
diff --git a/gtk2_ardour/main.cc b/gtk2_ardour/main.cc
index d9738e9..5d79cf0 100644
--- a/gtk2_ardour/main.cc
+++ b/gtk2_ardour/main.cc
@@ -248,10 +248,14 @@ sigpipe_handler (int sig)
 }
 
 #ifdef VST_SUPPORT
+
+extern int gui_init (int* argc, char** argv[]);
+
 /* this is called from the entry point of a wine-compiled
    executable that is linked against gtk2_ardour built
    as a shared library.
 */
+
 extern "C" {
 int ardour_main (int argc, char *argv[])
 #else
@@ -267,6 +271,13 @@ int main (int argc, char* argv[])
         Glib::thread_init();
 	gtk_set_locale ();
 
+#ifdef VST_SUPPORT
+	/* this does some magic that is needed to make GTK and Wine's own
+	   X11 client interact properly.
+	*/
+	gui_init (&argc, &argv);
+#endif
+
 	(void) bindtextdomain (PACKAGE, localedir);
 	/* our i18n translations are all in UTF-8, so make sure
 	   that even if the user locale doesn't specify UTF-8,
diff --git a/gtk2_ardour/marker_time_axis.cc b/gtk2_ardour/marker_time_axis.cc
index df041f8..f5c80be 100644
--- a/gtk2_ardour/marker_time_axis.cc
+++ b/gtk2_ardour/marker_time_axis.cc
@@ -109,6 +109,7 @@ MarkerTimeAxis::~MarkerTimeAxis()
 void
 MarkerTimeAxis::set_height (uint32_t h)
 {
+	bool changed = (height == 0) || (h != height);
 	VisualTimeAxis::set_height(h) ;
 	
 	// tell out view helper of the change too
@@ -117,8 +118,10 @@ MarkerTimeAxis::set_height (uint32_t h)
 		view->set_height((double) height) ;
 	}
 	
+	if (changed) {
 	// tell those interested that we have had our height changed
 	 gui_changed("track_height",(void*)0) ; /* EMIT_SIGNAL */
+	}
 }
 
 /**
diff --git a/gtk2_ardour/mixer_strip.cc b/gtk2_ardour/mixer_strip.cc
index f721953..7287e6f 100644
--- a/gtk2_ardour/mixer_strip.cc
+++ b/gtk2_ardour/mixer_strip.cc
@@ -102,6 +102,14 @@ MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, bool in_mixer)
 
 {
 	init ();
+
+	if (!_mixer_owned) {
+		/* the editor mixer strip: don't destroy it every time
+		   the underlying route goes away.
+		*/
+
+		self_destruct = false;
+	}
 }
 
 MixerStrip::MixerStrip (Mixer_UI& mx, Session& sess, boost::shared_ptr<Route> rt, bool in_mixer)
@@ -134,6 +142,7 @@ MixerStrip::init ()
 	group_menu = 0;
 	_marked_for_display = false;
 	route_ops_menu = 0;
+	rename_menu_item = 0;
 	ignore_comment_edit = false;
 	ignore_toggle = false;
 	ignore_speed_adjustment = false;
@@ -1046,7 +1055,9 @@ MixerStrip::build_route_ops_menu ()
 
 	MenuList& items = route_ops_menu->items();
 
+	items.push_back (MenuElem (_("Save As Template"), mem_fun(*this, &RouteUI::save_as_template)));
 	items.push_back (MenuElem (_("Rename"), mem_fun(*this, &RouteUI::route_rename)));
+	rename_menu_item = &items.back();
 	items.push_back (SeparatorElem());
 	items.push_back (CheckMenuElem (_("Active"), mem_fun (*this, &RouteUI::toggle_route_active)));
 	route_active_menu_item = dynamic_cast<CheckMenuItem *> (&items.back());
@@ -1074,11 +1085,8 @@ MixerStrip::name_button_button_press (GdkEventButton* ev)
 {
 	if (ev->button == 1 || ev->button == 3) {
 		list_route_operations ();
-
-		Menu_Helpers::MenuList& items = route_ops_menu->items();
 		/* do not allow rename if the track is record-enabled */
-		static_cast<MenuItem*> (&items.front())->set_sensitive (!_route->record_enabled());
-
+		rename_menu_item->set_sensitive (!_route->record_enabled());
 		route_ops_menu->popup (1, ev->time);
 	}
 	return FALSE;
@@ -1177,16 +1185,16 @@ MixerStrip::width_clicked ()
 void
 MixerStrip::hide_clicked ()
 {
-    // LAME fix to reset the button status for when it is redisplayed (part 1)
-    hide_button.set_sensitive(false);
-    
+	// LAME fix to reset the button status for when it is redisplayed (part 1)
+	hide_button.set_sensitive(false);
+	
 	if (_embedded) {
-		 Hiding(); /* EMIT_SIGNAL */
+		Hiding(); /* EMIT_SIGNAL */
 	} else {
 		_mixer.hide_strip (this);
 	}
 	
-    // (part 2)
+	// (part 2)
 	hide_button.set_sensitive(true);
 }
 
diff --git a/gtk2_ardour/mixer_strip.h b/gtk2_ardour/mixer_strip.h
index 957701e..8985021 100644
--- a/gtk2_ardour/mixer_strip.h
+++ b/gtk2_ardour/mixer_strip.h
@@ -210,6 +210,7 @@ class MixerStrip : public RouteUI, public Gtk::EventBox
 	void set_automated_controls_sensitivity (bool yn);
 
 	Gtk::Menu* route_ops_menu;
+	Gtk::MenuItem* rename_menu_item;
 	void build_route_ops_menu ();
 	gint name_button_button_press (GdkEventButton*);
 	void list_route_operations ();
diff --git a/gtk2_ardour/mnemonic-us.bindings.in b/gtk2_ardour/mnemonic-us.bindings.in
index b2419a1..d6df907 100644
--- a/gtk2_ardour/mnemonic-us.bindings.in
+++ b/gtk2_ardour/mnemonic-us.bindings.in
@@ -122,12 +122,14 @@
 (gtk_accel_path "<Actions>/Editor/move-selected-tracks-down" "<%PRIMARY%>downarrow")
 
 (gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary" "leftarrow")
+(gtk_accel_path "<Actions>/Editor/playhead-to-previous-region-boundary-noselection" "<%LEVEL4%>leftarrow")
 (gtk_accel_path "<Actions>/Editor/tab-to-transient-backwards" "<%PRIMARY%>leftarrow")
 (gtk_accel_path "<Actions>/Editor/nudge-playhead-backward" "<%SECONDARY%>leftarrow")
 (gtk_accel_path "<Actions>/Transport/Rewind" "<%TERTIARY%>leftarrow")
 (gtk_accel_path "<Actions>/Editor/selected-marker-to-previous-region-boundary" "<%PRIMARY%><%TERTIARY%>leftarrow")
 
 (gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary" "rightarrow")
+(gtk_accel_path "<Actions>/Editor/playhead-to-next-region-boundary-noselection" "<%LEVEL4%>rightarrow")
 (gtk_accel_path "<Actions>/Editor/tab-to-transient-forwards" "<%PRIMARY%>rightarrow")
 (gtk_accel_path "<Actions>/Editor/nudge-playhead-forward" "<%SECONDARY%>rightarrow")
 (gtk_accel_path "<Actions>/Transport/Forward" "<%TERTIARY%>rightarrow")
diff --git a/gtk2_ardour/new_session_dialog.cc b/gtk2_ardour/new_session_dialog.cc
index 2724785..c02d9b1 100644
--- a/gtk2_ardour/new_session_dialog.cc
+++ b/gtk2_ardour/new_session_dialog.cc
@@ -82,17 +82,17 @@ NewSessionDialog::NewSessionDialog()
 	m_template = new Gtk::FileChooserButton();
 	m_create_control_bus = new Gtk::CheckButton(_("Create Monitor Bus"));
 	
-	Gtk::Adjustment *m_control_bus_channel_count_adj = Gtk::manage(new Gtk::Adjustment(2, 0, 100, 1, 10, 10));
+	Gtk::Adjustment *m_control_bus_channel_count_adj = Gtk::manage(new Gtk::Adjustment(2, 0, 100, 1, 10));
 	m_control_bus_channel_count = new Gtk::SpinButton(*m_control_bus_channel_count_adj, 1, 0);
 	
-	Gtk::Adjustment *m_master_bus_channel_count_adj = Gtk::manage(new Gtk::Adjustment(2, 0, 100, 1, 10, 10));
+	Gtk::Adjustment *m_master_bus_channel_count_adj = Gtk::manage(new Gtk::Adjustment(2, 0, 100, 1, 10));
 	m_master_bus_channel_count = new Gtk::SpinButton(*m_master_bus_channel_count_adj, 1, 0);
 	m_create_master_bus = new Gtk::CheckButton(_("Create Master Bus"));
 	advanced_table = new Gtk::Table(2, 2, true);
 	m_connect_inputs = new Gtk::CheckButton(_("Automatically Connect to Physical Inputs"));
 	m_limit_input_ports = new Gtk::CheckButton(_("Use only"));
 	
-	Gtk::Adjustment *m_input_limit_count_adj = Gtk::manage(new Gtk::Adjustment(1, 0, 100, 1, 10, 10));
+	Gtk::Adjustment *m_input_limit_count_adj = Gtk::manage(new Gtk::Adjustment(1, 0, 100, 1, 10));
 	m_input_limit_count = new Gtk::SpinButton(*m_input_limit_count_adj, 1, 0);
 	input_port_limit_hbox = new Gtk::HBox(false, 0);
 	input_port_vbox = new Gtk::VBox(false, 0);
@@ -105,7 +105,7 @@ NewSessionDialog::NewSessionDialog()
 	m_connect_outputs = new Gtk::CheckButton(_("Automatically Connect Outputs"));
 	m_limit_output_ports = new Gtk::CheckButton(_("Use only"));
 	
-	Gtk::Adjustment *m_output_limit_count_adj = Gtk::manage(new Gtk::Adjustment(1, 0, 100, 1, 10, 10));
+	Gtk::Adjustment *m_output_limit_count_adj = Gtk::manage(new Gtk::Adjustment(1, 0, 100, 1, 10));
 	m_output_limit_count = new Gtk::SpinButton(*m_output_limit_count_adj, 1, 0);
 	output_port_limit_hbox = new Gtk::HBox(false, 0);
 	output_port_vbox = new Gtk::VBox(false, 0);
diff --git a/gtk2_ardour/option_editor.cc b/gtk2_ardour/option_editor.cc
index 76f209e..826d937 100644
--- a/gtk2_ardour/option_editor.cc
+++ b/gtk2_ardour/option_editor.cc
@@ -1353,35 +1353,6 @@ OptionEditor::edit_button_changed ()
 }
 
 void
-OptionEditor::fixup_combo_size (Gtk::ComboBoxText& combo, vector<string>& strings)
-{
-	/* find the widest string */
-
-	string::size_type maxlen = 0;
-	string maxstring;
-
-	for (vector<string>::iterator i = strings.begin(); i != strings.end(); ++i) {
-		string::size_type l;
-
-		if ((l = (*i).length()) > maxlen) {
-			maxlen = l;
-			maxstring = *i;
-		}
-	}
-
-	/* try to include ascenders and descenders */
-
-	if (maxstring.length() > 2) {
-		maxstring[0] = 'g';
-		maxstring[1] = 'l';
-	}
-
-	const guint32 FUDGE = 10; // Combo's are stupid - they steal space from the entry for the button
-
-	set_size_request_to_display_given_text (combo, maxstring.c_str(), 10 + FUDGE, 10);
-}
-
-void
 OptionEditor::parameter_changed (const char* parameter_name)
 {
 	ENSURE_GUI_THREAD (bind (mem_fun (*this, &OptionEditor::parameter_changed), parameter_name));
diff --git a/gtk2_ardour/option_editor.h b/gtk2_ardour/option_editor.h
index 359b314..ed6d752 100644
--- a/gtk2_ardour/option_editor.h
+++ b/gtk2_ardour/option_editor.h
@@ -229,8 +229,6 @@ class OptionEditor : public ArdourDialog
 	void edit_button_changed ();
 	void delete_button_changed ();
 	void bindings_changed ();
-
-	void fixup_combo_size (Gtk::ComboBoxText&, std::vector<std::string>& strings);
 };
 
 #endif /* __gtk_ardour_option_editor_h__ */
diff --git a/gtk2_ardour/plugin_selector.cc b/gtk2_ardour/plugin_selector.cc
index 67a7864..2fd3aa8 100644
--- a/gtk2_ardour/plugin_selector.cc
+++ b/gtk2_ardour/plugin_selector.cc
@@ -50,6 +50,7 @@ using namespace std;
 static const char* _filter_mode_strings[] = {
 	N_("Name contains"),
 	N_("Type contains"),
+	N_("Category contains"),
 	N_("Author contains"),
 	N_("Library contains"),
 	N_("Favorites only"),
@@ -208,14 +209,35 @@ PluginSelector::show_this_plugin (const PluginInfoPtr& info, const std::string&
 		
 		if (mode == _("Name contains")) {
 			compstr = info->name;
-		} else if (mode == _("Type contains")) {
+		} else if (mode == _("Category contains")) {
 			compstr = info->category;
+		} else if (mode == _("Type contains")) {
+
+			switch (info->type) {
+			case LADSPA:
+				compstr = X_("LADSPA");
+				break;
+			case AudioUnit:
+				compstr = X_("AudioUnit");
+				break;
+			case LV2:
+				compstr = X_("LV2");
+				break;
+			case VST:
+				compstr = X_("VST");
+				break;
+			}
+
 		} else if (mode == _("Author contains")) {
 			compstr = info->creator;
 		} else if (mode == _("Library contains")) {
 			compstr = info->path;
 		} 
 
+		if (compstr.empty()) {
+			return false;
+		}
+
 		transform (compstr.begin(), compstr.end(), compstr.begin(), ::toupper);
 
 		if (compstr.find (filterstr) != string::npos) {
diff --git a/gtk2_ardour/plugin_ui.cc b/gtk2_ardour/plugin_ui.cc
index a833ef9..8c32028 100644
--- a/gtk2_ardour/plugin_ui.cc
+++ b/gtk2_ardour/plugin_ui.cc
@@ -122,7 +122,7 @@ PluginUIWindow::PluginUIWindow (Gtk::Window* win, boost::shared_ptr<PluginInsert
 	add_events (Gdk::KEY_PRESS_MASK|Gdk::KEY_RELEASE_MASK|Gdk::BUTTON_PRESS_MASK|Gdk::BUTTON_RELEASE_MASK);
 
 	signal_delete_event().connect (bind (sigc::ptr_fun (just_hide_it), reinterpret_cast<Window*> (this)), false);
-	insert->GoingAway.connect (mem_fun(*this, &PluginUIWindow::plugin_going_away));
+	death_connection = insert->GoingAway.connect (mem_fun(*this, &PluginUIWindow::plugin_going_away));
 
 	gint h = _pluginui->get_preferred_height ();
 	gint w = _pluginui->get_preferred_width ();
@@ -141,6 +141,7 @@ PluginUIWindow::PluginUIWindow (Gtk::Window* win, boost::shared_ptr<PluginInsert
 
 PluginUIWindow::~PluginUIWindow ()
 {
+	delete _pluginui;
 }
 
 void
@@ -315,24 +316,28 @@ void
 PluginUIWindow::plugin_going_away ()
 {
 	ENSURE_GUI_THREAD(mem_fun(*this, &PluginUIWindow::plugin_going_away));
-	
+
 	if (_pluginui) {
 		_pluginui->stop_updating(0);
 	}
+	
+	death_connection.disconnect ();
+
 	delete_when_idle (this);
 }
 
 PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
 	: insert (pi),
 	  plugin (insert->plugin()),
-	  save_button(_("Add")),
+	  save_button(_("Save")),
 	  bypass_button (_("Bypass"))
 {
         //preset_combo.set_use_arrows_always(true);
-	set_popdown_strings (preset_combo, plugin->get_presets());
 	preset_combo.set_size_request (100, -1);
-	preset_combo.set_active_text ("");
+	update_presets ();
+
 	preset_combo.signal_changed().connect(mem_fun(*this, &PlugUIBase::setting_selected));
+	no_load_preset = false;
 
 	save_button.set_name ("PluginSaveButton");
 	save_button.signal_clicked().connect(mem_fun(*this, &PlugUIBase::save_plugin_setting));
@@ -354,19 +359,28 @@ PlugUIBase::PlugUIBase (boost::shared_ptr<PluginInsert> pi)
 	
 	focus_button.add (*focus_out_image);
 
-	ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to focus all keyboard events on this plugin window"), "");
+	ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to allow the plugin to receive keyboard events that Ardour would normally use as a shortcut"), "");
 	ARDOUR_UI::instance()->set_tip (&bypass_button, _("Click to enable/disable this plugin"), "");
 }
 
+PlugUIBase::~PlugUIBase ()
+{
+}
+
 void
 PlugUIBase::redirect_active_changed (Redirect* r, void* src)
 {
 	ENSURE_GUI_THREAD(bind (mem_fun(*this, &PlugUIBase::redirect_active_changed), r, src));
+	bypass_button.set_active (!r->active());
 }
 
 void
 PlugUIBase::setting_selected()
 {
+	if (no_load_preset) {
+		return;
+	}
+	
 	if (preset_combo.get_active_text().length() > 0) {
 		if (!plugin->load_preset(preset_combo.get_active_text())) {
 			warning << string_compose(_("Plugin preset %1 not found"), preset_combo.get_active_text()) << endmsg;
@@ -384,6 +398,7 @@ PlugUIBase::save_plugin_setting ()
 	prompter.set_type_hint (Gdk::WINDOW_TYPE_HINT_UTILITY);
 
 	prompter.show_all();
+	prompter.present ();
 
 	switch (prompter.run ()) {
 	case Gtk::RESPONSE_ACCEPT:
@@ -393,9 +408,16 @@ PlugUIBase::save_plugin_setting ()
 		prompter.get_result(name);
 
 		if (name.length()) {
-			if(plugin->save_preset(name)){
+			if (plugin->save_preset(name)) {
+
+				/* a rather inefficient way to add the newly saved preset
+				   to the list.
+				*/
+
 				set_popdown_strings (preset_combo, plugin->get_presets());
+				no_load_preset = true;
 				preset_combo.set_active_text (name);
+				no_load_preset = false;
 			}
 		}
 		break;
@@ -420,13 +442,13 @@ PlugUIBase::focus_toggled (GdkEventButton* ev)
 		focus_button.remove ();
 		focus_button.add (*focus_out_image);
 		focus_out_image->show ();
-		ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to focus all keyboard events on this plugin window"), "");
+		ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to allow the plugin to receive keyboard events that Ardour would normally use as a shortcut"), "");
 	} else {
 		Keyboard::the_keyboard().magic_widget_grab_focus();
 		focus_button.remove ();
 		focus_button.add (*focus_in_image);
 		focus_in_image->show ();
-		ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to remove keyboard focus from this plugin window"), "");
+		ARDOUR_UI::instance()->set_tip (&focus_button, _("Click to allow normal use of Ardour keyboard shortcuts"), "");
 	}
 
 	return true;
@@ -435,5 +457,16 @@ PlugUIBase::focus_toggled (GdkEventButton* ev)
 void
 PlugUIBase::update_presets ()
 {
+	vector<string> presets = plugin->get_presets();
 	set_popdown_strings (preset_combo, plugin->get_presets());
+
+	string current_preset = plugin->current_preset();
+
+	if (!current_preset.empty()) {
+		for (vector<string>::iterator p = presets.begin(); p != presets.end(); ++p) {
+			if (*p == current_preset) {
+				preset_combo.set_active_text (current_preset);
+			}
+		}
+	}
 }
diff --git a/gtk2_ardour/plugin_ui.h b/gtk2_ardour/plugin_ui.h
index c308a54..4c14224 100644
--- a/gtk2_ardour/plugin_ui.h
+++ b/gtk2_ardour/plugin_ui.h
@@ -38,6 +38,8 @@
 #include <gtkmm/adjustment.h>
 #include <gtkmm/togglebutton.h>
 #include <gtkmm/socket.h>
+#include <gtkmm/combobox.h>
+#include <gtkmm/liststore.h>
 #include <gtkmm/comboboxtext.h>
 #include <gtkmm/socket.h>
 
@@ -68,7 +70,7 @@ class PlugUIBase : public virtual sigc::trackable
 {
   public:
 	PlugUIBase (boost::shared_ptr<ARDOUR::PluginInsert>);
-	virtual ~PlugUIBase() {}
+	virtual ~PlugUIBase();
 
 	virtual gint get_preferred_height () = 0;
 	virtual gint get_preferred_width () = 0;
@@ -87,9 +89,10 @@ class PlugUIBase : public virtual sigc::trackable
 	Gtk::Button save_button;
 	Gtk::ToggleButton bypass_button;
 	Gtk::EventBox focus_button;
-
+	
 	Gtk::Image* focus_out_image;
 	Gtk::Image* focus_in_image;
+	bool no_load_preset;
 
 	void setting_selected();
 	void save_plugin_setting (void);
@@ -190,6 +193,7 @@ class GenericPluginUI : public PlugUIBase, public Gtk::VBox
 	std::vector<string> setup_scale_values(guint32 port_index, ControlUI* cui);
 	void control_adjustment_changed (ControlUI* cui);
 	void parameter_changed (uint32_t, float, ControlUI* cui);
+	void toggle_parameter_changed (uint32_t, float, ControlUI* cui);
 	void update_control_display (ControlUI* cui);
 	void control_port_toggled (ControlUI* cui);
 	void control_combo_changed (ControlUI* cui);
@@ -227,6 +231,7 @@ class PluginUIWindow : public Gtk::Window
 
   private:
 	PlugUIBase* _pluginui;
+	sigc::connection death_connection;
 	Gtk::Window* parent;
 	Gtk::VBox vbox;
 	bool non_gtk_gui;
@@ -262,6 +267,22 @@ class VSTPluginUI : public PlugUIBase, public Gtk::VBox
 	
 	bool configure_handler (GdkEventConfigure*, Gtk::Socket*);
 	void save_plugin_setting ();
+
+	struct PresetModelColumns : public Gtk::TreeModel::ColumnRecord {
+	    PresetModelColumns() { 
+		    add (name);
+		    add (number);
+	    }
+	    Gtk::TreeModelColumn<Glib::ustring> name;
+	    Gtk::TreeModelColumn<int> number;
+	};
+
+	PresetModelColumns preset_columns;
+	Glib::RefPtr<Gtk::ListStore> preset_model;
+	Gtk::ComboBox vst_preset_combo;
+
+	void create_preset_store ();
+	void preset_chosen ();
 };
 #endif // VST_SUPPORT
 
diff --git a/gtk2_ardour/po/es_ES.po b/gtk2_ardour/po/es_ES.po
index 88ba699..0b68a77 100644
--- a/gtk2_ardour/po/es_ES.po
+++ b/gtk2_ardour/po/es_ES.po
@@ -1,302 +1,514 @@
-# Ardour Spanish translation file
-# Copyright (C) 2003-2004 Paul Davis
-# This file is distributed under the same license as the Ardour package.
-# Author: Alex Krohn <alexkrohn at fastmail.fm>
-#
 msgid ""
 msgstr ""
-"Project-Id-Version: ardour 0.688.4\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2006-06-27 13:00-0400\n"
-"PO-Revision-Date: 2004-01-21 12:45+0100\n"
-"Last-Translator: Alex Krohn <alexkrohn at fastmail.fm>\n"
-"Language-Team: Spanish\n"
+"Project-Id-Version: Ardour gtk2 translation\n"
+"Report-Msgid-Bugs-To: Grupo de Traducción al Español <traductores at teklibre.com>\n"
+"POT-Creation-Date: 2009-02-23 22:50-0600\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Grupo de Traducción al Español <traductores at teklibre.com>\n"
+"Language-Team: Grupo de Traducción al Español <traductores at teklibre.com>\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Spanish\n"
+"X-Poedit-SourceCharset: utf-8\n"
 
-#: about.cc:120
-msgid "Paul Davis"
+#: gtk2_ardour/about.cc:120
+msgid "Brian Ahr"
+msgstr ""
+
+#: gtk2_ardour/about.cc:121
+msgid "John Anderson"
+msgstr ""
+
+#: gtk2_ardour/about.cc:122
+msgid "Marcus Andersson"
+msgstr ""
+
+#: gtk2_ardour/about.cc:123
+msgid "Nedko Arnaudov"
 msgstr ""
 
-#: about.cc:121
-#, fuzzy
+#: gtk2_ardour/about.cc:124
+msgid "Ben Bell"
+msgstr ""
+
+#: gtk2_ardour/about.cc:125
+msgid "Chris Cannam"
+msgstr ""
+
+#: gtk2_ardour/about.cc:126
 msgid "Jesse Chappell"
-msgstr "resetear"
+msgstr ""
 
-#: about.cc:122
-msgid "Taybin Rutkin"
+#: gtk2_ardour/about.cc:127
+msgid "Thomas Charbonnel"
 msgstr ""
 
-#: about.cc:123
-msgid "Marcus Andersson"
+#: gtk2_ardour/about.cc:128
+msgid "Sam Chessman"
+msgstr ""
+
+#: gtk2_ardour/about.cc:129
+msgid "Paul Davis"
+msgstr ""
+
+#: gtk2_ardour/about.cc:130
+msgid "Gerard van Dongen"
+msgstr ""
+
+#: gtk2_ardour/about.cc:131
+msgid "Colin Fletcher"
 msgstr ""
 
-#: about.cc:124
+#: gtk2_ardour/about.cc:132
+msgid "Hans Fugal"
+msgstr ""
+
+#: gtk2_ardour/about.cc:133
+msgid "Christopher George"
+msgstr ""
+
+#: gtk2_ardour/about.cc:134
 msgid "Jeremy Hall"
 msgstr ""
 
-#: about.cc:125
+#: gtk2_ardour/about.cc:135
+msgid "Audun Halland"
+msgstr ""
+
+#: gtk2_ardour/about.cc:136
 msgid "Steve Harris"
 msgstr ""
 
-#: about.cc:126
-msgid "Tim Mayberry"
+#: gtk2_ardour/about.cc:137
+msgid "Carl Hetherington"
 msgstr ""
 
-#: about.cc:127
-msgid "Mark Stewart"
+#: gtk2_ardour/about.cc:138
+msgid "Rob Holland"
 msgstr ""
 
-#: about.cc:128
-msgid "Sam Chessman"
+#: gtk2_ardour/about.cc:139
+msgid "Robert Jordens"
 msgstr ""
 
-#: about.cc:129
-msgid "Jack O'Quin"
+#: gtk2_ardour/about.cc:140
+msgid "Stefan Kersten"
+msgstr ""
+
+#: gtk2_ardour/about.cc:141
+msgid "Armand Klenk"
 msgstr ""
 
-#: about.cc:130
+#: gtk2_ardour/about.cc:142
 msgid "Matt Krai"
 msgstr ""
 
-#: about.cc:131
-msgid "Ben Bell"
+#: gtk2_ardour/about.cc:143
+msgid "Colin Law"
 msgstr ""
 
-#: about.cc:132
-msgid "Gerard van Dongen"
+#: gtk2_ardour/about.cc:144
+msgid "Joshua Leach"
 msgstr ""
 
-#: about.cc:133
-msgid "Thomas Charbonnel"
+#: gtk2_ardour/about.cc:145
+msgid "Ben Loftis"
 msgstr ""
 
-#: about.cc:134
+#: gtk2_ardour/about.cc:146
 msgid "Nick Mainsbridge"
 msgstr ""
 
-#: about.cc:135
-msgid "Colin Law"
+#: gtk2_ardour/about.cc:147
+msgid "Tim Mayberry"
 msgstr ""
 
-#: about.cc:136
-msgid "Sampo Savolainen"
+#: gtk2_ardour/about.cc:148
+msgid "Doug Mclain"
 msgstr ""
 
-#: about.cc:137
-msgid "Joshua Leach"
+#: gtk2_ardour/about.cc:149
+msgid "Jack O'Quin"
 msgstr ""
 
-#: about.cc:138
-msgid "Rob Holland"
+#: gtk2_ardour/about.cc:150
+msgid "Nimal Ratnayake"
+msgstr ""
+
+#: gtk2_ardour/about.cc:151
+msgid "Dave Robillard"
+msgstr ""
+
+#: gtk2_ardour/about.cc:152
+msgid "Taybin Rutkin"
+msgstr ""
+
+#: gtk2_ardour/about.cc:153
+msgid "Sampo Savolainen"
 msgstr ""
 
-#: about.cc:139
+#: gtk2_ardour/about.cc:154
 msgid "Per Sigmond"
 msgstr ""
 
-#: about.cc:140
-msgid "Doug Mclain"
+#: gtk2_ardour/about.cc:155
+msgid "Mark Stewart"
 msgstr ""
 
-#: about.cc:141
+#: gtk2_ardour/about.cc:156
+msgid "Roland Stigge"
+msgstr ""
+
+#: gtk2_ardour/about.cc:157
 msgid "Petter Sundlöf"
 msgstr ""
 
-#: about.cc:146
+#: gtk2_ardour/about.cc:158
+msgid "Mike Täht"
+msgstr ""
+
+#: gtk2_ardour/about.cc:159
+msgid "Thorsten Wilms"
+msgstr ""
+
+#: gtk2_ardour/about.cc:164
 msgid ""
 "French:\n"
 "\tAlain Fréhel <alain.frehel at free.fr>\n"
+"\tChristophe Combelles <ccomb at free.fr>\n"
 msgstr ""
 
-#: about.cc:147
+#: gtk2_ardour/about.cc:165
 msgid ""
 "German:\n"
 "\tKarsten Petersen <kapet at kapet.de>\n"
+"\tSebastian Arnold <mail at sebastian-arnold.net>\n"
+"\tRobert Schwede<schwede at ironshark.com>\n"
 msgstr ""
 
-#: about.cc:148
+#: gtk2_ardour/about.cc:168
 msgid ""
 "Italian:\n"
 "\tFilippo Pappalardo <filippo at email.it>\n"
 msgstr ""
 
-#: about.cc:149
+#: gtk2_ardour/about.cc:169
 msgid ""
 "Portuguese:\n"
 "\tRui Nuno Capela <rncbc at rncbc.org>\n"
 msgstr ""
 
-#: about.cc:150
+#: gtk2_ardour/about.cc:170
 msgid ""
 "Brazilian Portuguese:\n"
 "\tAlexander da Franca Fernandes <alexander at nautae.eti.br>\n"
 "\tChris Ross <chris at tebibyte.org>\n"
 msgstr ""
 
-#: about.cc:152
+#: gtk2_ardour/about.cc:172
 msgid ""
 "Spanish:\n"
-"\t Alex Krohn <alexkrohn at fastmail.fm>\n"
+"\tAlex Krohn <alexkrohn at fastmail.fm>\n"
+"\tAngel Bidinost <angelbidinost at hotmail.com>\n"
+"\tPablo Enrici <pabloenrici at gmail.com>\n"
+"\tPablo Fernández <pablo.fbus at gmail.com>\n"
+"\tGiovanni Martínez <giovannisirias at gmail.com>\n"
+"\tDavid Täht <d at teklibre.com>\n"
+"\tOscar Valladarez <dulcevendetta at hotmail.com>\n"
+"\tDaniel Vidal <danielvidalchornet at gmail.com>\n"
 msgstr ""
 
-#: about.cc:153
+#: gtk2_ardour/about.cc:180
 msgid ""
 "Russian:\n"
 "\t Igor Blinov <pitstop at nm.ru>\n"
 msgstr ""
 
-#: about.cc:181
-msgid "Copyright (C) 1999-2005 Paul Davis\n"
+#: gtk2_ardour/about.cc:181
+msgid ""
+"Greek:\n"
+"\t Klearchos Gourgourinis <muadib at in.gr>\n"
 msgstr ""
 
-#: about.cc:182
-#, fuzzy
+#: gtk2_ardour/about.cc:182
+msgid ""
+"Swedish:\n"
+"\t Petter Sundlöf <petter.sundlof at gmail.com>\n"
+msgstr ""
+
+#: gtk2_ardour/about.cc:183
+msgid ""
+"Polish:\n"
+"\t Piotr Zaryk <pzaryk at gmail.com>\n"
+msgstr ""
+
+#: gtk2_ardour/about.cc:211
+msgid "Copyright (C) 1999-2008 Paul Davis\n"
+msgstr ""
+
+#: gtk2_ardour/about.cc:212
 msgid ""
 "Ardour comes with ABSOLUTELY NO WARRANTY\n"
 "This is free software, and you are welcome to redistribute it\n"
 "under certain conditions; see the file COPYING for details.\n"
 msgstr ""
-"Ardour no provee ningun tipo de garant�\n"
-"Este software es gratuito y usted lo puede redistribuir\n"
-"bajo ciertas condiciones;lea el archivo COPYING(en ingl�)\n"
-"para m� detalles\n"
+"Ardour no proporciona NINGUNA GARANTÍA.\n"
+"Siendo software libre, su redistribución está permitida y es bienvenida\n"
+"siempre que se respeten algunas condiciones.\n"
+"Por favor, lea el archivo COPYING para más información.\n"
 
-#: about.cc:188
+#: gtk2_ardour/about.cc:217
+msgid "visit http://www.ardour.org/"
+msgstr "Visite http://www.ardour.org/"
+
+#: gtk2_ardour/about.cc:218
 msgid ""
 "%1\n"
-"(built with ardour/gtk %2.%3.%4 libardour: %5.%6.%7)"
+"(built from revision %2)"
 msgstr ""
+"%1\n"
+"(compilado de revisión %2)"
+
+#: gtk2_ardour/actions.cc:80
+#: gtk2_ardour/actions.cc:81
+msgid "badly formatted UI definition file: %1"
+msgstr "archivo de definición de interfaz de usuario mal formateado: %1"
 
-#: actions.cc:261
+#: gtk2_ardour/actions.cc:83
+msgid "Ardour menu definition file not found"
+msgstr "No se ha encontrado el archivo de definiciones del menu"
+
+#: gtk2_ardour/actions.cc:87
+msgid "ardour will not work without a valid ardour.menus file"
+msgstr "Ardour no funcionará sin un archivo ardour.menus válido"
+
+#: gtk2_ardour/actions.cc:325
 msgid "programmer error: %1 %2"
-msgstr ""
+msgstr "error de programador: %1 %2"
 
-#: add_route_dialog.cc:62
-msgid "ardour: add track/bus"
-msgstr "ardour: agregar Pistas/bus"
+#: gtk2_ardour/actions.cc:344
+msgid "Unknown action name: %1"
+msgstr "Nombre de acción desconocido: %1"
 
-#. path = "1"
-#: add_route_dialog.cc:63 editor_route_list.cc:73
-msgid "Tracks"
-msgstr "Pistas"
+#: gtk2_ardour/add_route_dialog.cc:44
+#: gtk2_ardour/add_route_dialog.cc:276
+msgid "Mono"
+msgstr "Mono"
 
-#. path = "0"
-#: add_route_dialog.cc:64 editor_route_list.cc:70
-msgid "Busses"
-msgstr "Buses"
+#: gtk2_ardour/add_route_dialog.cc:45
+#: gtk2_ardour/add_route_dialog.cc:278
+msgid "Stereo"
+msgstr "Estéreo"
 
-#: add_route_dialog.cc:96 plugin_ui.cc:833
-msgid "Add"
-msgstr "Agregar"
+#: gtk2_ardour/add_route_dialog.cc:46
+msgid "3 Channels"
+msgstr "3 canales"
 
-#: add_route_dialog.cc:114
-msgid "Name (template)"
-msgstr "Nombre (esquema)"
+#: gtk2_ardour/add_route_dialog.cc:47
+msgid "4 Channels"
+msgstr "4 canales"
 
-#: add_route_dialog.cc:120
-#, fuzzy
-msgid "Channel Configuration"
-msgstr "Cancelar importacin"
+#: gtk2_ardour/add_route_dialog.cc:48
+msgid "6 Channels"
+msgstr "6 canales"
 
-#: add_route_dialog.cc:177 editor.cc:134 editor.cc:3688 time_axis_view.cc:552
+#: gtk2_ardour/add_route_dialog.cc:49
+msgid "8 Channels"
+msgstr "8 canales"
+
+#: gtk2_ardour/add_route_dialog.cc:50
+msgid "Manual Setup"
+msgstr "Configuración manual"
+
+#: gtk2_ardour/add_route_dialog.cc:55
+#: gtk2_ardour/add_route_dialog.cc:257
+#: gtk2_ardour/editor_actions.cc:613
+#: gtk2_ardour/time_axis_view.cc:641
 msgid "Normal"
 msgstr "Normal"
 
-#: add_route_dialog.cc:179
-#, fuzzy
+#: gtk2_ardour/add_route_dialog.cc:56
+#: gtk2_ardour/add_route_dialog.cc:259
 msgid "Tape"
-msgstr "Inicio"
+msgstr "Cinta"
 
-#: add_route_dialog.cc:196
-#, fuzzy
-msgid "Mono"
-msgstr "mono"
+#: gtk2_ardour/add_route_dialog.cc:65
+msgid "ardour: add track/bus"
+msgstr "ardour: agregar pista/bus"
 
-#: add_route_dialog.cc:198
-#, fuzzy
-msgid "Stereo"
-msgstr "est�eo"
+#: gtk2_ardour/add_route_dialog.cc:66
+msgid "Tracks"
+msgstr "Pistas"
+
+#: gtk2_ardour/add_route_dialog.cc:67
+msgid "Busses"
+msgstr "Buses"
+
+#: gtk2_ardour/add_route_dialog.cc:68
+msgid "Using this template:"
+msgstr "Usar la plantilla: "
+
+#: gtk2_ardour/add_route_dialog.cc:117
+msgid "Add this many:"
+msgstr "Agregar:"
+
+#: gtk2_ardour/add_route_dialog.cc:142
+msgid "OR"
+msgstr "O"
+
+#: gtk2_ardour/add_route_dialog.cc:176
+msgid "Channel Configuration"
+msgstr "Configuración del canal"
+
+#: gtk2_ardour/add_route_dialog.cc:178
+msgid "Track Mode"
+msgstr "Modo de Pista"
 
-#. preroll stuff
-#: ardour_ui.cc:106
+#: gtk2_ardour/ardour_ui.cc:116
 msgid ""
 "pre\n"
 "roll"
 msgstr ""
+"pre\n"
+"roll"
 
-#: ardour_ui.cc:107
+#: gtk2_ardour/ardour_ui.cc:117
 msgid ""
 "post\n"
 "roll"
 msgstr ""
+"post\n"
+"roll"
+
+#: gtk2_ardour/ardour_ui.cc:143
+msgid "% "
+msgstr "%"
+
+#: gtk2_ardour/ardour_ui.cc:145
+#: gtk2_ardour/ardour_ui_ed.cc:333
+msgid "Punch In"
+msgstr "Pinchar"
+
+#: gtk2_ardour/ardour_ui.cc:146
+#: gtk2_ardour/ardour_ui_ed.cc:336
+msgid "Punch Out"
+msgstr "Despinchar"
+
+#: gtk2_ardour/ardour_ui.cc:147
+#: gtk2_ardour/ardour_ui_ed.cc:351
+msgid "Auto Return"
+msgstr "Auto Volver"
+
+# Reproducir Auto is too big
+#: gtk2_ardour/ardour_ui.cc:148
+#: gtk2_ardour/ardour_ui_ed.cc:348
+msgid "Auto Play"
+msgstr "Auto Play"
+
+#: gtk2_ardour/ardour_ui.cc:149
+#: gtk2_ardour/ardour_ui_ed.cc:345
+msgid "Auto Input"
+msgstr "Auto Entrada"
+
+#: gtk2_ardour/ardour_ui.cc:150
+#: gtk2_ardour/ardour_ui_ed.cc:342
+#: gtk2_ardour/option_editor.cc:157
+msgid "Click"
+msgstr "Click"
 
-#. transport
-#: ardour_ui.cc:115
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:151
 msgid ""
 "time\n"
 "master"
-msgstr "M�ter de tiempo JACK"
-
-#: ardour_ui.cc:117
-msgid "% "
 msgstr ""
+"tiempo\n"
+"maestro"
 
-#: ardour_ui.cc:119
-msgid ""
-"punch\n"
-"in"
-msgstr ""
+#: gtk2_ardour/ardour_ui.cc:153
+msgid "AUDITION"
+msgstr "AUDICIÓN"
 
-#: ardour_ui.cc:120
-msgid ""
-"punch\n"
-"out"
-msgstr ""
+#: gtk2_ardour/ardour_ui.cc:154
+msgid "SOLO"
+msgstr "SOLO"
 
-#: ardour_ui.cc:121
-msgid ""
-"auto\n"
-"return"
-msgstr ""
-"retorno\n"
-"autom�ico"
+#: gtk2_ardour/ardour_ui.cc:156
+msgid "Errors"
+msgstr "Errores"
+
+#: gtk2_ardour/ardour_ui.cc:258
+msgid "could not initialize Ardour."
+msgstr "no se pudo inicializar Ardour."
+
+#: gtk2_ardour/ardour_ui.cc:284
+msgid "Starting audio engine"
+msgstr "Arrancando motor de audio"
+
+#: gtk2_ardour/ardour_ui.cc:591
+msgid "Ardour could not start JACK"
+msgstr "Ardour no pudo arrancar JACK"
 
-#: ardour_ui.cc:122
+#: gtk2_ardour/ardour_ui.cc:593
+msgid "Ardour could not connect to JACK."
+msgstr "Ardour no pudo conectarse a JACK."
+
+#: gtk2_ardour/ardour_ui.cc:602
 msgid ""
-"auto\n"
-"play"
+"There are several possible reasons:\n"
+"\n"
+"1) You requested audio parameters that are not supported..\n"
+"2) JACK is running as another user.\n"
+"\n"
+"Please consider the possibilities, and perhaps try different parameters."
 msgstr ""
-"reproduccn\n"
-"autom�ica"
+"Hay varias razones posibles:\n"
+"\n"
+"1) Usted introdujo parámetros de audio no soportados.\n"
+"2) JACK está ejecutándose bajo otro nombre de usuario, tal vez como administrador.\n"
+"\n"
+"Considere estas posibilidades y reinicie JACK."
 
-#: ardour_ui.cc:123
+#: gtk2_ardour/ardour_ui.cc:609
 msgid ""
-"auto\n"
-"input"
+"There are several possible reasons:\n"
+"\n"
+"1) JACK is not running.\n"
+"2) JACK is running as another user, perhaps root.\n"
+"3) There is already another client called \"ardour\".\n"
+"\n"
+"Please consider the possibilities, and perhaps (re)start JACK."
 msgstr ""
-"auto\n"
-"monitoreo"
-
-#: ardour_ui.cc:124
-msgid "click"
-msgstr "metrnomo"
+"Hay varias razones posibles:\n"
+"\n"
+"1) JACK no se está ejecutando.\n"
+"2) JACK está ejecutándose bajo otro nombre de usuario, tal vez como administrador.\n"
+"3) Ya hay otro cliente de JACK ejecutándose con el nombre \"ardour\".\n"
+"\n"
+"Considere estas posibilidades y (re)inicie JACK."
 
-#: ardour_ui.cc:125
-msgid "AUDITIONING"
-msgstr "AUDITANDO"
+#: gtk2_ardour/ardour_ui.cc:657
+msgid "Ardour is ready for use"
+msgstr "Ardour está listo para su uso"
 
-#: ardour_ui.cc:126
-msgid "SOLO"
+#: gtk2_ardour/ardour_ui.cc:699
+msgid ""
+"WARNING: Your system has a limit for maximum amount of locked memory. This might cause Ardour to run out of memory before your system runs out of memory. \n"
+"\n"
+"You can view the memory limit with 'ulimit -l', and it is normally controlled by /etc/security/limits.conf"
 msgstr ""
+"AVISO: Su sistema tiene un límite para la cantidad de memoria bloqueada. Esto puede causar que Ardour se quede sin memoria antes que su sistema. \n"
+"Puede comprobar este límite con 'ulimit -l'. Normalmente se controla por /etc/security/limits.conf"
+
+#: gtk2_ardour/ardour_ui.cc:707
+msgid "Do not show this window again"
+msgstr "No volver a mostrar esta ventana"
 
-#: ardour_ui.cc:375
+#: gtk2_ardour/ardour_ui.cc:736
 msgid "quit"
 msgstr "salir"
 
-#: ardour_ui.cc:384
+#: gtk2_ardour/ardour_ui.cc:745
 msgid ""
 "Ardour was unable to save your session.\n"
 "\n"
@@ -304,35 +516,37 @@ msgid ""
 "\n"
 "\"Just quit\" option."
 msgstr ""
+"Ardour no ha podido guardar su sesión.\n"
+"\n"
+"Si aún así desea salir, por favor use la opción\n"
+"\n"
+"\"Sólo quitar\"."
 
-#: ardour_ui.cc:403
+#: gtk2_ardour/ardour_ui.cc:771
 msgid "ardour: save session?"
-msgstr "ardour: guardar sesin?"
+msgstr "ardour: ¿guardar sesión?"
 
-#: ardour_ui.cc:410
+#: gtk2_ardour/ardour_ui.cc:778
 msgid "Don't %1"
 msgstr "No %1"
 
-#: ardour_ui.cc:412
+#: gtk2_ardour/ardour_ui.cc:780
 msgid "Just %1"
-msgstr "Slo %1"
+msgstr "Sólo %1"
 
-#: ardour_ui.cc:414
+#: gtk2_ardour/ardour_ui.cc:782
 msgid "Save and %1"
 msgstr "Guardar y %1"
 
-#: ardour_ui.cc:426
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:794
 msgid "session"
-msgstr "Sesin"
+msgstr "sesión"
 
-#: ardour_ui.cc:428
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:796
 msgid "snapshot"
-msgstr "Capturar instant�ea de sesin"
+msgstr "captura"
 
-#: ardour_ui.cc:430
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:798
 msgid ""
 "The %1\"%2\"\n"
 "has not been saved.\n"
@@ -342,219 +556,289 @@ msgid ""
 "\n"
 "What do you want to do?"
 msgstr ""
-"No ha guardado \"%1\"\n"
-"la sesin actual.\n"
+"No ha guardado la %1 \"%2\".\n"
 "\n"
 "Cualquier cambio que haya hecho\n"
-"se perder�si no selecciona guardar sesin.\n"
+"se perderá si no guarda la sesión.\n"
 "\n"
-"Qu�desea hacer?"
+"¿Qué desea hacer?"
 
-#: ardour_ui.cc:444
+#: gtk2_ardour/ardour_ui.cc:812
 msgid "Prompter"
 msgstr ""
 
-#: ardour_ui.cc:503
-#, fuzzy, c-format
+#: gtk2_ardour/ardour_ui.cc:872
+#, c-format
 msgid "disconnected"
-msgstr "Desconectar"
+msgstr "desconectado"
 
-#: ardour_ui.cc:510
-#, fuzzy, c-format
-msgid "SR: %.1f kHz / %4.1f msecs"
-msgstr "SR: %.1f kHz"
+#: gtk2_ardour/ardour_ui.cc:879
+#, c-format
+msgid "%.1f kHz / %4.1f ms"
+msgstr "SR: %.1f kHz/%4.1f ms"
 
-#: ardour_ui.cc:514
+#: gtk2_ardour/ardour_ui.cc:883
 #, c-format
-msgid "SR: %u kHz / %4.1f msecs"
-msgstr ""
+msgid "%u kHz / %4.1f ms"
+msgstr "SR: %u khz/%4.1f ms"
 
-#: ardour_ui.cc:527
-#, fuzzy, c-format
-msgid "DSP Load: %.1f%%"
-msgstr "CPU usada: %.1f%%"
+#: gtk2_ardour/ardour_ui.cc:896
+#, c-format
+msgid "DSP: %5.1f%%"
+msgstr "DSP:%5.1f%%"
 
-#: ardour_ui.cc:537
-#, fuzzy, c-format
+#: gtk2_ardour/ardour_ui.cc:906
+#, c-format
 msgid "Buffers p:%<PRIu32>%% c:%<PRIu32>%%"
-msgstr "Buffers p:%5.0f%% c:%5.0f%%"
+msgstr "Buf p:%<PRIu32>%% c:%<PRIu32>%%"
 
-#: ardour_ui.cc:564
-msgid "space: 24hrs+"
-msgstr "disponible: 24hrs+"
+#: gtk2_ardour/ardour_ui.cc:934
+msgid "Disk: 24hrs+"
+msgstr "Disco:24hrs+"
 
-#: ardour_ui.cc:594
+#: gtk2_ardour/ardour_ui.cc:954
 #, c-format
-msgid "space: %02dh:%02dm:%02ds"
-msgstr "disponible: %02dh:%02dm:%02ds"
+msgid "Disk: %02dh:%02dm:%02ds"
+msgstr "Disco:%02dh:%02dm:%02ds"
 
-#: ardour_ui.cc:633
-msgid "programming error: impossible control method"
-msgstr ""
-
-#
-#: ardour_ui.cc:741 new_session_dialog.cc:294
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:1074
+#: gtk2_ardour/new_session_dialog.cc:390
 msgid "Recent Sessions"
-msgstr "Abrir sesin"
+msgstr "Sesiones recientes"
+
+#: gtk2_ardour/ardour_ui.cc:1153
+msgid ""
+"Ardour is not connected to JACK\n"
+"You cannot open or close sessions in this condition"
+msgstr ""
+"Ardour no está conectado a JACK.\n"
+"No se pueden abrir ni cerrar archivos en esta condición."
 
-#
-#. ardour sessions are folders
-#: ardour_ui.cc:834
+#: gtk2_ardour/ardour_ui.cc:1178
 msgid "open session"
-msgstr "Abrir sesin"
+msgstr "Abrir sesión"
 
-#: ardour_ui.cc:840
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:1185
 msgid "Ardour sessions"
-msgstr "ardour: guardar sesin?"
+msgstr "Sesiones de Ardour"
 
-#: ardour_ui.cc:873
+#: gtk2_ardour/ardour_ui.cc:1218
 msgid "Patience is a virtue.\n"
 msgstr "La paciencia es una virtud.\n"
 
-#: ardour_ui.cc:882
-msgid "You cannot add a track without a session already loaded."
-msgstr "No puede agregar pistas hasta que haya creado o abierto una sesin."
+#: gtk2_ardour/ardour_ui.cc:1228
+msgid "You cannot add a track or bus without a session already loaded."
+msgstr "No puede agregar pistas ni buses hasta que haya creado o abierto una sesión."
+
+#: gtk2_ardour/ardour_ui.cc:1238
+#: gtk2_ardour/ardour_ui.cc:1251
+msgid "could not create a new audio track"
+msgstr "no se pudo crear la nueva pista de audio"
+
+#: gtk2_ardour/ardour_ui.cc:1240
+msgid "could only create %1 of %2 new audio %3"
+msgstr "sólo se pudieron crear %1 de %2 %3 de audio."
+
+#: gtk2_ardour/ardour_ui.cc:1241
+#: gtk2_ardour/editor_ops.cc:5905
+msgid "tracks"
+msgstr "pistas"
 
-#: ardour_ui.cc:889
-msgid "could not create new audio track"
-msgstr "no se pudo crear la nueva pista"
+# es correcto utilizar 'buses' en español? -> al parecer sí, desde hace poc. Chequear: http://buscon.rae.es/draeI/SrvltObtenerHtml?IDLEMA=12558&NEDIC=Si
+#: gtk2_ardour/ardour_ui.cc:1241
+#: gtk2_ardour/editor_ops.cc:5911
+msgid "busses"
+msgstr "buses"
 
-#: ardour_ui.cc:893
-msgid "could not create new audio bus"
-msgstr "no se pudo crear el nuevo bus"
+#: gtk2_ardour/ardour_ui.cc:1253
+msgid "could not create %1 new audio tracks"
+msgstr "no se pudo crear %1 nuevas pistas"
 
-#: ardour_ui.cc:912
+#: gtk2_ardour/ardour_ui.cc:1273
 msgid ""
 "There are insufficient JACK ports available\n"
 "to create a new track or bus.\n"
 "You should save Ardour, exit and\n"
 "restart JACK with more ports."
 msgstr ""
+"No hay suficientes puertos disponibles en JACK\n"
+"para crear nuevas pistas o buses.\n"
+"Deberá guardar, salir y\n"
+"reiniciar JACK con más puertos."
 
-#: ardour_ui.cc:1036
+#: gtk2_ardour/ardour_ui.cc:1423
 msgid ""
 "Please create 1 or more track\n"
 "before trying to record.\n"
 "Check the Session menu."
 msgstr ""
+"Por favor, agregue al menos 1 pista\n"
+"antes de tratar de grabar.\n"
+"Vea el menú Sesión."
 
-#: ardour_ui.cc:1265
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:1681
 msgid ""
 "JACK has either been shutdown or it\n"
 "disconnected Ardour because Ardour\n"
-"was not fast enough. You can save the\n"
-"session and/or try to reconnect to JACK ."
+"was not fast enough. Try to restart\n"
+"JACK, reconnect and save the session."
 msgstr ""
-"El programa Jackd fue detenido o �te \n"
-"desconect a Ardour por no ser \n"
-"suficientemente r�ido.\n"
-"Usted puede guardar su sesin ahora\n"
-"sin perder los cambios hechos.Luego,reinicie a Ardour y a Jackd."
+"El servidor de audio JACK ha sido detenido o ha\n"
+"perdido su conexión con Ardour.\n"
+"Tal vez Ardour no fue lo bastante rápido.\n"
+"Intente reiniciar JACK, reconectar y guarde la sesión."
 
-#: ardour_ui.cc:1282
-msgid "Unable to create all required ports"
-msgstr ""
-
-#: ardour_ui.cc:1290
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:1699
 msgid "Unable to start the session running"
-msgstr "Ir al inicio de la sesin"
-
-#: ardour_ui.cc:1426
-msgid "No Stream"
-msgstr "Sin Flujo"
+msgstr "Incapaz de iniciar la sesión actual"
 
-#: ardour_ui.cc:1453 ardour_ui.cc:1472
+#: gtk2_ardour/ardour_ui.cc:1790
+#: gtk2_ardour/ardour_ui.cc:1809
+#: gtk2_ardour/audio_clock.cc:514
+#: gtk2_ardour/audio_clock.cc:515
 msgid "none"
 msgstr "ninguno"
 
-#: ardour_ui.cc:1462 ardour_ui.cc:1481
+#: gtk2_ardour/ardour_ui.cc:1799
+#: gtk2_ardour/ardour_ui.cc:1818
 msgid "off"
-msgstr "off"
+msgstr "apagado"
 
-#: ardour_ui.cc:1505
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:1844
 msgid "Name of New Snapshot"
-msgstr "Nombre a captura de sesin"
+msgstr "Nombre de la captura de sesión"
 
-#: ardour_ui.cc:1651
+# se refiere a la sesión, no al Mezclador
+#: gtk2_ardour/ardour_ui.cc:1946
 msgid "Name for mix template:"
-msgstr "Nombre a esquema de mixer"
+msgstr "Nombre para plantilla de mezcla:"
 
-#: ardour_ui.cc:1652
+#: gtk2_ardour/ardour_ui.cc:1947
 msgid "-template"
-msgstr "-esquema"
+msgstr "-plantilla"
 
-#: ardour_ui.cc:1809
+#: gtk2_ardour/ardour_ui.cc:1976
+msgid ""
+"Welcome to Ardour.\n"
+"\n"
+"The program will take a bit longer to start up\n"
+"while the system fonts are checked.\n"
+"\n"
+"This will only be done once, and you will\n"
+"not see this message again\n"
+msgstr ""
+"Bienvenido a Ardour.\n"
+"\n"
+"El programa tardará un poco más en arrancar\n"
+"mientras se revisan las fuentes del sistema.\n"
+"\n"
+"Esto sólo se realizará una vez\n"
+"y este mensaje no volverá a aparecer.\n"
+
+#: gtk2_ardour/ardour_ui.cc:2063
+msgid ""
+"This session\n"
+"%1\n"
+"already exists. Do you want to open it?"
+msgstr ""
+"La sesión\n"
+"%1\n"
+"ya existe. ¿Quiere abrirla?"
+
+#: gtk2_ardour/ardour_ui.cc:2434
 msgid ""
 "You do not have write access to this session.\n"
 "This prevents the session from being loaded."
 msgstr ""
+"Usted no tiene acceso de escritura a esta sesión. \n"
+"Esto impide que se cargue la sesión"
+
+#: gtk2_ardour/ardour_ui.cc:2441
+msgid "Please wait while Ardour loads your session"
+msgstr "Por favor, espere a que Ardour cargue su sesión"
+
+#: gtk2_ardour/ardour_ui.cc:2456
+msgid "Port Registration Error"
+msgstr "Error de Registro de Puertos"
+
+#: gtk2_ardour/ardour_ui.cc:2457
+#: gtk2_ardour/ardour_ui.cc:2483
+msgid "Click the Close button to try again."
+msgstr "Haga click al botón Cerrar para probar otra vez."
 
-#: ardour_ui.cc:1822 ardour_ui.cc:1877
+#: gtk2_ardour/ardour_ui.cc:2477
 msgid "Session \"%1 (snapshot %2)\" did not load successfully"
-msgstr "No se puede cargar la sesin \"%1 (captura %2)\" "
+msgstr "No se pudo cargar la sesión \"%1 (captura %2)\" "
 
-#: ardour_ui.cc:1933
+#: gtk2_ardour/ardour_ui.cc:2482
+msgid "Loading Error"
+msgstr "Error al Cargar"
+
+#: gtk2_ardour/ardour_ui.cc:2556
+msgid "Could not create session in \"%1\""
+msgstr "No se pudo crear la sesión en \"%1\""
+
+#: gtk2_ardour/ardour_ui.cc:2646
 msgid "No audio files were ready for cleanup"
-msgstr ""
+msgstr "No hay archivos de audio listos para purgar."
 
-#: ardour_ui.cc:1937
+#: gtk2_ardour/ardour_ui.cc:2650
 msgid ""
 "If this seems suprising, \n"
 "check for any existing snapshots.\n"
 "These may still include regions that\n"
 "require some unused files to continue to exist."
 msgstr ""
+"Si esto le parece extraño, compruebe las capturas de sesión.\n"
+"Éstas todavía pueden incluir regiones que hacen que algunos\n"
+"archivos no utilizados continúen existiendo."
 
-#: ardour_ui.cc:1946
+#: gtk2_ardour/ardour_ui.cc:2659
 msgid "ardour: cleanup"
-msgstr "ardour: limpiar"
+msgstr "ardour: purgar"
 
-#: ardour_ui.cc:1982 ardour_ui.cc:1988
+# usado como parámetro por mensajes (no corregir!)
+#: gtk2_ardour/ardour_ui.cc:2695
+#: gtk2_ardour/ardour_ui.cc:2701
 msgid "files were"
-msgstr ""
+msgstr "archivos"
 
-#: ardour_ui.cc:1984 ardour_ui.cc:1990
+# usado como parámetro por mensajes (no corregir!)
+#: gtk2_ardour/ardour_ui.cc:2697
+#: gtk2_ardour/ardour_ui.cc:2703
 msgid "file was"
-msgstr ""
+msgstr "archivo"
 
-#: ardour_ui.cc:2031
+#: gtk2_ardour/ardour_ui.cc:2744
 msgid "Are you sure you want to cleanup?"
-msgstr ""
+msgstr "¿Está seguro que quiere purgar?"
 
-#: ardour_ui.cc:2036
+#: gtk2_ardour/ardour_ui.cc:2749
 msgid ""
 "Cleanup is a destructive operation.\n"
 "ALL undo/redo information will be lost if you cleanup.\n"
-"After cleanup, unused audio files will be moved to a \"dead sounds\" "
-"location."
+"After cleanup, unused audio files will be moved to a \"dead sounds\" location."
 msgstr ""
+"Purgar es una operación destructiva.\n"
+"TODA la información del historial deshacer/rehacer se perderá.\n"
+"Después de purgar, los archivos de audio no utilizados se\n"
+"moverán a la carpeta \"dead sounds\"."
 
-#: ardour_ui.cc:2042
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:2755
 msgid "Clean Up"
-msgstr "Limpiar"
+msgstr "Mover archivos no usados a papelera"
 
-#: ardour_ui.cc:2045
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:2758
 msgid "CleanupDialog"
-msgstr "Limpiar"
-
-#: ardour_ui.cc:2046
-#, fuzzy
-msgid "ardour_cleanup"
-msgstr "ardour: limpiar"
+msgstr "Purgar"
 
-#: ardour_ui.cc:2065
+#: gtk2_ardour/ardour_ui.cc:2789
 msgid "cleaned files"
-msgstr "archivos limpios"
+msgstr "archivos purgados"
 
-#: ardour_ui.cc:2066
-#, fuzzy
+# debí adaptar para que al completarse con los parámetros el mensaje tuviera sentido en español
+# (quedaba mal por los plurales y la ambigüedad was=fue/estuvo)
+#: gtk2_ardour/ardour_ui.cc:2790
 msgid ""
 "The following %1 %2 not in use and \n"
 "have been moved to:\n"
@@ -564,30 +848,55 @@ msgid ""
 "release an additional\n"
 "%4 %5bytes of disk space.\n"
 msgstr ""
-"Los siguientes %1 archivos no estaban en uso \n"
-"Cuando vuelva a vaciar la papelera\n"
-"se liberar�%2 megabytes de espacio en disco \n"
+"%1 %2 no estaba/n en uso y se ha/n movido a:\n"
+"%3. \n"
+"\n"
+"Vaciar la papelera liberará\n"
+"%4 %5bytes de espacio en disco.\n"
 
-#: ardour_ui.cc:2091
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:2816
 msgid "deleted file"
-msgstr "archivos eliminados"
+msgstr "archivo eliminado"
 
-#: ardour_ui.cc:2092
-#, fuzzy
+# debí adaptar para que al completarse con los parámetros el mensaje tuviera sentido en español
+# (quedaba mal por los plurales y la ambigüedad was=fue/estuvo)
+#: gtk2_ardour/ardour_ui.cc:2817
 msgid ""
 "The following %1 %2 deleted from\n"
 "%3,\n"
 "releasing %4 %5bytes of disk space"
 msgstr ""
-"Los siguientes %1 archivos fueron eliminados, liberando %2 megabytes de "
-"espacio"
+"%1 %2 eliminado/s de\n"
+"%3,\n"
+"liberando %4 %5bytes de espacio en disco."
 
-#: ardour_ui.cc:2215
+#: gtk2_ardour/ardour_ui.cc:2952
 msgid "Recording was stopped because your system could not keep up."
-msgstr "Se detuvo la grabacin porque el sistema se sobrecarg"
+msgstr "Se detuvo la grabación porque el sistema se sobrecargó."
+
+#: gtk2_ardour/ardour_ui.cc:2986
+msgid "Preset Exists"
+msgstr "El preset existe"
 
-#: ardour_ui.cc:2238
+#: gtk2_ardour/ardour_ui.cc:2987
+msgid ""
+"A preset with this name already exists for this plugin.\n"
+"\n"
+"What you would like to do?\n"
+msgstr ""
+"Ya existe un preset con ese nombre para este plugin\n"
+"\n"
+"¿Qué desea hacer?\n"
+
+#: gtk2_ardour/ardour_ui.cc:2995
+msgid "Overwrite the existing preset"
+msgstr "Sobreescribir el preset existente"
+
+#: gtk2_ardour/ardour_ui.cc:2996
+msgid "Leave the existing preset alone"
+msgstr "Dejar el preset existente"
+
+#: gtk2_ardour/ardour_ui.cc:3020
 msgid ""
 "The disk system on your computer\n"
 "was not able to keep up with Ardour.\n"
@@ -595,8 +904,13 @@ msgid ""
 "Specifically, it failed to write data to disk\n"
 "quickly enough to keep up with recording.\n"
 msgstr ""
+"El sistema de archivos en disco de su ordenador\n"
+"no ha sido capaz de seguir el ritmo de Ardour.\n"
+"\n"
+"En concreto, la velocidad de escritura de datos en el disco\n"
+"no fue lo bastante alta como para permitir la grabación.\n"
 
-#: ardour_ui.cc:2257
+#: gtk2_ardour/ardour_ui.cc:3039
 msgid ""
 "The disk system on your computer\n"
 "was not able to keep up with Ardour.\n"
@@ -604,8 +918,17 @@ msgid ""
 "Specifically, it failed to read data from disk\n"
 "quickly enough to keep up with playback.\n"
 msgstr ""
+"El sistema de archivos en disco de su ordenador\n"
+"no ha sido capaz de seguir el ritmo de Ardour.\n"
+"\n"
+"En concreto, la velocidad de lectura de datos desde el disco\n"
+"no fue lo bastante alta como para permitir la reproducción.\n"
+
+#: gtk2_ardour/ardour_ui.cc:3079
+msgid "Crash Recovery"
+msgstr "Recuperación del crash"
 
-#: ardour_ui.cc:2283
+#: gtk2_ardour/ardour_ui.cc:3080
 msgid ""
 "This session appears to have been in\n"
 "middle of recording when ardour or\n"
@@ -615,5030 +938,6415 @@ msgid ""
 "you, or it can ignore it. Please decide\n"
 "what you would like to do.\n"
 msgstr ""
+"Parece que esta sesión estaba en proceso\n"
+"de grabación cuando se cerró Ardour o\n"
+"se apagó el ordenador.\n"
+"\n"
+"Ardour puede recuperar el audio capturado\n"
+"o usted puede simplemente ignorarlo. Por favor,\n"
+"decida qué desea hacer.\n"
 
-#: ardour_ui.cc:2293
+#: gtk2_ardour/ardour_ui.cc:3092
+msgid "Ignore crash data"
+msgstr "Ignorar información del crash"
+
+#: gtk2_ardour/ardour_ui.cc:3093
 msgid "Recover from crash"
-msgstr ""
+msgstr "Recuperar del crash"
 
-#: ardour_ui.cc:2294
-msgid "Ignore crash data"
+#: gtk2_ardour/ardour_ui.cc:3113
+msgid "Sample Rate Mismatch"
+msgstr "Discrepancia de frecuencia de muestreo"
+
+#: gtk2_ardour/ardour_ui.cc:3114
+msgid ""
+"This session was created with a sample rate of %1 Hz\n"
+"\n"
+"The audioengine is currently running at %2 Hz\n"
 msgstr ""
+"Esta sesión fue creada con una frecuencia de muestreo de %1 Hz\n"
+"\n"
+"El motor de audio se está ejecutando a %2 Hz\n"
 
-#: ardour_ui.cc:2312
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:3123
+msgid "Do not load session"
+msgstr "No cargar sesión"
+
+#: gtk2_ardour/ardour_ui.cc:3124
+msgid "Load session anyway"
+msgstr "Cargar sesión de todas formas"
+
+#: gtk2_ardour/ardour_ui.cc:3145
 msgid "Could not disconnect from JACK"
-msgstr "No se pudo conectar a JACK con el nombre \"%1\""
+msgstr "No se pudo desconectar de JACK"
 
-#: ardour_ui.cc:2325
-#, fuzzy
+#: gtk2_ardour/ardour_ui.cc:3158
 msgid "Could not reconnect to JACK"
-msgstr "No se pudo conectar a JACK con el nombre \"%1\""
+msgstr "No se pudo reconectar a JACK"
 
-#: ardour_ui2.cc:60
+#: gtk2_ardour/ardour_ui2.cc:62
 msgid "UI: cannot setup editor"
-msgstr "no se pudo iniciar el editor"
+msgstr "interfaz de usuario: no se pudo configurar el editor"
 
-#: ardour_ui2.cc:65
+#: gtk2_ardour/ardour_ui2.cc:67
 msgid "UI: cannot setup mixer"
-msgstr "no se pudo iniciar el mixer"
-
-#: ardour_ui2.cc:91
-msgid "MMC + Local"
-msgstr ""
+msgstr "interfaz de usuario: no se pudo configurar el mezclador"
 
-#: ardour_ui2.cc:92
-msgid "MMC"
-msgstr ""
+#: gtk2_ardour/ardour_ui2.cc:110
+msgid "[ERROR]: "
+msgstr "[ERROR]:"
 
-#: ardour_ui2.cc:93
-msgid "Local"
-msgstr ""
+#: gtk2_ardour/ardour_ui2.cc:112
+msgid "[WARNING]: "
+msgstr "[AVISO]:"
 
-#: ardour_ui2.cc:110
-msgid "MMC ID"
-msgstr ""
+#: gtk2_ardour/ardour_ui2.cc:114
+msgid "[INFO]: "
+msgstr "[INFORMACIÓN]"
 
-#: ardour_ui2.cc:291
+#: gtk2_ardour/ardour_ui2.cc:291
 msgid "Play from playhead"
-msgstr "Reproduzir a partir del in�io"
+msgstr "Reproducir desde Cursor"
 
-#: ardour_ui2.cc:292
+#: gtk2_ardour/ardour_ui2.cc:292
 msgid "Stop playback"
-msgstr "Detener la reproduccion"
+msgstr "Detener la reproducción"
 
-#: ardour_ui2.cc:293
-#, fuzzy
+#: gtk2_ardour/ardour_ui2.cc:293
 msgid "Play range/selection"
-msgstr "Reproducir seleccin"
+msgstr "Reproducir rango/selección"
 
-#: ardour_ui2.cc:294
+#: gtk2_ardour/ardour_ui2.cc:294
 msgid "Go to start of session"
-msgstr "Ir al inicio de la sesin"
+msgstr "Ir a Inicio de Sesión"
 
-#: ardour_ui2.cc:295
+#: gtk2_ardour/ardour_ui2.cc:295
 msgid "Go to end of session"
-msgstr "Ir al final de la sesin"
+msgstr "Ir a Final de Sesión"
 
-#: ardour_ui2.cc:296
-#, fuzzy
+#: gtk2_ardour/ardour_ui2.cc:296
 msgid "Play loop range"
-msgstr "Reproducir el intervalo cont�uamente"
+msgstr "Reproducir rango de bucle"
 
-#: ardour_ui2.cc:297
+#: gtk2_ardour/ardour_ui2.cc:298
 msgid "Return to last playback start when stopped"
-msgstr "Al detenerse, volver a donde inici la reproduccin"
+msgstr "Al detenerse, volver al último inicio de reproducción"
 
-#: ardour_ui2.cc:298
+#: gtk2_ardour/ardour_ui2.cc:299
 msgid "Start playback after any locate"
-msgstr ""
-"Reproducir inmedi�amente despu� de relocalizar la barra de reproduccin"
+msgstr "Iniciar playback tras cualquier localización"
 
-#: ardour_ui2.cc:299
+#: gtk2_ardour/ardour_ui2.cc:300
 msgid "Be sensible about input monitoring"
-msgstr "Monitorizacin sensible de entradas"
+msgstr "Monitorización sensible de entradas"
 
-#: ardour_ui2.cc:300
+#: gtk2_ardour/ardour_ui2.cc:301
 msgid "Start recording at auto-punch start"
-msgstr "Iniciar grabacin en el punto auto-punch start(inicio)"
+msgstr "Iniciar grabación al pinchar inincio"
 
-#: ardour_ui2.cc:301
+#: gtk2_ardour/ardour_ui2.cc:302
 msgid "Stop recording at auto-punch end"
-msgstr "Detener grabacin en el punto auto-punch end(final)"
+msgstr "Detener grabación al despinchar"
 
-#: ardour_ui2.cc:302
+#: gtk2_ardour/ardour_ui2.cc:303
 msgid "Enable/Disable audio click"
-msgstr "Habilitar/desabilitar metrnomo"
+msgstr "Activar/Desactivar metrónomo"
 
-#: ardour_ui2.cc:303
+#: gtk2_ardour/ardour_ui2.cc:304
 msgid "Positional sync source"
-msgstr ""
+msgstr "Fuente de sincronización posicional"
 
-#: ardour_ui2.cc:304
+#: gtk2_ardour/ardour_ui2.cc:305
 msgid "Does Ardour control the time?"
-msgstr ""
+msgstr "¿Controla el tiempo Ardour?"
 
-#: ardour_ui2.cc:305
-#, fuzzy
+#: gtk2_ardour/ardour_ui2.cc:306
 msgid "Shuttle speed control"
-msgstr "Control de velocidad y sentido de reproduccin(pitch)"
+msgstr "Control de velocidad de shuttle"
 
-#: ardour_ui2.cc:306
-#, fuzzy, c-format
+#: gtk2_ardour/ardour_ui2.cc:307
+#, c-format
 msgid "Select semitones or %%-age for speed display"
-msgstr "Mostrar velocidad en semitonos o %-age"
+msgstr "Mostrar en semitonos o porcentaje"
 
-#: ardour_ui2.cc:307
-#, fuzzy
+#: gtk2_ardour/ardour_ui2.cc:308
 msgid "Current transport speed"
 msgstr "Velocidad actual de transporte"
 
-#: ardour_ui2.cc:330
+#: gtk2_ardour/ardour_ui2.cc:329
 msgid "Primary clock"
 msgstr "Reloj primario"
 
-#: ardour_ui2.cc:331
+#: gtk2_ardour/ardour_ui2.cc:330
 msgid "secondary clock"
 msgstr "Reloj secundario"
 
-#. XXX: this should really be saved in instant.xml or something similar and restored from there
-#. Combo's are stupid - they steal space from the entry for the button
-#: ardour_ui2.cc:388 ardour_ui2.cc:833 ardour_ui2.cc:846 ardour_ui2.cc:909
-#: ardour_ui2.cc:911
-#, fuzzy
+#: gtk2_ardour/ardour_ui2.cc:356
+msgid ""
+"When active, something is soloed.\n"
+"Click to de-solo everything"
+msgstr ""
+"Cuando activado, algo está en solo.\n"
+"Haga click para desactivar todos los solos"
+
+#: gtk2_ardour/ardour_ui2.cc:357
+msgid ""
+"When active, auditioning is taking place\n"
+"Click to stop the audition"
+msgstr ""
+"Cuando activado, se está produciendo audición\n"
+"Haga click para parar la audición"
+
+#: gtk2_ardour/ardour_ui2.cc:385
+#: gtk2_ardour/ardour_ui2.cc:831
+#: gtk2_ardour/ardour_ui_options.cc:1174
 msgid "sprung"
-msgstr "Salto"
+msgstr "resorte"
 
-#: ardour_ui2.cc:389 ardour_ui2.cc:835 ardour_ui2.cc:857
-#, fuzzy
+#: gtk2_ardour/ardour_ui2.cc:386
+#: gtk2_ardour/ardour_ui2.cc:833
+#: gtk2_ardour/ardour_ui_options.cc:1185
 msgid "wheel"
-msgstr "Rueda"
+msgstr "rueda"
 
-#: ardour_ui2.cc:451
-msgid "ardour: clock"
-msgstr "ardour: reloj"
-
-#: ardour_ui2.cc:596
-#, fuzzy
+#: gtk2_ardour/ardour_ui2.cc:605
 msgid "Maximum speed"
-msgstr "velocidad"
+msgstr "Velocidad máxima"
 
-#: ardour_ui2.cc:823
-msgid "st"
-msgstr ""
+#: gtk2_ardour/ardour_ui2.cc:843
+#: gtk2_ardour/ardour_ui2.cc:866
+msgid "stop"
+msgstr "0,0"
+
+#: gtk2_ardour/ardour_ui2.cc:885
+msgid "-0.55"
+msgstr "-0,55"
+
+#: gtk2_ardour/ardour_ui_dependents.cc:74
+msgid "Setup Editor"
+msgstr "Configurar Editor"
 
-#: ardour_ui2.cc:867 ardour_ui2.cc:890 ardour_ui2.cc:907
-msgid "stopped"
-msgstr "detenido"
+#: gtk2_ardour/ardour_ui_dependents.cc:76
+msgid "Setup Mixer"
+msgstr "Configurar Mezclador"
 
-#: ardour_ui_dialogs.cc:153 playlist_selector.cc:70
-#, fuzzy
+#: gtk2_ardour/ardour_ui_dependents.cc:81
+msgid "Reload Session History"
+msgstr "Recargar Historial de Sesión"
+
+#: gtk2_ardour/ardour_ui_dialogs.cc:169
+#: gtk2_ardour/playlist_selector.cc:73
 msgid "close"
 msgstr "Cerrar"
 
-#: ardour_ui_dialogs.cc:360 ardour_ui_ed.cc:184
-#, fuzzy
-msgid "Sound File Browser"
-msgstr "Biblioteca de audio"
-
-#. menus + submenus that need action items
-#: ardour_ui_ed.cc:72
+#: gtk2_ardour/ardour_ui_ed.cc:90
 msgid "Session"
-msgstr "Sesin"
+msgstr "Sesión"
 
-#: ardour_ui_ed.cc:73 ardour_ui_ed.cc:130 editor.cc:1836 export_dialog.cc:350
-#: export_dialog.cc:1059 export_dialog.cc:1063
-msgid "Export"
-msgstr "Exportar"
+#: gtk2_ardour/ardour_ui_ed.cc:91
+msgid "Import/Export"
+msgstr "Importar/Exportar"
 
-#: ardour_ui_ed.cc:74
+#: gtk2_ardour/ardour_ui_ed.cc:92
 msgid "Cleanup"
-msgstr "Limpiar"
+msgstr "Purgar"
 
-#: ardour_ui_ed.cc:75 option_editor.cc:126
+#: gtk2_ardour/ardour_ui_ed.cc:93
+#: gtk2_ardour/editor_actions.cc:88
+#: gtk2_ardour/option_editor.cc:153
 msgid "Sync"
-msgstr "Sincronizacin"
+msgstr "Sinc"
 
-#: ardour_ui_ed.cc:76 ardour_ui_ed.cc:77
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:94
+#: gtk2_ardour/ardour_ui_ed.cc:95
+#: gtk2_ardour/engine_dialog.cc:343
 msgid "Options"
-msgstr "Opciones Editor"
+msgstr "Opciones"
 
-#: ardour_ui_ed.cc:78
+#: gtk2_ardour/ardour_ui_ed.cc:96
 msgid "Help"
-msgstr ""
+msgstr "Ayuda"
 
-#: ardour_ui_ed.cc:79
-msgid "KeyMouse Actions"
-msgstr ""
+#: gtk2_ardour/ardour_ui_ed.cc:97
+msgid "Misc. Shortcuts"
+msgstr "Atajos misceláneos"
 
-#: ardour_ui_ed.cc:80
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:98
 msgid "Audio File Format"
-msgstr "Cuadros de Audio"
+msgstr "Formato de archivo de audio"
 
-#: ardour_ui_ed.cc:81
-#, fuzzy
-msgid "Header"
-msgstr "Pre-Fader"
+#: gtk2_ardour/ardour_ui_ed.cc:99
+#: gtk2_ardour/export_dialog.cc:106
+msgid "File Type"
+msgstr "Tipo de archivo"
 
-#: ardour_ui_ed.cc:82
-msgid "Data"
-msgstr ""
+#: gtk2_ardour/ardour_ui_ed.cc:100
+#: gtk2_ardour/export_dialog.cc:107
+msgid "Sample Format"
+msgstr "Formato de muestra"
 
-#: ardour_ui_ed.cc:83
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:101
 msgid "Control Surfaces"
-msgstr "Control de Salidas"
+msgstr "Superficies de control"
+
+#: gtk2_ardour/ardour_ui_ed.cc:102
+msgid "Metering"
+msgstr "Vúmetros"
+
+#: gtk2_ardour/ardour_ui_ed.cc:103
+msgid "Fall off rate"
+msgstr "Tasa de decaimiento"
+
+#: gtk2_ardour/ardour_ui_ed.cc:104
+msgid "Hold Time"
+msgstr "Tiempo de persistencia"
+
+#: gtk2_ardour/ardour_ui_ed.cc:105
+msgid "Denormal Handling"
+msgstr "Manejo de Denormals"
 
-#. the real actions
-#: ardour_ui_ed.cc:87 audio_time_axis.cc:1854 new_session_dialog.cc:529
+#: gtk2_ardour/ardour_ui_ed.cc:109
+#: gtk2_ardour/new_session_dialog.cc:856
+#: gtk2_ardour/route_time_axis.cc:1408
 msgid "New"
-msgstr "Nuevo"
+msgstr "Nueva"
 
-#: ardour_ui_ed.cc:89 new_session_dialog.cc:517
+#: gtk2_ardour/ardour_ui_ed.cc:111
+#: gtk2_ardour/new_session_dialog.cc:836
+#: gtk2_ardour/new_session_dialog.cc:848
 msgid "Open"
 msgstr "Abrir"
 
-#: ardour_ui_ed.cc:90
+#: gtk2_ardour/ardour_ui_ed.cc:112
 msgid "Recent"
-msgstr "Reciente"
+msgstr "Recientes"
 
-#: ardour_ui_ed.cc:91 io_selector.cc:58 io_selector.cc:792
+#: gtk2_ardour/ardour_ui_ed.cc:113
+#: gtk2_ardour/io_selector.cc:59
+#: gtk2_ardour/io_selector.cc:749
+#: gtk2_ardour/connection_editor.cc:58
 msgid "Close"
 msgstr "Cerrar"
 
-#: ardour_ui_ed.cc:94 route_params_ui.cc:514
+#: gtk2_ardour/ardour_ui_ed.cc:116
+#: gtk2_ardour/route_params_ui.cc:516
 msgid "Add Track/Bus"
 msgstr "Agregar Pista/Bus"
 
-#: ardour_ui_ed.cc:105
+#: gtk2_ardour/ardour_ui_ed.cc:128
 msgid "Connect"
 msgstr "Conectar"
 
-#. </CMT Additions>
-#: ardour_ui_ed.cc:113
+#: gtk2_ardour/ardour_ui_ed.cc:136
 msgid "Snapshot"
-msgstr "Capturar instant�ea de sesin"
+msgstr "Capturar sesión"
 
-#: ardour_ui_ed.cc:116
+#: gtk2_ardour/ardour_ui_ed.cc:139
 msgid "Save Template..."
-msgstr "Guardar esquema"
+msgstr "Guardar plantilla..."
 
-#: ardour_ui_ed.cc:119
+#: gtk2_ardour/ardour_ui_ed.cc:142
 msgid "Export session to audiofile..."
-msgstr "Exportar sesin a archivo de audio"
+msgstr "Exportar sesión a archivo de audio..."
 
-#: ardour_ui_ed.cc:122
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:145
 msgid "Export selection to audiofile..."
-msgstr "Exportar sesin a archivo de audio"
+msgstr "Exportar selección a archivo de audio..."
 
-#: ardour_ui_ed.cc:126
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:149
 msgid "Export range markers to audiofile..."
-msgstr "Exportar sesin a archivo de audio"
+msgstr "Exportar marcas de rango a archivo de audio..."
+
+#: gtk2_ardour/ardour_ui_ed.cc:153
+#: gtk2_ardour/editor.cc:1857
+#: gtk2_ardour/export_dialog.cc:126
+#: gtk2_ardour/export_dialog.cc:375
+#: gtk2_ardour/export_dialog.cc:1163
+#: gtk2_ardour/export_dialog.cc:1167
+msgid "Export"
+msgstr "Exportar"
 
-#: ardour_ui_ed.cc:133
+#: gtk2_ardour/ardour_ui_ed.cc:156
 msgid "Cleanup unused sources"
-msgstr "Arrojar archivos no usados a papelera"
+msgstr "Mover archivos no usados a papelera"
 
-#: ardour_ui_ed.cc:135
+#: gtk2_ardour/ardour_ui_ed.cc:158
 msgid "Flush wastebasket"
 msgstr "Vaciar papelera"
 
-#: ardour_ui_ed.cc:141 ardour_ui_options.cc:408 ardour_ui_options.cc:417
-#: ardour_ui_options.cc:489
+#: gtk2_ardour/ardour_ui_ed.cc:164
 msgid "JACK"
 msgstr "JACK"
 
-#: ardour_ui_ed.cc:142
+#: gtk2_ardour/ardour_ui_ed.cc:165
 msgid "Latency"
-msgstr ""
+msgstr "Latencia"
 
-#: ardour_ui_ed.cc:144
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:167
 msgid "Reconnect"
-msgstr "Conectar"
+msgstr "Reconectar"
 
-#: ardour_ui_ed.cc:147 mixer_strip.cc:497 mixer_strip.cc:565
+#: gtk2_ardour/ardour_ui_ed.cc:170
+#: gtk2_ardour/mixer_strip.cc:578
+#: gtk2_ardour/mixer_strip.cc:640
 msgid "Disconnect"
 msgstr "Desconectar"
 
-#: ardour_ui_ed.cc:174
-msgid "Windows"
-msgstr "Ventanas"
+#: gtk2_ardour/ardour_ui_ed.cc:197
+msgid "Window"
+msgstr "Ventana"
 
-#: ardour_ui_ed.cc:175
-msgid "start prefix"
-msgstr ""
-
-#: ardour_ui_ed.cc:176
+#: gtk2_ardour/ardour_ui_ed.cc:198
 msgid "Quit"
 msgstr "Salir"
 
-#. windows visibility actions
-#: ardour_ui_ed.cc:180
+#: gtk2_ardour/ardour_ui_ed.cc:202
 msgid "Maximise Editor Space"
-msgstr ""
+msgstr "Maximizar Editor"
 
-#: ardour_ui_ed.cc:182
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:204
 msgid "Show Editor"
-msgstr "Editor"
+msgstr "Mostrar Editor"
 
-#: ardour_ui_ed.cc:183
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:205
 msgid "Show Mixer"
-msgstr "Mixer"
+msgstr "Mostrar Mezclador"
+
+#: gtk2_ardour/ardour_ui_ed.cc:206
+msgid "Toggle Editor Mixer on Top"
+msgstr "Mezclador encima/debajo"
 
-#: ardour_ui_ed.cc:185
-msgid "Options Editor"
-msgstr "Opciones Editor"
+#: gtk2_ardour/ardour_ui_ed.cc:207
+#: gtk2_ardour/option_editor.cc:125
+msgid "Preferences"
+msgstr "Preferencias"
 
-#: ardour_ui_ed.cc:186
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:208
+#: gtk2_ardour/route_params_ui.cc:143
+#: gtk2_ardour/route_params_ui.cc:662
 msgid "Track/Bus Inspector"
-msgstr "Pistas/Buses"
+msgstr "Inspector de Pistas/Buses"
 
-#: ardour_ui_ed.cc:188
+#: gtk2_ardour/ardour_ui_ed.cc:210
+#: gtk2_ardour/connection_editor.cc:146
+#: gtk2_ardour/connection_editor.cc:147
 msgid "Connections"
-msgstr "Conecciones"
+msgstr "Conexiones"
 
-#: ardour_ui_ed.cc:190
+#: gtk2_ardour/ardour_ui_ed.cc:212
+#: gtk2_ardour/location_ui.cc:630
 msgid "Locations"
-msgstr "Localizaciones"
+msgstr "Lugares"
 
-#: ardour_ui_ed.cc:192
+#: gtk2_ardour/ardour_ui_ed.cc:214
 msgid "Big Clock"
 msgstr "Reloj Grande"
 
-#: ardour_ui_ed.cc:194
+#: gtk2_ardour/ardour_ui_ed.cc:216
 msgid "About"
 msgstr "Acerca de"
 
-#: ardour_ui_ed.cc:195
-#, fuzzy
-msgid "Colors"
-msgstr "Color"
+#: gtk2_ardour/ardour_ui_ed.cc:217
+msgid "Theme Manager"
+msgstr "Gestor de temas"
 
-#: ardour_ui_ed.cc:197
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:218
+msgid "Keybindings"
+msgstr "Combinaciones de teclas"
+
+#: gtk2_ardour/ardour_ui_ed.cc:220
 msgid "Add Audio Track"
-msgstr "Agregar Pista/Bus"
+msgstr "Agregar Pista de Audio"
 
-#: ardour_ui_ed.cc:199
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:222
 msgid "Add Audio Bus"
-msgstr "Ocultar todos los Buses"
+msgstr "Agregar Bus de Audio"
 
-#: ardour_ui_ed.cc:201
+#: gtk2_ardour/ardour_ui_ed.cc:224
+#: gtk2_ardour/plugin_ui.cc:328
 msgid "Save"
 msgstr "Guardar"
 
-#: ardour_ui_ed.cc:203 editor_actions.cc:255
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:226
+#: gtk2_ardour/editor_actions.cc:584
 msgid "Remove Last Capture"
-msgstr "Quitar ltima captura"
+msgstr "Borrar Última Captura"
 
-#. do-nothing action for the "transport" menu bar item
-#: ardour_ui_ed.cc:210
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:233
 msgid "Transport"
-msgstr "Traductores"
+msgstr "Transporte"
 
-#. these two are not used by key bindings, instead use ToggleRoll for that. these two do show up in
-#. menus and via button proxies.
-#.
-#: ardour_ui_ed.cc:216 sfdb_ui.cc:57
+#: gtk2_ardour/ardour_ui_ed.cc:239
+#: gtk2_ardour/engine_dialog.cc:59
+#: gtk2_ardour/sfdb_ui.cc:184
 msgid "Stop"
-msgstr "Detener"
+msgstr "Stop"
 
-#: ardour_ui_ed.cc:219
+#: gtk2_ardour/ardour_ui_ed.cc:242
 msgid "Roll"
-msgstr ""
+msgstr "Roll"
 
-#: ardour_ui_ed.cc:223
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:246
 msgid "Start/Stop"
-msgstr "Inicio:"
+msgstr "Reproducir/Detener"
 
-#: ardour_ui_ed.cc:226
+#: gtk2_ardour/ardour_ui_ed.cc:249
 msgid "Stop + Forget Capture"
-msgstr ""
+msgstr "Detener + Olvidar captura"
+
+# it's not literal, but it's what it does
+# translating to "rollo" or "rodar" doesn't make much sense in spanish
+# am I missing something?
+#: gtk2_ardour/ardour_ui_ed.cc:259
+msgid "Transition To Roll"
+msgstr "Transición hacia Adelante"
 
-#: ardour_ui_ed.cc:229
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:263
+msgid "Transition To Reverse"
+msgstr "Transición hacia Atrás"
+
+#: gtk2_ardour/ardour_ui_ed.cc:268
 msgid "Play Loop Range"
-msgstr "Reproducir el intervalo cont�uamente"
+msgstr "Reproducir Rango de Bucle"
 
-#: ardour_ui_ed.cc:232
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:271
 msgid "Play Selection"
-msgstr "Reproducir regin selecionada"
+msgstr "Reproducir selección"
 
-#: ardour_ui_ed.cc:236
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:275
 msgid "Enable Record"
-msgstr "Grabar"
+msgstr "Habilitar grabación"
 
-#: ardour_ui_ed.cc:239
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:277
+msgid "Start Recording"
+msgstr "Iniciar grabación"
+
+#: gtk2_ardour/ardour_ui_ed.cc:280
 msgid "Rewind"
-msgstr "Regin"
+msgstr "Rebobinar"
 
-#: ardour_ui_ed.cc:242
+#: gtk2_ardour/ardour_ui_ed.cc:283
 msgid "Rewind (Slow)"
-msgstr ""
+msgstr "Rebobinar (Lento)"
 
-#: ardour_ui_ed.cc:245
+#: gtk2_ardour/ardour_ui_ed.cc:286
 msgid "Rewind (Fast)"
-msgstr ""
+msgstr "Rebobinar (Rápido)"
 
-#: ardour_ui_ed.cc:248
+#: gtk2_ardour/ardour_ui_ed.cc:289
 msgid "Forward"
-msgstr ""
+msgstr "Adelante"
 
-#: ardour_ui_ed.cc:251
+#: gtk2_ardour/ardour_ui_ed.cc:292
 msgid "Forward (Slow)"
-msgstr ""
+msgstr "Adelante (Lento)"
 
-#: ardour_ui_ed.cc:254
+#: gtk2_ardour/ardour_ui_ed.cc:295
 msgid "Forward (Fast)"
-msgstr ""
+msgstr "Adelante (Rápido)"
 
-#: ardour_ui_ed.cc:257
+#: gtk2_ardour/ardour_ui_ed.cc:298
 msgid "Goto Zero"
-msgstr ""
+msgstr "Ir al Cero"
 
-#: ardour_ui_ed.cc:260
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:301
 msgid "Goto Start"
-msgstr "Inicio:"
+msgstr "Ir al Inicio"
 
-#: ardour_ui_ed.cc:263
+#: gtk2_ardour/ardour_ui_ed.cc:304
 msgid "Goto End"
-msgstr ""
+msgstr "Ir al Final"
 
-#. XXX the newline in the displayed names of these action is really wrong, but its because we want the button
-#. that proxies for these action to be more compact. It would be nice to find a way to override the action
-#. name appearance on the buttons.
-#.
-#: ardour_ui_ed.cc:272
-#, fuzzy
-msgid ""
-"Punch\n"
-"in"
-msgstr "Insercin"
+#: gtk2_ardour/ardour_ui_ed.cc:307
+msgid "Goto Wall Clock"
+msgstr "Ir al Reloj de Pared"
 
-#: ardour_ui_ed.cc:275
-#, fuzzy
-msgid ""
-"Punch\n"
-"out"
-msgstr "Insercin"
+#: gtk2_ardour/ardour_ui_ed.cc:311
+msgid "Focus On Clock"
+msgstr "Enfocar en Reloj"
 
-#: ardour_ui_ed.cc:278 option_editor.cc:129
-msgid "Click"
-msgstr "Metrnomo"
+#: gtk2_ardour/ardour_ui_ed.cc:315
+#: gtk2_ardour/ardour_ui_ed.cc:324
+#: gtk2_ardour/editor_actions.cc:707
+msgid "Bars & Beats"
+msgstr "Compases:Pulsos"
 
-#: ardour_ui_ed.cc:281
-#, fuzzy
-msgid ""
-"Auto\n"
-"input"
-msgstr ""
-"auto\n"
-"monitoreo"
+#: gtk2_ardour/ardour_ui_ed.cc:317
+#: gtk2_ardour/ardour_ui_ed.cc:326
+msgid "Minutes & Seconds"
+msgstr "Minutos:Segundos"
 
-#: ardour_ui_ed.cc:284
-#, fuzzy
-msgid ""
-"Auto\n"
-"play"
-msgstr ""
-"reproduccn\n"
-"autom�ica"
+#: gtk2_ardour/ardour_ui_ed.cc:319
+#: gtk2_ardour/ardour_ui_ed.cc:328
+#: gtk2_ardour/audio_clock.cc:1952
+#: gtk2_ardour/editor.cc:205
+#: gtk2_ardour/editor_actions.cc:708
+msgid "Samples"
+msgstr "Muestras"
+
+#: gtk2_ardour/ardour_ui_ed.cc:321
+#: gtk2_ardour/ardour_ui_ed.cc:330
+#: gtk2_ardour/ardour_ui_ed.cc:522
+#: gtk2_ardour/ardour_ui_ed.cc:530
+#: gtk2_ardour/audio_clock.cc:1953
+msgid "Off"
+msgstr "Apagado"
 
-#: ardour_ui_ed.cc:287
-#, fuzzy
-msgid ""
-"Auto\n"
-"return"
-msgstr ""
-"retorno\n"
-"autom�ico"
+#: gtk2_ardour/ardour_ui_ed.cc:339
+msgid "Punch In/Out"
+msgstr "Pinchar/Despinchar"
 
-#: ardour_ui_ed.cc:291
-#, fuzzy
-msgid ""
-"Time\n"
-"master"
-msgstr "M�ter de tiempo JACK"
+#: gtk2_ardour/ardour_ui_ed.cc:355
+msgid "Sync startup to video"
+msgstr "Sincronizar Inicio a video"
+
+#: gtk2_ardour/ardour_ui_ed.cc:356
+msgid "Time master"
+msgstr "Maestro"
 
-#: ardour_ui_ed.cc:294
+#: gtk2_ardour/ardour_ui_ed.cc:359
 msgid "Toggle Record Enable Track1"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 1"
 
-#: ardour_ui_ed.cc:296
+#: gtk2_ardour/ardour_ui_ed.cc:361
 msgid "Toggle Record Enable Track2"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 2"
 
-#: ardour_ui_ed.cc:298
+#: gtk2_ardour/ardour_ui_ed.cc:363
 msgid "Toggle Record Enable Track3"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 3"
 
-#: ardour_ui_ed.cc:300
+#: gtk2_ardour/ardour_ui_ed.cc:365
 msgid "Toggle Record Enable Track4"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 4"
 
-#: ardour_ui_ed.cc:302
+#: gtk2_ardour/ardour_ui_ed.cc:367
 msgid "Toggle Record Enable Track5"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 5"
 
-#: ardour_ui_ed.cc:304
+#: gtk2_ardour/ardour_ui_ed.cc:369
 msgid "Toggle Record Enable Track6"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 6"
 
-#: ardour_ui_ed.cc:306
+#: gtk2_ardour/ardour_ui_ed.cc:371
 msgid "Toggle Record Enable Track7"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 7"
 
-#: ardour_ui_ed.cc:308
+#: gtk2_ardour/ardour_ui_ed.cc:373
 msgid "Toggle Record Enable Track8"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 8"
 
-#: ardour_ui_ed.cc:310
+#: gtk2_ardour/ardour_ui_ed.cc:375
 msgid "Toggle Record Enable Track9"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 9"
 
-#: ardour_ui_ed.cc:312
+#: gtk2_ardour/ardour_ui_ed.cc:377
 msgid "Toggle Record Enable Track10"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 10"
 
-#: ardour_ui_ed.cc:314
+#: gtk2_ardour/ardour_ui_ed.cc:379
 msgid "Toggle Record Enable Track11"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 11"
 
-#: ardour_ui_ed.cc:316
+#: gtk2_ardour/ardour_ui_ed.cc:381
 msgid "Toggle Record Enable Track12"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 12"
 
-#: ardour_ui_ed.cc:318
+#: gtk2_ardour/ardour_ui_ed.cc:383
 msgid "Toggle Record Enable Track13"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 13"
 
-#: ardour_ui_ed.cc:320
+#: gtk2_ardour/ardour_ui_ed.cc:385
 msgid "Toggle Record Enable Track14"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 14"
 
-#: ardour_ui_ed.cc:322
+#: gtk2_ardour/ardour_ui_ed.cc:387
 msgid "Toggle Record Enable Track15"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 15"
 
-#: ardour_ui_ed.cc:324
+#: gtk2_ardour/ardour_ui_ed.cc:389
 msgid "Toggle Record Enable Track16"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 16"
 
-#: ardour_ui_ed.cc:326
+#: gtk2_ardour/ardour_ui_ed.cc:391
 msgid "Toggle Record Enable Track17"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 17"
 
-#: ardour_ui_ed.cc:328
+#: gtk2_ardour/ardour_ui_ed.cc:393
 msgid "Toggle Record Enable Track18"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 18"
 
-#: ardour_ui_ed.cc:330
+#: gtk2_ardour/ardour_ui_ed.cc:395
 msgid "Toggle Record Enable Track19"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 19"
 
-#: ardour_ui_ed.cc:332
+#: gtk2_ardour/ardour_ui_ed.cc:397
 msgid "Toggle Record Enable Track20"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 20"
 
-#: ardour_ui_ed.cc:334
+#: gtk2_ardour/ardour_ui_ed.cc:399
 msgid "Toggle Record Enable Track21"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 21"
 
-#: ardour_ui_ed.cc:336
+#: gtk2_ardour/ardour_ui_ed.cc:401
 msgid "Toggle Record Enable Track22"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 22"
 
-#: ardour_ui_ed.cc:338
+#: gtk2_ardour/ardour_ui_ed.cc:403
 msgid "Toggle Record Enable Track23"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 23"
 
-#: ardour_ui_ed.cc:340
+#: gtk2_ardour/ardour_ui_ed.cc:405
 msgid "Toggle Record Enable Track24"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 24"
 
-#: ardour_ui_ed.cc:342
+#: gtk2_ardour/ardour_ui_ed.cc:407
 msgid "Toggle Record Enable Track25"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 25"
 
-#: ardour_ui_ed.cc:344
+#: gtk2_ardour/ardour_ui_ed.cc:409
 msgid "Toggle Record Enable Track26"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 26"
 
-#: ardour_ui_ed.cc:346
+#: gtk2_ardour/ardour_ui_ed.cc:411
 msgid "Toggle Record Enable Track27"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 27"
 
-#: ardour_ui_ed.cc:348
+#: gtk2_ardour/ardour_ui_ed.cc:413
 msgid "Toggle Record Enable Track28"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 28"
 
-#: ardour_ui_ed.cc:350
+#: gtk2_ardour/ardour_ui_ed.cc:415
 msgid "Toggle Record Enable Track29"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 29"
 
-#: ardour_ui_ed.cc:352
+#: gtk2_ardour/ardour_ui_ed.cc:417
 msgid "Toggle Record Enable Track30"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 30"
 
-#: ardour_ui_ed.cc:354
+#: gtk2_ardour/ardour_ui_ed.cc:419
 msgid "Toggle Record Enable Track31"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 31"
 
-#: ardour_ui_ed.cc:356
+#: gtk2_ardour/ardour_ui_ed.cc:421
 msgid "Toggle Record Enable Track32"
-msgstr ""
+msgstr "Activar/Desactivar grabación Pista 32"
 
-#: ardour_ui_ed.cc:361
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:426
 msgid "Percentage"
-msgstr "Porcentage"
+msgstr "Porcentaje"
 
-#: ardour_ui_ed.cc:362
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:427
 msgid "Semitones"
 msgstr "Semitonos"
 
-#: ardour_ui_ed.cc:366
+#: gtk2_ardour/ardour_ui_ed.cc:431
 msgid "Send MTC"
 msgstr "Enviar MTC"
 
-#: ardour_ui_ed.cc:368
+#: gtk2_ardour/ardour_ui_ed.cc:433
 msgid "Send MMC"
 msgstr "Enviar MMC"
 
-#: ardour_ui_ed.cc:370
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:435
 msgid "Use MMC"
-msgstr "Enviar MMC"
+msgstr "Usar MMC"
 
-#: ardour_ui_ed.cc:372
+#: gtk2_ardour/ardour_ui_ed.cc:437
 msgid "Send MIDI feedback"
-msgstr ""
+msgstr "Enviar MIDI feedback"
+
+#: gtk2_ardour/ardour_ui_ed.cc:440
+msgid "Use OSC"
+msgstr "Usar OSC"
 
-#: ardour_ui_ed.cc:374
-#, fuzzy
-msgid "Use MIDI control"
-msgstr "Puerto MMC"
-
-#: ardour_ui_ed.cc:377
-#, fuzzy
-msgid "Connect new track inputs to hardware"
-msgstr "Conectar nuevas pistas autom�icamente"
-
-#: ardour_ui_ed.cc:396
-#, fuzzy
-msgid "Connect new track outputs to hardware"
-msgstr "Conectar nuevas pistas autom�icamente"
-
-#: ardour_ui_ed.cc:398
-#, fuzzy
-msgid "Connect new track outputs to master"
-msgstr "conectar autom�icamente salidas de pistas a salidas Master"
-
-#: ardour_ui_ed.cc:400
-#, fuzzy
-msgid "Manually connect new track outputs"
-msgstr "conectar pistas manualmente"
-
-#: ardour_ui_ed.cc:405
-#, fuzzy
-msgid "Hardware monitoring"
-msgstr "Monitorizacin por Hardware"
-
-#: ardour_ui_ed.cc:406
-#, fuzzy
-msgid "Software monitoring"
-msgstr "Monitorizacin por Software"
-
-#: ardour_ui_ed.cc:407
-#, fuzzy
-msgid "External monitoring"
-msgstr "Monitorizacin por Hardware"
-
-#. Configuration object options (i.e. not session specific)
-#: ardour_ui_ed.cc:411
+#: gtk2_ardour/ardour_ui_ed.cc:444
+msgid "Tape Machine mode"
+msgstr "Modo magnetófono"
+
+#: gtk2_ardour/ardour_ui_ed.cc:447
+msgid "Sync Editor and Mixer track order"
+msgstr "Sincronizar orden de pistas en Editor y Mezclador"
+
+#: gtk2_ardour/ardour_ui_ed.cc:448
 msgid "Stop plugins with transport"
 msgstr "No procesar plugins durante transporte"
 
-#: ardour_ui_ed.cc:412
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:449
+msgid "New plugins are active"
+msgstr "Plugins inician activados"
+
+#: gtk2_ardour/ardour_ui_ed.cc:450
 msgid "Verify remove last capture"
-msgstr "Quitar ltima captura"
+msgstr "Confirmar borrado de última captura"
+
+#: gtk2_ardour/ardour_ui_ed.cc:451
+msgid "Make periodic safety backups"
+msgstr "Copias de seguridad periódicas"
 
-#: ardour_ui_ed.cc:413
+#: gtk2_ardour/ardour_ui_ed.cc:452
 msgid "Stop recording on xrun"
-msgstr "Detener grabacin al detectar un XRUN"
+msgstr "Detener grabación al detectar un xRUN"
 
-#: ardour_ui_ed.cc:414
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:453
+msgid "Create marker at xrun location"
+msgstr "Crear marca al suceder un xRUN"
+
+#: gtk2_ardour/ardour_ui_ed.cc:454
 msgid "Stop transport at session end"
-msgstr "Detener el transporte al llegar al final de la sesin"
+msgstr "Detener transporte al final de la sesión"
 
-#: ardour_ui_ed.cc:415
+#: gtk2_ardour/ardour_ui_ed.cc:455
 msgid "-12dB gain reduce ffwd/rewind"
-msgstr ""
+msgstr "Reducción de ganacia de -12db al Reproducir/Rebobinar"
 
-#: ardour_ui_ed.cc:416
+#: gtk2_ardour/ardour_ui_ed.cc:456
 msgid "Rec-enable stays engaged at stop"
-msgstr ""
+msgstr "Mantiene habilitación de grabar al detener"
 
-#. session options
-#: ardour_ui_ed.cc:420
-#, fuzzy
+#: gtk2_ardour/ardour_ui_ed.cc:457
+msgid "Region equivalents overlap"
+msgstr "Regiones equivalentes se superponen"
+
+#: gtk2_ardour/ardour_ui_ed.cc:458
+msgid "Primary Clock delta to edit point"
+msgstr "Reloj Primario muestra diferencia al Punto de Edición"
+
+#: gtk2_ardour/ardour_ui_ed.cc:459
+msgid "Secondary Clock delta to edit point"
+msgstr "Reloj Secundario muestra diferencia al Punto de Edición"
+
+#: gtk2_ardour/ardour_ui_ed.cc:460
+msgid "Enable Editor Meters"
+msgstr "Habilitar Vúmetros en Editor"
+
+#: gtk2_ardour/ardour_ui_ed.cc:461
+msgid "Always copy imported files"
+msgstr "Siempre copiar los archivos importados"
+
+#: gtk2_ardour/ardour_ui_ed.cc:462
+msgid "Rubberbanding Snaps to Grid"
+msgstr "Rubberband encaja en rejilla"
+
+#: gtk2_ardour/ardour_ui_ed.cc:463
+msgid "Auto-analyse new audio"
+msgstr "Auto-analizar nuevo audio"
+
+#: gtk2_ardour/ardour_ui_ed.cc:465
+msgid "Use narrow mixer strips"
+msgstr "Usar canales estrechos en Mezclador"
+
+#: gtk2_ardour/ardour_ui_ed.cc:466
+msgid "Name New Markers"
+msgstr "Nombrar Marcas nuevas"
+
+#: gtk2_ardour/ardour_ui_ed.cc:470
+msgid "Use DC bias"
+msgstr "Usar DC bias"
+
+#: gtk2_ardour/ardour_ui_ed.cc:472
+msgid "No processor handling"
+msgstr "Ningún manejo de procesador"
+
+#: gtk2_ardour/ardour_ui_ed.cc:481
+#: gtk2_ardour/ardour_ui_ed.cc:492
+msgid "Use FlushToZero"
+msgstr "Usar FlushToZero"
+
+#: gtk2_ardour/ardour_ui_ed.cc:483
+#: gtk2_ardour/ardour_ui_ed.cc:497
+msgid "Use DenormalsAreZero"
+msgstr "Usar DenormalsAreZero"
+
+#: gtk2_ardour/ardour_ui_ed.cc:485
+#: gtk2_ardour/ardour_ui_ed.cc:502
+msgid "Use FlushToZero & DenormalsAreZero"
+msgstr "Usar FlushToZero y DenormalsAreZero"
+
+#: gtk2_ardour/ardour_ui_ed.cc:508
 msgid "Do not run plugins while recording"
-msgstr "Procesar plugins durante la grabacin"
+msgstr "No ejecutar plugins durante la grabación"
 
-#: ardour_ui_ed.cc:423
+#: gtk2_ardour/ardour_ui_ed.cc:510
 msgid "Latched solo"
-msgstr ""
+msgstr "Solo retenido"
 
-#: ardour_ui_ed.cc:428
-#, fuzzy
-msgid "Solo in-place"
-msgstr "Solo"
+#: gtk2_ardour/ardour_ui_ed.cc:512
+msgid "Show solo muting"
+msgstr "Mostrar mudos de solo"
 
-#: ardour_ui_ed.cc:430
-msgid "Solo via bus"
-msgstr ""
+#: gtk2_ardour/ardour_ui_ed.cc:514
+msgid "Override muting"
+msgstr "Solo invalida mudo"
 
-#: ardour_ui_ed.cc:433
-#, fuzzy
-msgid "Automatically create crossfades"
-msgstr "Crosfade autom�ico si dos regiones se superponen"
+#: gtk2_ardour/ardour_ui_ed.cc:523
+#: gtk2_ardour/editor.cc:1443
+#: gtk2_ardour/editor.cc:1446
+#: gtk2_ardour/editor.cc:1465
+#: gtk2_ardour/editor.cc:1468
+msgid "Slowest"
+msgstr "Lentísima"
 
-#: ardour_ui_ed.cc:435
-msgid "Unmute new full crossfades"
-msgstr ""
+#: gtk2_ardour/ardour_ui_ed.cc:524
+#: gtk2_ardour/editor.cc:1447
+#: gtk2_ardour/editor.cc:1469
+msgid "Slow"
+msgstr "Lenta"
 
-#: ardour_ui_options.cc:406 ardour_ui_options.cc:416 ardour_ui_options.cc:483
-#, fuzzy
-msgid "Internal"
-msgstr "interno"
+#: gtk2_ardour/ardour_ui_ed.cc:525
+#: gtk2_ardour/ardour_ui_ed.cc:532
+msgid "Medium"
+msgstr "Media"
 
-#: ardour_ui_options.cc:407 ardour_ui_options.cc:486
-msgid "MTC"
-msgstr ""
+#: gtk2_ardour/ardour_ui_ed.cc:526
+#: gtk2_ardour/editor.cc:1448
+#: gtk2_ardour/editor.cc:1470
+#: gtk2_ardour/sfdb_ui.cc:1259
+#: gtk2_ardour/sfdb_ui.cc:1340
+msgid "Fast"
+msgstr "Rápida"
 
-#: audio_clock.cc:1742 editor.cc:188
-msgid "SMPTE"
-msgstr ""
+#: gtk2_ardour/ardour_ui_ed.cc:527
+msgid "Faster"
+msgstr "Más rápida"
 
-#: audio_clock.cc:1743 editor.cc:187 editor_rulers.cc:360
-msgid "Bars:Beats"
-msgstr "Compaces:Pulsos"
+#: gtk2_ardour/ardour_ui_ed.cc:528
+#: gtk2_ardour/editor.cc:1449
+#: gtk2_ardour/editor.cc:1471
+#: gtk2_ardour/sfdb_ui.cc:1260
+msgid "Fastest"
+msgstr "Rapidísima"
 
-#: audio_clock.cc:1744
-msgid "Minutes:Seconds"
-msgstr "Minutos:Segundos"
+#: gtk2_ardour/ardour_ui_ed.cc:531
+#: gtk2_ardour/editor_actions.cc:110
+msgid "Short"
+msgstr "Corto"
 
-#: audio_clock.cc:1745
-msgid "Audio Frames"
-msgstr "Cuadros de Audio"
+#: gtk2_ardour/ardour_ui_ed.cc:533
+msgid "Long"
+msgstr "Largo"
 
-#.
-#. Slowest = 6.6dB/sec falloff at update rate of 40ms
-#. Slow    = 6.8dB/sec falloff at update rate of 40ms
-#.
-#: audio_clock.cc:1746 editor_actions.cc:375 editor_actions.cc:383
-#: gain_meter.cc:172 panner_ui.cc:89 plugin_ui.cc:392 plugin_ui.cc:635
-msgid "Off"
-msgstr "Deshabilitar"
+#: gtk2_ardour/ardour_ui_ed.cc:558
+msgid "JACK does monitoring"
+msgstr "Monitorización por JACK"
 
-#: audio_clock.cc:1748
-msgid "Mode"
-msgstr "Modo"
+#: gtk2_ardour/ardour_ui_ed.cc:562
+msgid "Ardour does monitoring"
+msgstr "Monitorización por Ardour"
 
-#: audio_time_axis.cc:91
-msgid "m"
-msgstr ""
+#: gtk2_ardour/ardour_ui_ed.cc:563
+msgid "Audio Hardware does monitoring"
+msgstr "Monitorización por Hardware de Audio "
 
-#: audio_time_axis.cc:91
-msgid "s"
-msgstr ""
+#: gtk2_ardour/ardour_ui_ed.cc:567
+msgid "Solo in-place"
+msgstr "Solo in situ"
 
-#: audio_time_axis.cc:91
-msgid "r"
-msgstr ""
+#: gtk2_ardour/ardour_ui_ed.cc:569
+msgid "Solo via bus"
+msgstr "Solo via bus"
 
-#: audio_time_axis.cc:95
-msgid "g"
+#: gtk2_ardour/ardour_ui_ed.cc:574
+msgid "Auto-connect inputs to physical inputs"
+msgstr "Auto-conectar entradas a entradas físicas"
+
+#: gtk2_ardour/ardour_ui_ed.cc:576
+msgid "Manually connect inputs"
+msgstr "Conectar entradas manualmente"
+
+#: gtk2_ardour/ardour_ui_ed.cc:581
+msgid "Auto-connect outputs to physical outs"
+msgstr "Auto-conectar salidas a salidas físicas"
+
+#: gtk2_ardour/ardour_ui_ed.cc:583
+msgid "Auto-connect outputs to master bus"
+msgstr "Auto-conectar salidas a bus Master"
+
+#: gtk2_ardour/ardour_ui_ed.cc:585
+msgid "Manually connect outputs"
+msgstr "Conectar salidas manualmente"
+
+#: gtk2_ardour/ardour_ui_ed.cc:590
+msgid "Remote ID assigned by User"
+msgstr "ID remota asignada por usuario"
+
+#: gtk2_ardour/ardour_ui_ed.cc:592
+msgid "Remote ID follows order of Mixer"
+msgstr "ID remota sigue orden de Mezclador"
+
+#: gtk2_ardour/ardour_ui_ed.cc:594
+msgid "Remote ID follows order of Editor"
+msgstr "ID remota sigue orden de Editor"
+
+# no estoy seguro...
+#: gtk2_ardour/ardour_ui_ed.cc:597
+msgid "Auto Rebind Controls"
+msgstr "Auto Asignar Controles"
+
+#: gtk2_ardour/ardour_ui_ed.cc:747
+#: gtk2_ardour/generic_pluginui.cc:173
+msgid "Controls"
+msgstr "Controles"
+
+#: gtk2_ardour/ardour_ui_ed.cc:751
+msgid "Feedback"
+msgstr "Realimentación"
+
+#: gtk2_ardour/ardour_ui_ed.cc:857
+msgid "Clock"
+msgstr "Reloj"
+
+#: gtk2_ardour/ardour_ui_options.cc:119
+#: gtk2_ardour/ardour_ui_options.cc:149
+#: gtk2_ardour/audio_streamview.cc:172
+#: gtk2_ardour/editor_actions.cc:1246
+#: gtk2_ardour/editor_actions.cc:1605
+#: gtk2_ardour/editor_actions.cc:1618
+#: gtk2_ardour/editor_actions.cc:1682
+msgid "programming error: %1"
+msgstr "error de programación: %1"
+
+#: gtk2_ardour/ardour_ui_options.cc:228
+msgid "programming error: unknown solo model in ARDOUR_UI::set_solo_model: %1"
 msgstr ""
 
-#. group
-#: audio_time_axis.cc:96
-msgid "p"
+#: gtk2_ardour/ardour_ui_options.cc:261
+msgid "programming error: unknown remote model in ARDOUR_UI::set_remote_model: %1"
 msgstr ""
 
-#: audio_time_axis.cc:97 automation_time_axis.cc:32 visual_time_axis.cc:74
-msgid "h"
+#: gtk2_ardour/ardour_ui_options.cc:295
+msgid "programming error: unknown monitor model in ARDOUR_UI::set_monitor_model: %1"
 msgstr ""
 
-#. height
-#: audio_time_axis.cc:98
-msgid "a"
+#: gtk2_ardour/ardour_ui_options.cc:334
+msgid "programming error: unknown denormal model in ARDOUR_UI::set_denormal_model: %1"
 msgstr ""
 
-#: audio_time_axis.cc:99 visual_time_axis.cc:73
-msgid "v"
+#: gtk2_ardour/ardour_ui_options.cc:793
+msgid "programming error: unknown file header format passed to ARDOUR_UI::map_file_data_format: %1"
 msgstr ""
 
-#: audio_time_axis.cc:168 mixer_strip.cc:86
-msgid "Record"
-msgstr "Grabar"
+#: gtk2_ardour/ardour_ui_options.cc:829
+msgid "programming error: unknown file data format passed to ARDOUR_UI::map_file_data_format: %1"
+msgstr ""
 
-#: audio_time_axis.cc:169 editor_actions.cc:37 mixer_strip.cc:86
-msgid "Solo"
-msgstr "Solo"
+#: gtk2_ardour/ardour_ui_options.cc:1196
+msgid "ST"
+msgstr "st"
 
-#: audio_time_axis.cc:170 editor.cc:1760 editor.cc:1859 mixer_strip.cc:86
-#: panner_ui.cc:427
-msgid "Mute"
-msgstr ""
+#: gtk2_ardour/audio_clock.cc:1948
+#: gtk2_ardour/editor.cc:204
+#: gtk2_ardour/editor_actions.cc:709
+msgid "Timecode"
+msgstr "Timecode"
 
-#: audio_time_axis.cc:171
-msgid "Edit Group"
-msgstr "Editar Grupo"
+#: gtk2_ardour/audio_clock.cc:1950
+#: gtk2_ardour/editor.cc:203
+msgid "Bars:Beats"
+msgstr "Compases:Pulsos"
 
-#: audio_time_axis.cc:172 visual_time_axis.cc:92
-msgid "Display Height"
-msgstr "Tamao de pista"
+#: gtk2_ardour/audio_clock.cc:1951
+msgid "Minutes:Seconds"
+msgstr "Minutos:Segundos"
 
-#: audio_time_axis.cc:173
-msgid "Playlist"
-msgstr "Lista de reproduccin"
+#: gtk2_ardour/audio_region_editor.cc:48
+msgid "NAME:"
+msgstr "NOMBRE:"
 
-#: audio_time_axis.cc:174 audio_time_axis.cc:741
-msgid "Automation"
-msgstr "Automatizacin"
+#: gtk2_ardour/audio_region_editor.cc:49
+msgid "play"
+msgstr "reproducir"
 
-#: audio_time_axis.cc:175 visual_time_axis.cc:93
-msgid "Visual options"
-msgstr "Opciones visuales"
+#: gtk2_ardour/audio_region_editor.cc:72
+msgid "audition this region"
+msgstr "audicionar esta región"
 
-#: audio_time_axis.cc:176 visual_time_axis.cc:94
-msgid "Hide this track"
-msgstr "Ocultar esta pista"
+#: gtk2_ardour/audio_region_editor.cc:87
+msgid "POSITION:"
+msgstr "POSICIÓN:"
 
-#: audio_time_axis.cc:333 mixer_strip.cc:927
-msgid "No group"
-msgstr "Sin grupo"
+#: gtk2_ardour/audio_region_editor.cc:89
+msgid "END:"
+msgstr "FINAL:"
 
-#: audio_time_axis.cc:702 automation_time_axis.cc:450
-#: imageframe_time_axis.cc:255 marker_time_axis.cc:211
-msgid "Height"
-msgstr "Altura"
+#: gtk2_ardour/audio_region_editor.cc:91
+msgid "LENGTH:"
+msgstr "DURACIÓN:"
 
-#: audio_time_axis.cc:703 color_manager.cc:41 imageframe_time_axis.cc:256
-#: marker_time_axis.cc:212
-msgid "Color"
-msgstr "Color"
+#: gtk2_ardour/audio_region_editor.cc:93
+msgid "SYNC POINT:"
+msgstr "PUNTO DE SINC:"
 
-#: audio_time_axis.cc:707
-msgid "Hide all crossfades"
-msgstr ""
+#: gtk2_ardour/audio_region_editor.cc:95
+msgid "FILE START:"
+msgstr "INICIO DE ARCHIVO:"
 
-#: audio_time_axis.cc:708
-msgid "Show all crossfades"
-msgstr ""
+#: gtk2_ardour/audio_region_editor.cc:141
+msgid "Region %1"
+msgstr "Región %1"
 
-#: audio_time_axis.cc:712 mixer_strip.cc:1011
-#, fuzzy
-msgid "Remote Control ID"
-msgstr "Remover punto de sincron�"
+#: gtk2_ardour/audio_region_editor.cc:223
+msgid "change region start position"
+msgstr "cambiar posición del inicio de región"
 
-#: audio_time_axis.cc:718
-#, fuzzy
-msgid "Show all automation"
-msgstr "Mostrar toda automatizacin"
+#: gtk2_ardour/audio_region_editor.cc:240
+msgid "change region end position"
+msgstr "cambiar posición del final de región"
 
-#: audio_time_axis.cc:721
-#, fuzzy
-msgid "Show existing automation"
-msgstr "Mostrar toda automatizacin"
+#: gtk2_ardour/audio_region_editor.cc:261
+msgid "change region length"
+msgstr "cambiar duración de región "
 
-#: audio_time_axis.cc:724
-#, fuzzy
-msgid "Hide all automation"
-msgstr "ocultar toda automatizacin"
+#: gtk2_ardour/audio_region_view.cc:975
+msgid "add gain control point"
+msgstr "añadir punto de control de ganancia"
 
-#: audio_time_axis.cc:729
-#, fuzzy
+#: gtk2_ardour/audio_time_axis.cc:237
 msgid "Fader"
-msgstr "Fades"
+msgstr "Atenuador"
 
-#: audio_time_axis.cc:734
-#, fuzzy
+#: gtk2_ardour/audio_time_axis.cc:242
 msgid "Pan"
-msgstr "balance"
+msgstr "Panorámica"
 
-#: audio_time_axis.cc:739
-msgid "Plugins"
-msgstr ""
+#: gtk2_ardour/audio_time_axis.cc:258
+msgid "Hide all crossfades"
+msgstr "Ocultar todos los fundidos cruzados"
+
+#: gtk2_ardour/audio_time_axis.cc:259
+msgid "Show all crossfades"
+msgstr "Mostrar todos los fundidos cruzados"
 
-#: audio_time_axis.cc:747
+#: gtk2_ardour/audio_time_axis.cc:267
 msgid "Show waveforms"
 msgstr "Mostrar onda de audio"
 
-#: audio_time_axis.cc:755
+#: gtk2_ardour/audio_time_axis.cc:277
 msgid "Traditional"
 msgstr "Tradicional"
 
-#: audio_time_axis.cc:758
+#: gtk2_ardour/audio_time_axis.cc:281
 msgid "Rectified"
-msgstr "Corregido"
+msgstr "Rectificada"
+
+#: gtk2_ardour/audio_time_axis.cc:291
+#: gtk2_ardour/editor.cc:1442
+#: gtk2_ardour/editor.cc:1445
+#: gtk2_ardour/editor.cc:1464
+#: gtk2_ardour/editor.cc:1467
+#: gtk2_ardour/editor_actions.cc:795
+msgid "Linear"
+msgstr "Lineal"
 
-#: audio_time_axis.cc:761
+#: gtk2_ardour/audio_time_axis.cc:294
+#: gtk2_ardour/editor_actions.cc:797
+msgid "Logarithmic"
+msgstr "Logarítmica"
+
+#: gtk2_ardour/audio_time_axis.cc:313
 msgid "Waveform"
 msgstr "Onda de audio"
 
-#: audio_time_axis.cc:771
-#, fuzzy
-msgid "Align with existing material"
-msgstr "Material existente"
-
-#: audio_time_axis.cc:776
-#, fuzzy
-msgid "Align with capture time"
-msgstr "Tiempo de captura"
-
-#: audio_time_axis.cc:782
-#, fuzzy
-msgid "Alignment"
-msgstr "Alinear"
-
-#: audio_time_axis.cc:788 editor.cc:527 editor_actions.cc:60
-#: mixer_strip.cc:1000 mixer_ui.cc:111
-msgid "Active"
-msgstr "Activar"
-
-#: audio_time_axis.cc:793 editor.cc:1922 editor_actions.cc:320
-#: editor_markers.cc:508 imageframe_time_axis.cc:259 location_ui.cc:57
-#: marker_time_axis.cc:215 mixer_strip.cc:1014
-msgid "Remove"
-msgstr "Quitar"
-
-#: audio_time_axis.cc:833
-#, fuzzy
-msgid "Name for playlist"
-msgstr "Nombre a captura de sesin"
-
-#: audio_time_axis.cc:835 audio_time_axis.cc:1851 editor_markers.cc:827
-#: editor_mouse.cc:4673 imageframe_time_axis.cc:248 marker_time_axis.cc:208
-#: meter_bridge_strip.cc:224 mixer_strip.cc:998 redirect_box.cc:751
-#: redirect_box.cc:1065 route_ui.cc:739 visual_time_axis.cc:326
-msgid "Rename"
-msgstr "Renombrar"
-
-#: audio_time_axis.cc:868 audio_time_axis.cc:908
-#, fuzzy
-msgid "Name for Playlist"
-msgstr "Nombre a captura de sesin"
-
-#: audio_time_axis.cc:1126 visual_time_axis.cc:383
-msgid "a track already exists with that name"
-msgstr "ya existe una pista con este nombre"
-
-#: audio_time_axis.cc:1167 editor.cc:218
+#: gtk2_ardour/audio_time_axis.cc:385
 msgid "gain"
-msgstr "volumen"
+msgstr "ganancia"
 
-#: audio_time_axis.cc:1207
+#: gtk2_ardour/audio_time_axis.cc:425
 msgid "pan"
-msgstr "balance"
-
-#: audio_time_axis.cc:1410 editor.cc:1483 selection.cc:634
-msgid "programming error: "
-msgstr ""
-
-#: audio_time_axis.cc:1848
-msgid "Current: %1"
-msgstr "Actual: %1"
+msgstr "panorámica"
 
-#: audio_time_axis.cc:1855
-msgid "New Copy"
-msgstr "Nueva Copia"
+#: gtk2_ardour/automation_line.cc:610
+msgid "Ignoring illegal points on AutomationLine \"%1\""
+msgstr "Ignorando puntos inválidos de AutomationLine \"%1\""
 
-#: audio_time_axis.cc:1857
-msgid "Clear Current"
-msgstr "Borrar actual"
-
-#: audio_time_axis.cc:1859 editor.cc:2024 editor.cc:2100
-msgid "Select"
-msgstr "Seleccionar"
-
-#: automation_line.cc:884
-#, fuzzy
+#: gtk2_ardour/automation_line.cc:800
 msgid "automation event move"
-msgstr "mover evento de automatizacin"
+msgstr "mover evento de automatización"
 
-#: automation_line.cc:886
-#, fuzzy
+#: gtk2_ardour/automation_line.cc:802
 msgid "automation range drag"
-msgstr "desplazar intervalo de automatizacin"
+msgstr "desplazar rango de automatización"
 
-#: automation_line.cc:1015 region_gain_line.cc:62
-#, fuzzy
+#: gtk2_ardour/automation_line.cc:1043
+#: gtk2_ardour/region_gain_line.cc:85
 msgid "remove control point"
-msgstr "Remover punto de sincron�"
+msgstr "Remover punto de control"
 
-#: automation_time_axis.cc:33 editor_ops.cc:2885
+#: gtk2_ardour/automation_time_axis.cc:55
+#: gtk2_ardour/editor_ops.cc:3747
 msgid "clear"
-msgstr "borrar"
-
-#: automation_time_axis.cc:75
-msgid "track height"
-msgstr ""
+msgstr "limpiar"
 
-#: automation_time_axis.cc:76
-#, fuzzy
+#: gtk2_ardour/automation_time_axis.cc:99
 msgid "automation state"
-msgstr "estado de automatizacin de balance"
+msgstr "estado de automatización"
 
-#: automation_time_axis.cc:77
-#, fuzzy
+#: gtk2_ardour/automation_time_axis.cc:100
 msgid "clear track"
-msgstr "borrar intervalos"
+msgstr "limpiar pista"
 
-#: automation_time_axis.cc:78
-#, fuzzy
+#: gtk2_ardour/automation_time_axis.cc:101
 msgid "hide track"
-msgstr "Ocultar esta pista"
-
-#: automation_time_axis.cc:184 automation_time_axis.cc:213
-#: automation_time_axis.cc:461
+msgstr "ocultar pista"
+
+#: gtk2_ardour/automation_time_axis.cc:206
+#: gtk2_ardour/automation_time_axis.cc:235
+#: gtk2_ardour/automation_time_axis.cc:423
+#: gtk2_ardour/gain_meter.cc:182
+#: gtk2_ardour/generic_pluginui.cc:337
+#: gtk2_ardour/generic_pluginui.cc:608
+#: gtk2_ardour/panner_ui.cc:177
 msgid "Manual"
-msgstr ""
-
-#: automation_time_axis.cc:186 automation_time_axis.cc:224
-#: automation_time_axis.cc:465 editor.cc:2001 editor.cc:2082 gain_meter.cc:174
-#: panner_ui.cc:91 plugin_ui.cc:395 plugin_ui.cc:637 sfdb_ui.cc:56
+msgstr "Manual"
+
+#: gtk2_ardour/automation_time_axis.cc:208
+#: gtk2_ardour/automation_time_axis.cc:246
+#: gtk2_ardour/automation_time_axis.cc:427
+#: gtk2_ardour/editor.cc:2102
+#: gtk2_ardour/editor.cc:2185
+#: gtk2_ardour/editor_actions.cc:71
+#: gtk2_ardour/gain_meter.cc:184
+#: gtk2_ardour/generic_pluginui.cc:340
+#: gtk2_ardour/generic_pluginui.cc:610
+#: gtk2_ardour/panner_ui.cc:179
 msgid "Play"
 msgstr "Reproducir"
 
-#: automation_time_axis.cc:188 automation_time_axis.cc:235
-#: automation_time_axis.cc:469 gain_meter.cc:176 panner_ui.cc:93
-#: plugin_ui.cc:398 plugin_ui.cc:639
-#, fuzzy
+#: gtk2_ardour/automation_time_axis.cc:210
+#: gtk2_ardour/automation_time_axis.cc:257
+#: gtk2_ardour/automation_time_axis.cc:431
+#: gtk2_ardour/gain_meter.cc:186
+#: gtk2_ardour/generic_pluginui.cc:343
+#: gtk2_ardour/generic_pluginui.cc:612
+#: gtk2_ardour/panner_ui.cc:181
 msgid "Write"
-msgstr "escritura"
-
-#: automation_time_axis.cc:190 automation_time_axis.cc:246
-#: automation_time_axis.cc:473 gain_meter.cc:178 panner_ui.cc:95
-#: plugin_ui.cc:401 plugin_ui.cc:641
-#, fuzzy
+msgstr "Escritura"
+
+#: gtk2_ardour/automation_time_axis.cc:212
+#: gtk2_ardour/automation_time_axis.cc:268
+#: gtk2_ardour/automation_time_axis.cc:435
+#: gtk2_ardour/gain_meter.cc:188
+#: gtk2_ardour/generic_pluginui.cc:346
+#: gtk2_ardour/generic_pluginui.cc:614
+#: gtk2_ardour/panner_ui.cc:183
 msgid "Touch"
-msgstr "tocar"
+msgstr "Tocar"
 
-#: automation_time_axis.cc:257 option_editor.cc:183 option_editor.cc:189
-#: plugin_ui.cc:404
+#: gtk2_ardour/automation_time_axis.cc:279
+#: gtk2_ardour/generic_pluginui.cc:349
 msgid "???"
-msgstr ""
+msgstr "???"
 
-#: automation_time_axis.cc:271
-#, fuzzy
+#: gtk2_ardour/automation_time_axis.cc:287
 msgid "clear automation"
-msgstr "borrar localizaciones"
+msgstr "limpiar automatización"
 
-#: automation_time_axis.cc:452 editor_actions.cc:318
+#: gtk2_ardour/automation_time_axis.cc:412
+#: gtk2_ardour/editor_actions.cc:91
+#: gtk2_ardour/imageframe_time_axis.cc:254
+#: gtk2_ardour/marker_time_axis.cc:205
+#: gtk2_ardour/route_time_axis.cc:448
+msgid "Height"
+msgstr "Altura"
+
+#: gtk2_ardour/automation_time_axis.cc:414
+#: gtk2_ardour/editor_actions.cc:746
+#: gtk2_ardour/editor_markers.cc:602
+#: gtk2_ardour/route_time_axis.cc:515
 msgid "Hide"
 msgstr "Ocultar"
 
-#: automation_time_axis.cc:454 crossfade_edit.cc:78 redirect_box.cc:1057
+#: gtk2_ardour/automation_time_axis.cc:416
+#: gtk2_ardour/crossfade_edit.cc:79
+#: gtk2_ardour/redirect_box.cc:1206
+#: gtk2_ardour/connection_editor.cc:56
 msgid "Clear"
-msgstr "Quitar todos"
+msgstr "Limpiar"
 
-#: automation_time_axis.cc:477
-#, fuzzy
+#: gtk2_ardour/automation_time_axis.cc:439
 msgid "State"
-msgstr "Inicio"
+msgstr "Estado"
 
-#: canvas-imageframe.c:104
+#: gtk2_ardour/canvas-imageframe.c:104
 msgid "pixbuf"
 msgstr ""
 
-#: canvas-imageframe.c:105
+#: gtk2_ardour/canvas-imageframe.c:105
 msgid "the pixbuf"
-msgstr ""
+msgstr "el pixbuf"
 
-#: canvas-imageframe.c:110
+#: gtk2_ardour/canvas-imageframe.c:110
 msgid "x"
-msgstr ""
+msgstr "x"
 
-#: canvas-imageframe.c:111 canvas-simpleline.c:111 canvas-simplerect.c:107
+#: gtk2_ardour/canvas-imageframe.c:111
+#: gtk2_ardour/canvas-simpleline.c:112
+#: gtk2_ardour/canvas-simplerect.c:108
 msgid "x coordinate of upper left corner of rect"
-msgstr ""
+msgstr "coordenada x de la esquina superior izquierda del rectángulo"
 
-#: canvas-imageframe.c:120
+#: gtk2_ardour/canvas-imageframe.c:120
 msgid "y"
-msgstr ""
+msgstr "y"
 
-#: canvas-imageframe.c:121 canvas-simpleline.c:121 canvas-simplerect.c:117
+#: gtk2_ardour/canvas-imageframe.c:121
+#: gtk2_ardour/canvas-simpleline.c:122
+#: gtk2_ardour/canvas-simplerect.c:118
 msgid "y coordinate of upper left corner of rect "
-msgstr ""
+msgstr "coordenada y de la esquina superior izquierda del rectángulo"
 
-#: canvas-imageframe.c:129
-#, fuzzy
+#: gtk2_ardour/canvas-imageframe.c:129
 msgid "width"
-msgstr "escritura"
+msgstr "ancho"
 
-#: canvas-imageframe.c:130
+#: gtk2_ardour/canvas-imageframe.c:130
 msgid "the width"
 msgstr ""
 
-#: canvas-imageframe.c:139
+#: gtk2_ardour/canvas-imageframe.c:139
 msgid "drawwidth"
-msgstr ""
+msgstr "dibujar ancho"
 
-#: canvas-imageframe.c:140
+#: gtk2_ardour/canvas-imageframe.c:140
 msgid "drawn width"
 msgstr ""
 
-#: canvas-imageframe.c:148
-#, fuzzy
+#: gtk2_ardour/canvas-imageframe.c:148
 msgid "height"
-msgstr "Altura"
+msgstr "altura"
 
-#: canvas-imageframe.c:149
-#, fuzzy
+#: gtk2_ardour/canvas-imageframe.c:149
 msgid "the height"
-msgstr "Altura"
+msgstr "la altura"
 
-#: canvas-imageframe.c:157
+#: gtk2_ardour/canvas-imageframe.c:157
 msgid "anchor"
 msgstr ""
 
-#: canvas-imageframe.c:158
+#: gtk2_ardour/canvas-imageframe.c:158
 msgid "the anchor"
 msgstr ""
 
-#: canvas-simpleline.c:110 canvas-simplerect.c:106
+#: gtk2_ardour/canvas-simpleline.c:111
+#: gtk2_ardour/canvas-simplerect.c:107
 msgid "x1"
-msgstr ""
+msgstr "x1"
 
-#: canvas-simpleline.c:120 canvas-simplerect.c:116
+#: gtk2_ardour/canvas-simpleline.c:121
+#: gtk2_ardour/canvas-simplerect.c:117
 msgid "y1"
-msgstr ""
+msgstr "y1"
 
-#: canvas-simpleline.c:131 canvas-simplerect.c:127
+#: gtk2_ardour/canvas-simpleline.c:132
+#: gtk2_ardour/canvas-simplerect.c:128
 msgid "x2"
-msgstr ""
+msgstr "x2"
 
-#: canvas-simpleline.c:132 canvas-simplerect.c:128
+#: gtk2_ardour/canvas-simpleline.c:133
+#: gtk2_ardour/canvas-simplerect.c:129
 msgid "x coordinate of lower right corner of rect"
-msgstr ""
+msgstr "coordenada x de la esquina inferior derecha del rectángulo"
 
-#: canvas-simpleline.c:141 canvas-simplerect.c:137
+#: gtk2_ardour/canvas-simpleline.c:142
+#: gtk2_ardour/canvas-simplerect.c:138
 msgid "y2"
-msgstr ""
+msgstr "y2"
 
-#: canvas-simpleline.c:142 canvas-simplerect.c:138
+#: gtk2_ardour/canvas-simpleline.c:143
+#: gtk2_ardour/canvas-simplerect.c:139
 msgid "y coordinate of lower right corner of rect "
-msgstr ""
+msgstr "coordenada y de la esquina inferior derecha del rectángulo"
 
-#: canvas-simpleline.c:150
+#: gtk2_ardour/canvas-simpleline.c:151
 msgid "color rgba"
-msgstr ""
+msgstr "color rgba"
 
-#: canvas-simpleline.c:151
-#, fuzzy
+#: gtk2_ardour/canvas-simpleline.c:152
 msgid "color of line"
-msgstr "linear"
+msgstr "color de la línea"
 
-#: canvas-simplerect.c:148
+#: gtk2_ardour/canvas-simplerect.c:149
 msgid "outline pixels"
-msgstr ""
+msgstr "píxeles de contorno"
 
-#: canvas-simplerect.c:149
+#: gtk2_ardour/canvas-simplerect.c:150
 msgid "width in pixels of outline"
-msgstr ""
+msgstr "ancho en píxeles del contorno"
 
-#: canvas-simplerect.c:159
+#: gtk2_ardour/canvas-simplerect.c:160
 msgid "outline what"
-msgstr ""
+msgstr "qué contornear"
 
-#: canvas-simplerect.c:160
+#: gtk2_ardour/canvas-simplerect.c:161
 msgid "which boundaries to outline (mask)"
-msgstr ""
+msgstr "cuáles bordes contornear (máscara)"
 
-#: canvas-simplerect.c:171
+#: gtk2_ardour/canvas-simplerect.c:172
 msgid "fill"
-msgstr ""
+msgstr "relleno"
 
-#: canvas-simplerect.c:172
-#, fuzzy
+#: gtk2_ardour/canvas-simplerect.c:173
 msgid "fill rectangle"
-msgstr "Reproducir seleccin cont�uamente"
+msgstr "rellenar rectágulo"
 
-#: canvas-simplerect.c:179
+#: gtk2_ardour/canvas-simplerect.c:180
 msgid "draw"
-msgstr ""
+msgstr "dibujar"
 
-#: canvas-simplerect.c:180
-#, fuzzy
+#: gtk2_ardour/canvas-simplerect.c:181
 msgid "draw rectangle"
-msgstr "intervalo"
+msgstr "dibujar rectángulo"
 
-#: canvas-simplerect.c:188
+#: gtk2_ardour/canvas-simplerect.c:189
 msgid "outline color rgba"
-msgstr ""
+msgstr "color de contorno rgba"
 
-#: canvas-simplerect.c:189
+#: gtk2_ardour/canvas-simplerect.c:190
 msgid "color of outline"
-msgstr ""
+msgstr "color del contorno"
 
-#: canvas-simplerect.c:199
+#: gtk2_ardour/canvas-simplerect.c:200
 msgid "fill color rgba"
-msgstr ""
+msgstr "color de relleno rgba"
 
-#: canvas-simplerect.c:200
+#: gtk2_ardour/canvas-simplerect.c:201
 msgid "color of fill"
-msgstr ""
-
-#: color_manager.cc:40
-#, fuzzy
-msgid "Object"
-msgstr "objeto"
-
-#: color_manager.cc:78
-#, fuzzy
-msgid "cannot open color definition file %1: %2"
-msgstr "no se pudo mostrar el la imagen Acerca de \"%1\""
+msgstr "color de relleno"
 
-#: crossfade_edit.cc:75
+#: gtk2_ardour/crossfade_edit.cc:76
 msgid "ardour: x-fade edit"
-msgstr ""
+msgstr "ardour: editor de fundido cruzado"
 
-#: crossfade_edit.cc:79 panner_ui.cc:443
-#, fuzzy
+#: gtk2_ardour/crossfade_edit.cc:80
+#: gtk2_ardour/panner_ui.cc:481
 msgid "Reset"
-msgstr "resetear"
+msgstr "Restablecer"
 
-#: crossfade_edit.cc:80
-#, fuzzy
+#: gtk2_ardour/crossfade_edit.cc:81
+#: gtk2_ardour/editor_actions.cc:56
 msgid "Fade"
-msgstr "Fades"
+msgstr "Fundido"
 
-#: crossfade_edit.cc:81
+#: gtk2_ardour/crossfade_edit.cc:82
 msgid "Out (dry)"
-msgstr ""
+msgstr "Salida (limpia)"
 
-#: crossfade_edit.cc:82
-#, fuzzy
+#: gtk2_ardour/crossfade_edit.cc:83
 msgid "Out"
-msgstr "Salidas"
+msgstr "Salida"
 
-#: crossfade_edit.cc:83
+# discutible quizás, pero nunca escuché que alguien tradujera dry/wet como seco/húmedo...
+#: gtk2_ardour/crossfade_edit.cc:84
 msgid "In (dry)"
-msgstr ""
+msgstr "Entrada (limpia)"
 
-#: crossfade_edit.cc:84
+#: gtk2_ardour/crossfade_edit.cc:85
 msgid "In"
-msgstr ""
+msgstr "Entrada"
 
-#: crossfade_edit.cc:86
+#: gtk2_ardour/crossfade_edit.cc:87
 msgid "With Pre-roll"
-msgstr ""
+msgstr "Con Pre-roll"
 
-#: crossfade_edit.cc:87
+#: gtk2_ardour/crossfade_edit.cc:88
 msgid "With Post-roll"
-msgstr ""
+msgstr "Con Post-roll"
 
-#: crossfade_edit.cc:95
+#: gtk2_ardour/crossfade_edit.cc:96
 msgid "Fade In"
-msgstr ""
+msgstr "Fundido de entrada"
 
-#: crossfade_edit.cc:96
+#: gtk2_ardour/crossfade_edit.cc:97
 msgid "Fade Out"
-msgstr ""
+msgstr "Fundido de salida"
 
-#: crossfade_edit.cc:172 editor.cc:1835 editor_actions.cc:316
-#: option_editor.cc:130
+# en realidad no existe este término en el español...
+#: gtk2_ardour/crossfade_edit.cc:175
+#: gtk2_ardour/editor.cc:1856
+#: gtk2_ardour/editor_actions.cc:744
+#: gtk2_ardour/option_editor.cc:158
 msgid "Audition"
-msgstr "Audicionando"
+msgstr "Audicionar"
 
-#: editor.cc:104 editor.cc:3616
-msgid "Slide"
-msgstr "Deslizar"
-
-#: editor.cc:105 editor.cc:3614
-msgid "Splice"
-msgstr "Reunir"
-
-#. note that this menu list starts at zero, not 1, because zero
-#. is a valid, if useless, ID.
-#.
-#. leave some breathing room
-#: editor.cc:110 editor.cc:3671 export_dialog.cc:78 export_dialog.cc:92
-#: export_dialog.cc:893 export_dialog.cc:1225 route_ui.cc:437
-msgid "None"
-msgstr "Ningn"
-
-#: editor.cc:111 editor.cc:3659
-#, fuzzy
+#: gtk2_ardour/editor.cc:112
+#: gtk2_ardour/editor.cc:3523
 msgid "CD Frames"
-msgstr "Cuadros"
+msgstr "Cuadros de CD"
 
-#: editor.cc:112 editor.cc:3661
-#, fuzzy
+#: gtk2_ardour/editor.cc:113
+#: gtk2_ardour/editor.cc:3525
 msgid "SMPTE Frames"
-msgstr "SMPTE Cuadros/segundo"
+msgstr "Cuadros SMPTE"
 
-#: editor.cc:113 editor.cc:3663
-#, fuzzy
+#: gtk2_ardour/editor.cc:114
+#: gtk2_ardour/editor.cc:3527
 msgid "SMPTE Seconds"
-msgstr "SMPTE Cuadros/segundo"
+msgstr "Segundos SMPTE"
 
-#: editor.cc:114 editor.cc:3665
+#: gtk2_ardour/editor.cc:115
+#: gtk2_ardour/editor.cc:3529
 msgid "SMPTE Minutes"
-msgstr ""
+msgstr "Minutos SMPTE"
 
-#: editor.cc:115 editor.cc:3667
-#, fuzzy
+#: gtk2_ardour/editor.cc:116
+#: gtk2_ardour/editor.cc:3531
 msgid "Seconds"
-msgstr "Minutos:Segundos"
+msgstr "Segundos"
 
-#: editor.cc:116 editor.cc:3669
-#, fuzzy
+#: gtk2_ardour/editor.cc:117
+#: gtk2_ardour/editor.cc:3533
 msgid "Minutes"
-msgstr "Salidas Principales"
+msgstr "Minutos"
 
-#: editor.cc:117 editor.cc:3641
+#: gtk2_ardour/editor.cc:118
+#: gtk2_ardour/editor.cc:3507
 msgid "Beats/32"
 msgstr "Pulsos/32"
 
-#: editor.cc:118 editor.cc:3639
+#: gtk2_ardour/editor.cc:119
+#: gtk2_ardour/editor.cc:3505
 msgid "Beats/16"
 msgstr "Pulsos/16"
 
-#: editor.cc:119 editor.cc:3637
+#: gtk2_ardour/editor.cc:120
+#: gtk2_ardour/editor.cc:3503
 msgid "Beats/8"
 msgstr "Pulsos/8"
 
-#: editor.cc:120 editor.cc:3635
+#: gtk2_ardour/editor.cc:121
+#: gtk2_ardour/editor.cc:3501
 msgid "Beats/4"
 msgstr "Pulsos/4"
 
-#: editor.cc:121 editor.cc:3633
+#: gtk2_ardour/editor.cc:122
+#: gtk2_ardour/editor.cc:3499
 msgid "Beats/3"
 msgstr "Pulsos/3"
 
-#: editor.cc:122 editor.cc:3643
+#: gtk2_ardour/editor.cc:123
+#: gtk2_ardour/editor.cc:3509
 msgid "Beats"
 msgstr "Pulsos"
 
-#: editor.cc:123 editor.cc:3645
+#: gtk2_ardour/editor.cc:124
+#: gtk2_ardour/editor.cc:3511
 msgid "Bars"
-msgstr "Compaces"
+msgstr "Compases"
 
-#: editor.cc:124 editor.cc:3647
+#: gtk2_ardour/editor.cc:125
+#: gtk2_ardour/editor.cc:3513
 msgid "Marks"
 msgstr "Marcas"
 
-#: editor.cc:125 editor.cc:144 editor.cc:3649 editor.cc:3715
-msgid "Edit Cursor"
-msgstr "Cursor de Edicin"
-
-#: editor.cc:126 editor.cc:3651
+#: gtk2_ardour/editor.cc:126
+#: gtk2_ardour/editor.cc:3515
 msgid "Region starts"
-msgstr "Comienzos de regin"
+msgstr "Inicio de región"
 
-#: editor.cc:127 editor.cc:3653
+#: gtk2_ardour/editor.cc:127
+#: gtk2_ardour/editor.cc:3517
 msgid "Region ends"
-msgstr "Fines de regin"
+msgstr "Finales de región"
 
-#: editor.cc:128 editor.cc:3657
+#: gtk2_ardour/editor.cc:128
+#: gtk2_ardour/editor.cc:3521
 msgid "Region syncs"
-msgstr "Sincronizaciones de region"
+msgstr "Sinc. de Región"
 
-#: editor.cc:129 editor.cc:3655
+#: gtk2_ardour/editor.cc:129
+#: gtk2_ardour/editor.cc:3519
 msgid "Region bounds"
-msgstr "Bordes de regin"
-
-#: editor.cc:135 editor.cc:3690
-#, fuzzy
+msgstr "Bordes de región"
+
+#: gtk2_ardour/editor.cc:134
+#: gtk2_ardour/editor.cc:3549
+#: gtk2_ardour/editor_actions.cc:669
+msgid "No Grid"
+msgstr "Sin rejilla"
+
+#: gtk2_ardour/editor.cc:135
+#: gtk2_ardour/editor.cc:3551
+#: gtk2_ardour/editor_actions.cc:670
+msgid "Grid"
+msgstr "Con rejilla"
+
+#: gtk2_ardour/editor.cc:136
+#: gtk2_ardour/editor.cc:3553
+#: gtk2_ardour/editor_actions.cc:671
 msgid "Magnetic"
-msgstr "Magn�ico"
+msgstr "Magnético"
+
+#: gtk2_ardour/editor.cc:141
+#: gtk2_ardour/editor.cc:151
+#: gtk2_ardour/editor.cc:3592
+#: gtk2_ardour/editor.cc:3617
+#: gtk2_ardour/editor_actions.cc:69
+#: gtk2_ardour/editor_actions.cc:652
+msgid "Playhead"
+msgstr "Cursor"
 
-#: editor.cc:140 editor.cc:3707 export_dialog.cc:140 export_dialog.cc:156
-#: export_dialog.cc:1068 export_dialog.cc:1072
+#: gtk2_ardour/editor.cc:142
+#: gtk2_ardour/editor.cc:3590
+#: gtk2_ardour/editor_actions.cc:654
+#: gtk2_ardour/marker_time_axis.cc:250
+msgid "Marker"
+msgstr "Marca"
+
+#: gtk2_ardour/editor.cc:143
+#: gtk2_ardour/editor.cc:152
+#: gtk2_ardour/editor.cc:3619
+#: gtk2_ardour/editor_actions.cc:653
+msgid "Mouse"
+msgstr "Ratón"
+
+#: gtk2_ardour/editor.cc:148
+#: gtk2_ardour/editor.cc:3611
+#: gtk2_ardour/export_dialog.cc:143
+#: gtk2_ardour/export_dialog.cc:159
+#: gtk2_ardour/export_dialog.cc:1172
+#: gtk2_ardour/export_dialog.cc:1176
 msgid "Left"
-msgstr "Izquierdo"
+msgstr "Izquierda"
 
-#: editor.cc:141 editor.cc:3709 export_dialog.cc:141 export_dialog.cc:157
+#: gtk2_ardour/editor.cc:149
+#: gtk2_ardour/editor.cc:3613
+#: gtk2_ardour/export_dialog.cc:144
+#: gtk2_ardour/export_dialog.cc:160
 msgid "Right"
-msgstr "Derecho"
+msgstr "Derecha"
 
-#: editor.cc:142 editor.cc:3711
+#: gtk2_ardour/editor.cc:150
+#: gtk2_ardour/editor.cc:3615
 msgid "Center"
 msgstr "Centro"
 
-#: editor.cc:143 editor.cc:3713
-msgid "Playhead"
-msgstr "Barra de reproduccin"
+#: gtk2_ardour/editor.cc:153
+#: gtk2_ardour/editor.cc:3621
+#: gtk2_ardour/editor_actions.cc:68
+msgid "Active Mark"
+msgstr "Marca activa"
+
+#: gtk2_ardour/editor.cc:159
+msgid "Mushy"
+msgstr ""
+
+#: gtk2_ardour/editor.cc:160
+msgid "Smooth"
+msgstr "Suave"
 
-#. time display buttons
-#: editor.cc:186
+#: gtk2_ardour/editor.cc:161
+msgid "Balanced multitimbral mixture"
+msgstr "Mezcla multitímbrica balanceada"
+
+#: gtk2_ardour/editor.cc:162
+msgid "Unpitched percussion with stable notes"
+msgstr "Percusión no tonal con notas estables"
+
+# "brillante" es un término común al menos en mi zona, quizás haya otras sugerencias
+#: gtk2_ardour/editor.cc:163
+msgid "Crisp monophonic instrumental"
+msgstr "Instrumantal monofónico brillante"
+
+#: gtk2_ardour/editor.cc:164
+msgid "Unpitched solo percussion"
+msgstr "Percusión no tonal"
+
+#: gtk2_ardour/editor.cc:202
 msgid "Mins:Secs"
 msgstr "Mins:Segs"
 
-#: editor.cc:189 editor_rulers.cc:354
-msgid "Frames"
-msgstr "Cuadros"
-
-#: editor.cc:190 editor_rulers.cc:374
+#: gtk2_ardour/editor.cc:206
+#: gtk2_ardour/editor_actions.cc:89
+#: gtk2_ardour/editor_actions.cc:701
+#: gtk2_ardour/tempo_dialog.cc:39
+#: gtk2_ardour/tempo_dialog.cc:58
 msgid "Tempo"
 msgstr "Tempo"
 
-#: editor.cc:191 editor_rulers.cc:368
+#: gtk2_ardour/editor.cc:207
+#: gtk2_ardour/editor_actions.cc:702
+#: gtk2_ardour/tempo_dialog.cc:273
+#: gtk2_ardour/tempo_dialog.cc:288
 msgid "Meter"
-msgstr "Vmetro"
+msgstr "Tipo de compás"
 
-#: editor.cc:192 editor_rulers.cc:380
-#, fuzzy
+#: gtk2_ardour/editor.cc:208
 msgid "Location Markers"
-msgstr "Marcadores de localizacin"
+msgstr "Marcas de posición"
 
-#: editor.cc:193 editor_rulers.cc:386
-#, fuzzy
+#: gtk2_ardour/editor.cc:209
 msgid "Range Markers"
-msgstr "Marcadores de intervalo"
+msgstr "Marcas de rango"
 
-#: editor.cc:194 editor_rulers.cc:392
+#: gtk2_ardour/editor.cc:210
 msgid "Loop/Punch Ranges"
-msgstr ""
-
-#: editor.cc:216
-msgid "range"
-msgstr "intervalo"
+msgstr "Rangos de Bucle/Pinchar"
 
-#: editor.cc:217
-msgid "object"
-msgstr "objeto"
+#: gtk2_ardour/editor.cc:211
+#: gtk2_ardour/editor_actions.cc:705
+msgid "CD Markers"
+msgstr "Marcas de CD"
 
-#: editor.cc:219
-msgid "zoom"
-msgstr "zoom"
-
-#: editor.cc:220
-msgid "timefx"
-msgstr ""
-
-#: editor.cc:221
-msgid "listen"
-msgstr ""
-
-#: editor.cc:223
+#: gtk2_ardour/editor.cc:228
 msgid "mode"
 msgstr "modo"
 
-#: editor.cc:224
+#: gtk2_ardour/editor.cc:229
 msgid "automation"
-msgstr "automatizacin"
-
-#: editor.cc:226
-msgid "Edit Mode"
-msgstr "Modo de edicin"
-
-#: editor.cc:227 editor_actions.cc:284
-msgid "Snap To"
-msgstr "Ajustar a"
-
-#: editor.cc:228
-#, fuzzy
-msgid "Snap Mode"
-msgstr "Modo de ajuste"
-
-#: editor.cc:229
-msgid "Zoom Focus"
-msgstr "Foco de Zoom"
-
-#. </CMT Additions>
-#. nudge
-#: editor.cc:237 editor.cc:1900 editor.cc:2066 editor.cc:2122
-msgid "Nudge"
-msgstr "Retocar"
-
-#: editor.cc:470
-msgid "Zoom in"
-msgstr "Acercar"
-
-#: editor.cc:471
-msgid "Zoom out"
-msgstr "Alejar"
-
-#: editor.cc:474
-msgid "Zoom to session"
-msgstr "Mostrar toda la sesin"
-
-#: editor.cc:489
-msgid "Zoom Span"
-msgstr "Alcance de zoom"
-
-#: editor.cc:502 editor.cc:528 editor_actions.cc:62 mixer_ui.cc:86
-#: mixer_ui.cc:112
-#, fuzzy
-msgid "Visible"
-msgstr "visible"
-
-#: editor.cc:503 editor.cc:526
-#, fuzzy
+msgstr "automatización"
+
+#: gtk2_ardour/editor.cc:520
+#: gtk2_ardour/editor.cc:547
+#: gtk2_ardour/editor_actions.cc:115
+#: gtk2_ardour/mixer_ui.cc:89
+#: gtk2_ardour/mixer_ui.cc:116
+#: gtk2_ardour/analysis_window.cc:68
+msgid "Show"
+msgstr "Mostrar"
+
+#: gtk2_ardour/editor.cc:521
+#: gtk2_ardour/editor.cc:545
 msgid "Name"
-msgstr "Cuadros"
+msgstr "Nombre"
+
+#: gtk2_ardour/editor.cc:546
+#: gtk2_ardour/editor_actions.cc:113
+#: gtk2_ardour/mixer_strip.cc:1052
+#: gtk2_ardour/mixer_ui.cc:115
+#: gtk2_ardour/route_time_axis.cc:510
+msgid "Active"
+msgstr "Activo"
 
-#: editor.cc:602 editor.cc:669
-#, fuzzy
+#: gtk2_ardour/editor.cc:624
+#: gtk2_ardour/editor.cc:695
 msgid "Regions"
-msgstr "Regin"
+msgstr "Regiones"
 
-#: editor.cc:642 editor.cc:681
+#: gtk2_ardour/editor.cc:667
+#: gtk2_ardour/editor.cc:709
 msgid "Chunks"
-msgstr "Trechos"
+msgstr "Fragmentos"
 
-#: editor.cc:672
-#, fuzzy
+#: gtk2_ardour/editor.cc:698
 msgid "Tracks/Busses"
 msgstr "Pistas/Buses"
 
-#: editor.cc:675
+#: gtk2_ardour/editor.cc:701
 msgid "Snapshots"
 msgstr "Capturas"
 
-#: editor.cc:678
+#: gtk2_ardour/editor.cc:704
 msgid "Edit Groups"
-msgstr "Editar Grupos"
+msgstr "Grupos de Edición"
 
-#: editor.cc:727
-msgid "Nudge region/selection forwards"
-msgstr "Retocar regin/selecin adelante"
-
-#: editor.cc:728
-msgid "Nudge region/selection backwards"
-msgstr "Retocar regin/selecin atr�"
-
-#: editor.cc:735 editor_mixer.cc:299
-msgid "ardour: editor"
-msgstr ""
+#: gtk2_ardour/editor.cc:767
+msgid "Nudge Region/Selection Forwards"
+msgstr "Mover Región/Selección hacia adelante"
 
-#: editor.cc:736
-msgid "ardour_editor"
-msgstr ""
+#: gtk2_ardour/editor.cc:768
+msgid "Nudge Region/Selection Backwards"
+msgstr "Mover Región/Selección hacia atrás"
 
-#: editor.cc:1183
-msgid "ardour: editor: "
-msgstr ""
+#: gtk2_ardour/editor.cc:798
+#: gtk2_ardour/editor_mixer.cc:392
+msgid "Editor"
+msgstr "Editor"
 
-#. force name
-#: editor.cc:1268 editor.cc:1277 editor_markers.cc:870
+#: gtk2_ardour/editor.cc:1258
+#: gtk2_ardour/editor.cc:1266
+#: gtk2_ardour/editor.cc:4605
+#: gtk2_ardour/editor.cc:4632
+#: gtk2_ardour/editor_actions.cc:84
 msgid "Loop"
-msgstr "c�lico"
+msgstr "Bucle"
 
-#. force name
-#: editor.cc:1282 editor.cc:1291 editor_markers.cc:896
+#: gtk2_ardour/editor.cc:1271
+#: gtk2_ardour/editor.cc:1279
+#: gtk2_ardour/editor_actions.cc:85
 msgid "Punch"
-msgstr "Insercin"
+msgstr "Pinchar"
 
-#: editor.cc:1439 editor_mouse.cc:1742
+#: gtk2_ardour/editor.cc:1422
+#: gtk2_ardour/editor_mouse.cc:2021
 msgid "programming error: fade in canvas item has no regionview data pointer!"
 msgstr ""
 
-#: editor.cc:1451 editor.cc:1468 redirect_box.cc:1073
+#: gtk2_ardour/editor.cc:1434
+#: gtk2_ardour/editor.cc:1456
+#: gtk2_ardour/redirect_box.cc:1226
 msgid "Deactivate"
 msgstr "Desactivar"
 
-#. activation
-#: editor.cc:1453 editor.cc:1470 redirect_box.cc:1071
+#: gtk2_ardour/editor.cc:1436
+#: gtk2_ardour/editor.cc:1458
+#: gtk2_ardour/redirect_box.cc:1224
 msgid "Activate"
 msgstr "Activar"
 
-#: editor.cc:1458 editor.cc:1475
-#, fuzzy
-msgid "Linear"
-msgstr "linear"
-
-#: editor.cc:1459 editor.cc:1476 editor_actions.cc:376
-#, fuzzy
-msgid "Slowest"
-msgstr "Menor"
-
-#: editor.cc:1460 editor.cc:1477 editor_actions.cc:377
-#, fuzzy
-msgid "Slow"
-msgstr "Solo"
-
-#: editor.cc:1461 editor.cc:1478 editor_actions.cc:379
-#, fuzzy
-msgid "Fast"
-msgstr "Fades"
-
-#: editor.cc:1462 editor.cc:1479 editor_actions.cc:381
-#, fuzzy
-msgid "Fastest"
-msgstr "r�ido"
+#: gtk2_ardour/editor.cc:1476
+#: gtk2_ardour/route_time_axis.cc:1671
+#: gtk2_ardour/selection.cc:716
+#: gtk2_ardour/selection.cc:755
+msgid "programming error: "
+msgstr "error de programación:"
 
-#: editor.cc:1589 editor.cc:1597
+#: gtk2_ardour/editor.cc:1583
+#: gtk2_ardour/editor.cc:1591
+#: gtk2_ardour/editor_ops.cc:3632
 msgid "Freeze"
-msgstr "Unir regiones"
+msgstr "Congelar"
 
-#: editor.cc:1593
+#: gtk2_ardour/editor.cc:1587
 msgid "Unfreeze"
-msgstr "Separar regiones"
+msgstr "Descongelar"
+
+#: gtk2_ardour/editor.cc:1772
+#: gtk2_ardour/editor.cc:1896
+#: gtk2_ardour/mixer_strip.cc:88
+#: gtk2_ardour/mixer_strip.cc:109
+#: gtk2_ardour/mixer_strip.cc:493
+#: gtk2_ardour/panner_ui.cc:465
+#: gtk2_ardour/route_time_axis.cc:189
+msgid "Mute"
+msgstr "Mudo"
 
-#: editor.cc:1762 editor.cc:1857
-#, fuzzy
+#: gtk2_ardour/editor.cc:1774
 msgid "Unmute"
-msgstr "mudo"
-
-#. non-operative menu items for menu bar
-#. show editors
-#: editor.cc:1766 editor.cc:2046 editor.cc:2748 editor_actions.cc:27
-#: editor_markers.cc:507 mixer_strip.cc:495 mixer_strip.cc:563
-#: redirect_box.cc:1079
+msgstr "No Mudo"
+
+#: gtk2_ardour/editor.cc:1778
+#: gtk2_ardour/editor.cc:2149
+#: gtk2_ardour/editor_actions.cc:51
+#: gtk2_ardour/editor_markers.cc:669
+#: gtk2_ardour/mixer_strip.cc:576
+#: gtk2_ardour/mixer_strip.cc:638
+#: gtk2_ardour/redirect_box.cc:1232
 msgid "Edit"
 msgstr "Editar"
 
-#: editor.cc:1771
+#: gtk2_ardour/editor.cc:1783
 msgid "Convert to short"
-msgstr ""
+msgstr "Convertir a corto"
 
-#: editor.cc:1773
+#: gtk2_ardour/editor.cc:1785
 msgid "Convert to full"
-msgstr ""
+msgstr "Convertir a completo"
 
-#: editor.cc:1784
-#, fuzzy
+#: gtk2_ardour/editor.cc:1796
 msgid "Crossfade"
-msgstr "editar fade in"
+msgstr "Fundido cruzado"
+
+#: gtk2_ardour/editor.cc:1845
+#: gtk2_ardour/editor.cc:4069
+#: gtk2_ardour/editor_actions.cc:461
+#: gtk2_ardour/editor_markers.cc:604
+#: gtk2_ardour/editor_markers.cc:1091
+#: gtk2_ardour/editor_mouse.cc:5524
+#: gtk2_ardour/imageframe_time_axis.cc:247
+#: gtk2_ardour/marker_time_axis.cc:202
+#: gtk2_ardour/mixer_strip.cc:1050
+#: gtk2_ardour/redirect_box.cc:889
+#: gtk2_ardour/redirect_box.cc:1218
+#: gtk2_ardour/route_time_axis.cc:885
+#: gtk2_ardour/route_time_axis.cc:1404
+#: gtk2_ardour/route_ui.cc:955
+#: gtk2_ardour/visual_time_axis.cc:316
+msgid "Rename"
+msgstr "Renombrar"
 
-#: editor.cc:1827
+#: gtk2_ardour/editor.cc:1846
 msgid "Popup region editor"
-msgstr "Editor de regiones"
+msgstr "Mostrar Editor de Regiones"
 
-#: editor.cc:1828
-#, fuzzy
+#: gtk2_ardour/editor.cc:1849
 msgid "Raise to top layer"
-msgstr "Elevar regin a la capa m� alta"
+msgstr "Colocar Región encima"
 
-#: editor.cc:1829
-#, fuzzy
+#: gtk2_ardour/editor.cc:1850
 msgid "Lower to bottom layer"
-msgstr "Enviar regin a capa m� baja"
+msgstr "Colocar Región debajo"
 
-#: editor.cc:1831
+#: gtk2_ardour/editor.cc:1852
 msgid "Define sync point"
-msgstr "Definir punto de sincron�"
+msgstr "Definir Punto de Sincronía"
 
-#: editor.cc:1832
+#: gtk2_ardour/editor.cc:1853
 msgid "Remove sync point"
-msgstr "Remover punto de sincron�"
+msgstr "Remover Punto de Sincronía"
 
-#: editor.cc:1837
-#, fuzzy
+#: gtk2_ardour/editor.cc:1858
 msgid "Bounce"
-msgstr "intervalo"
+msgstr ""
 
-#: editor.cc:1840
-#, fuzzy
-msgid "Analyze region"
-msgstr "Reproducir Regin"
+#: gtk2_ardour/editor.cc:1861
+#: gtk2_ardour/editor.cc:2054
+msgid "Spectral Analysis"
+msgstr "Análisis espectral"
 
-#: editor.cc:1852
-#, fuzzy
+#: gtk2_ardour/editor.cc:1875
+#: gtk2_ardour/editor_actions.cc:662
+#: gtk2_ardour/editor_markers.cc:605
 msgid "Lock"
-msgstr "bloquear"
+msgstr "Bloquear"
 
-#: editor.cc:1853
-#, fuzzy
-msgid "Unlock"
-msgstr "Desbloquear"
+#: gtk2_ardour/editor.cc:1882
+msgid "Glue to Bars&Beats"
+msgstr "Vincular a Compases y Pulsos"
+
+#: gtk2_ardour/editor.cc:1906
+msgid "Opaque"
+msgstr "Región opaca"
 
-#: editor.cc:1863
-#, fuzzy
+#: gtk2_ardour/editor.cc:1916
 msgid "Original position"
-msgstr "Posicin original"
+msgstr "Posición original"
 
-#: editor.cc:1869
-msgid "Toggle envelope visibility"
-msgstr ""
+#: gtk2_ardour/editor.cc:1929
+msgid "Reset Envelope"
+msgstr "Restablecer Envolvente"
+
+#: gtk2_ardour/editor.cc:1931
+msgid "Envelope Visible"
+msgstr "Envolvente Visible"
 
-#: editor.cc:1870
-#, fuzzy
-msgid "Toggle envelope active"
-msgstr "activar"
+#: gtk2_ardour/editor.cc:1940
+msgid "Envelope Active"
+msgstr "Envolvente Activa"
 
-#: editor.cc:1874
-#, fuzzy
+#: gtk2_ardour/editor.cc:1954
 msgid "DeNormalize"
-msgstr "Normalizar"
+msgstr "Deshacer Normalización"
 
-#: editor.cc:1876
-#, fuzzy
+#: gtk2_ardour/editor.cc:1956
 msgid "Normalize"
 msgstr "Normalizar"
 
-#: editor.cc:1879
-#, fuzzy
+#: gtk2_ardour/editor.cc:1960
+#: gtk2_ardour/editor_actions.cc:500
 msgid "Reverse"
-msgstr "Invertir"
+msgstr "Al revés"
 
-#. range related stuff
-#: editor.cc:1885
-#, fuzzy
+#: gtk2_ardour/editor.cc:1965
+msgid "Add Single Range"
+msgstr "Agregar nueva Región"
+
+#: gtk2_ardour/editor.cc:1966
+#: gtk2_ardour/editor.cc:2073
 msgid "Add Range Markers"
-msgstr "Marcadores de intervalo"
+msgstr "Insertar Marcas de Rango"
 
-#: editor.cc:1886
-#, fuzzy
-msgid "Set Range"
-msgstr "Separar Regin"
+#: gtk2_ardour/editor.cc:1971
+msgid "Set Range Selection"
+msgstr "Usar como selección de rango"
 
-#: editor.cc:1895
-#, fuzzy
+#: gtk2_ardour/editor.cc:1980
 msgid "Nudge fwd"
-msgstr "Retocar"
+msgstr "Mover hacia adelante"
 
-#: editor.cc:1896
-#, fuzzy
+#: gtk2_ardour/editor.cc:1981
 msgid "Nudge bwd"
-msgstr "Retocar"
+msgstr "Mover hacia atrás"
 
-#: editor.cc:1897
+#: gtk2_ardour/editor.cc:1982
 msgid "Nudge fwd by capture offset"
-msgstr ""
+msgstr "Mover hacia adelante por la compensación de captura"
 
-#: editor.cc:1898
+#: gtk2_ardour/editor.cc:1983
 msgid "Nudge bwd by capture offset"
-msgstr ""
-
-#: editor.cc:1907
-msgid "Start to edit cursor"
-msgstr "Desde principio hasta cursor de edicin"
+msgstr "Mover hacia atrás por la compensación de captura"
 
-#: editor.cc:1908
-msgid "Edit cursor to end"
-msgstr "Desde cursor de edicin hasta final"
-
-#: editor.cc:1910 gain_meter.cc:181 gain_meter.cc:813 panner_ui.cc:98
-#: panner_ui.cc:803
+#: gtk2_ardour/editor.cc:1985
+#: gtk2_ardour/editor.cc:2169
+#: gtk2_ardour/editor.cc:2225
+#: gtk2_ardour/editor_actions.cc:70
+msgid "Nudge"
+msgstr "Mover"
+
+#: gtk2_ardour/editor.cc:1992
+msgid "Start to edit point"
+msgstr "Desde principio hasta Punto de Edición"
+
+#: gtk2_ardour/editor.cc:1997
+msgid "Edit point to end"
+msgstr "Desde Punto de Edición hasta el final"
+
+#: gtk2_ardour/editor.cc:2002
+#: gtk2_ardour/editor_actions.cc:368
+msgid "Trim To Loop"
+msgstr "Recortar por fuera de Bucle"
+
+#: gtk2_ardour/editor.cc:2003
+#: gtk2_ardour/editor_actions.cc:371
+msgid "Trim To Punch"
+msgstr "Recortar por fuera del Rango de Pinchado"
+
+#: gtk2_ardour/editor.cc:2005
+#: gtk2_ardour/editor_actions.cc:94
+#: gtk2_ardour/gain_meter.cc:132
+#: gtk2_ardour/gain_meter.cc:658
+#: gtk2_ardour/panner_ui.cc:200
+#: gtk2_ardour/panner_ui.cc:848
 msgid "Trim"
-msgstr "Cortar"
+msgstr "Recortar"
 
-#: editor.cc:1913
+#: gtk2_ardour/editor.cc:2008
 msgid "Split"
 msgstr "Separar"
 
-#: editor.cc:1916
+#: gtk2_ardour/editor.cc:2015
+#: gtk2_ardour/editor_actions.cc:503
 msgid "Make mono regions"
 msgstr "Crear regiones mono"
 
-#: editor.cc:1919
+#: gtk2_ardour/editor.cc:2018
+#: gtk2_ardour/editor.cc:3370
 msgid "Duplicate"
 msgstr "Duplicar"
 
-#: editor.cc:1920
+#: gtk2_ardour/editor.cc:2019
+msgid "Multi-Duplicate"
+msgstr "Duplicado múltiple"
+
+#: gtk2_ardour/editor.cc:2020
+#: gtk2_ardour/editor_actions.cc:506
 msgid "Fill Track"
 msgstr "Llenar Pista"
 
-#: editor.cc:1924
-#, fuzzy
-msgid "Destroy"
-msgstr "Destruir"
+#: gtk2_ardour/editor.cc:2022
+#: gtk2_ardour/editor.cc:4064
+#: gtk2_ardour/editor_actions.cc:597
+#: gtk2_ardour/editor_actions.cc:748
+#: gtk2_ardour/editor_markers.cc:610
+#: gtk2_ardour/editor_markers.cc:670
+#: gtk2_ardour/imageframe_time_axis.cc:258
+#: gtk2_ardour/location_ui.cc:58
+#: gtk2_ardour/marker_time_axis.cc:209
+#: gtk2_ardour/mixer_strip.cc:1070
+#: gtk2_ardour/route_time_axis.cc:517
+msgid "Remove"
+msgstr "Borrar"
+
+#: gtk2_ardour/editor.cc:2033
+#: gtk2_ardour/analysis_window.cc:48
+msgid "Selected regions"
+msgstr "Regiones seleccionadas"
 
-#: editor.cc:1954
-#, fuzzy
+#: gtk2_ardour/editor.cc:2049
 msgid "Play range"
-msgstr "Reproducir el intervalo cont�uamente"
+msgstr "Reproducir Rango"
 
-#: editor.cc:1955
-#, fuzzy
+#: gtk2_ardour/editor.cc:2050
 msgid "Loop range"
-msgstr "rango de reproduccin cont�ua"
+msgstr "Rango de Bucle"
+
+#: gtk2_ardour/editor.cc:2058
+#: gtk2_ardour/editor_actions.cc:577
+msgid "Extend Range to End of Region"
+msgstr "Extender Rango hasta el final de la región"
 
-#: editor.cc:1959
-#, fuzzy
-msgid "Analyze range"
-msgstr "Reproducir el intervalo cont�uamente"
+#: gtk2_ardour/editor.cc:2059
+#: gtk2_ardour/editor_actions.cc:579
+msgid "Extend Range to Start of Region"
+msgstr "Extender Rango hasta el inicio de la región"
 
-#: editor.cc:1963
-#, fuzzy
-msgid "Separate range to track"
-msgstr "Separar Regin"
+#: gtk2_ardour/editor.cc:2062
+msgid "Convert to region in-place"
+msgstr "Convertir a región in situ"
 
-#: editor.cc:1964
-#, fuzzy
-msgid "Separate range to region list"
-msgstr "Reproducir regin seleccionada cont�uamente"
+#: gtk2_ardour/editor.cc:2063
+msgid "Convert to region in region list"
+msgstr "Convertir a Región en la Lista de Regiones"
 
-#: editor.cc:1967
-#, fuzzy
+#: gtk2_ardour/editor.cc:2066
 msgid "Select all in range"
-msgstr "Seleccionar todo dentro de pista"
+msgstr "Seleccionar todo dentro del Rango"
 
-#: editor.cc:1969 editor.cc:2014
-#, fuzzy
-msgid "Set range to loop range"
-msgstr "seleccionar rango de zoom"
+#: gtk2_ardour/editor.cc:2069
+msgid "Set loop from selection"
+msgstr "Definir Bucle a partir de Selección"
 
-#: editor.cc:1970 editor.cc:2015
-#, fuzzy
-msgid "Set range to punch range"
-msgstr "Seleccionar intervalo actual"
+#: gtk2_ardour/editor.cc:2070
+msgid "Set punch from selection"
+msgstr "Definir Rango de Pinchado a partir de Selección"
 
-#: editor.cc:1972
-#, fuzzy
+#: gtk2_ardour/editor.cc:2075
 msgid "Crop region to range"
-msgstr "Acortar regin hasta la seleccin"
+msgstr "Recortar Región hasta Selección"
 
-#: editor.cc:1973
-#, fuzzy
+#: gtk2_ardour/editor.cc:2076
 msgid "Fill range with region"
-msgstr "Crear Regin"
+msgstr "Llenar Rango con Región"
 
-#: editor.cc:1974
-#, fuzzy
+#: gtk2_ardour/editor.cc:2077
 msgid "Duplicate range"
-msgstr "Duplicar"
+msgstr "Duplicar Rango"
 
-#: editor.cc:1975
-#, fuzzy
+#: gtk2_ardour/editor.cc:2078
 msgid "Create chunk from range"
-msgstr "Crear trecho a partir de seleccin"
+msgstr "Crear fragmento a partir de Rango"
 
-#: editor.cc:1977
-#, fuzzy
-msgid "Bounce range"
-msgstr "intervalo"
+#: gtk2_ardour/editor.cc:2080
+msgid "Consolidate range"
+msgstr "Consolidar Rango"
 
-#: editor.cc:1978
-#, fuzzy
-msgid "Export range"
-msgstr "Exportar regin"
+#: gtk2_ardour/editor.cc:2081
+msgid "Bounce range to region list"
+msgstr ""
 
-#: editor.cc:1980
-#, fuzzy
-msgid "Range"
-msgstr "intervalo"
+#: gtk2_ardour/editor.cc:2082
+msgid "Export range"
+msgstr "Exportar Rango"
 
-#: editor.cc:1995 editor.cc:2080
-#, fuzzy
-msgid "Play from edit cursor"
-msgstr "Reproducir desde el cursor"
+#: gtk2_ardour/editor.cc:2096
+#: gtk2_ardour/editor.cc:2183
+msgid "Play from edit point"
+msgstr "Reproducir desde Punto de Edición"
 
-#: editor.cc:1996 editor.cc:2081
+#: gtk2_ardour/editor.cc:2097
+#: gtk2_ardour/editor.cc:2184
 msgid "Play from start"
 msgstr "Reproducir desde el principio"
 
-#: editor.cc:1997
-#, fuzzy
+#: gtk2_ardour/editor.cc:2098
 msgid "Play region"
-msgstr "Reproducir Regin"
+msgstr "Reproducir Región"
 
-#: editor.cc:1999
-#, fuzzy
+#: gtk2_ardour/editor.cc:2100
+#: gtk2_ardour/editor_actions.cc:380
 msgid "Loop Region"
-msgstr "Reproducir regin cont�uamente"
+msgstr "Reproducir Región continuamente"
 
-#: editor.cc:2009 editor.cc:2090
-#, fuzzy
+#: gtk2_ardour/editor.cc:2110
+#: gtk2_ardour/editor.cc:2193
 msgid "Select All in track"
-msgstr "Seleccionar todo dentro de pista"
+msgstr "Seleccionar todo dentro de la pista"
 
-#: editor.cc:2010 editor.cc:2091 redirect_box.cc:1067
-#, fuzzy
+#: gtk2_ardour/editor.cc:2111
+#: gtk2_ardour/editor.cc:2194
+#: gtk2_ardour/editor_actions.cc:179
+#: gtk2_ardour/redirect_box.cc:1220
 msgid "Select All"
 msgstr "Seleccionar todo"
 
-#: editor.cc:2011 editor.cc:2092
-#, fuzzy
+#: gtk2_ardour/editor.cc:2112
+#: gtk2_ardour/editor.cc:2195
 msgid "Invert selection in track"
-msgstr "Invertir dentro de pista"
+msgstr "Invertir selección dentro de la pista"
 
-#: editor.cc:2012 editor.cc:2093
-#, fuzzy
+#: gtk2_ardour/editor.cc:2113
+#: gtk2_ardour/editor.cc:2196
 msgid "Invert selection"
-msgstr "Grabar seleccin"
+msgstr "Invertir selección"
 
-#: editor.cc:2017 editor.cc:2095
-#, fuzzy
-msgid "Select all after edit cursor"
-msgstr "Desde principio hasta cursor de edicin"
+#: gtk2_ardour/editor.cc:2115
+msgid "Set range to loop range"
+msgstr "Definir Rango en base a Rango a Bucle"
 
-#: editor.cc:2018 editor.cc:2096
-#, fuzzy
-msgid "Select all before edit cursor"
-msgstr "Desde principio hasta cursor de edicin"
+#: gtk2_ardour/editor.cc:2116
+msgid "Set range to punch range"
+msgstr "Definir Rango en basea a Rango de Pinchado"
 
-#: editor.cc:2019 editor.cc:2097
-#, fuzzy
-msgid "Select all after playhead"
-msgstr "Ubicar desde barra de reproduccin"
+#: gtk2_ardour/editor.cc:2118
+#: gtk2_ardour/editor_actions.cc:185
+msgid "Select All After Edit Point"
+msgstr "Seleccionar Todo desde el Punto de Edición"
 
-#: editor.cc:2020 editor.cc:2098
-#, fuzzy
-msgid "Select all before playhead"
-msgstr "Ubicar desde barra de reproduccin"
+#: gtk2_ardour/editor.cc:2119
+#: gtk2_ardour/editor_actions.cc:187
+msgid "Select All Before Edit Point"
+msgstr "Seleccionar Todo hasta el Punto de Edición"
+
+#: gtk2_ardour/editor.cc:2120
+msgid "Select All After Playhead"
+msgstr "Seleccionar Todo desde Cursor"
+
+#: gtk2_ardour/editor.cc:2121
+msgid "Select All Before Playhead"
+msgstr "Seleccionar Todo hasta Cursor"
+
+#: gtk2_ardour/editor.cc:2122
+msgid "Select All Between Playhead & Edit Point"
+msgstr "Seleccionar Todo entre Cursor y Punto de Edición"
+
+#: gtk2_ardour/editor.cc:2123
+msgid "Select All Within Playhead & Edit Point"
+msgstr "Seleccionar Todo dentro de Cursor y Punto de Edición"
 
-#: editor.cc:2021
-#, fuzzy
-msgid "Select all between cursors"
-msgstr "Desde principio hasta cursor de edicin"
+#: gtk2_ardour/editor.cc:2124
+msgid "Select Range Between Playhead & Edit Point"
+msgstr "Seleccionar Rango entre Cursor y Punto de Edición"
 
-#. standard editing stuff
-#: editor.cc:2032 editor.cc:2108 editor.cc:3483 editor_actions.cc:214
-#: redirect_box.cc:1060
+#: gtk2_ardour/editor.cc:2128
+#: gtk2_ardour/editor.cc:2203
+#: gtk2_ardour/editor_actions.cc:81
+#: gtk2_ardour/editor_actions.cc:82
+msgid "Select"
+msgstr "Seleccionar"
+
+#: gtk2_ardour/editor.cc:2136
+#: gtk2_ardour/editor.cc:2211
+#: gtk2_ardour/editor_actions.cc:535
+#: gtk2_ardour/redirect_box.cc:1209
 msgid "Cut"
 msgstr "Cortar"
 
-#: editor.cc:2033 editor.cc:2109 editor.cc:3485 editor_actions.cc:219
-#: redirect_box.cc:1062
+#: gtk2_ardour/editor.cc:2137
+#: gtk2_ardour/editor.cc:2212
+#: gtk2_ardour/editor_actions.cc:540
+#: gtk2_ardour/redirect_box.cc:1211
 msgid "Copy"
 msgstr "Copiar"
 
-#: editor.cc:2034
-#, fuzzy
-msgid "Paste at edit cursor"
-msgstr "Desde principio hasta cursor de edicin"
-
-#: editor.cc:2035
-#, fuzzy
-msgid "Paste at mouse"
-msgstr "usar salidas Master"
+#: gtk2_ardour/editor.cc:2138
+#: gtk2_ardour/editor.cc:2213
+#: gtk2_ardour/editor_actions.cc:542
+#: gtk2_ardour/redirect_box.cc:1217
+msgid "Paste"
+msgstr "Pegar"
 
-#: editor.cc:2039 editor.cc:3490
+#: gtk2_ardour/editor.cc:2142
+#: gtk2_ardour/editor_actions.cc:48
 msgid "Align"
 msgstr "Alinear"
 
-#: editor.cc:2040 editor.cc:3492
+#: gtk2_ardour/editor.cc:2143
 msgid "Align Relative"
-msgstr "Alinear relativamente"
+msgstr "Alinear Relativamente"
 
-#: editor.cc:2044
+#: gtk2_ardour/editor.cc:2147
 msgid "Insert chunk"
-msgstr "Insertar trecho"
+msgstr "Insertar fragmento"
 
-#: editor.cc:2051
-#, fuzzy
+#: gtk2_ardour/editor.cc:2154
 msgid "Insert Selected Region"
-msgstr "Reproducir regin seleccionada cont�uamente"
+msgstr "Insertar Región seleccionada"
 
-#: editor.cc:2052
+#: gtk2_ardour/editor.cc:2155
 msgid "Insert Existing Audio"
-msgstr ""
+msgstr "Insertar audio existente"
 
-#: editor.cc:2061 editor.cc:2117
+#: gtk2_ardour/editor.cc:2164
+#: gtk2_ardour/editor.cc:2220
 msgid "Nudge entire track fwd"
-msgstr "Retocar toda la pista adelante"
+msgstr "Mover toda la Pista hacia adelante"
 
-#: editor.cc:2062 editor.cc:2118
-msgid "Nudge track after edit cursor fwd"
-msgstr "Retocar pista desde cursor de edicin adelante"
+#: gtk2_ardour/editor.cc:2165
+#: gtk2_ardour/editor.cc:2221
+msgid "Nudge track after edit point fwd"
+msgstr "Mover la Pista hacia adelante después del Punto de Edición"
 
-#: editor.cc:2063 editor.cc:2119
+#: gtk2_ardour/editor.cc:2166
+#: gtk2_ardour/editor.cc:2222
 msgid "Nudge entire track bwd"
-msgstr "Retocar toda la pista atr�"
+msgstr "Mover toda la Pista hacia atrás"
 
-#: editor.cc:2064 editor.cc:2120
-msgid "Nudge track after edit cursor bwd"
-msgstr "Retocar toda la pista, desde cursor de edicin atr�"
+#: gtk2_ardour/editor.cc:2167
+#: gtk2_ardour/editor.cc:2223
+msgid "Nudge track after edit point bwd"
+msgstr "Mover Pista desde el Punto de Edición hacia atrás"
 
-#: editor.cc:2110 editor.cc:3487 editor_actions.cc:221 redirect_box.cc:1064
-msgid "Paste"
-msgstr "Pegar"
+#: gtk2_ardour/editor.cc:2198
+msgid "Select all after edit point"
+msgstr "Seleccionar todo después del Punto de Edición"
 
-#: editor.cc:2630
-msgid "select/move objects"
-msgstr "selecionar/mover objetos"
+#: gtk2_ardour/editor.cc:2199
+msgid "Select all before edit point"
+msgstr "Seleccionar todo antes del Punto de Edición"
 
-#: editor.cc:2631
-msgid "select/move ranges"
-msgstr "selecionar/mover intervalos"
+#: gtk2_ardour/editor.cc:2200
+msgid "Select all after playhead"
+msgstr "Seleccionar todo después del Cursor"
 
-#: editor.cc:2632
-msgid "draw gain automation"
-msgstr "dibujar automatizacin de volumen"
+#: gtk2_ardour/editor.cc:2201
+msgid "Select all before playhead"
+msgstr "Seleccionar todo antes del Cursor"
 
-#: editor.cc:2633
-msgid "select zoom range"
-msgstr "seleccionar rango de zoom"
+#: gtk2_ardour/editor.cc:2944
+msgid "Select/Move Objects"
+msgstr "Selecionar/Mover Objetos"
 
-#: editor.cc:2634
-msgid "stretch/shrink regions"
-msgstr "estirar/encoger regiones"
+#: gtk2_ardour/editor.cc:2945
+msgid "Select/Move Ranges"
+msgstr "Selecionar/Mover Rangos"
 
-#: editor.cc:2635
-#, fuzzy
-msgid "listen to specific regions"
-msgstr "Reproducir regin seleccionada cont�uamente"
+#: gtk2_ardour/editor.cc:2946
+msgid "Draw Gain Automation"
+msgstr "Dibujar automatización de ganancia"
 
-#: editor.cc:2746
-msgid "Start:"
-msgstr "Inicio:"
+#: gtk2_ardour/editor.cc:2947
+msgid "Select Zoom Range"
+msgstr "Seleccionar rango de zoom"
 
-#: editor.cc:2747
-msgid "End:"
-msgstr "Final:"
+#: gtk2_ardour/editor.cc:2948
+msgid "Stretch/Shrink Regions"
+msgstr "Estirar/Encoger regiones"
 
-#: editor.cc:3362 editor.cc:3402
-#, fuzzy
-msgid "set selected regions"
-msgstr "Reproducir regin seleccionada cont�uamente"
+#: gtk2_ardour/editor.cc:2949
+msgid "Listen to Specific Regions"
+msgstr "Escuchar regiones específicas"
+
+#: gtk2_ardour/editor.cc:2979
+#: gtk2_ardour/editor_actions.cc:309
+msgid "Zoom In"
+msgstr "Acercar"
+
+#: gtk2_ardour/editor.cc:2985
+#: gtk2_ardour/editor_actions.cc:307
+msgid "Zoom Out"
+msgstr "Alejar"
+
+#: gtk2_ardour/editor.cc:2991
+#: gtk2_ardour/editor_actions.cc:311
+msgid "Zoom to Session"
+msgstr "Ajustar Zoom a toda la sesión"
+
+#: gtk2_ardour/editor.cc:2997
+msgid "Zoom focus"
+msgstr "Foco del Zoom"
 
-#: editor.cc:3458 editor_actions.cc:204
+#: gtk2_ardour/editor.cc:3011
+msgid "Snap/Grid Units"
+msgstr "Unidades de ajuste a rejilla"
+
+#: gtk2_ardour/editor.cc:3017
+msgid "Snap/Grid Mode"
+msgstr "Modo de ajuste a rejilla"
+
+#: gtk2_ardour/editor.cc:3023
+msgid "Edit point"
+msgstr "Punto de Edición"
+
+#: gtk2_ardour/editor.cc:3187
+msgid "malformed URL passed to drag-n-drop code"
+msgstr ""
+
+#: gtk2_ardour/editor.cc:3306
+#: gtk2_ardour/editor_actions.cc:513
 msgid "Undo"
 msgstr "Deshacer"
 
-#: editor.cc:3460
+#: gtk2_ardour/editor.cc:3308
 msgid "Undo (%1)"
 msgstr "Deshacer (%1)"
 
-#: editor.cc:3470 editor_actions.cc:206
+#: gtk2_ardour/editor.cc:3315
+#: gtk2_ardour/editor_actions.cc:515
 msgid "Redo"
 msgstr "Rehacer"
 
-#: editor.cc:3472
+#: gtk2_ardour/editor.cc:3317
 msgid "Redo (%1)"
 msgstr "Rehacer (%1)"
 
-#: editor.cc:3506
-msgid "... as new track"
-msgstr ""
-
-#: editor.cc:3507
-#, fuzzy
-msgid "... as new region"
-msgstr "normalizar regiones"
+#: gtk2_ardour/editor.cc:3347
+msgid "Number of Duplications:"
+msgstr "Cantidad de duplicaciones:"
 
-#: editor.cc:3509
-msgid "Import audio (copy)"
-msgstr "Importar audio (copiar)"
+#: gtk2_ardour/editor.cc:3482
+msgid "Splice Edit"
+msgstr "Reunir"
 
-#: editor.cc:3512
-#, fuzzy
-msgid "Remove last capture"
-msgstr "Quitar ltima captura"
+#: gtk2_ardour/editor.cc:3484
+msgid "Slide Edit"
+msgstr "Deslizar"
 
-#: editor.cc:3536
-msgid "Duplicate how many times?"
-msgstr "Duplicar cuantas veces?"
+#: gtk2_ardour/editor.cc:3486
+msgid "Lock Edit"
+msgstr "Bloquear"
 
-#: editor.cc:4022
+#: gtk2_ardour/editor.cc:3897
 msgid ""
 "Playlist %1 is currently unused.\n"
 "If left alone, no audio files used by it will be cleaned.\n"
 "If deleted, audio files used by it alone by will cleaned."
 msgstr ""
+"La Lista de Reproducción %1 no está siendo utilizada.\n"
+"Si la conserva, no se purgará ningún archivo de audio que ella use.\n"
+"Si la elimina, se purgarán los archivos de audio que use ella sola."
 
-#: editor.cc:4030
-#, fuzzy
+#: gtk2_ardour/editor.cc:3907
 msgid "Delete playlist"
-msgstr "Nombre a captura de sesin"
+msgstr "Eliminar la Lista de Reproducción"
 
-#: editor.cc:4031
-#, fuzzy
+#: gtk2_ardour/editor.cc:3908
 msgid "Keep playlist"
-msgstr "Nombre a captura de sesin"
-
-#: editor.cc:4032 editor_audio_import.cc:236 editor_ops.cc:2048
-#: editor_timefx.cc:71 export_dialog.cc:971 io_selector.cc:59
-#: io_selector.cc:793 redirect_box.cc:903 tempo_dialog.cc:20
-#: tempo_dialog.cc:37 tempo_dialog.cc:202 tempo_dialog.cc:220
+msgstr "Conservar la Lista de Reproducción"
+
+#: gtk2_ardour/editor.cc:3909
+#: gtk2_ardour/editor_audio_import.cc:607
+#: gtk2_ardour/editor_ops.cc:5483
+#: gtk2_ardour/editor_timefx.cc:89
+#: gtk2_ardour/export_dialog.cc:1075
+#: gtk2_ardour/io_selector.cc:60
+#: gtk2_ardour/io_selector.cc:750
+#: gtk2_ardour/redirect_box.cc:1051
+#: gtk2_ardour/sfdb_ui.cc:738
+#: gtk2_ardour/tempo_dialog.cc:41
+#: gtk2_ardour/tempo_dialog.cc:60
+#: gtk2_ardour/tempo_dialog.cc:275
+#: gtk2_ardour/tempo_dialog.cc:290
+#: gtk2_ardour/connection_editor.cc:59
 msgid "Cancel"
 msgstr "Cancelar"
 
-#: editor.cc:4199
-#, fuzzy
+#: gtk2_ardour/editor.cc:4086
+msgid "New name of snapshot"
+msgstr "Nuevo nombre de captura"
+
+# definir traducción de 'snapshot' para todo el proyecto:
+# captura?
+# captura de sesión?
+# instantánea?
+#: gtk2_ardour/editor.cc:4104
+msgid ""
+"Do you really want to remove snapshot \"%1\" ?\n"
+"(cannot be undone)"
+msgstr ""
+"¿Realmente desea eliminar la captura \"%1\" ?\n"
+"(no podrá deshacer esta acción)"
+
+#: gtk2_ardour/editor.cc:4106
+#: gtk2_ardour/editor_ops.cc:4325
+#: gtk2_ardour/editor_ops.cc:5933
+#: gtk2_ardour/route_ui.cc:931
+#: gtk2_ardour/visual_time_axis.cc:268
+msgid "No, do nothing."
+msgstr "No, no hacer nada."
+
+#: gtk2_ardour/editor.cc:4107
+#: gtk2_ardour/editor_ops.cc:5937
+#: gtk2_ardour/route_ui.cc:932
+#: gtk2_ardour/visual_time_axis.cc:269
+msgid "Yes, remove it."
+msgstr "Sí, eliminar esto."
+
+#: gtk2_ardour/editor.cc:4213
 msgid "new playlists"
-msgstr "Nombre a captura de sesin"
+msgstr "nuevas Listas de Reproducción"
 
-#: editor.cc:4207
-#, fuzzy
+#: gtk2_ardour/editor.cc:4230
 msgid "copy playlists"
-msgstr "Nombre a captura de sesin"
+msgstr "copiar Listas de Reproducción"
 
-#: editor.cc:4215
-#, fuzzy
+#: gtk2_ardour/editor.cc:4247
 msgid "clear playlists"
-msgstr "Nombre a captura de sesin"
+msgstr "limpiar Listas de Reproducción"
 
-#: editor_actions.cc:28
-#, fuzzy
-msgid "Select regions"
-msgstr "Reproducir regin seleccionada cont�uamente"
+#: gtk2_ardour/editor.cc:4837
+msgid "Please wait while Ardour loads visual data"
+msgstr "Por favor, espere mientras Ardour carga los datos visuales."
 
-#: editor_actions.cc:29
-#, fuzzy
-msgid "Select range operations"
-msgstr "Reproducir regin seleccionada cont�uamente"
+#: gtk2_ardour/editor_actions.cc:49
+msgid "Autoconnect"
+msgstr "Conectar automáticamente"
 
-#: editor_actions.cc:30
-#, fuzzy
-msgid "Move edit cursor"
-msgstr "Desde principio hasta cursor de edicin"
+#: gtk2_ardour/editor_actions.cc:50
+msgid "Crossfades"
+msgstr "Fundidos cruzados"
 
-#: editor_actions.cc:31
-#, fuzzy
-msgid "Region operations"
-msgstr "Regiones/creacin"
+#: gtk2_ardour/editor_actions.cc:52
+msgid "Move Selected Marker"
+msgstr "Mover la Marca seleccionada"
 
-#: editor_actions.cc:32
-msgid "Tools"
+# chequear en contexto
+#: gtk2_ardour/editor_actions.cc:53
+msgid "Select Range Operations"
+msgstr "Seleccionar Operaciones de Rango"
+
+#: gtk2_ardour/editor_actions.cc:54
+msgid "Select Regions"
+msgstr "Seleccionar Regiones"
+
+#: gtk2_ardour/editor_actions.cc:55
+msgid "Edit Point"
+msgstr "Punto de Edición"
+
+# no encuentro de dónde es esta cadena
+#: gtk2_ardour/editor_actions.cc:57
+msgid "Latch"
 msgstr ""
 
-#: editor_actions.cc:33
-msgid "View"
+#: gtk2_ardour/editor_actions.cc:58
+msgid "Layering"
+msgstr "Superposición de Regiones"
+
+#: gtk2_ardour/editor_actions.cc:59
+msgid "Link"
 msgstr ""
 
-#: editor_actions.cc:34
-#, fuzzy
-msgid "ZoomFocus"
-msgstr "Foco de Zoom"
+#: gtk2_ardour/editor_actions.cc:60
+#: gtk2_ardour/editor_actions.cc:97
+msgid "Zoom Focus"
+msgstr "Foco del Zoom"
+
+# ¿dónde aparece esta cadena?
+#: gtk2_ardour/editor_actions.cc:61
+msgid "Key Mouse"
+msgstr "Teclado/Ratón"
 
-#: editor_actions.cc:35
-#, fuzzy
-msgid "Meter hold"
-msgstr "Vmetro"
+# chequear en contexto
+#: gtk2_ardour/editor_actions.cc:62
+msgid "Locate To Markers"
+msgstr "Localizar a Marca"
 
-#: editor_actions.cc:36
+#: gtk2_ardour/editor_actions.cc:63
+#: gtk2_ardour/editor_actions.cc:704
+msgid "Markers"
+msgstr "Marcas"
+
+#: gtk2_ardour/editor_actions.cc:64
 msgid "Meter falloff"
-msgstr ""
+msgstr "Tasa de decaimiento"
 
-#: editor_actions.cc:38
-#, fuzzy
-msgid "Crossfades"
-msgstr "editar fade in"
+#: gtk2_ardour/editor_actions.cc:65
+msgid "Meter hold"
+msgstr "Retención del vúmetro"
 
-#: editor_actions.cc:39
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:66
+msgid "Misc Options"
+msgstr "Opciones misceláneas"
+
+#: gtk2_ardour/editor_actions.cc:67
 msgid "Monitoring"
-msgstr "Monitorizacin por Hardware"
+msgstr "Monitorización"
 
-#: editor_actions.cc:40
-#, fuzzy
-msgid "Autoconnect"
-msgstr "Conectar"
+#: gtk2_ardour/editor_actions.cc:72
+msgid "Primary Clock"
+msgstr "Reloj Primario"
 
-#: editor_actions.cc:41
-#, fuzzy
-msgid "Layering"
-msgstr "Capa"
+#: gtk2_ardour/editor_actions.cc:73
+msgid "Pullup / Pulldown"
+msgstr ""
 
-#: editor_actions.cc:42
-#, fuzzy
-msgid "Metering"
-msgstr "Vmetro"
+#: gtk2_ardour/editor_actions.cc:74
+msgid "Region"
+msgstr "Región"
 
-#: editor_actions.cc:43
-msgid "Fall off rate"
-msgstr ""
+#: gtk2_ardour/editor_actions.cc:75
+msgid "Region operations"
+msgstr "Operaciones de Región"
 
-#: editor_actions.cc:44
-msgid "Hold Time"
-msgstr ""
+#: gtk2_ardour/editor_actions.cc:76
+msgid "Gain"
+msgstr "Ganancia"
+
+#: gtk2_ardour/editor_actions.cc:77
+msgid "Rulers"
+msgstr "Reglas"
+
+#: gtk2_ardour/editor_actions.cc:78
+msgid "Views"
+msgstr "Vistas"
+
+# podría ser "desplazar", chequear contexto
+#: gtk2_ardour/editor_actions.cc:79
+msgid "Scroll"
+msgstr "Desplazamiento"
+
+#: gtk2_ardour/editor_actions.cc:80
+msgid "Secondary Clock"
+msgstr "Reloj Secundario"
+
+#: gtk2_ardour/editor_actions.cc:83
+#: gtk2_ardour/editor_actions.cc:523
+msgid "Separate"
+msgstr "Separar"
+
+#: gtk2_ardour/editor_actions.cc:86
+#: gtk2_ardour/mixer_strip.cc:88
+#: gtk2_ardour/mixer_strip.cc:109
+#: gtk2_ardour/mixer_strip.cc:494
+#: gtk2_ardour/route_time_axis.cc:188
+msgid "Solo"
+msgstr "Solo"
+
+#: gtk2_ardour/editor_actions.cc:87
+msgid "Subframes"
+msgstr "Sub cuadros"
 
-#: editor_actions.cc:45
-msgid "Add Existing Audio"
+#: gtk2_ardour/editor_actions.cc:90
+msgid "Timecode fps"
 msgstr ""
 
-#. add named actions for the editor
-#: editor_actions.cc:50
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:92
+#: gtk2_ardour/analysis_window.cc:67
+msgid "Track"
+msgstr "Pista"
+
+#: gtk2_ardour/editor_actions.cc:93
+msgid "Tools"
+msgstr "Heramientas"
+
+#: gtk2_ardour/editor_actions.cc:95
+msgid "View"
+msgstr "Ver"
+
+#: gtk2_ardour/editor_actions.cc:96
+msgid "Waveforms"
+msgstr "Forma de onda"
+
+#: gtk2_ardour/editor_actions.cc:98
+msgid "Zoom"
+msgstr "Zoom"
+
+#: gtk2_ardour/editor_actions.cc:100
+msgid "Link Region/Track Selection"
+msgstr "Vincular selección de Región y Pista"
+
+#: gtk2_ardour/editor_actions.cc:101
+msgid "Break drag"
+msgstr "Cancelar arrastre"
+
+#: gtk2_ardour/editor_actions.cc:103
 msgid "Show Editor Mixer"
-msgstr "Mostrar todas las pistas de Audio en el Mixer"
+msgstr "Mostrar Mezclador en el Editor"
 
-#: editor_actions.cc:55
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:108
 msgid "Span Entire Overlap"
-msgstr "Elevar regin una capa"
-
-#: editor_actions.cc:57 editor_actions.cc:384
-#, fuzzy
-msgid "Short"
-msgstr "conector"
+msgstr "A lo largo de todo el solapamiento"
 
-#: editor_actions.cc:64
+#: gtk2_ardour/editor_actions.cc:117
 msgid "Created Automatically"
-msgstr ""
-
-#: editor_actions.cc:67
+msgstr "Creados Automáticamente"
+
+# ¿cómo traducir "fade"?
+# Audacity usa:
+# "fade out"="desvanecer progresivamente"
+# "fade in"="aparecer progresivamente"
+# por el momento utilizaré 'fundido' (fundido de entrada, fundido de salida, fundido cruzado)
+#: gtk2_ardour/editor_actions.cc:120
+msgid "Use Region Fades (global)"
+msgstr "Usar fundidos en Regiones (global)"
+
+#: gtk2_ardour/editor_actions.cc:122
+msgid "Show Region Fades"
+msgstr "Mostrar fundidos de Regiones"
+
+#: gtk2_ardour/editor_actions.cc:124
+msgid "Toggle Region Fade In"
+msgstr "Activar/Desactivar Fundido de Entrada"
+
+#: gtk2_ardour/editor_actions.cc:126
+msgid "Toggle Region Fade Out"
+msgstr "Activar/Desactivar Fundido de Salida"
+
+#: gtk2_ardour/editor_actions.cc:128
+msgid "Toggle Region Fades"
+msgstr "Activar/Desactivar Fundidos"
+
+#: gtk2_ardour/editor_actions.cc:131
+msgid "Playhead to Next Region Boundary"
+msgstr "llevar al Borde de Región siguiente"
+
+#: gtk2_ardour/editor_actions.cc:133
+msgid "Playhead to Previous Region Boundary"
+msgstr "llevar al Borde de Región anterior"
+
+#: gtk2_ardour/editor_actions.cc:136
 msgid "Playhead to Next Region Start"
-msgstr ""
+msgstr "llevar al Inicio de Región siguiente"
 
-#: editor_actions.cc:69
+#: gtk2_ardour/editor_actions.cc:138
 msgid "Playhead to Next Region End"
-msgstr ""
+msgstr "llevar al Final de Región siguiente"
 
-#: editor_actions.cc:71
+#: gtk2_ardour/editor_actions.cc:140
 msgid "Playhead to Next Region Sync"
-msgstr ""
+msgstr "llevar al Punto de Sincronía siguiente"
 
-#: editor_actions.cc:74
+#: gtk2_ardour/editor_actions.cc:143
 msgid "Playhead to Previous Region Start"
-msgstr ""
+msgstr "llevar al Inicio de Región anterior"
 
-#: editor_actions.cc:76
+#: gtk2_ardour/editor_actions.cc:145
 msgid "Playhead to Previous Region End"
-msgstr ""
+msgstr "llevar al Final de Región anterior"
 
-#: editor_actions.cc:78
+#: gtk2_ardour/editor_actions.cc:147
 msgid "Playhead to Previous Region Sync"
-msgstr ""
+msgstr "llevar al Punto de Sincronía anterior"
 
-#: editor_actions.cc:81
-#, fuzzy
-msgid "Edit Cursor to Next Region Start"
-msgstr "Desde cursor de edicin hasta final"
+#: gtk2_ardour/editor_actions.cc:150
+msgid "to Next Region Boundary"
+msgstr "llevar al Borde de Región siguiente"
 
-#: editor_actions.cc:83
-#, fuzzy
-msgid "Edit Cursor to Next Region End"
-msgstr "Desde cursor de edicin hasta final"
+#: gtk2_ardour/editor_actions.cc:152
+msgid "to Previous Region Boundary"
+msgstr "llevar al Borde de Región anterior"
 
-#: editor_actions.cc:85
-#, fuzzy
-msgid "Edit Cursor to Next Region Sync"
-msgstr "Desde cursor de edicin hasta final"
+#: gtk2_ardour/editor_actions.cc:155
+msgid "to Next Region Start"
+msgstr "llevar al siguiente Inicio de Región"
 
-#: editor_actions.cc:88
-msgid "Edit Cursor to Previous Region Start"
-msgstr ""
+#: gtk2_ardour/editor_actions.cc:157
+msgid "to Next Region End"
+msgstr "llevar al siguiente Final de Región"
 
-#: editor_actions.cc:90
-#, fuzzy
-msgid "Edit Cursor to Previous Region End"
-msgstr "Desde cursor de edicin hasta final"
+#: gtk2_ardour/editor_actions.cc:159
+msgid "to Next Region Sync"
+msgstr "llevar al Punto de Sincronía siguiente"
 
-#: editor_actions.cc:92
-#, fuzzy
-msgid "Edit Cursor to Previous Region Sync"
-msgstr "Desde cursor de edicin hasta final"
+#: gtk2_ardour/editor_actions.cc:162
+msgid "to Previous Region Start"
+msgstr "llevar al Inicio de Región anterior"
 
-#: editor_actions.cc:95
-msgid "Playhead to Range Start"
-msgstr ""
+#: gtk2_ardour/editor_actions.cc:164
+msgid "to Previous Region End"
+msgstr "llevar al Final de Región anterior"
 
-#: editor_actions.cc:97
-#, fuzzy
-msgid "Playhead to Range End"
-msgstr "Reproducir el intervalo cont�uamente"
+#: gtk2_ardour/editor_actions.cc:166
+msgid "to Previous Region Sync"
+msgstr "llevar al Punto de Sincronía anterior"
 
-#: editor_actions.cc:100
-#, fuzzy
-msgid "Edit Cursor to Range Start"
-msgstr "Desde cursor de edicin hasta final"
+#: gtk2_ardour/editor_actions.cc:169
+msgid "to Range Start"
+msgstr "al Inicio del Rango"
 
-#: editor_actions.cc:102
-#, fuzzy
-msgid "Edit Cursor to Range End"
-msgstr "Desde cursor de edicin hasta final"
+#: gtk2_ardour/editor_actions.cc:171
+msgid "to Range End"
+msgstr "al Final del Rango"
 
-#: editor_actions.cc:105 editor_ops.cc:1363
-#, fuzzy
-msgid "select all"
-msgstr "Seleccionar todo"
+#: gtk2_ardour/editor_actions.cc:174
+msgid "Playhead to Range Start"
+msgstr "llevar al Inicio del Rango"
 
-#: editor_actions.cc:107
-#, fuzzy
-msgid "Select All After Edit Cursor"
-msgstr "Reproducir desde el cursor"
+#: gtk2_ardour/editor_actions.cc:176
+msgid "Playhead to Range End"
+msgstr "llevar al Final del Rango"
 
-#: editor_actions.cc:109
-msgid "Select All Before Edit Cursor"
-msgstr ""
+#: gtk2_ardour/editor_actions.cc:181
+#: gtk2_ardour/redirect_box.cc:1221
+msgid "Deselect All"
+msgstr "Deseleccionar Todo"
 
-#: editor_actions.cc:112
-#, fuzzy
-msgid "Select All After Playhead"
-msgstr "Ubicar desde barra de reproduccin"
+#: gtk2_ardour/editor_actions.cc:183
+msgid "Invert Selection"
+msgstr "Invertir Selección"
 
-#: editor_actions.cc:114
-#, fuzzy
-msgid "Select All Before Playhead"
-msgstr "Ubicar desde barra de reproduccin"
+#: gtk2_ardour/editor_actions.cc:190
+msgid "Select All Overlapping Edit Range"
+msgstr "Seleccionar Todo lo solapado al Rango de Edición"
+
+#: gtk2_ardour/editor_actions.cc:192
+msgid "Select All Inside Edit Range"
+msgstr "Seleccionar Todo dentro de Rango de Edición"
 
-#: editor_actions.cc:116
-#, fuzzy
-msgid "Select All Between Cursors"
-msgstr "Reproducir desde el cursor"
+#: gtk2_ardour/editor_actions.cc:195
+msgid "Select Edit Range"
+msgstr "Seleccionar Rango de Edición"
 
-#: editor_actions.cc:119
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:198
 msgid "Select All in Punch Range"
-msgstr "Seleccionar intervalo de punch"
+msgstr "Seleccionar Todo dentro de Rango de Pinchado"
 
-#: editor_actions.cc:121
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:200
 msgid "Select All in Loop Range"
-msgstr "seleccionar rango de zoom"
+msgstr "Seleccionar Todo dentro de Rango de Bucle"
+
+#: gtk2_ardour/editor_actions.cc:203
+msgid "Select Next Track/Bus"
+msgstr "Seleccionar Pista/Bus siguiente"
+
+#: gtk2_ardour/editor_actions.cc:205
+msgid "Select Previous Track/Bus"
+msgstr "Seleccionar Pista/Bus anterior"
+
+#: gtk2_ardour/editor_actions.cc:208
+msgid "Toggle Record Enable"
+msgstr "Activar/Desactivar Grabación"
+
+#: gtk2_ardour/editor_actions.cc:212
+msgid "Save View 1"
+msgstr "Guardar Vista 1"
+
+#: gtk2_ardour/editor_actions.cc:214
+msgid "Goto View 1"
+msgstr "Ir a Vista 1"
+
+#: gtk2_ardour/editor_actions.cc:216
+msgid "Save View 2"
+msgstr "Guardar Vista 2"
+
+#: gtk2_ardour/editor_actions.cc:218
+msgid "Goto View 2"
+msgstr "Ir a Vista 2"
+
+#: gtk2_ardour/editor_actions.cc:220
+msgid "Save View 3"
+msgstr "Guardar Vista 3"
+
+#: gtk2_ardour/editor_actions.cc:222
+msgid "Goto View 3"
+msgstr "Ir a Vista 3"
+
+#: gtk2_ardour/editor_actions.cc:224
+msgid "Save View 4"
+msgstr "Guardar Vista 4"
+
+#: gtk2_ardour/editor_actions.cc:226
+msgid "Goto View 4"
+msgstr "Ir a Vista 4"
+
+#: gtk2_ardour/editor_actions.cc:228
+msgid "Save View 5"
+msgstr "Guardar Vista 5"
+
+#: gtk2_ardour/editor_actions.cc:230
+msgid "Goto View 5"
+msgstr "Ir a Vista 5"
+
+#: gtk2_ardour/editor_actions.cc:232
+msgid "Save View 6"
+msgstr "Guardar Vista 6"
+
+#: gtk2_ardour/editor_actions.cc:234
+msgid "Goto View 6"
+msgstr "Ir a Vista 6"
+
+#: gtk2_ardour/editor_actions.cc:236
+msgid "Save View 7"
+msgstr "Guardar Vista 7"
+
+#: gtk2_ardour/editor_actions.cc:238
+msgid "Goto View 7"
+msgstr "Ir a Vista 7"
+
+#: gtk2_ardour/editor_actions.cc:240
+msgid "Save View 8"
+msgstr "Guardar Vista 8"
+
+#: gtk2_ardour/editor_actions.cc:242
+msgid "Goto View 8"
+msgstr "Ir a Vista 8"
+
+#: gtk2_ardour/editor_actions.cc:244
+msgid "Save View 9"
+msgstr "Guardar Vista 9"
+
+#: gtk2_ardour/editor_actions.cc:246
+msgid "Goto View 9"
+msgstr "Ir a Vista 9"
+
+#: gtk2_ardour/editor_actions.cc:248
+msgid "Save View 10"
+msgstr "Guardar Vista 10"
+
+#: gtk2_ardour/editor_actions.cc:250
+msgid "Goto View 10"
+msgstr "Ir a Vista 10"
+
+#: gtk2_ardour/editor_actions.cc:252
+msgid "Save View 11"
+msgstr "Guardar Vista 11"
+
+#: gtk2_ardour/editor_actions.cc:254
+msgid "Goto View 11"
+msgstr "Ir a Vista 11"
+
+#: gtk2_ardour/editor_actions.cc:256
+msgid "Save View 12"
+msgstr "Guardar Vista 12"
+
+#: gtk2_ardour/editor_actions.cc:258
+msgid "Goto View 12"
+msgstr "Ir a Vista 12"
+
+#: gtk2_ardour/editor_actions.cc:262
+msgid "Locate to Mark 1"
+msgstr "Ir a Marca 1"
+
+#: gtk2_ardour/editor_actions.cc:264
+msgid "Locate to Mark 2"
+msgstr "Ir a Marca 2"
+
+#: gtk2_ardour/editor_actions.cc:266
+msgid "Locate to Mark 3"
+msgstr "Ir a Marca 3"
+
+#: gtk2_ardour/editor_actions.cc:268
+msgid "Locate to Mark 4"
+msgstr "Ir a Marca 4"
+
+#: gtk2_ardour/editor_actions.cc:270
+msgid "Locate to Mark 5"
+msgstr "Ir a Marca 5"
+
+#: gtk2_ardour/editor_actions.cc:272
+msgid "Locate to Mark 6"
+msgstr "Ir a Marca 6"
+
+#: gtk2_ardour/editor_actions.cc:274
+msgid "Locate to Mark 7"
+msgstr "Ir a Marca 7"
+
+#: gtk2_ardour/editor_actions.cc:276
+msgid "Locate to Mark 8"
+msgstr "Ir a Marca 8"
 
-#: editor_actions.cc:124
+#: gtk2_ardour/editor_actions.cc:278
+msgid "Locate to Mark 9"
+msgstr "Ir a Marca 9"
+
+#: gtk2_ardour/editor_actions.cc:281
 msgid "Jump Forward to Mark"
-msgstr ""
+msgstr "llevar a Marca siguiente"
 
-#: editor_actions.cc:126
+#: gtk2_ardour/editor_actions.cc:283
 msgid "Jump Backward to Mark"
-msgstr ""
+msgstr "llevar a Marca anterior"
 
-#: editor_actions.cc:128
-#, fuzzy
-msgid "Add Location from Playhead"
-msgstr "Ubicar desde barra de reproduccin"
+#: gtk2_ardour/editor_actions.cc:285
+msgid "Add Mark from Playhead"
+msgstr "Añadir Marca en Cursor"
 
-#: editor_actions.cc:131
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:288
 msgid "Nudge Forward"
-msgstr "Retocar"
+msgstr "Mover hacia adelante"
 
-#: editor_actions.cc:133
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:290
 msgid "Nudge Next Forward"
-msgstr "Retocar regin/selecin adelante"
+msgstr "Mover siguiente hacia adelante"
 
-#: editor_actions.cc:135
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:292
 msgid "Nudge Backward"
-msgstr "Retocar"
+msgstr "Mover hacia atrás"
 
-#: editor_actions.cc:137
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:294
 msgid "Nudge Next Backward"
-msgstr "Retocar toda la pista adelante"
+msgstr "Mover siguiente hacia atrás"
 
-#: editor_actions.cc:140
-#, fuzzy
-msgid "Zoom Out"
-msgstr "Alejar"
+#: gtk2_ardour/editor_actions.cc:297
+msgid "Nudge Playhead Forward"
+msgstr "Mover hacia adelante"
 
-#: editor_actions.cc:142
-#, fuzzy
-msgid "Zoom In"
-msgstr "Acercar"
+#: gtk2_ardour/editor_actions.cc:299
+msgid "Nudge Playhead Backward"
+msgstr "Mover hacia atrás"
 
-#: editor_actions.cc:144
-#, fuzzy
-msgid "Zoom to Session"
-msgstr "Mostrar toda la sesin"
+#: gtk2_ardour/editor_actions.cc:301
+msgid "Forward To Grid"
+msgstr "llevar al punto de Rejilla siguiente"
 
-#: editor_actions.cc:147
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:303
+msgid "Backward To Grid"
+msgstr "llevar al punto de Rejilla anterior"
+
+#: gtk2_ardour/editor_actions.cc:313
+msgid "Zoom to Region"
+msgstr "Zoom a Región"
+
+#: gtk2_ardour/editor_actions.cc:315
+msgid "Zoom to Region (W&H)"
+msgstr "Zoom a Región (alto y ancho)"
+
+#: gtk2_ardour/editor_actions.cc:317
+msgid "Toggle Zoom State"
+msgstr "Siguiente modo de Zoom"
+
+#: gtk2_ardour/editor_actions.cc:320
+msgid "Move Selected Tracks Up"
+msgstr "Mover Pistas seleccionadas hacia Arriba"
+
+#: gtk2_ardour/editor_actions.cc:322
+msgid "Move Selected Tracks Down"
+msgstr "Mover Pistas seleccionadas hacia Abajo"
+
+#: gtk2_ardour/editor_actions.cc:325
 msgid "Scroll Tracks Up"
-msgstr "Llenar Pista"
+msgstr "Desplazar Pistas hacia Arriba"
 
-#: editor_actions.cc:149
+#: gtk2_ardour/editor_actions.cc:327
 msgid "Scroll Tracks Down"
-msgstr ""
+msgstr "Desplazar Pistas hacia Abajo"
 
-#: editor_actions.cc:151
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:329
 msgid "Step Tracks Up"
-msgstr "Ocultar esta pista"
+msgstr "Mover pistas hacia arriba"
 
-#: editor_actions.cc:153
+#: gtk2_ardour/editor_actions.cc:331
 msgid "Step Tracks Down"
-msgstr ""
+msgstr "Mover pistas hacia abajo"
 
-#: editor_actions.cc:156
+#: gtk2_ardour/editor_actions.cc:334
 msgid "Scroll Backward"
-msgstr ""
+msgstr "Desplazarse hacia atrás"
 
-#: editor_actions.cc:158
+#: gtk2_ardour/editor_actions.cc:336
 msgid "Scroll Forward"
-msgstr ""
+msgstr "Desplazarse hacia adalante"
 
-#: editor_actions.cc:160
+#: gtk2_ardour/editor_actions.cc:338
 msgid "goto"
-msgstr ""
+msgstr "Ir"
 
-#: editor_actions.cc:162
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:340
 msgid "Center Playhead"
-msgstr "Barra de reproduccin"
+msgstr "Centrar Cursor"
 
-#: editor_actions.cc:164
-#, fuzzy
-msgid "Center Edit Cursor"
-msgstr "Cursor de Edicin"
+#: gtk2_ardour/editor_actions.cc:342
+msgid "Center Active Marker"
+msgstr "Centrar Marca Activa"
 
-#: editor_actions.cc:166
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:345
 msgid "Playhead Forward"
-msgstr "Barra de reproduccin"
+msgstr "Cursor hacia adelante"
 
-#: editor_actions.cc:168
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:347
 msgid "Playhead Backward"
-msgstr "Barra de reproduccin"
+msgstr "Cursor hacia atrás"
+
+#: gtk2_ardour/editor_actions.cc:350
+msgid "Playhead To Active Mark"
+msgstr "llevar a Marca Activa"
+
+#: gtk2_ardour/editor_actions.cc:352
+msgid "Active Mark To Playhead"
+msgstr "llevar al Cursor"
+
+#: gtk2_ardour/editor_actions.cc:355
+msgid "Trim Start At Edit Point"
+msgstr "Recortar inicio hasta el Punto de Edición"
+
+#: gtk2_ardour/editor_actions.cc:358
+msgid "Trim End At Edit Point"
+msgstr "Recortar final desde el Punto de Edición"
+
+#: gtk2_ardour/editor_actions.cc:362
+msgid "Start To Edit Point"
+msgstr "Desde principio hasta Punto de Edición"
+
+#: gtk2_ardour/editor_actions.cc:365
+msgid "Edit Point To End"
+msgstr "Desde Punto de Edición hasta el final"
+
+#: gtk2_ardour/editor_actions.cc:375
+msgid "Set Loop From Edit Range"
+msgstr "Definir Bucle a partir de Rango de Edición"
+
+#: gtk2_ardour/editor_actions.cc:377
+msgid "Set Loop From Region"
+msgstr "Definir Bucle a partir de Región"
 
-#: editor_actions.cc:170
-#, fuzzy
-msgid "Playhead to Edit"
-msgstr "Barra de reproduccin"
+#: gtk2_ardour/editor_actions.cc:383
+msgid "Set Punch From Edit Range"
+msgstr "Definir Rango de Pinchado a partir de Rango de Edición"
 
-#: editor_actions.cc:172
-#, fuzzy
-msgid "Edit to Playhead"
-msgstr "Ubicar desde barra de reproduccin"
+#: gtk2_ardour/editor_actions.cc:385
+msgid "Set Punch From Region"
+msgstr "Definir Rango de Pinchado a partir de Región"
 
-#: editor_actions.cc:175
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:388
+msgid "Transpose"
+msgstr "Transponer"
+
+#: gtk2_ardour/editor_actions.cc:390
+msgid "Toggle Opaque"
+msgstr "Conmutar Opaco"
+
+#: gtk2_ardour/editor_actions.cc:393
+msgid "Add 1 Range Marker"
+msgstr "Agregar 1 Marca de Rango"
+
+#: gtk2_ardour/editor_actions.cc:396
+msgid "Add Range Marker(s)"
+msgstr "Agregar Marca/s de Rango"
+
+#: gtk2_ardour/editor_actions.cc:400
+msgid "Set Fade In Length"
+msgstr "Definir fundido de entrada hasta Punto de Edición"
+
+#: gtk2_ardour/editor_actions.cc:402
+msgid "Toggle Fade In Active"
+msgstr "Activar/Desactivar fundido de entrada"
+
+#: gtk2_ardour/editor_actions.cc:404
+msgid "Set Fade Out Length"
+msgstr "Definir fundido de salida desde Punto de Edición"
+
+#: gtk2_ardour/editor_actions.cc:406
+msgid "Toggle Fade Out Active"
+msgstr "Activar/Desactivar fundido de salida"
+
+#: gtk2_ardour/editor_actions.cc:409
 msgid "Align Regions Start"
-msgstr "Comienzos de regin"
+msgstr "Alinear Inicios de región"
 
-#: editor_actions.cc:177
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:412
 msgid "Align Regions Start Relative"
-msgstr "Alinear relativamente"
+msgstr "Alinear Regiones en base al inicio"
 
-#: editor_actions.cc:179
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:415
 msgid "Align Regions End"
-msgstr "normalizar regiones"
+msgstr "Alinear finales de Región"
 
-#: editor_actions.cc:181
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:418
 msgid "Align Regions End Relative"
-msgstr "Alinear relativamente"
+msgstr "Alinear Regiones en base al final"
 
-#: editor_actions.cc:184
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:422
 msgid "Align Regions Sync"
-msgstr "normalizar regiones"
+msgstr "Alinear Puntos de Sincronía de región"
 
-#: editor_actions.cc:186
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:425
 msgid "Align Regions Sync Relative"
-msgstr "Alinear relativamente"
+msgstr "Alinear regiones en base al Punto de Sincronía"
+
+#: gtk2_ardour/editor_actions.cc:429
+msgid "Play From Edit Point"
+msgstr "Reproducir desde Punto de Edición"
+
+#: gtk2_ardour/editor_actions.cc:431
+msgid "Play from Edit Point & Return"
+msgstr "Reproducir desde Punto de Edición y Retornar"
+
+#: gtk2_ardour/editor_actions.cc:434
+msgid "Play Edit Range"
+msgstr "Reproducir Rango de Edición"
 
-#: editor_actions.cc:189
-#, fuzzy
-msgid "Audition at Mouse"
-msgstr "Audicionando"
+#: gtk2_ardour/editor_actions.cc:435
+msgid "Play Selected Region(s)"
+msgstr "Reproducir región/es seleccionada/s"
 
-#: editor_actions.cc:191
-#, fuzzy
+# (22:35:44) las: mtaht4: brush at mouse is mostly deprecated
+#: gtk2_ardour/editor_actions.cc:438
 msgid "Brush at Mouse"
-msgstr "usar salidas Master"
+msgstr ""
 
-#: editor_actions.cc:193
-#, fuzzy
-msgid "Set Edit Cursor"
-msgstr "Cursor de Edicin"
+#: gtk2_ardour/editor_actions.cc:441
+msgid "Playhead to Mouse"
+msgstr "llevar al Ratón"
 
-#: editor_actions.cc:195
-#, fuzzy
-msgid "Mute/Unmute Region"
-msgstr "Crear Regin"
+# sé que no es literal
+# lo modifiqué para que la entrada de menú sea consistente con el resto de las entradas
+# pido disculpas si está mal
+#: gtk2_ardour/editor_actions.cc:443
+msgid "Active Marker to Mouse"
+msgstr "llevar al Ratón"
+
+#: gtk2_ardour/editor_actions.cc:446
+msgid "Duplicate Region"
+msgstr "Duplicar Región"
+
+#: gtk2_ardour/editor_actions.cc:449
+msgid "Multi-Duplicate Region"
+msgstr "Multi-duplicar Región"
+
+#: gtk2_ardour/editor_actions.cc:452
+msgid "Duplicate Range"
+msgstr "Duplicar Rango"
+
+#: gtk2_ardour/editor_actions.cc:455
+msgid "Insert Region"
+msgstr "Insertar Región"
+
+#: gtk2_ardour/editor_actions.cc:458
+msgid "Normalize Region"
+msgstr "Normalizar Región"
+
+#: gtk2_ardour/editor_actions.cc:464
+msgid "Auto-Rename"
+msgstr "Auto-Renombrar"
 
-#: editor_actions.cc:197
-#, fuzzy
-msgid "Set Playhead"
-msgstr "Barra de reproduccin"
+#: gtk2_ardour/editor_actions.cc:467
+msgid "Boost Region Gain"
+msgstr "Amplificar Región"
 
-#: editor_actions.cc:199
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:470
+msgid "Cut Region Gain"
+msgstr "Atenuar Región"
+
+#: gtk2_ardour/editor_actions.cc:473
+#: gtk2_ardour/rhythm_ferret.cc:54
 msgid "Split Region"
-msgstr "Separar Regin"
+msgstr "Separar Región"
 
-#: editor_actions.cc:201
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:476
 msgid "Set Region Sync Position"
-msgstr "Por Posicin de regin"
+msgstr "Definir Punto de Sincronía"
+
+#: gtk2_ardour/editor_actions.cc:479
+msgid "Remove Region Sync"
+msgstr "Quitar Punto de Sincronía"
+
+#: gtk2_ardour/editor_actions.cc:482
+msgid "Raise Region"
+msgstr "Colocar Región encima"
+
+#: gtk2_ardour/editor_actions.cc:485
+msgid "Lower Region"
+msgstr "Colocar Región debajo"
+
+#: gtk2_ardour/editor_actions.cc:488
+msgid "Export Region"
+msgstr "Exportar Región"
 
-#: editor_actions.cc:209
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:491
+msgid "Lock Region"
+msgstr "Bloquear Región"
+
+#: gtk2_ardour/editor_actions.cc:494
+msgid "Glue Region To Bars&Beats"
+msgstr "Vincular región a Compases&Pulsos"
+
+#: gtk2_ardour/editor_actions.cc:497
+msgid "Move To Original Position"
+msgstr "Mover a Posición Original"
+
+#: gtk2_ardour/editor_actions.cc:509
+msgid "Mute/Unmute Region"
+msgstr "Región Muda/No muda"
+
+#: gtk2_ardour/editor_actions.cc:518
 msgid "Export Session"
-msgstr "Exportar regin"
+msgstr "Exportar Sesión"
 
-#: editor_actions.cc:211
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:520
+#: gtk2_ardour/editor_markers.cc:641
 msgid "Export Range"
-msgstr "Separar Regin"
-
-#. Note: for now, editor-delete does the exact same thing as editor-cut
-#: editor_actions.cc:217
-#, fuzzy
+msgstr "Exportar Rango"
+
+#: gtk2_ardour/editor_actions.cc:526
+msgid "Separate Using Punch Range"
+msgstr "Separar usando Rango de Pinchado"
+
+#: gtk2_ardour/editor_actions.cc:529
+msgid "Separate Using Loop Range"
+msgstr "Separar usando Rango de Bucle"
+
+#: gtk2_ardour/editor_actions.cc:532
+#: gtk2_ardour/editor_actions.cc:562
+msgid "Crop"
+msgstr "Recortar"
+
+#: gtk2_ardour/editor_actions.cc:538
+#: gtk2_ardour/editor_actions.cc:595
+#: gtk2_ardour/redirect_box.cc:1214
+#: gtk2_ardour/route_time_axis.cc:520
+#: gtk2_ardour/connection_editor.cc:55
 msgid "Delete"
-msgstr "quitar"
+msgstr "Eliminar"
 
-#: editor_actions.cc:223
-#, fuzzy
-msgid "Duplicate Region"
-msgstr "Reproducir regin seleccionada cont�uamente"
+#: gtk2_ardour/editor_actions.cc:545
+msgid "Set Tempo from Region=Bar"
+msgstr "Definir tempo en base a Región=Compás"
 
-#: editor_actions.cc:225
-#, fuzzy
-msgid "Duplicate Range"
-msgstr "Duplicar"
+#: gtk2_ardour/editor_actions.cc:548
+msgid "Set Tempo from Edit Range=Bar"
+msgstr "Definir tempo en base a Rango de Edición=Compás"
 
-#: editor_actions.cc:227
-msgid "Insert Region"
-msgstr "Insertar Regin"
+#: gtk2_ardour/editor_actions.cc:551
+msgid "Split Regions At Percussion Onsets"
+msgstr "Separar regiones en inicios de percusión"
 
-#: editor_actions.cc:229
-#, fuzzy
-msgid "Reverse Region"
-msgstr "invertir regiones"
+#: gtk2_ardour/editor_actions.cc:554
+#: gtk2_ardour/rhythm_ferret.cc:48
+msgid "Rhythm Ferret"
+msgstr "Rhythm Ferret"
 
-#: editor_actions.cc:231
-#, fuzzy
-msgid "Normalize Region"
-msgstr "Normalizar"
+#: gtk2_ardour/editor_actions.cc:557
+msgid "Move Forward to Transient"
+msgstr "llevar al transitorio siguiente"
 
-#: editor_actions.cc:233
-#, fuzzy
-msgid "crop"
-msgstr "copiar"
+#: gtk2_ardour/editor_actions.cc:559
+msgid "Move Backwards to Transient"
+msgstr "llevar al transitorio anterior"
 
-#: editor_actions.cc:235
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:564
 msgid "Insert Chunk"
-msgstr "Insertar trecho"
+msgstr "Insertar fragmento"
 
-#: editor_actions.cc:238
-#, fuzzy
-msgid "Split at edit cursor"
-msgstr "Desde principio hasta cursor de edicin"
+#: gtk2_ardour/editor_actions.cc:567
+msgid "Split At Edit Point"
+msgstr "Separar en el Punto de Edición"
 
-#: editor_actions.cc:241
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:570
 msgid "Start Range"
-msgstr "Separar Regin"
+msgstr "Comenzar Rango"
 
-#: editor_actions.cc:243
+#: gtk2_ardour/editor_actions.cc:572
 msgid "Finish Range"
-msgstr ""
+msgstr "Terminar Rango"
 
-#: editor_actions.cc:245
+#: gtk2_ardour/editor_actions.cc:574
 msgid "Finish add Range"
-msgstr ""
+msgstr "Terminar añadir Rango"
 
-#: editor_actions.cc:248
-msgid "Extend Range to End of Region"
-msgstr ""
+#: gtk2_ardour/editor_actions.cc:582
+msgid "Follow Playhead"
+msgstr "Seguir al Cursor"
 
-#: editor_actions.cc:250
-#, fuzzy
-msgid "Extend Range to Start of Region"
-msgstr "Ir al inicio de la sesin"
+#: gtk2_ardour/editor_actions.cc:587
+#: gtk2_ardour/editor_ops.cc:5976
+msgid "Insert Time"
+msgstr "Insertar Tiempo"
 
-#: editor_actions.cc:253
-#, fuzzy
-msgid "Follow Playhead"
-msgstr "Seguir a la barra de reproduccin"
+#: gtk2_ardour/editor_actions.cc:591
+msgid "Toggle Active"
+msgstr "Activar/Desactivar pista"
+
+#: gtk2_ardour/editor_actions.cc:602
+msgid "Fit Selected Tracks"
+msgstr "Encajar las pistas seleccionadas en la ventana"
+
+#: gtk2_ardour/editor_actions.cc:604
+#: gtk2_ardour/time_axis_view.cc:638
+msgid "Largest"
+msgstr "Enorme"
+
+#: gtk2_ardour/editor_actions.cc:607
+#: gtk2_ardour/time_axis_view.cc:640
+msgid "Larger"
+msgstr "Mayor"
+
+#: gtk2_ardour/editor_actions.cc:610
+#: gtk2_ardour/time_axis_view.cc:639
+msgid "Large"
+msgstr "Grande"
+
+#: gtk2_ardour/editor_actions.cc:616
+#: gtk2_ardour/time_axis_view.cc:643
+msgid "Small"
+msgstr "Chica"
+
+#: gtk2_ardour/editor_actions.cc:620
+#: gtk2_ardour/time_axis_view.cc:642
+msgid "Smaller"
+msgstr "Menor"
 
-#: editor_actions.cc:261
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:627
 msgid "Zoom Focus Left"
-msgstr "Foco de Zoom"
+msgstr "Foco de Zoom a la Izquierda"
 
-#: editor_actions.cc:263
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:629
 msgid "Zoom Focus Right"
-msgstr "Foco de Zoom"
+msgstr "Foco de Zoom a la Derecha"
 
-#: editor_actions.cc:265
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:631
 msgid "Zoom Focus Center"
-msgstr "Foco de Zoom"
+msgstr "Foco de Zoom al Centro"
 
-#: editor_actions.cc:267
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:633
 msgid "Zoom Focus Playhead"
-msgstr "Foco de Zoom"
+msgstr "Foco de Zoom al Cursor"
 
-#: editor_actions.cc:269
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:635
+msgid "Zoom Focus Mouse"
+msgstr "Foco de Zoom al Ratón"
+
+#: gtk2_ardour/editor_actions.cc:637
 msgid "Zoom Focus Edit"
-msgstr "Foco de Zoom"
+msgstr "Foco de Zoom al Punto de Edición"
 
-#: editor_actions.cc:275
+#: gtk2_ardour/editor_actions.cc:643
 msgid "Object Tool"
-msgstr ""
+msgstr "Herramienta de Objeto"
 
-#: editor_actions.cc:276
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:644
 msgid "Range Tool"
-msgstr "intervalo"
+msgstr "Herramienta de Rango"
 
-#: editor_actions.cc:277
+#: gtk2_ardour/editor_actions.cc:645
 msgid "Gain Tool"
-msgstr ""
+msgstr "Herramienta de Ganancia"
 
-#: editor_actions.cc:278
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:646
 msgid "Zoom Tool"
-msgstr "Alejar"
+msgstr "Herramienta de Zoom"
 
-#: editor_actions.cc:279
+#: gtk2_ardour/editor_actions.cc:647
 msgid "Timefx Tool"
-msgstr ""
+msgstr "Herramienta de Efectos de tiempo "
+
+#: gtk2_ardour/editor_actions.cc:649
+msgid "Step Mouse Mode"
+msgstr "Siguiente modo de Ratón"
+
+#: gtk2_ardour/editor_actions.cc:656
+msgid "Change edit point"
+msgstr "Cambiar Punto de Edición"
 
-#: editor_actions.cc:286
-#, fuzzy
-msgid "Snap to frame"
+#: gtk2_ardour/editor_actions.cc:657
+msgid "Change edit point (w/Marker)"
+msgstr "Cambiar Punto de Edición (c/Marca)"
+
+# seguro?
+#: gtk2_ardour/editor_actions.cc:659
+msgid "Splice"
+msgstr "Reunir"
+
+#: gtk2_ardour/editor_actions.cc:661
+msgid "Slide"
+msgstr "Deslizar"
+
+# no es literal, pero describe la acción que realiza...
+# am I missing something?
+#: gtk2_ardour/editor_actions.cc:663
+msgid "Toggle Edit Mode"
+msgstr "Siguiente Modo de Edición"
+
+#: gtk2_ardour/editor_actions.cc:665
+msgid "Snap To"
+msgstr "Ajustar a"
+
+#: gtk2_ardour/editor_actions.cc:666
+msgid "Snap Mode"
 msgstr "Modo de ajuste"
 
-#: editor_actions.cc:287
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:673
+msgid "Next Snap Mode"
+msgstr "Siguiente modo de ajuste a rejilla"
+
+#: gtk2_ardour/editor_actions.cc:674
+msgid "Next Snap Choice"
+msgstr "Siguiente unidad de ajuste a rejilla"
+
+#: gtk2_ardour/editor_actions.cc:679
 msgid "Snap to cd frame"
-msgstr "Modo de ajuste"
+msgstr "Ajustar a cuadros de CD"
 
-#: editor_actions.cc:288
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:680
 msgid "Snap to SMPTE frame"
-msgstr "SMPTE Cuadros/segundo"
+msgstr "Ajustar a cuadros SMPTE"
 
-#: editor_actions.cc:289
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:681
 msgid "Snap to SMPTE seconds"
-msgstr "SMPTE Cuadros/segundo"
+msgstr "Ajustar a segundos SMPTE"
 
-#: editor_actions.cc:290
+#: gtk2_ardour/editor_actions.cc:682
 msgid "Snap to SMPTE minutes"
-msgstr ""
+msgstr "Ajustar a minutos SMPTE"
 
-#: editor_actions.cc:291
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:683
 msgid "Snap to seconds"
-msgstr "Minutos:Segundos"
+msgstr "Ajustar a segundos"
 
-#: editor_actions.cc:292
+#: gtk2_ardour/editor_actions.cc:684
 msgid "Snap to minutes"
-msgstr ""
+msgstr "Ajustar a minutos"
 
-#: editor_actions.cc:293
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:685
 msgid "Snap to thirtyseconds"
-msgstr "trig�ima segunda (32)"
+msgstr "Ajustar a Pulso/32"
 
-#: editor_actions.cc:294
+#: gtk2_ardour/editor_actions.cc:686
 msgid "Snap to asixteenthbeat"
-msgstr ""
+msgstr "Ajustar a Pulso/16"
 
-#: editor_actions.cc:295
+#: gtk2_ardour/editor_actions.cc:687
 msgid "Snap to eighths"
-msgstr ""
+msgstr "Ajustar a Pulso/8"
 
-#: editor_actions.cc:296
+#: gtk2_ardour/editor_actions.cc:688
 msgid "Snap to quarters"
-msgstr ""
+msgstr "Ajustar a Pulso/4"
 
-#: editor_actions.cc:297
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:689
 msgid "Snap to thirds"
-msgstr "Modo de ajuste"
+msgstr "Ajustar a Pulso/3"
 
-#: editor_actions.cc:298
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:690
 msgid "Snap to beat"
-msgstr "Modo de ajuste"
+msgstr "Ajustar a Pulsos"
 
-#: editor_actions.cc:299
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:691
 msgid "Snap to bar"
-msgstr "Ajustar a"
+msgstr "Ajustar a Compases"
 
-#: editor_actions.cc:300
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:692
 msgid "Snap to mark"
-msgstr "agregar un marcador de regin"
+msgstr "Ajustar a Marcas"
 
-#: editor_actions.cc:301
-#, fuzzy
-msgid "Snap to edit cursor"
-msgstr "Desde principio hasta cursor de edicin"
-
-#: editor_actions.cc:302
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:693
 msgid "Snap to region start"
-msgstr "Comienzos de regin"
+msgstr "Ajustar a Inicios de Región"
 
-#: editor_actions.cc:303
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:694
 msgid "Snap to region end"
-msgstr "Fines de regin"
+msgstr "Ajustar a Finales de Región"
 
-#: editor_actions.cc:304
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:695
 msgid "Snap to region sync"
-msgstr "Sincronizaciones de region"
+msgstr "Ajustar a Puntos de Sincronía"
 
-#: editor_actions.cc:305
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:696
 msgid "Snap to region boundary"
-msgstr "Bordes de regin"
+msgstr "Ajustar a Bordes de Región"
+
+#: gtk2_ardour/editor_actions.cc:703
+msgid "Ranges"
+msgstr "Rangos"
+
+#: gtk2_ardour/editor_actions.cc:706
+msgid "Loop/Punch"
+msgstr "Bucle/Pinchar"
+
+#: gtk2_ardour/editor_actions.cc:710
+msgid "Min:Sec"
+msgstr "Mins:Segs"
 
-#. the region list popup menu
-#: editor_actions.cc:314
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:742
 msgid "Sort"
-msgstr "conector"
+msgstr "Ordenar"
 
-#: editor_actions.cc:322
+#: gtk2_ardour/editor_actions.cc:750
 msgid "Show all"
 msgstr "Mostrar todo"
 
-#: editor_actions.cc:323
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:751
 msgid "Show automatic regions"
-msgstr "Mostrar toda automatizacin"
+msgstr "Mostrar regiones automáticas"
 
-#: editor_actions.cc:325
+#: gtk2_ardour/editor_actions.cc:753
 msgid "Ascending"
 msgstr "Ascendente"
 
-#: editor_actions.cc:327
+#: gtk2_ardour/editor_actions.cc:755
 msgid "Descending"
 msgstr "Descendente"
 
-#: editor_actions.cc:330
+#: gtk2_ardour/editor_actions.cc:758
 msgid "By Region Name"
-msgstr "Por Nombre de Regin"
+msgstr "Por Nombre de Región"
 
-#: editor_actions.cc:332
+#: gtk2_ardour/editor_actions.cc:760
 msgid "By Region Length"
-msgstr "Por Tamao de Regin"
+msgstr "Por Duración de Región"
 
-#: editor_actions.cc:334
+#: gtk2_ardour/editor_actions.cc:762
 msgid "By Region Position"
-msgstr "Por Posicin de regin"
+msgstr "Por Posición de Región"
 
-#: editor_actions.cc:336
+#: gtk2_ardour/editor_actions.cc:764
 msgid "By Region Timestamp"
-msgstr "Por fecha de Regin"
+msgstr "Por Marca Temporal de Región"
 
-#: editor_actions.cc:338
+#: gtk2_ardour/editor_actions.cc:766
 msgid "By Region Start in File"
-msgstr "Por inicio de regin en archivo"
+msgstr "Por inicio de región en archivo"
 
-#: editor_actions.cc:340
+#: gtk2_ardour/editor_actions.cc:768
 msgid "By Region End in File"
-msgstr "Por fin de regin en archivo"
+msgstr "Por fin de región en archivo"
 
-#: editor_actions.cc:342
+#: gtk2_ardour/editor_actions.cc:770
 msgid "By Source File Name"
 msgstr "Por nombre de archivo"
 
-#: editor_actions.cc:344
+#: gtk2_ardour/editor_actions.cc:772
 msgid "By Source File Length"
-msgstr "Por tamao de archivo"
+msgstr "Por duración de archivo"
 
-#: editor_actions.cc:346
+#: gtk2_ardour/editor_actions.cc:774
 msgid "By Source File Creation Date"
-msgstr "Por fecha de creacin"
+msgstr "Por fecha de creación"
 
-#: editor_actions.cc:348
+#: gtk2_ardour/editor_actions.cc:776
 msgid "By Source Filesystem"
 msgstr "Por sistema de archivos"
 
-#. the next two are duplicate items with different names for use in two different contexts
-#: editor_actions.cc:354
-#, fuzzy
-msgid "Add External Audio"
-msgstr "Agregar a lista externa de regiones"
-
-#: editor_actions.cc:356
-#, fuzzy
-msgid "as Region(s)"
-msgstr "normalizar regiones"
-
-#: editor_actions.cc:358
-#, fuzzy
-msgid "as Tracks"
-msgstr "Pistas"
+#: gtk2_ardour/editor_actions.cc:782
+msgid "Import"
+msgstr "Importar"
 
-#: editor_actions.cc:360
-#, fuzzy
-msgid "to Tracks"
-msgstr "Pistas"
+#: gtk2_ardour/editor_actions.cc:784
+msgid "Import to Region List"
+msgstr "Importar a la Lista de Regiones"
 
-#: editor_actions.cc:363
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:787
 msgid "Show Waveforms"
-msgstr "Mostrar onda de audio"
+msgstr "Mostrar formas de onda"
 
-#: editor_actions.cc:364
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:790
 msgid "Show Waveforms While Recording"
-msgstr "Mostrar onda de audio"
+msgstr "Mostrar forma de onda al grabar"
 
-#: editor_actions.cc:365
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:791
 msgid "Show Measures"
-msgstr "Mostrar l�eas de medida"
+msgstr "Mostrar líneas de Compases"
 
-#: editor_actions.cc:378 editor_actions.cc:385
-msgid "Medium"
-msgstr ""
+#: gtk2_ardour/editor_actions.cc:802
+msgid "Show Logo"
+msgstr "Mostrar logo"
 
-#: editor_actions.cc:380
-#, fuzzy
-msgid "Faster"
-msgstr "Fades"
-
-#: editor_actions.cc:386
-msgid "Long"
-msgstr ""
-
-#: editor_actions.cc:390
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:808
 msgid "Later is Higher"
-msgstr "Bajar regin una capa"
+msgstr "Región posterior encima"
 
-#: editor_actions.cc:391
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:809
 msgid "Most Recently Moved/Added is Higher"
-msgstr "Bajar regin una capa"
+msgstr "Región movida/agregada más recientemente encima"
 
-#: editor_actions.cc:392
-#, fuzzy
+#: gtk2_ardour/editor_actions.cc:810
 msgid "Most Recently Added is Higher"
-msgstr "Bajar regin una capa"
-
-#: editor_audio_import.cc:72
-#, fuzzy
+msgstr "Región agregada más recientemente encima"
+
+#: gtk2_ardour/editor_actions.cc:814
+msgid "23.976"
+msgstr "23,976"
+
+#: gtk2_ardour/editor_actions.cc:815
+msgid "24"
+msgstr "24"
+
+#: gtk2_ardour/editor_actions.cc:816
+msgid "24.976"
+msgstr "24,976"
+
+#: gtk2_ardour/editor_actions.cc:817
+msgid "25"
+msgstr "25"
+
+#: gtk2_ardour/editor_actions.cc:818
+msgid "29.97"
+msgstr "29,97"
+
+#: gtk2_ardour/editor_actions.cc:819
+msgid "29.97 drop"
+msgstr "29,97 drop"
+
+#: gtk2_ardour/editor_actions.cc:820
+msgid "30"
+msgstr "30"
+
+# sugeriría mantener el término "drop"
+#: gtk2_ardour/editor_actions.cc:821
+msgid "30 drop"
+msgstr "30 drop"
+
+#: gtk2_ardour/editor_actions.cc:822
+msgid "59.94"
+msgstr "59,94"
+
+#: gtk2_ardour/editor_actions.cc:823
+msgid "60"
+msgstr "60"
+
+#: gtk2_ardour/editor_actions.cc:827
+msgid "+4.1667% + 0.1%"
+msgstr "+4,1667% + 0,1%"
+
+#: gtk2_ardour/editor_actions.cc:828
+msgid "+4.1667%"
+msgstr "+4,1667%"
+
+#: gtk2_ardour/editor_actions.cc:829
+msgid "+4.1667% - 0.1%"
+msgstr "+4,1667% - 0,1%"
+
+#: gtk2_ardour/editor_actions.cc:830
+msgid "+ 0.1%"
+msgstr "+ 0,1%"
+
+#: gtk2_ardour/editor_actions.cc:831
+#: gtk2_ardour/engine_dialog.cc:101
+#: gtk2_ardour/engine_dialog.cc:106
+#: gtk2_ardour/engine_dialog.cc:510
+#: gtk2_ardour/export_dialog.cc:79
+#: gtk2_ardour/export_dialog.cc:93
+#: gtk2_ardour/export_dialog.cc:988
+#: gtk2_ardour/export_dialog.cc:1335
+#: gtk2_ardour/route_ui.cc:654
+msgid "None"
+msgstr "Ninguno"
+
+#: gtk2_ardour/editor_actions.cc:832
+msgid "- 0.1%"
+msgstr "- 0,1%"
+
+#: gtk2_ardour/editor_actions.cc:833
+msgid "-4.1667% + 0.1%"
+msgstr "-4,1667% + 0,1%"
+
+#: gtk2_ardour/editor_actions.cc:834
+msgid "-4.1667%"
+msgstr "-4,1667%"
+
+#: gtk2_ardour/editor_actions.cc:835
+msgid "-4.1667% - 0.1%"
+msgstr "-4,1667% - 0,1%"
+
+#: gtk2_ardour/editor_actions.cc:839
+msgid "80 per frame"
+msgstr "80 por cuadro"
+
+#: gtk2_ardour/editor_actions.cc:841
+msgid "100 per frame"
+msgstr "100 por cuadro"
+
+#: gtk2_ardour/editor_actions.cc:1235
+#: gtk2_ardour/editor_actions.cc:1344
+#: gtk2_ardour/editor_actions.cc:1355
+#: gtk2_ardour/editor_actions.cc:1408
+#: gtk2_ardour/editor_actions.cc:1419
+#: gtk2_ardour/editor_actions.cc:1466
+#: gtk2_ardour/editor_actions.cc:1476
+msgid "programming error: %1: %2"
+msgstr "error de programación: %1: %2"
+
+#: gtk2_ardour/editor_actions.cc:1637
+msgid "Configuraton is using unhandled subframes per frame value: %1"
+msgstr ""
+
+#: gtk2_ardour/editor_actions.cc:1669
+#: gtk2_ardour/route_time_axis.cc:546
+#: gtk2_ardour/route_time_axis.cc:601
+#: gtk2_ardour/route_time_axis.cc:859
+msgid "programming error: %1 %2"
+msgstr "error de programación: %1 %2"
+
+#: gtk2_ardour/editor_audio_import.cc:74
+#: gtk2_ardour/editor_audio_import.cc:95
 msgid "You can't import or embed an audiofile until you have a session loaded."
-msgstr "No puede importar un archivo a menos que abra o cree una sesin"
+msgstr "No puede importar o embeber un archivo a menos que abra o cree una sesión."
+
+#: gtk2_ardour/editor_audio_import.cc:80
+#: gtk2_ardour/editor_audio_import.cc:113
+msgid "Add existing audio"
+msgstr "Agregar audio existente"
 
-#: editor_audio_import.cc:77
-#, fuzzy
-msgid "Add existing audio to session"
-msgstr "Mostrar toda automatizacin"
+#: gtk2_ardour/editor_audio_import.cc:225
+msgid "The session already contains a source file named %1. This file will be imported as a new file, please confirm."
+msgstr "La sesión ya contiene un archivo llamado %1. Este archivo será importado como un nuevo archivo. Por favor, confirme la operación."
 
-#: editor_audio_import.cc:142
-#, fuzzy
-msgid "ardour: importing %1"
-msgstr "ardour: exportar"
+#: gtk2_ardour/editor_audio_import.cc:227
+msgid "A source file %1 already exists. This operation will not update that source but import the file %2 as a new source, please confirm."
+msgstr "Ya existe un archivo llamado %1. Esta operación no actualizará ese archivo, sino que importará el archivo %2 como nuevo. Por favor, confirme la operación."
 
-#: editor_audio_import.cc:146
+#: gtk2_ardour/editor_audio_import.cc:451
+msgid "importing %1"
+msgstr "importando %1"
+
+#: gtk2_ardour/editor_audio_import.cc:456
 msgid "Cancel Import"
-msgstr "Cancelar importacin"
+msgstr "Cancelar Importación"
 
-#: editor_audio_import.cc:224
-#, fuzzy
+#: gtk2_ardour/editor_audio_import.cc:571
 msgid "Editor: cannot open file \"%1\", (%2)"
-msgstr "Editor: no se pudo abrir el archivo \"%1\" (%2)"
+msgstr "Editor: no se pudo abrir el archivo \"%1\", (%2)"
 
-#: editor_audio_import.cc:232
-#, fuzzy
+#: gtk2_ardour/editor_audio_import.cc:579
 msgid "Cancel entire import"
-msgstr "Cancelar importacin"
+msgstr "Cancelar importación completa"
 
-#: editor_audio_import.cc:233
-#, fuzzy
+#: gtk2_ardour/editor_audio_import.cc:580
 msgid "Don't embed it"
-msgstr "No %1"
+msgstr "No embeber"
 
-#: editor_audio_import.cc:234
+#: gtk2_ardour/editor_audio_import.cc:581
 msgid "Embed all without questions"
-msgstr ""
+msgstr "Embeber todos sin preguntas"
 
-#: editor_audio_import.cc:239
-#, fuzzy
-msgid "Embed it anyway"
-msgstr "Linquear de todas formas"
-
-#: editor_audio_import.cc:242
-#, fuzzy
+#: gtk2_ardour/editor_audio_import.cc:584
+#: gtk2_ardour/editor_audio_import.cc:611
 msgid ""
 "%1\n"
 "This audiofile's sample rate doesn't match the session sample rate!"
-msgstr "La frecuencia de muestreo de este archivo difiere de la de la sesin!"
+msgstr ""
+"%1\n"
+"¡La frecuencia de muestreo de este archivo difiere de la de la sesión!"
 
-#: editor_audio_import.cc:275
+#: gtk2_ardour/editor_audio_import.cc:608
+msgid "Embed it anyway"
+msgstr "Embeber de todas formas"
+
+#: gtk2_ardour/editor_audio_import.cc:654
 msgid "could not open %1"
 msgstr "no se pudo abrir %1"
 
-#: editor_audio_import.cc:320
-#, fuzzy
+#: gtk2_ardour/editor_audio_import.cc:784
 msgid "insert sndfile"
 msgstr "Insertar archivo de audio externo"
 
-#. stuff for the verbose canvas cursor
-#: editor_canvas.cc:118
+#: gtk2_ardour/editor_canvas.cc:114
 msgid "VerboseCanvasCursor"
 msgstr ""
 
-#: editor_edit_groups.cc:53 mixer_ui.cc:736
-#, fuzzy
+#: gtk2_ardour/editor_edit_groups.cc:52
+#: gtk2_ardour/mixer_ui.cc:987
 msgid "Activate All"
-msgstr "Activar"
+msgstr "Activar Todos"
 
-#: editor_edit_groups.cc:54 mixer_ui.cc:737
-#, fuzzy
+#: gtk2_ardour/editor_edit_groups.cc:53
+#: gtk2_ardour/mixer_ui.cc:988
 msgid "Disable All"
-msgstr "Desconectar"
+msgstr "Desactivar Todos"
 
-#: editor_edit_groups.cc:56 mixer_ui.cc:739
-#, fuzzy
+#: gtk2_ardour/editor_edit_groups.cc:55
+#: gtk2_ardour/mixer_ui.cc:990
 msgid "Add group"
-msgstr "Sin grupo"
+msgstr "Agregar grupo"
 
-#: editor_edit_groups.cc:229 mixer_ui.cc:970
-#, fuzzy
+#: gtk2_ardour/editor_edit_groups.cc:237
+#: gtk2_ardour/mixer_ui.cc:1241
 msgid "unnamed"
-msgstr "Renombrar"
+msgstr "sin nombre"
 
-#: editor_edit_groups.cc:258 mixer_ui.cc:834
+#: gtk2_ardour/editor_edit_groups.cc:266
+#: gtk2_ardour/mixer_ui.cc:1094
 msgid "-all-"
 msgstr "-todo-"
 
-#: editor_export_audio.cc:65
+#: gtk2_ardour/editor_export_audio.cc:66
 msgid ""
 "There is no selection to export.\n"
 "\n"
 "Select a selection using the range mouse mode"
 msgstr ""
+"No hay ninguna selección para exportar.\n"
+"\n"
+"Cree una selección usando la herramienta de rango."
 
-#: editor_export_audio.cc:110
+#: gtk2_ardour/editor_export_audio.cc:109
 msgid ""
 "There are no ranges to export.\n"
 "\n"
 "Create 1 or more ranges by dragging the mouse in the range bar"
 msgstr ""
+"No hay rangos para exportar.\n"
+"\n"
+"Crear un rango o más por dragar el control al bar de la rango"
 
-#: editor_imageframe.cc:625 editor_imageframe.cc:655
+#: gtk2_ardour/editor_imageframe.cc:624
+#: gtk2_ardour/editor_imageframe.cc:654
 msgid "programming error: no ImageFrameView selected"
 msgstr ""
 
-#: editor_imageframe.cc:848 editor_imageframe.cc:870
+#: gtk2_ardour/editor_imageframe.cc:847
+#: gtk2_ardour/editor_imageframe.cc:869
 msgid "programming error: no MarkerView selected"
 msgstr ""
 
-#: editor_keyboard.cc:104
-#, fuzzy
+#: gtk2_ardour/editor_keyboard.cc:82
 msgid "mute region"
-msgstr "enmudecer a esta regin"
-
-#: editor_keys.cc:46
-#, fuzzy
-msgid "keyboard selection"
-msgstr "Separar Seleccin"
-
-#: editor_markers.cc:292 editor_ops.cc:1290 editor_ops.cc:1303
-#: editor_ops.cc:1321 location_ui.cc:774
+msgstr "enmudecer región"
+
+#: gtk2_ardour/editor_markers.cc:411
+#: gtk2_ardour/editor_ops.cc:1959
+#: gtk2_ardour/editor_ops.cc:1979
+#: gtk2_ardour/editor_ops.cc:2004
+#: gtk2_ardour/editor_ops.cc:2034
+#: gtk2_ardour/location_ui.cc:851
 msgid "add marker"
-msgstr "agregar marcador"
-
-#: editor_markers.cc:307 editor_markers.cc:380 editor_markers.cc:552
-#: editor_markers.cc:570 editor_markers.cc:589 editor_markers.cc:608
-#: editor_markers.cc:638 editor_markers.cc:666 editor_markers.cc:694
-#: editor_markers.cc:732 editor_markers.cc:759 editor_markers.cc:782
-#: editor_markers.cc:801 editor_mouse.cc:2015 editor_mouse.cc:4275
+msgstr "agregar marca"
+
+#: gtk2_ardour/editor_markers.cc:435
+#: gtk2_ardour/editor_markers.cc:503
+#: gtk2_ardour/editor_markers.cc:694
+#: gtk2_ardour/editor_markers.cc:712
+#: gtk2_ardour/editor_markers.cc:730
+#: gtk2_ardour/editor_markers.cc:749
+#: gtk2_ardour/editor_markers.cc:768
+#: gtk2_ardour/editor_markers.cc:798
+#: gtk2_ardour/editor_markers.cc:826
+#: gtk2_ardour/editor_markers.cc:849
+#: gtk2_ardour/editor_markers.cc:877
+#: gtk2_ardour/editor_markers.cc:905
+#: gtk2_ardour/editor_markers.cc:943
+#: gtk2_ardour/editor_markers.cc:968
+#: gtk2_ardour/editor_markers.cc:995
+#: gtk2_ardour/editor_markers.cc:1018
+#: gtk2_ardour/editor_markers.cc:1038
+#: gtk2_ardour/editor_markers.cc:1062
+#: gtk2_ardour/editor_mouse.cc:2390
+#: gtk2_ardour/editor_mouse.cc:5095
 msgid "programming error: marker canvas item has no marker object pointer!"
 msgstr ""
 
-#: editor_markers.cc:331 location_ui.cc:656
+#: gtk2_ardour/editor_markers.cc:453
+#: gtk2_ardour/location_ui.cc:720
 msgid "remove marker"
-msgstr "quitar marcador"
+msgstr "quitar marca"
 
-#: editor_markers.cc:458
-#, fuzzy
-msgid "Locate to Mark"
-msgstr "Localizar a"
+#: gtk2_ardour/editor_markers.cc:594
+msgid "Locate to here"
+msgstr "Localizar a aquí "
 
-#: editor_markers.cc:459
-#, fuzzy
-msgid "Play from Mark"
-msgstr "Reproducir desde el principio"
+#: gtk2_ardour/editor_markers.cc:595
+msgid "Play from here"
+msgstr "Reproducir desde aquí"
 
-#: editor_markers.cc:460
-#, fuzzy
-msgid "Set Mark from Playhead"
-msgstr "Ubicar desde barra de reproduccin"
+#: gtk2_ardour/editor_markers.cc:596
+msgid "Move Mark to Playhead"
+msgstr "Mover Marca hasta Cursor"
 
-#: editor_markers.cc:464
-#, fuzzy
-msgid "Rename Mark"
-msgstr "Renombrar"
+#: gtk2_ardour/editor_markers.cc:600
+msgid "Create range to next marker"
+msgstr "Crear Rango hasta Marca siguiente"
 
-#: editor_markers.cc:465
-#, fuzzy
-msgid "Hide Mark"
-msgstr "Ocultar esta pista"
+#: gtk2_ardour/editor_markers.cc:606
+msgid "Unlock"
+msgstr "Desbloquear"
 
-#: editor_markers.cc:466
-#, fuzzy
-msgid "Remove Mark"
-msgstr "quitar marcador"
+#: gtk2_ardour/editor_markers.cc:628
+msgid "Play Range"
+msgstr "Reproducir Rango"
 
-#: editor_markers.cc:479 editor_markers.cc:535
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:629
 msgid "Locate to Range Mark"
-msgstr "Marcadores de localizacin"
+msgstr "Ir a Marca de Rango"
 
-#: editor_markers.cc:480 editor_markers.cc:536
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:630
 msgid "Play from Range Mark"
-msgstr "Reproducir el intervalo cont�uamente"
+msgstr "Reproducir desde Marca de Rango"
 
-#: editor_markers.cc:481
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:632
 msgid "Loop Range"
-msgstr "rango de reproduccin cont�ua"
+msgstr "Reproducir Rango continuamente"
 
-#: editor_markers.cc:482 editor_markers.cc:537
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:634
 msgid "Set Range Mark from Playhead"
-msgstr "Ubicar desde barra de reproduccin"
+msgstr "Fijar Marca de Rango en Cursor"
 
-#: editor_markers.cc:483 editor_markers.cc:538
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:636
 msgid "Set Range from Range Selection"
-msgstr "Reproducir seleccin"
+msgstr "Definir Rango según Selección de Rango"
 
-#: editor_markers.cc:487
-#, fuzzy
-msgid "Rename Range"
-msgstr "Renombrar"
-
-#: editor_markers.cc:488 editor_markers.cc:540
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:646
 msgid "Hide Range"
-msgstr "Agregar nueva regin"
+msgstr "Ocultar Rango"
+
+#: gtk2_ardour/editor_markers.cc:647
+#: gtk2_ardour/editor_markers.cc:1082
+msgid "Rename Range"
+msgstr "Renombrar Rango"
 
-#: editor_markers.cc:489
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:648
 msgid "Remove Range"
-msgstr "Quitar Campo"
+msgstr "Eliminar Rango"
 
-#: editor_markers.cc:493 editor_markers.cc:542
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:653
 msgid "Separate Regions in Range"
-msgstr "Nueva region a partir de seleccin"
+msgstr "Separar Regiones en Rango"
 
-#: editor_markers.cc:494 editor_markers.cc:543
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:654
 msgid "Select All in Range"
-msgstr "Seleccionar todo dentro de pista"
+msgstr "Seleccionar Todo en Rango"
+
+#: gtk2_ardour/editor_markers.cc:656
+msgid "Select Range"
+msgstr "Seleccionar Rango"
 
-#: editor_markers.cc:520
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:682
 msgid "Set Loop Range"
-msgstr "selecionar intervalo de reproduccin cont�ua"
+msgstr "Crear Rango de Bucle"
 
-#: editor_markers.cc:521
+# rango de pinchado? ok?
+#: gtk2_ardour/editor_markers.cc:683
 msgid "Set Punch Range"
-msgstr "Seleccionar intervalo de punch"
+msgstr "Crear Rango de Pinchado"
 
-#: editor_markers.cc:815
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:1076
+#: gtk2_ardour/editor_ops.cc:1911
 msgid "New Name:"
-msgstr "nuevo nombre: "
-
-#: editor_markers.cc:818
-msgid "ardour: rename mark"
-msgstr "ardour: renombrar marca"
+msgstr "Nuevo nombre: "
 
-#: editor_markers.cc:820
-#, fuzzy
-msgid "ardour: rename range"
-msgstr "ardour: renombrar regin"
+#: gtk2_ardour/editor_markers.cc:1080
+msgid "Rename Mark"
+msgstr "renombrar Marca"
 
-#: editor_markers.cc:840
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:1104
 msgid "rename marker"
-msgstr "quitar marcador"
+msgstr "renombrar Marca"
 
-#: editor_markers.cc:865
-#, fuzzy
+#: gtk2_ardour/editor_markers.cc:1126
 msgid "set loop range"
-msgstr "seleccionar rango de zoom"
+msgstr "crear Rango de Bucle"
 
-#: editor_markers.cc:891
-#, fuzzy
+# rango de pinchado? ok?
+#: gtk2_ardour/editor_markers.cc:1132
 msgid "set punch range"
-msgstr "Seleccionar intervalo actual"
+msgstr "crear rango de pinchado"
 
-#: editor_mouse.cc:103
+#: gtk2_ardour/editor_mouse.cc:147
 msgid "Editor::event_frame() used on unhandled event type %1"
 msgstr ""
 
-#: editor_mouse.cc:313
-#, fuzzy
-msgid "select on click"
-msgstr "Usar como metrnomo"
-
-#: editor_mouse.cc:1590
+#: gtk2_ardour/editor_mouse.cc:1896
 msgid "programming error: start_grab called without drag item"
 msgstr ""
 
-#: editor_mouse.cc:1814
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:2096
 msgid "change fade in length"
-msgstr "editar fade in"
+msgstr "cambiar duración del fundido de entrada"
 
-#: editor_mouse.cc:1832
+#: gtk2_ardour/editor_mouse.cc:2129
 msgid "programming error: fade out canvas item has no regionview data pointer!"
 msgstr ""
 
-#: editor_mouse.cc:1906
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:2213
 msgid "change fade out length"
-msgstr "agregar salida"
+msgstr "cambiar duración del fundido de salida"
 
-#: editor_mouse.cc:1925
+#: gtk2_ardour/editor_mouse.cc:2246
+#: gtk2_ardour/editor_mouse.cc:2279
 msgid "programming error: cursor canvas item has no cursor data pointer!"
 msgstr ""
 
-#: editor_mouse.cc:2142
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:2675
 msgid "move marker"
-msgstr "quitar marcador"
+msgstr "mover marca"
 
-#: editor_mouse.cc:2165 editor_mouse.cc:2196 editor_tempodisplay.cc:459
-msgid ""
-"programming error: meter marker canvas item has no marker object pointer!"
+#: gtk2_ardour/editor_mouse.cc:2717
+#: gtk2_ardour/editor_mouse.cc:2749
+#: gtk2_ardour/editor_tempodisplay.cc:432
+msgid "programming error: meter marker canvas item has no marker object pointer!"
 msgstr ""
 
-#: editor_mouse.cc:2264
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:2817
 msgid "copy meter mark"
-msgstr "quitar marcador"
+msgstr "copiar marca de compás"
 
-#: editor_mouse.cc:2274
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:2828
 msgid "move meter mark"
-msgstr "quitar marcador"
+msgstr "mover marca de compás"
 
-#: editor_mouse.cc:2289 editor_mouse.cc:2322 editor_tempodisplay.cc:331
-#: editor_tempodisplay.cc:409 editor_tempodisplay.cc:428
-msgid ""
-"programming error: tempo marker canvas item has no marker object pointer!"
+#: gtk2_ardour/editor_mouse.cc:2844
+#: gtk2_ardour/editor_mouse.cc:2878
+#: gtk2_ardour/editor_tempodisplay.cc:296
+#: gtk2_ardour/editor_tempodisplay.cc:381
+#: gtk2_ardour/editor_tempodisplay.cc:400
+msgid "programming error: tempo marker canvas item has no marker object pointer!"
 msgstr ""
 
-#: editor_mouse.cc:2294 editor_mouse.cc:2327 editor_tempodisplay.cc:336
-#: editor_tempodisplay.cc:414
+#: gtk2_ardour/editor_mouse.cc:2849
+#: gtk2_ardour/editor_mouse.cc:2883
+#: gtk2_ardour/editor_tempodisplay.cc:301
+#: gtk2_ardour/editor_tempodisplay.cc:386
 msgid "programming error: marker for tempo is not a tempo marker!"
 msgstr ""
 
-#: editor_mouse.cc:2394
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:2950
 msgid "copy tempo mark"
-msgstr "quitar marcador"
+msgstr "copiar marca de tempo"
 
-#: editor_mouse.cc:2404
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:2961
 msgid "move tempo mark"
-msgstr "quitar marcador"
+msgstr "mover marca de tempo"
 
-#: editor_mouse.cc:2418 editor_mouse.cc:2437 editor_mouse.cc:2450
-msgid ""
-"programming error: control point canvas item has no control point object "
-"pointer!"
+#: gtk2_ardour/editor_mouse.cc:2976
+#: gtk2_ardour/editor_mouse.cc:2995
+#: gtk2_ardour/editor_mouse.cc:3008
+msgid "programming error: control point canvas item has no control point object pointer!"
 msgstr ""
 
-#: editor_mouse.cc:2555
+#: gtk2_ardour/editor_mouse.cc:3143
 msgid "programming error: line canvas item has no line pointer!"
 msgstr ""
 
-#: editor_mouse.cc:2664
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:3274
 msgid "move region(s)"
-msgstr "invertir regiones"
+msgstr "mover región(es)"
 
-#: editor_mouse.cc:2727
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:3346
 msgid "Drag region brush"
-msgstr "normalizar regiones"
+msgstr ""
+
+#: gtk2_ardour/editor_mouse.cc:3994
+msgid "fixed time region copy"
+msgstr "copiar región manteniendo posición en el tiempo"
 
-#. don't copy again
-#. this is committed in the grab finished callback.
-#: editor_mouse.cc:2751
-msgid "Drag region copy"
+# estimo que es para el undo history
+#: gtk2_ardour/editor_mouse.cc:3996
+msgid "region copy"
+msgstr "copiar región"
+
+#: gtk2_ardour/editor_mouse.cc:4000
+msgid "fixed time region drag"
 msgstr ""
 
-#. A selection grab currently creates two undo/redo operations, one for
-#. creating the new region and another for moving it.
-#.
-#: editor_mouse.cc:3609
-#, fuzzy
-msgid "selection grab"
-msgstr "Seleccin"
+#: gtk2_ardour/editor_mouse.cc:4002
+msgid "region drag"
+msgstr "mover región"
 
-#: editor_mouse.cc:3650
-#, fuzzy
-msgid "cancel selection"
-msgstr "Reproducir seleccin"
+#: gtk2_ardour/editor_mouse.cc:4415
+msgid "selection grab"
+msgstr ""
 
-#: editor_mouse.cc:3760
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:4566
 msgid "range selection"
-msgstr "Reproducir seleccin"
+msgstr "selección de rango"
 
-#: editor_mouse.cc:3776
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:4582
 msgid "trim selection start"
-msgstr "Desde locacin"
+msgstr "recortar inicio de la selección"
 
-#: editor_mouse.cc:3792
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:4598
 msgid "trim selection end"
-msgstr "Desde locacin"
+msgstr "recortar final de la selección"
 
-#: editor_mouse.cc:3809
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:4615
 msgid "move selection"
-msgstr "Grabar seleccin"
+msgstr "mover la selección"
 
-#: editor_mouse.cc:4195
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:5004
 msgid "Start point trim"
-msgstr "Desde principio hasta cursor de edicin"
+msgstr "Recortar inicio"
 
-#: editor_mouse.cc:4223
+#: gtk2_ardour/editor_mouse.cc:5036
 msgid "End point trim"
-msgstr ""
+msgstr "Recortar final"
 
-#: editor_mouse.cc:4262
+#: gtk2_ardour/editor_mouse.cc:5079
 msgid "trimmed region"
-msgstr "regin acortada"
+msgstr "región acortada"
 
-#: editor_mouse.cc:4400
-#, fuzzy
+#: gtk2_ardour/editor_mouse.cc:5242
 msgid "new range marker"
-msgstr "agregar un marcador de regin"
+msgstr "Marca de Rango nueva"
 
-#: editor_mouse.cc:4642
-#, fuzzy
-msgid "select regions"
-msgstr "Reproducir regin seleccionada cont�uamente"
+#: gtk2_ardour/editor_mouse.cc:5490
+msgid "rubberband selection"
+msgstr "selección elástica"
 
-#: editor_mouse.cc:4671
+#: gtk2_ardour/editor_mouse.cc:5522
 msgid "Name for region:"
-msgstr "Nombre para regin:"
+msgstr "Nombre para Región:"
 
-#: editor_mouse.cc:4735
+#: gtk2_ardour/editor_mouse.cc:5595
 msgid "timestretch"
-msgstr ""
+msgstr "estirar tiempo"
 
-#: editor_ops.cc:195
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:126
 msgid "split"
-msgstr "Separar"
+msgstr "separar"
 
-#: editor_ops.cc:231
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:191
+#: gtk2_ardour/editor_ops.cc:214
 msgid "remove region"
-msgstr "invertir regiones"
+msgstr "eliminar región"
 
-#: editor_ops.cc:250
-msgid ""
-" This is destructive, will possibly delete audio files\n"
-"It cannot be undone\n"
-"Do you really want to destroy %1 ?"
-msgstr ""
-
-#: editor_ops.cc:254
-#, fuzzy
-msgid "these regions"
-msgstr "invertir regiones"
-
-#: editor_ops.cc:254
-#, fuzzy
-msgid "this region"
-msgstr "enmudecer a esta regin"
-
-#: editor_ops.cc:256 editor_ops.cc:3318 route_ui.cc:707
-#: visual_time_axis.cc:278
-#, fuzzy
-msgid "No, do nothing."
-msgstr "No, no hacer nada."
+#: gtk2_ardour/editor_ops.cc:312
+#: gtk2_ardour/editor_ops.cc:340
+msgid "extend selection"
+msgstr "ampliar la selección"
 
-#: editor_ops.cc:259
-#, fuzzy
-msgid "Yes, destroy them."
-msgstr "Si, eliminar."
+#: gtk2_ardour/editor_ops.cc:381
+msgid "nudge regions forward"
+msgstr "mover regiones hacia adelante"
 
-#: editor_ops.cc:261 editor_ops.cc:3319
-#, fuzzy
-msgid "Yes, destroy it."
-msgstr "Si, eliminar."
+#: gtk2_ardour/editor_ops.cc:405
+#: gtk2_ardour/editor_ops.cc:490
+msgid "nudge location forward"
+msgstr "mover localización hacia adelante"
 
-#: editor_ops.cc:352 editor_ops.cc:380
-#, fuzzy
-msgid "extend selection"
-msgstr "Separar Seleccin"
+#: gtk2_ardour/editor_ops.cc:462
+msgid "nudge regions backward"
+msgstr "mover regiones hacia atrás"
 
-#: editor_ops.cc:396 editor_ops.cc:430 editor_ops.cc:474 editor_ops.cc:500
+#: gtk2_ardour/editor_ops.cc:555
+#: gtk2_ardour/editor_ops.cc:585
 msgid "nudge forward"
-msgstr ""
+msgstr "mover hacia adelante"
 
-#: editor_ops.cc:564
+#: gtk2_ardour/editor_ops.cc:652
 msgid "build_region_boundary_cache called with snap_type = %1"
 msgstr ""
 
-#: editor_ops.cc:1420
-#, fuzzy
-msgid "select all within"
-msgstr "Seleccionar todo"
-
-#: editor_ops.cc:1452
-#, fuzzy
-msgid "set selection from region"
-msgstr "Nueva region a partir de seleccin"
-
-#: editor_ops.cc:1485
-#, fuzzy
-msgid "set selection from range"
-msgstr "Nueva region a partir de seleccin"
-
-#: editor_ops.cc:1515
-#, fuzzy
-msgid "select all from range"
-msgstr "seleccionar rango de zoom"
-
-#: editor_ops.cc:1537
-#, fuzzy
-msgid "select all from punch"
-msgstr "Seleccionar todo"
-
-#: editor_ops.cc:1559
-#, fuzzy
-msgid "select all from loop"
-msgstr "Seleccionar todo"
-
-#: editor_ops.cc:1573
-#, fuzzy
-msgid "select all after cursor"
-msgstr "Desde principio hasta cursor de edicin"
-
-#: editor_ops.cc:1578
-#, fuzzy
-msgid "select all before cursor"
-msgstr "Reproducir desde el cursor"
+#: gtk2_ardour/editor_ops.cc:1914
+msgid "Name New Location Marker"
+msgstr "Nombrar Marcas Nuevas"
 
-#: editor_ops.cc:1608
-#, fuzzy
-msgid "select all between cursors"
-msgstr "Reproducir desde el cursor"
+#: gtk2_ardour/editor_ops.cc:2004
+msgid "add markers"
+msgstr "agregar marcas"
 
-#: editor_ops.cc:1739
+#: gtk2_ardour/editor_ops.cc:2178
 msgid "clear markers"
-msgstr "borrar marcadores"
+msgstr "borrar marcas"
 
-#: editor_ops.cc:1751
+#: gtk2_ardour/editor_ops.cc:2191
 msgid "clear ranges"
-msgstr "borrar intervalos"
+msgstr "borrar Rangos"
 
-#: editor_ops.cc:1770
+#: gtk2_ardour/editor_ops.cc:2211
 msgid "clear locations"
 msgstr "borrar localizaciones"
 
-#: editor_ops.cc:1820
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:2284
 msgid "insert dragged region"
-msgstr "Insertar Regin"
+msgstr "inserte la región arrastrada"
 
-#: editor_ops.cc:1856
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:2331
 msgid "insert region"
-msgstr "Insertar Regin"
+msgstr "insertar Región"
 
-#: editor_ops.cc:2047 io_selector.cc:58 io_selector.cc:792
-msgid "OK"
-msgstr "OK"
+#: gtk2_ardour/editor_ops.cc:2555
+msgid "Rename Region"
+msgstr "Renombrar región"
 
-#: editor_ops.cc:2054
-msgid "ardour: rename region"
-msgstr "ardour: renombrar regin"
+#: gtk2_ardour/editor_ops.cc:2559
+msgid "New name:"
+msgstr "Nuevo nombre: "
 
-#: editor_ops.cc:2277 editor_ops.cc:2326
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:2897
 msgid "separate"
-msgstr "Separar Regin"
+msgstr "separar"
 
-#: editor_ops.cc:2388
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:3045
 msgid "trim to selection"
-msgstr "Desde locacin"
+msgstr "recortar según selección"
 
-#: editor_ops.cc:2428
+#: gtk2_ardour/editor_ops.cc:3093
 msgid "region fill"
-msgstr ""
+msgstr "relleno de región"
 
-#: editor_ops.cc:2487
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:3157
 msgid "fill selection"
-msgstr "Reproducir seleccin cont�uamente"
-
-#: editor_ops.cc:2508
-msgid "Programming error. that region doesn't cover that position"
-msgstr ""
-
-#: editor_ops.cc:2511
-#, fuzzy
-msgid "set region sync position"
-msgstr "Regiones/posicin"
-
-#: editor_ops.cc:2526
-msgid "Place the edit cursor at the desired sync point"
-msgstr "Coloque el cursor de edicin en el punto de sincron� deseado"
+msgstr "rellenar selección"
 
-#: editor_ops.cc:2531
-#, fuzzy
-msgid "set sync from edit cursor"
-msgstr "Reproducir desde el cursor"
+#: gtk2_ardour/editor_ops.cc:3196
+msgid "set sync point"
+msgstr "definir punto de sincronía"
 
-#: editor_ops.cc:2543
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:3222
 msgid "remove sync"
-msgstr "Remover punto de sincron�"
+msgstr "eliminar punto de sincronía"
 
-#: editor_ops.cc:2557
-#, fuzzy
+# qué es naturalize?
+#: gtk2_ardour/editor_ops.cc:3244
 msgid "naturalize"
-msgstr "Normalizar"
+msgstr ""
 
-#: editor_ops.cc:2621
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:3344
 msgid "align selection (relative)"
-msgstr "Alinear relativamente"
+msgstr "alinear selección (relativo)"
 
-#: editor_ops.cc:2649
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:3384
 msgid "align selection"
-msgstr "Grabar seleccin"
+msgstr "alinear selección"
 
-#: editor_ops.cc:2661
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:3396
 msgid "align region"
-msgstr "normalizar regiones"
+msgstr "alinear región"
+
+#: gtk2_ardour/editor_ops.cc:3433
+msgid "trim to loop"
+msgstr "recortar según Bucle"
+
+#: gtk2_ardour/editor_ops.cc:3443
+msgid "trim to punch"
+msgstr "recortar según rango de pinchado"
 
-#: editor_ops.cc:2708 editor_ops.cc:2733
-#, fuzzy
-msgid "trim to edit"
-msgstr "Desde principio hasta cursor de edicin"
+#: gtk2_ardour/editor_ops.cc:3506
+msgid "trim region start to edit point"
+msgstr "recortar Inicio de Región hasta Punto de Edición"
 
-#: editor_ops.cc:2784
-#, fuzzy
-msgid "ardour: freeze"
-msgstr "ardour: renombrar regin"
+#: gtk2_ardour/editor_ops.cc:3551
+msgid "trim region end to edit point"
+msgstr "recortar Final de Región hasta Punto de Edición"
 
-#: editor_ops.cc:2789
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:3638
 msgid "Cancel Freeze"
-msgstr "Cancelar"
+msgstr "Cancelar Congelado"
 
-#: editor_ops.cc:2826
-#, fuzzy
+# ¿cómo traducir 'bounce'?
+# lo he visto en otros softwares como 'rebotar' pero ¿realmente se utiliza ese término en el español?
+#: gtk2_ardour/editor_ops.cc:3681
 msgid "bounce range"
-msgstr "intervalo"
+msgstr ""
 
-#: editor_ops.cc:2879
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:3741
 msgid "cut"
 msgstr "cortar"
 
-#: editor_ops.cc:2882
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:3744
 msgid "copy"
 msgstr "copiar"
 
-#: editor_ops.cc:2895
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:3794
 msgid " objects"
 msgstr "objetos"
 
-#: editor_ops.cc:2921
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:3830
 msgid " range"
-msgstr "intervalo"
+msgstr "rango"
 
-#: editor_ops.cc:3078
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:4069
 msgid "paste"
-msgstr "Pegar"
+msgstr "pegar"
 
-#: editor_ops.cc:3116
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:4118
 msgid "paste chunk"
-msgstr "Crear trecho"
+msgstr "pegar fragmento"
 
-#. clear (below) will clear the argument list
-#: editor_ops.cc:3157
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:4162
 msgid "duplicate region"
-msgstr "Reproducir regin seleccionada cont�uamente"
+msgstr "duplicar región"
 
-#: editor_ops.cc:3202
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:4210
 msgid "duplicate selection"
-msgstr "Grabar seleccin"
+msgstr "duplicar selección"
 
-#: editor_ops.cc:3259
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:4264
 msgid "clear playlist"
-msgstr "Nombre a captura de sesin"
+msgstr "limpiar Lista de Reproducción"
 
-#: editor_ops.cc:3288
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:4294
 msgid "nudge track"
-msgstr "Ocultar esta pista"
+msgstr "mover pista"
 
-#: editor_ops.cc:3315
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:4322
 msgid ""
 "Do you really want to destroy the last capture?\n"
 "(This is destructive and cannot be undone)"
 msgstr ""
-"Realmente desea quitar el bus \"%1\" ?\n"
-"(no podr�deshacer este cambio)"
+"¿Desea realmente borrar la última captura?\n"
+"(Ésta es una acción destructiva que no podrá deshacer)"
 
-#: editor_ops.cc:3343
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:4326
+msgid "Yes, destroy it."
+msgstr "Sí, eliminar."
+
+#: gtk2_ardour/editor_ops.cc:4354
 msgid "normalize"
-msgstr "Normalizar"
+msgstr "normalizar"
 
-#: editor_ops.cc:3390
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:4463
 msgid "reverse regions"
-msgstr "invertir regiones"
+msgstr "al revés"
+
+#: gtk2_ardour/editor_ops.cc:4583
+msgid "reset region gain"
+msgstr "restablecer ganancia de la región"
+
+#: gtk2_ardour/editor_ops.cc:4743
+msgid "set fade in length"
+msgstr "definir duración del fundido de entrada"
+
+#: gtk2_ardour/editor_ops.cc:4750
+msgid "set fade out length"
+msgstr "definir duración del fundido de salida"
+
+#: gtk2_ardour/editor_ops.cc:4798
+msgid "toggle fade in active"
+msgstr "activar/desactivar fundido de entrada"
+
+#: gtk2_ardour/editor_ops.cc:4798
+msgid "toggle fade out active"
+msgstr "activar/desactivar fundido de salida"
+
+#: gtk2_ardour/editor_ops.cc:4848
+msgid "set fade in shape"
+msgstr "ajustar curva de fundido de entrada"
+
+#: gtk2_ardour/editor_ops.cc:4881
+msgid "set fade out shape"
+msgstr "ajustar curva de fundido de salida"
+
+#: gtk2_ardour/editor_ops.cc:4913
+msgid "set fade in active"
+msgstr "activar fundido de entrada"
+
+#: gtk2_ardour/editor_ops.cc:4947
+msgid "set fade out active"
+msgstr "activar fundido de salida"
+
+#: gtk2_ardour/editor_ops.cc:5157
+msgid "trim front"
+msgstr "recortar inicio"
+
+#: gtk2_ardour/editor_ops.cc:5157
+msgid "trim back"
+msgstr "recortar final"
+
+#: gtk2_ardour/editor_ops.cc:5286
+msgid "set loop range from selection"
+msgstr "definir Rango de Bucle a partir de Selección"
+
+#: gtk2_ardour/editor_ops.cc:5308
+msgid "set loop range from edit range"
+msgstr "definir Rango de Bucle a partir de Rango de Edición"
+
+#: gtk2_ardour/editor_ops.cc:5339
+msgid "set loop range from region"
+msgstr "definir Rango de Bucle a partir de Región"
+
+#: gtk2_ardour/editor_ops.cc:5357
+msgid "set punch range from selection"
+msgstr "definir rango de pinchado a partir de selección"
+
+#: gtk2_ardour/editor_ops.cc:5374
+msgid "set punch range from edit range"
+msgstr "definir rango de pinchado a partir de rango de edición"
+
+# ¿rango de pinchado? suena raro...
+#: gtk2_ardour/editor_ops.cc:5400
+msgid "set punch range from region"
+msgstr "definir rango de pinchado a partir de región"
+
+#: gtk2_ardour/editor_ops.cc:5484
+msgid "Add new marker"
+msgstr "Agregar Marca nueva"
+
+#: gtk2_ardour/editor_ops.cc:5485
+msgid "Set global tempo"
+msgstr "Definir tempo global"
+
+#: gtk2_ardour/editor_ops.cc:5486
+msgid "Do you want to set the global tempo or add new tempo marker?"
+msgstr "¿Quieres definir el tempo global o añadir una nueva marca de tempo?"
+
+#: gtk2_ardour/editor_ops.cc:5510
+msgid "set tempo from region"
+msgstr "definir tempo a partir de región"
+
+#: gtk2_ardour/editor_ops.cc:5544
+msgid "split regions"
+msgstr "separar regiones"
+
+#: gtk2_ardour/editor_ops.cc:5589
+msgid ""
+"You are about to split\n"
+"%1\n"
+"into %2 pieces.\n"
+"This could take a long time."
+msgstr ""
+"Estás por separar\n"
+"%1\n"
+"en %2 partes.\n"
+"Esto puede llevar un largo rato."
+
+# ok?
+#: gtk2_ardour/editor_ops.cc:5596
+msgid "Call for the Ferret!"
+msgstr "¡Llamar al Ferret!"
+
+#: gtk2_ardour/editor_ops.cc:5597
+msgid ""
+"Press OK to continue with this split operation\n"
+"or ask the Ferret dialog to tune the analysis"
+msgstr ""
+"Pulse OK para continuar con esta operación de separación\n"
+"o ajuste el análisis en la ventana de Rhythm Ferret"
+
+#: gtk2_ardour/editor_ops.cc:5599
+msgid "Press OK to continue with this split operation"
+msgstr "Pulse OK para continuar con esta operación de separación."
+
+#: gtk2_ardour/editor_ops.cc:5602
+msgid "Excessive split?"
+msgstr "¿Excesivas divisiones?"
+
+#: gtk2_ardour/editor_ops.cc:5907
+msgid "track"
+msgstr "pista"
+
+#: gtk2_ardour/editor_ops.cc:5913
+msgid "bus"
+msgstr "bus"
+
+#: gtk2_ardour/editor_ops.cc:5918
+msgid ""
+"Do you really want to remove %1 %2 and %3 %4?\n"
+"(You may also lose the playlists associated with the %2)\n"
+"\n"
+"This action cannot be undone!"
+msgstr ""
+"¿Desea realmente eliminar %1 %2 y %3 %4?\n"
+"(Puede perder también las Listras de Reproducción\n"
+"asociadas con %2)\n"
+"\n"
+"¡No podrá deshacer esta acción!"
+
+#: gtk2_ardour/editor_ops.cc:5923
+msgid ""
+"Do you really want to remove %1 %2?\n"
+"(You may also lose the playlists associated with the %2)\n"
+"\n"
+"This action cannot be undone!"
+msgstr ""
+"¿Desea realmente eliminar %1 %2?\n"
+"(Puede perder también las Listas de Reproducción\n"
+"asociadas con %2)\n"
+"\n"
+"¡No podrá deshacer esta acción!"
+
+#: gtk2_ardour/editor_ops.cc:5929
+msgid "Do you really want to remove %1 %2?"
+msgstr "¿Desea realmente eliminar %1 %2?"
 
-#: editor_region_list.cc:98 editor_region_list.cc:103
-#: editor_region_list.cc:106 location_ui.cc:56
-#, fuzzy
+#: gtk2_ardour/editor_ops.cc:5935
+msgid "Yes, remove them."
+msgstr "Sí, eliminar esto."
+
+#: gtk2_ardour/editor_ops.cc:5980
+msgid "Stay in position"
+msgstr "Mantenerse en posición"
+
+#: gtk2_ardour/editor_ops.cc:5981
+msgid "Move"
+msgstr "Mover"
+
+#: gtk2_ardour/editor_ops.cc:5982
+msgid "Split & Later Section Moves"
+msgstr "Separarse y mover la porción posterior"
+
+#: gtk2_ardour/editor_ops.cc:5983
+msgid "Intersected regions should:"
+msgstr "Las regiones intersectadas deberían:"
+
+#: gtk2_ardour/editor_ops.cc:5984
+msgid "Move Glued Regions"
+msgstr "Mover regiones adheridas"
+
+#: gtk2_ardour/editor_ops.cc:5985
+msgid "Move Markers"
+msgstr "Mover Marcas"
+
+#: gtk2_ardour/editor_ops.cc:6059
+msgid "insert time"
+msgstr "Insertar tiempo"
+
+#: gtk2_ardour/editor_ops.cc:6141
+msgid "There are too many selected tracks to fit in the current window"
+msgstr "Hay demasiadas pistas seleccionadas para encajar en la ventana actual"
+
+#: gtk2_ardour/editor_ops.cc:6250
+#, c-format
+msgid "Saved view %u"
+msgstr "Vista guardada %u"
+
+#: gtk2_ardour/editor_region_list.cc:113
+#: gtk2_ardour/editor_region_list.cc:117
+#: gtk2_ardour/editor_region_list.cc:120
+#: gtk2_ardour/location_ui.cc:57
 msgid "Hidden"
 msgstr "Oculto"
 
-#. added a new fresh one at the end
-#: editor_route_list.cc:102 editor_route_list.cc:103 editor_route_list.cc:247
+#: gtk2_ardour/editor_region_list.cc:175
+msgid " (MISSING)"
+msgstr ""
+
+#: gtk2_ardour/editor_route_list.cc:43
 msgid "editor"
 msgstr "editor"
 
-#: editor_route_list.cc:310 mixer_ui.cc:699
+#: gtk2_ardour/editor_route_list.cc:369
+#: gtk2_ardour/mixer_ui.cc:950
 msgid "Show All"
 msgstr "Mostrar Todo"
 
-#: editor_route_list.cc:311 mixer_ui.cc:700
+#: gtk2_ardour/editor_route_list.cc:370
+#: gtk2_ardour/mixer_ui.cc:951
 msgid "Hide All"
 msgstr "Ocultar Todo"
 
-#: editor_route_list.cc:312 mixer_ui.cc:701
-#, fuzzy
+#: gtk2_ardour/editor_route_list.cc:371
+#: gtk2_ardour/mixer_ui.cc:952
 msgid "Show All Audio Tracks"
-msgstr "Mostrar todos los Buses"
+msgstr "Mostrar todas las Pistas de Audio"
 
-#: editor_route_list.cc:313 mixer_ui.cc:702
-#, fuzzy
+#: gtk2_ardour/editor_route_list.cc:372
+#: gtk2_ardour/mixer_ui.cc:953
 msgid "Hide All Audio Tracks"
-msgstr "Ocultar todos los Buses"
+msgstr "Ocultar todas las Pistas de Audio"
 
-#: editor_route_list.cc:314 mixer_ui.cc:703
-#, fuzzy
+#: gtk2_ardour/editor_route_list.cc:373
+#: gtk2_ardour/mixer_ui.cc:954
 msgid "Show All Audio Busses"
-msgstr "Mostrar todos los Buses"
+msgstr "Mostrar todos los Buses de Audio"
 
-#: editor_route_list.cc:315 mixer_ui.cc:704
-#, fuzzy
+#: gtk2_ardour/editor_route_list.cc:374
+#: gtk2_ardour/mixer_ui.cc:955
 msgid "Hide All Audio Busses"
-msgstr "Ocultar todos los Buses"
+msgstr "Ocultar todos los Buses de Audio"
 
-#: editor_rulers.cc:312
-#, fuzzy
+#: gtk2_ardour/editor_rulers.cc:409
 msgid "New location marker"
-msgstr "Nuevo marcador de localizacin"
+msgstr "Nueva marca de posición"
 
-#: editor_rulers.cc:313
-#, fuzzy
+# es un menú contextual en la regla de 'marcas de posición' en donde sólo se hace referencia a 'marcas' y 'marcas de posición'
+# no me parece bien mencionar "lugares"
+#: gtk2_ardour/editor_rulers.cc:410
 msgid "Clear all locations"
-msgstr "Quitar todas las localizaciones"
+msgstr "Limpiar todos las marcas de posición"
+
+#: gtk2_ardour/editor_rulers.cc:411
+msgid "Unhide locations"
+msgstr "Mostrar marcas de posición"
 
-#. ruler_items.push_back (MenuElem (_("New Range")));
-#: editor_rulers.cc:318
-#, fuzzy
+#: gtk2_ardour/editor_rulers.cc:416
 msgid "Clear all ranges"
-msgstr "Quitar todas las selecciones"
+msgstr "Limpiar regla de rangos"
+
+#: gtk2_ardour/editor_rulers.cc:417
+msgid "Unhide ranges"
+msgstr "Mostrar Rangos"
 
-#: editor_rulers.cc:327
-#, fuzzy
+#: gtk2_ardour/editor_rulers.cc:427
+msgid "New CD track marker"
+msgstr "Nueva marca de pista de CD"
+
+#: gtk2_ardour/editor_rulers.cc:432
 msgid "New Tempo"
 msgstr "Nuevo tempo"
 
-#: editor_rulers.cc:328
-#, fuzzy
+#: gtk2_ardour/editor_rulers.cc:433
 msgid "Clear tempo"
-msgstr "Resetear tempo"
+msgstr "Limpiar regla de tempo"
 
-#: editor_rulers.cc:333
-#, fuzzy
+#: gtk2_ardour/editor_rulers.cc:438
 msgid "New Meter"
-msgstr "Nuevo Medidor"
+msgstr "Nuevo compás"
 
-#: editor_rulers.cc:334
-#, fuzzy
+# es correcto el término 'resetear'?
+#: gtk2_ardour/editor_rulers.cc:439
 msgid "Clear meter"
-msgstr "Resetear Medidor"
+msgstr "Limpiar regla de compás"
 
-#: editor_rulers.cc:342
-#, fuzzy
-msgid "Min:Secs"
-msgstr "Mins:Segs"
+#: gtk2_ardour/editor_selection.cc:733
+msgid "set selected regions"
+msgstr ""
+
+#: gtk2_ardour/editor_selection.cc:875
+msgid "select all"
+msgstr "seleccionar todo"
+
+#: gtk2_ardour/editor_selection.cc:964
+msgid "select all within"
+msgstr "seleccione todos dentro"
+
+#: gtk2_ardour/editor_selection.cc:1024
+msgid "set selection from range"
+msgstr "nueva selección a partir de rango"
+
+#: gtk2_ardour/editor_selection.cc:1064
+msgid "select all from range"
+msgstr "seleccionar todo lo del rango"
+
+#: gtk2_ardour/editor_selection.cc:1095
+msgid "select all from punch"
+msgstr "seleccionar todo desde el pinche"
 
-#: editor_selection_list.cc:108
-#, fuzzy
+#: gtk2_ardour/editor_selection.cc:1126
+msgid "select all from loop"
+msgstr "seleccionar todo lo del bucle"
+
+#: gtk2_ardour/editor_selection.cc:1140
+msgid "select all after cursor"
+msgstr "seleccionar todo desde el cursor"
+
+#: gtk2_ardour/editor_selection.cc:1145
+msgid "select all before cursor"
+msgstr "seleccionar todo hasta el cursor"
+
+#: gtk2_ardour/editor_selection.cc:1180
+msgid "select all after edit"
+msgstr "seleccionar todo desde el punto de edición"
+
+#: gtk2_ardour/editor_selection.cc:1185
+msgid "select all before edit"
+msgstr "seleccionar todo hasta el punto de edición"
+
+#: gtk2_ardour/editor_selection.cc:1312
+msgid "No edit range defined"
+msgstr "Rango de Edición no definido"
+
+#: gtk2_ardour/editor_selection.cc:1318
+msgid ""
+"the edit point is Selected Marker\n"
+"but there is no selected marker."
+msgstr ""
+"el punto de edición es Marca Seleccionada\n"
+"pero no hay ninguna marca seleccionada."
+
+#: gtk2_ardour/editor_selection_list.cc:180
 msgid "Name for Chunk:"
-msgstr "nombre para trecho"
+msgstr "Nombre para Fragmento"
 
-#: editor_selection_list.cc:111
-#, fuzzy
+#: gtk2_ardour/editor_selection_list.cc:183
 msgid "Create Chunk"
-msgstr "Crear trecho"
+msgstr "Crear fragmento"
 
-#: editor_selection_list.cc:111
+#: gtk2_ardour/editor_selection_list.cc:183
 msgid "Forget it"
 msgstr "Olvidarlo"
 
-#: editor_tempodisplay.cc:253 editor_tempodisplay.cc:293
+#: gtk2_ardour/editor_selection_list.cc:206
+msgid "No selectable material found in the currently selected time range"
+msgstr "No se encontró material seleccionable en el rango de tiempo seleccionado actualmente"
+
+#: gtk2_ardour/editor_tempodisplay.cc:213
+#: gtk2_ardour/editor_tempodisplay.cc:256
 msgid "add"
 msgstr "agregar"
 
-#: editor_tempodisplay.cc:275
-#, fuzzy
+#: gtk2_ardour/editor_tempodisplay.cc:237
 msgid "add tempo mark"
-msgstr "agregar un marcador de regin"
+msgstr "agregar una marca de tempo"
 
-#: editor_tempodisplay.cc:315
-#, fuzzy
+#: gtk2_ardour/editor_tempodisplay.cc:280
 msgid "add meter mark"
-msgstr "agregar un marcador de regin"
+msgstr "agregar una marca de compás"
 
-#: editor_tempodisplay.cc:348 editor_tempodisplay.cc:376
+#: gtk2_ardour/editor_tempodisplay.cc:313
+#: gtk2_ardour/editor_tempodisplay.cc:342
 msgid "done"
 msgstr "listo"
 
-#: editor_tempodisplay.cc:366 editor_tempodisplay.cc:394
+#: gtk2_ardour/editor_tempodisplay.cc:331
+#: gtk2_ardour/editor_tempodisplay.cc:363
 msgid "replace tempo mark"
-msgstr ""
+msgstr "reemplazar marca de tempo"
 
-#: editor_tempodisplay.cc:433 editor_tempodisplay.cc:464
+#: gtk2_ardour/editor_tempodisplay.cc:405
+#: gtk2_ardour/editor_tempodisplay.cc:437
 msgid "programming error: marker for meter is not a meter marker!"
-msgstr ""
+msgstr "error de programación: ¡la marca para el compás no es una marca de compás!"
 
-#: editor_tempodisplay.cc:443 editor_tempodisplay.cc:476
-#, fuzzy
+#: gtk2_ardour/editor_tempodisplay.cc:415
+#: gtk2_ardour/editor_tempodisplay.cc:449
 msgid "remove tempo mark"
-msgstr "quitar marcador"
+msgstr "eliminar marca de tempo"
 
-#: editor_timefx.cc:51
+#: gtk2_ardour/editor_timefx.cc:71
 msgid "Quick but Ugly"
-msgstr "R�ido pero pobre"
+msgstr "Rápido pero pobre"
 
-#: editor_timefx.cc:52
+#: gtk2_ardour/editor_timefx.cc:72
 msgid "Skip Anti-aliasing"
 msgstr "No usar Anti-aliasing"
 
-#: editor_timefx.cc:56
-msgid "ardour: timestretch"
+#: gtk2_ardour/editor_timefx.cc:73
+msgid "Contents:"
+msgstr "Contenidos:"
+
+#: gtk2_ardour/editor_timefx.cc:74
+msgid "Strict Linear"
+msgstr "Estrictamente lineal"
+
+#: gtk2_ardour/editor_timefx.cc:75
+msgid "Preserve Formants"
+msgstr "Preservar formantes"
+
+#: gtk2_ardour/editor_timefx.cc:79
+msgid "TimeFXDialog"
+msgstr ""
+
+#: gtk2_ardour/editor_timefx.cc:83
+msgid "Pitch Shift"
+msgstr "Cambiar Altura"
+
+#: gtk2_ardour/editor_timefx.cc:85
+msgid "Time Stretch"
+msgstr "Estirar tiempo"
+
+#: gtk2_ardour/editor_timefx.cc:101
+msgid "Octaves"
+msgstr "Octavas"
+
+#: gtk2_ardour/editor_timefx.cc:105
+msgid "Semitones (12TET)"
+msgstr "Semitonos (12TET)"
+
+# si se refiere a las centésimas de semitono, creo que habría que dejar el término "cents".
+#: gtk2_ardour/editor_timefx.cc:109
+msgid "Cents"
+msgstr "Cents"
+
+#: gtk2_ardour/editor_timefx.cc:118
+msgid "Shift"
 msgstr ""
 
-#: editor_timefx.cc:57
-msgid "TimeStretchDialog"
+#: gtk2_ardour/editor_timefx.cc:147
+#: gtk2_ardour/editor_timefx.cc:148
+msgid "TimeFXButton"
 msgstr ""
 
-#: editor_timefx.cc:70
-msgid "Stretch/Shrink it"
-msgstr "Estirar/Encoger esto"
+#: gtk2_ardour/editor_timefx.cc:153
+msgid "Stretch/Shrink"
+msgstr "Estirar/Contraer"
 
-#: editor_timefx.cc:73 editor_timefx.cc:74
-msgid "TimeStretchButton"
+#: gtk2_ardour/editor_timefx.cc:158
+msgid "TimeFXProgress"
 msgstr ""
 
-#: editor_timefx.cc:75
-msgid "TimeStretchProgress"
+#: gtk2_ardour/editor_timefx.cc:334
+msgid "timefx cannot be started - thread creation error"
 msgstr ""
 
-#: editor_timefx.cc:139
-msgid "timestretch cannot be started - thread creation error"
+#: gtk2_ardour/editor_timefx.cc:415
+msgid "pitch shift"
+msgstr "cambiar altura"
+
+#: gtk2_ardour/editor_timefx.cc:415
+msgid "time stretch"
+msgstr "Estirar tiempo"
+
+#: gtk2_ardour/engine_dialog.cc:49
+msgid "Realtime"
+msgstr "Tiempo-real"
+
+#: gtk2_ardour/engine_dialog.cc:50
+msgid "Do not lock memory"
+msgstr "No bloquear memoria"
+
+#: gtk2_ardour/engine_dialog.cc:51
+msgid "Unlock memory"
+msgstr "Desbloquear memoria"
+
+#: gtk2_ardour/engine_dialog.cc:52
+msgid "No zombies"
+msgstr "Sin zombis"
+
+#: gtk2_ardour/engine_dialog.cc:53
+msgid "Provide monitor ports"
+msgstr "Puertos de monitorización"
+
+#: gtk2_ardour/engine_dialog.cc:54
+msgid "Force 16 bit"
+msgstr "Forzar 16 bit"
+
+#: gtk2_ardour/engine_dialog.cc:55
+msgid "H/W monitoring"
+msgstr "Monitorización por Hardware"
+
+#: gtk2_ardour/engine_dialog.cc:56
+msgid "H/W metering"
+msgstr "Vúmetro por hardware"
+
+#: gtk2_ardour/engine_dialog.cc:57
+msgid "Verbose output"
+msgstr "Salida verbosa"
+
+#: gtk2_ardour/engine_dialog.cc:58
+msgid "Start"
+msgstr "Inicio"
+
+#: gtk2_ardour/engine_dialog.cc:77
+msgid "8000Hz"
+msgstr "8000Hz"
+
+#: gtk2_ardour/engine_dialog.cc:78
+msgid "22050Hz"
+msgstr "22050Hz"
+
+#: gtk2_ardour/engine_dialog.cc:79
+msgid "44100Hz"
+msgstr "44100Hz"
+
+#: gtk2_ardour/engine_dialog.cc:80
+msgid "48000Hz"
+msgstr "48000Hz"
+
+#: gtk2_ardour/engine_dialog.cc:81
+msgid "88200Hz"
+msgstr "88200Hz"
+
+#: gtk2_ardour/engine_dialog.cc:82
+msgid "96000Hz"
+msgstr "96000Hz"
+
+#: gtk2_ardour/engine_dialog.cc:83
+msgid "192000Hz"
+msgstr "192000Hz"
+
+#: gtk2_ardour/engine_dialog.cc:102
+#: gtk2_ardour/engine_dialog.cc:511
+#: gtk2_ardour/export_dialog.cc:82
+#: gtk2_ardour/export_dialog.cc:1339
+msgid "Triangular"
+msgstr "Triangular"
+
+#: gtk2_ardour/engine_dialog.cc:103
+#: gtk2_ardour/engine_dialog.cc:513
+#: gtk2_ardour/export_dialog.cc:80
+#: gtk2_ardour/export_dialog.cc:1337
+msgid "Rectangular"
+msgstr "Rectangular"
+
+#: gtk2_ardour/engine_dialog.cc:104
+#: gtk2_ardour/engine_dialog.cc:515
+msgid "Shaped"
+msgstr ""
+
+#: gtk2_ardour/engine_dialog.cc:129
+#: gtk2_ardour/engine_dialog.cc:449
+#: gtk2_ardour/engine_dialog.cc:909
+msgid "Playback/Recording on 1 Device"
+msgstr "Reproducir/Grabar en 1 dispositivo"
+
+#: gtk2_ardour/engine_dialog.cc:130
+#: gtk2_ardour/engine_dialog.cc:453
+#: gtk2_ardour/engine_dialog.cc:488
+#: gtk2_ardour/engine_dialog.cc:912
+msgid "Playback/Recording on 2 Devices"
+msgstr "Reproducir/Grabar en 2 dispositivos"
+
+#: gtk2_ardour/engine_dialog.cc:131
+#: gtk2_ardour/engine_dialog.cc:468
+#: gtk2_ardour/engine_dialog.cc:915
+msgid "Playback only"
+msgstr "Reproducción solamente"
+
+#: gtk2_ardour/engine_dialog.cc:132
+#: gtk2_ardour/engine_dialog.cc:470
+#: gtk2_ardour/engine_dialog.cc:917
+msgid "Recording only"
+msgstr "Grabar solamente"
+
+#: gtk2_ardour/engine_dialog.cc:141
+msgid "Driver"
+msgstr "Driver"
+
+#: gtk2_ardour/engine_dialog.cc:146
+msgid "Interface"
+msgstr "Interfaz"
+
+#: gtk2_ardour/engine_dialog.cc:151
+#: gtk2_ardour/export_dialog.cc:109
+msgid "Sample Rate"
+msgstr "Frecuencia de muestreo"
+
+#: gtk2_ardour/engine_dialog.cc:156
+msgid "Buffer size"
+msgstr "Tamaño del buffer"
+
+#: gtk2_ardour/engine_dialog.cc:162
+msgid "Number of buffers"
+msgstr "Cantidad de buffers"
+
+#: gtk2_ardour/engine_dialog.cc:169
+msgid "Approximate latency"
+msgstr "Latencia aproximada"
+
+#: gtk2_ardour/engine_dialog.cc:183
+msgid "Audio Mode"
+msgstr "Modo de Audio"
+
+#: gtk2_ardour/engine_dialog.cc:222
+msgid "Realtime Priority"
+msgstr "Prioridad de Tiempo-real"
+
+#: gtk2_ardour/engine_dialog.cc:251
+#: gtk2_ardour/engine_dialog.cc:375
+msgid "Ignore"
+msgstr "Ignorar"
+
+# ¿cómo traducir timeout?
+#: gtk2_ardour/engine_dialog.cc:259
+msgid "Client timeout"
+msgstr "Timeout de clientes"
+
+#: gtk2_ardour/engine_dialog.cc:265
+msgid "Number of ports"
+msgstr "Cantidad de puertos"
+
+#: gtk2_ardour/engine_dialog.cc:272
+msgid "Dither"
+msgstr "Dither"
+
+#: gtk2_ardour/engine_dialog.cc:282
+msgid "No JACK server found anywhere on this system. Please install JACK and restart"
+msgstr "No se pudo encontrar un servidor JACK en el sistema. Por favor, instale JACK y reinicie."
+
+#: gtk2_ardour/engine_dialog.cc:290
+msgid "Server:"
+msgstr "Servidor:"
+
+#: gtk2_ardour/engine_dialog.cc:303
+msgid "Input device"
+msgstr "Dispositivo de entrada"
+
+#: gtk2_ardour/engine_dialog.cc:308
+msgid "Output device"
+msgstr "Dispositivo de salida"
+
+#: gtk2_ardour/engine_dialog.cc:314
+msgid "Input channels"
+msgstr "Canales de entrada"
+
+#: gtk2_ardour/engine_dialog.cc:319
+msgid "Output channels"
+msgstr "Canales de salida"
+
+#: gtk2_ardour/engine_dialog.cc:324
+msgid "Hardware input latency (samples)"
+msgstr "Latencia de entrada del hardware (cuadros)"
+
+#: gtk2_ardour/engine_dialog.cc:329
+msgid "Hardware output latency (samples)"
+msgstr "Latencia de salida del hardware (cuadros)"
+
+#: gtk2_ardour/engine_dialog.cc:342
+msgid "Device"
+msgstr "Dispositivo"
+
+#: gtk2_ardour/engine_dialog.cc:344
+msgid "Advanced"
+msgstr "Avanzado"
+
+#: gtk2_ardour/engine_dialog.cc:579
+msgid "cannot open JACK rc file %1 to store parameters"
+msgstr "no se pudo leer el archivo de inicialización de JACK %1 para almacenar parámetros"
+
+#: gtk2_ardour/engine_dialog.cc:720
+msgid ""
+"You do not have any audio devices capable of\n"
+"simultaneous playback and recording.\n"
+"\n"
+"Please use Applications -> Utilities -> Audio MIDI Setup\n"
+"to create an \"aggregrate\" device, or install a suitable\n"
+"audio interface.\n"
+"\n"
+"Please send email to Apple and ask them why new Macs\n"
+"have no duplex audio device.\n"
+"\n"
+"Alternatively, if you really want just playback\n"
+"or recording but not both, start JACK before running\n"
+"Ardour and choose the relevant device then."
+msgstr ""
+
+#: gtk2_ardour/engine_dialog.cc:733
+msgid "No suitable audio devices"
+msgstr "No hay dispositivos de audio adecuados"
+
+#: gtk2_ardour/engine_dialog.cc:845
+msgid "No devices found for driver \"%1\""
+msgstr "No se encontraron dispositivos para el driver \"%1\""
+
+#: gtk2_ardour/engine_dialog.cc:950
+msgid "JACK appears to be missing from the Ardour bundle"
+msgstr ""
+
+#: gtk2_ardour/engine_dialog.cc:1016
+msgid "You need to choose an audio device first."
+msgstr "Es necesario elegir un dispositivo de audio primero."
+
+#: gtk2_ardour/engine_dialog.cc:1032
+msgid "Audio device \"%1\" not known on this computer."
+msgstr "El dispositivo de audio \"%1\" no se conoce en esta computadora."
+
+#: gtk2_ardour/engine_dialog.cc:1180
+msgid "AudioSetup value for %1 is missing data"
 msgstr ""
 
-#: export_dialog.cc:59 export_dialog.cc:399 export_dialog.cc:1027
-#: export_dialog.cc:1195
+#: gtk2_ardour/engine_dialog.cc:1260
+msgid "configuration files contain a JACK server path that doesn't exist (%1)"
+msgstr "los archivos de configuración contienen una ruta al servidor JACK que no existe (%1)"
+
+#: gtk2_ardour/export_dialog.cc:60
+#: gtk2_ardour/export_dialog.cc:424
+#: gtk2_ardour/export_dialog.cc:1131
+#: gtk2_ardour/export_dialog.cc:1301
 msgid "22.05kHz"
 msgstr "22.05kHz"
 
-#: export_dialog.cc:60 export_dialog.cc:402 export_dialog.cc:417
-#: export_dialog.cc:1029 export_dialog.cc:1197
+#: gtk2_ardour/export_dialog.cc:61
+#: gtk2_ardour/export_dialog.cc:427
+#: gtk2_ardour/export_dialog.cc:442
+#: gtk2_ardour/export_dialog.cc:1133
+#: gtk2_ardour/export_dialog.cc:1303
 msgid "44.1kHz"
 msgstr "44.1kHz"
 
-#: export_dialog.cc:61 export_dialog.cc:405 export_dialog.cc:1031
-#: export_dialog.cc:1199
+#: gtk2_ardour/export_dialog.cc:62
+#: gtk2_ardour/export_dialog.cc:430
+#: gtk2_ardour/export_dialog.cc:1135
+#: gtk2_ardour/export_dialog.cc:1305
 msgid "48kHz"
 msgstr "48kHz"
 
-#: export_dialog.cc:62 export_dialog.cc:408 export_dialog.cc:1033
-#: export_dialog.cc:1201
+#: gtk2_ardour/export_dialog.cc:63
+#: gtk2_ardour/export_dialog.cc:433
+#: gtk2_ardour/export_dialog.cc:1137
+#: gtk2_ardour/export_dialog.cc:1307
 msgid "88.2kHz"
 msgstr "88.2kHz"
 
-#: export_dialog.cc:63 export_dialog.cc:411 export_dialog.cc:1035
-#: export_dialog.cc:1203
+#: gtk2_ardour/export_dialog.cc:64
+#: gtk2_ardour/export_dialog.cc:436
+#: gtk2_ardour/export_dialog.cc:1139
+#: gtk2_ardour/export_dialog.cc:1309
 msgid "96kHz"
 msgstr "96kHz"
 
-#: export_dialog.cc:64 export_dialog.cc:414 export_dialog.cc:1037
-#: export_dialog.cc:1205
+#: gtk2_ardour/export_dialog.cc:65
+#: gtk2_ardour/export_dialog.cc:439
+#: gtk2_ardour/export_dialog.cc:1141
+#: gtk2_ardour/export_dialog.cc:1311
 msgid "192kHz"
 msgstr "192kHz"
 
-#: export_dialog.cc:69
+#: gtk2_ardour/export_dialog.cc:70
 msgid "best"
 msgstr "excelente"
 
-#: export_dialog.cc:70 export_dialog.cc:1212
+#: gtk2_ardour/export_dialog.cc:71
+#: gtk2_ardour/export_dialog.cc:1321
 msgid "fastest"
-msgstr "r�ido"
+msgstr "rapidísima"
 
-#: export_dialog.cc:71 export_dialog.cc:1214
+#: gtk2_ardour/export_dialog.cc:72
+#: gtk2_ardour/export_dialog.cc:1323
 msgid "linear"
-msgstr "linear"
+msgstr "lineal"
 
-#: export_dialog.cc:72 export_dialog.cc:1216
+#: gtk2_ardour/export_dialog.cc:73
+#: gtk2_ardour/export_dialog.cc:1325
 msgid "better"
-msgstr "bueno"
+msgstr "mejor"
 
-#: export_dialog.cc:73 export_dialog.cc:1218
+#: gtk2_ardour/export_dialog.cc:74
+#: gtk2_ardour/export_dialog.cc:1327
 msgid "intermediate"
-msgstr "intermedio"
-
-#: export_dialog.cc:79 export_dialog.cc:1227
-msgid "Rectangular"
-msgstr "Rectangular"
+msgstr "intermedia"
 
-#: export_dialog.cc:80
+#: gtk2_ardour/export_dialog.cc:81
 msgid "Shaped Noise"
-msgstr "Perfil de Ru�o"
-
-#: export_dialog.cc:81 export_dialog.cc:1229
-msgid "Triangular"
-msgstr "Triangular"
+msgstr ""
 
-#: export_dialog.cc:86
+#: gtk2_ardour/export_dialog.cc:87
 msgid "stereo"
-msgstr "est�eo"
+msgstr "estéreo"
 
-#. default is to use all
-#: export_dialog.cc:87 export_dialog.cc:486 export_dialog.cc:1055
-#: export_dialog.cc:1177
+#: gtk2_ardour/export_dialog.cc:88
+#: gtk2_ardour/export_dialog.cc:511
+#: gtk2_ardour/export_dialog.cc:1159
+#: gtk2_ardour/export_dialog.cc:1281
 msgid "mono"
 msgstr "mono"
 
-#: export_dialog.cc:93
+#: gtk2_ardour/export_dialog.cc:94
 msgid "CUE"
-msgstr ""
+msgstr "CUE"
 
-#: export_dialog.cc:94
+#: gtk2_ardour/export_dialog.cc:95
+#: gtk2_ardour/export_dialog.cc:927
 msgid "TOC"
-msgstr ""
+msgstr "TOC"
 
-#: export_dialog.cc:102
-#, fuzzy
+#: gtk2_ardour/export_dialog.cc:103
 msgid "Format"
-msgstr "Normal"
+msgstr "Formato"
 
-#: export_dialog.cc:103
+#: gtk2_ardour/export_dialog.cc:104
 msgid "CD Marker File Type"
-msgstr ""
+msgstr "Tipo de archivo de marcas de CD"
 
-#: export_dialog.cc:104
-#, fuzzy
+#: gtk2_ardour/export_dialog.cc:105
 msgid "Channels"
-msgstr "cancelar"
+msgstr "Canales"
 
-#: export_dialog.cc:105
-#, fuzzy
-msgid "File Type"
-msgstr "Explorador de archivos"
-
-#: export_dialog.cc:106
-#, fuzzy
-msgid "Sample Format"
-msgstr "Separar Regin"
-
-#: export_dialog.cc:107
+#: gtk2_ardour/export_dialog.cc:108
 msgid "Sample Endianness"
 msgstr ""
 
-#: export_dialog.cc:108
-#, fuzzy
-msgid "Sample Rate"
-msgstr "Separar Regin"
-
-#: export_dialog.cc:109
+#: gtk2_ardour/export_dialog.cc:110
 msgid "Conversion Quality"
-msgstr ""
+msgstr "Calidad de conversión"
 
-#: export_dialog.cc:110
+#: gtk2_ardour/export_dialog.cc:111
 msgid "Dither Type"
-msgstr ""
+msgstr "Tipo de perfil de ruido"
 
-#: export_dialog.cc:111
+#: gtk2_ardour/export_dialog.cc:112
 msgid "Export CD Marker File Only"
-msgstr ""
-
-#: export_dialog.cc:112
-#, fuzzy
-msgid "Export to File"
-msgstr "Exportar a CD"
+msgstr "Sólo exportar archivo de marcas de CD"
 
-#: export_dialog.cc:113 option_editor.cc:83 option_editor.cc:84
+#: gtk2_ardour/export_dialog.cc:113
+#: gtk2_ardour/option_editor.cc:105
+#: gtk2_ardour/option_editor.cc:106
 msgid "Browse"
-msgstr "Seleccionar"
+msgstr "Explorar"
 
-#: export_dialog.cc:114
+#: gtk2_ardour/export_dialog.cc:114
 msgid "Specific tracks ..."
-msgstr ""
-
-#: export_dialog.cc:125
-msgid "ardour: export"
-msgstr "ardour: exportar"
+msgstr "Pistas específicas..."
 
-#: export_dialog.cc:126
-msgid "ardour_export"
-msgstr ""
-
-#: export_dialog.cc:139 export_dialog.cc:155 mixer_strip.cc:124
-#: mixer_strip.cc:767
-#, fuzzy
+#: gtk2_ardour/export_dialog.cc:142
+#: gtk2_ardour/export_dialog.cc:158
+#: gtk2_ardour/mixer_strip.cc:153
+#: gtk2_ardour/mixer_strip.cc:803
 msgid "Output"
-msgstr "Salidas"
+msgstr "Salida"
 
-#: export_dialog.cc:633
-#, fuzzy
+#: gtk2_ardour/export_dialog.cc:657
 msgid "Editor: cannot open \"%1\" as export file for CD toc file"
-msgstr ""
-"Editor: no se puede abrir \"%1\" como archivo de exportacin de marcadores de "
-"CD"
+msgstr "Editor: no se puede abrir \"%1\" como archivo de exportación de marcas de CD"
 
-#: export_dialog.cc:759
-#, fuzzy
+#: gtk2_ardour/export_dialog.cc:791
 msgid "Editor: cannot open \"%1\" as export file for CD cue file"
-msgstr ""
-"Editor: no se puede abrir \"%1\" como archivo de exportacin de marcadores de "
-"CD"
+msgstr "Editor: no se puede abrir \"%1\" como archivo de exportación de marcas de CD"
 
-#: export_dialog.cc:778
+#: gtk2_ardour/export_dialog.cc:810
 msgid "WAV"
-msgstr ""
+msgstr "WAV"
+
+#: gtk2_ardour/export_dialog.cc:942
+msgid "Not connected to audioengine"
+msgstr "No está conectado al motor de audio"
 
-#: export_dialog.cc:912
+#: gtk2_ardour/export_dialog.cc:946
+msgid "Ardour cannot export audio when disconnected"
+msgstr "¡Ardour no puede exportar audio cuando está desconectado!"
+
+#: gtk2_ardour/export_dialog.cc:1007
 msgid "Stop Export"
-msgstr "Cancelar Exportacin"
+msgstr "Cancelar Exportación"
+
+#: gtk2_ardour/export_dialog.cc:1020
+msgid "export"
+msgstr "exportar"
 
-#: export_dialog.cc:1131
+#: gtk2_ardour/export_dialog.cc:1235
 msgid "Please enter a valid filename."
-msgstr ""
+msgstr "Por favor, ingrese un nombre de archivo válido."
 
-#: export_dialog.cc:1141
+#: gtk2_ardour/export_dialog.cc:1245
 msgid "Please specify a complete filename for the audio file."
-msgstr ""
+msgstr "Por favor, especifique un nombre de archivo completo para el archivo de audio."
 
-#: export_dialog.cc:1147
+#: gtk2_ardour/export_dialog.cc:1251
 msgid "File already exists, do you want to overwrite it?"
-msgstr ""
+msgstr "El archivo ya existe, ¿quiere sobreescribirlo?"
 
-#: export_dialog.cc:1159 export_range_markers_dialog.cc:153
+#: gtk2_ardour/export_dialog.cc:1263
+#: gtk2_ardour/export_range_markers_dialog.cc:159
 msgid "Cannot write file in: "
-msgstr ""
+msgstr "No se pudo escibirir el archivo en:"
+
+#: gtk2_ardour/export_range_markers_dialog.cc:41
+msgid "ardour: export ranges"
+msgstr "Ardour: exportar rangos"
 
-#. warning dialog
-#: export_range_markers_dialog.cc:135
+#: gtk2_ardour/export_range_markers_dialog.cc:42
+msgid "Export to Directory"
+msgstr "Exportar a directorio"
+
+#: gtk2_ardour/export_range_markers_dialog.cc:142
 msgid "Please enter a valid target directory."
-msgstr ""
+msgstr "Por favor, ingrese un directorio de destino válido."
 
-#: export_range_markers_dialog.cc:143
-msgid ""
-"Please select an existing target directory. Files\n"
-"are not allowed!"
-msgstr ""
+#: gtk2_ardour/export_range_markers_dialog.cc:150
+msgid "Please select an existing target directory. Files are not allowed!"
+msgstr "Por favor, seleccione un directorio de destino existente. ¡No se permiten archivos!"
 
-#: gain_automation_time_axis.cc:62
-#, fuzzy
-msgid "add gain automation event"
-msgstr "agregar evento de automatizacin a "
+#: gtk2_ardour/export_region_dialog.cc:34
+msgid "ardour: export region"
+msgstr "Ardour: exportar región"
 
-#: gain_meter.cc:67
-msgid "cannot find images for fader slider"
-msgstr ""
+#: gtk2_ardour/export_region_dialog.cc:35
+#: gtk2_ardour/export_session_dialog.cc:29
+msgid "Export to File"
+msgstr "Exportar a archivo"
 
-#: gain_meter.cc:74
-msgid "cannot find images for fader rail"
-msgstr ""
+#: gtk2_ardour/gain_automation_time_axis.cc:64
+msgid "add gain automation event"
+msgstr "agregar evento de automatización de ganancia"
 
-#: gain_meter.cc:130 gain_meter.cc:339 gain_meter.cc:494 gain_meter.cc:539
-#, fuzzy
+#: gtk2_ardour/gain_meter.cc:117
+#: gtk2_ardour/gain_meter.cc:362
+#: gtk2_ardour/gain_meter.cc:723
 msgid "-inf"
-msgstr "entrada"
+msgstr "-inf"
 
-#: gain_meter.cc:140
-#, fuzzy
+#: gtk2_ardour/gain_meter.cc:123
+#: gtk2_ardour/gain_meter.cc:769
 msgid "Fader automation mode"
-msgstr "modo de automatizacin de balance"
+msgstr "Modo de automatización de atenuador"
 
-#: gain_meter.cc:141
-#, fuzzy
+#: gtk2_ardour/gain_meter.cc:124
+#: gtk2_ardour/gain_meter.cc:770
 msgid "Fader automation type"
-msgstr "estado de automatizacin de balance"
+msgstr "Tipo de automatización de atenuador"
 
-#. XXX it might different in different languages
-#: gain_meter.cc:182 gain_meter.cc:817 panner_ui.cc:99 panner_ui.cc:807
+#: gtk2_ardour/gain_meter.cc:133
+#: gtk2_ardour/gain_meter.cc:662
+#: gtk2_ardour/panner_ui.cc:201
+#: gtk2_ardour/panner_ui.cc:852
 msgid "Abs"
-msgstr ""
+msgstr "Abs"
 
-#: gain_meter.cc:472
-#, fuzzy
+#: gtk2_ardour/gain_meter.cc:287
 msgid "-Inf"
-msgstr "entrada"
+msgstr "-Inf"
 
-#: gain_meter.cc:781 mixer_strip.cc:770 panner_ui.cc:771
-#, fuzzy
-msgid "O"
-msgstr "O"
+#: gtk2_ardour/gain_meter.cc:473
+#: gtk2_ardour/gain_meter.cc:488
+msgid "meter point change"
+msgstr ""
 
-#: gain_meter.cc:784 panner_ui.cc:774
+#: gtk2_ardour/gain_meter.cc:626
+#: gtk2_ardour/mixer_strip.cc:516
+#: gtk2_ardour/panner_ui.cc:816
+msgid "M"
+msgstr ""
+
+#: gtk2_ardour/gain_meter.cc:629
+#: gtk2_ardour/panner_ui.cc:819
 msgid "P"
 msgstr ""
 
-#: gain_meter.cc:787 panner_ui.cc:777
+#: gtk2_ardour/gain_meter.cc:632
+#: gtk2_ardour/panner_ui.cc:822
 msgid "T"
 msgstr ""
 
-#: gain_meter.cc:790 panner_ui.cc:780
+#: gtk2_ardour/gain_meter.cc:635
+#: gtk2_ardour/panner_ui.cc:825
 msgid "W"
 msgstr ""
 
-#: gtk-custom-ruler.c:126
-#, fuzzy
+#: gtk2_ardour/generic_pluginui.cc:78
+msgid "<span size=\"large\">Presets</span>"
+msgstr "<span size=\"large\">Presets</span>"
+
+#: gtk2_ardour/generic_pluginui.cc:210
+msgid "Plugin Editor: could not build control element for port %1"
+msgstr "Editor de plugin: no se pudo crear el elemento de control para el puerto %1"
+
+#: gtk2_ardour/generic_pluginui.cc:300
+msgid "Automation control"
+msgstr "Control de la automatización"
+
+#: gtk2_ardour/generic_pluginui.cc:307
+msgid "Mgnual"
+msgstr "Manual"
+
+#: gtk2_ardour/gtk-custom-ruler.c:126
 msgid "Lower"
-msgstr "Capa"
+msgstr "Inferior"
 
-#: gtk-custom-ruler.c:127
-#, fuzzy
+#: gtk2_ardour/gtk-custom-ruler.c:127
 msgid "Lower limit of ruler"
-msgstr "Enviar regin a capa m� baja"
+msgstr "Límite inferior de la regla"
 
-#: gtk-custom-ruler.c:136
+#: gtk2_ardour/gtk-custom-ruler.c:136
 msgid "Upper"
-msgstr ""
+msgstr "Superior"
 
-#: gtk-custom-ruler.c:137
+#: gtk2_ardour/gtk-custom-ruler.c:137
 msgid "Upper limit of ruler"
-msgstr ""
+msgstr "Límite superior de la regla"
 
-#: gtk-custom-ruler.c:146
-#, fuzzy
+#: gtk2_ardour/gtk-custom-ruler.c:146
 msgid "Position"
-msgstr "Audicionando"
+msgstr "Posición"
 
-#: gtk-custom-ruler.c:147
+#: gtk2_ardour/gtk-custom-ruler.c:147
 msgid "Position of mark on the ruler"
-msgstr ""
+msgstr "Posición de la marca en la regla"
 
-#: gtk-custom-ruler.c:156
+#: gtk2_ardour/gtk-custom-ruler.c:156
 msgid "Max Size"
-msgstr ""
+msgstr "Tamaño Máx."
 
-#: gtk-custom-ruler.c:157
+#: gtk2_ardour/gtk-custom-ruler.c:157
 msgid "Maximum size of the ruler"
-msgstr ""
+msgstr "Tamaño máximo de la regla"
 
-#: gtk-custom-ruler.c:166
-#, fuzzy
+#: gtk2_ardour/gtk-custom-ruler.c:166
 msgid "Show Position"
-msgstr "Por Posicin de regin"
+msgstr "Mostrar posición"
 
-#: gtk-custom-ruler.c:167
+#: gtk2_ardour/gtk-custom-ruler.c:167
 msgid "Draw current ruler position"
-msgstr ""
+msgstr "Dibujar posición actual de la regla"
 
-#. end-of-file, other end closed or shutdown?
-#: imageframe_socket_handler.cc:127
+#: gtk2_ardour/imageframe_socket_handler.cc:126
 msgid "Image Compositor Socket has been shutdown/closed"
-msgstr "Se desconect al Compositor de Imagen"
+msgstr "Se desconectó el Compositor de Imagen"
 
-#: imageframe_time_axis.cc:286
-#, fuzzy
+#: gtk2_ardour/imageframe_time_axis.cc:255
+#: gtk2_ardour/marker_time_axis.cc:206
+#: gtk2_ardour/route_time_axis.cc:449
+#: gtk2_ardour/theme_manager.cc:55
+msgid "Color"
+msgstr "Color"
+
+#: gtk2_ardour/imageframe_time_axis.cc:285
 msgid "0.5 seconds"
-msgstr "Minutos:Segundos"
+msgstr "0.5 segundos"
 
-#: imageframe_time_axis.cc:287 marker_time_axis.cc:242
-#, fuzzy
+#: gtk2_ardour/imageframe_time_axis.cc:286
+#: gtk2_ardour/marker_time_axis.cc:236
 msgid "1 seconds"
-msgstr "Minutos:Segundos"
+msgstr "1 segundo"
 
-#: imageframe_time_axis.cc:288 marker_time_axis.cc:243
-#, fuzzy
+#: gtk2_ardour/imageframe_time_axis.cc:287
+#: gtk2_ardour/marker_time_axis.cc:237
 msgid "1.5 seconds"
-msgstr "Minutos:Segundos"
+msgstr "1,5 segundos"
 
-#: imageframe_time_axis.cc:289 marker_time_axis.cc:244
-#, fuzzy
+#: gtk2_ardour/imageframe_time_axis.cc:288
+#: gtk2_ardour/marker_time_axis.cc:238
 msgid "2 seconds"
-msgstr "Minutos:Segundos"
+msgstr "2 segundos"
 
-#: imageframe_time_axis.cc:290 marker_time_axis.cc:245
-#, fuzzy
+#: gtk2_ardour/imageframe_time_axis.cc:289
+#: gtk2_ardour/marker_time_axis.cc:239
 msgid "2.5 seconds"
-msgstr "Minutos:Segundos"
+msgstr "2,5 segundos"
 
-#: imageframe_time_axis.cc:291 marker_time_axis.cc:246
-#, fuzzy
+#: gtk2_ardour/imageframe_time_axis.cc:290
+#: gtk2_ardour/marker_time_axis.cc:240
 msgid "3 seconds"
-msgstr "Minutos:Segundos"
+msgstr "3 segundos"
 
-#. duration_items.push_back(SeparatorElem()) ;
-#. duration_items.push_back(MenuElem (_("custom"), mem_fun(*this, &ImageFrameTimeAxis::set_marker_duration_custom))) ;
-#: imageframe_time_axis.cc:296 marker_time_axis.cc:251
-#, fuzzy
+#: gtk2_ardour/imageframe_time_axis.cc:295
+#: gtk2_ardour/marker_time_axis.cc:245
 msgid "Duration (sec)"
-msgstr "normalizar regiones"
+msgstr "Duración (seg)"
 
-#: imageframe_time_axis.cc:301
-#, fuzzy
+#: gtk2_ardour/imageframe_time_axis.cc:300
 msgid "Remove Frame"
-msgstr "Quitar Campo"
+msgstr "Quitar Cuadro"
 
-#: imageframe_time_axis.cc:304
-#, fuzzy
+#: gtk2_ardour/imageframe_time_axis.cc:303
 msgid "Image Frame"
-msgstr "Cuadros"
+msgstr "Cuadros de la imagen"
 
-#: imageframe_time_axis.cc:305 marker_time_axis.cc:257
-#, fuzzy
+#: gtk2_ardour/imageframe_time_axis.cc:304
+#: gtk2_ardour/marker_time_axis.cc:251
 msgid "Rename Track"
-msgstr "Renombrar"
+msgstr "Renombrar Pista"
 
-#: io_selector.cc:60 io_selector.cc:794
-#, fuzzy
+#: gtk2_ardour/io_selector.cc:59
+#: gtk2_ardour/io_selector.cc:749
+#: gtk2_ardour/connection_editor.cc:85
+msgid "OK"
+msgstr "OK"
+
+#: gtk2_ardour/io_selector.cc:61
+#: gtk2_ardour/io_selector.cc:751
+#: gtk2_ardour/connection_editor.cc:60
+#: gtk2_ardour/connection_editor.cc:109
 msgid "Rescan"
-msgstr "buscar de nuevo"
+msgstr "Buscar otra vez"
 
-#: io_selector.cc:68
+#: gtk2_ardour/io_selector.cc:69
 msgid "%1 input"
 msgstr "%1 entrada"
 
-#: io_selector.cc:70
+#: gtk2_ardour/io_selector.cc:71
 msgid "%1 output"
 msgstr "%1 salida"
 
-#: io_selector.cc:142 route_params_ui.cc:107
+#: gtk2_ardour/io_selector.cc:143
+#: gtk2_ardour/route_params_ui.cc:103
 msgid "Inputs"
 msgstr "Entradas"
 
-#: io_selector.cc:142 route_params_ui.cc:108
+#: gtk2_ardour/io_selector.cc:143
+#: gtk2_ardour/route_params_ui.cc:104
 msgid "Outputs"
 msgstr "Salidas"
 
-#: io_selector.cc:143
-#, fuzzy
+#: gtk2_ardour/io_selector.cc:144
 msgid "Add Input"
-msgstr "agregar entrada"
+msgstr "Agregar Entrada"
 
-#: io_selector.cc:143
-#, fuzzy
+#: gtk2_ardour/io_selector.cc:144
 msgid "Add Output"
-msgstr "agregar salida"
+msgstr "Agregar Salida"
 
-#: io_selector.cc:144
-#, fuzzy
+#: gtk2_ardour/io_selector.cc:145
 msgid "Remove Input"
-msgstr "Remover punto de sincron�"
+msgstr "Remover Entrada"
 
-#: io_selector.cc:144
-#, fuzzy
+#: gtk2_ardour/io_selector.cc:145
 msgid "Remove Output"
-msgstr "# Salidas"
+msgstr "Eliminar Salida"
 
-#: io_selector.cc:145
-#, fuzzy
+#: gtk2_ardour/io_selector.cc:146
 msgid "Disconnect All"
-msgstr "Desconectar"
+msgstr "Desconectar Todo"
 
-#: io_selector.cc:159
+#: gtk2_ardour/io_selector.cc:160
 msgid "Available connections"
-msgstr "Conecciones disponibles"
+msgstr "Conexiones disponibles"
 
-#: io_selector.cc:555 io_selector.cc:574
+#: gtk2_ardour/io_selector.cc:550
+#: gtk2_ardour/io_selector.cc:561
 msgid "There are no more JACK ports available."
-msgstr ""
-
-#: io_selector.cc:649 io_selector.cc:676 io_selector.cc:729
-msgid "port"
-msgstr "conector"
+msgstr "No hay más puertos de JACK disponibles."
 
-#: io_selector.cc:798
+#: gtk2_ardour/io_selector.cc:755
 msgid "ardour: "
-msgstr ""
+msgstr "ardour: "
 
-#: keyboard.cc:299
-msgid "KeyboardTarget: keyname \"%1\" is unknown."
-msgstr ""
+#: gtk2_ardour/keyboard.cc:84
+#: gtk2_ardour/keyboard.cc:621
+msgid "Unknown"
+msgstr "Desconocido"
 
-#: keyboard.cc:525
-msgid ""
-"Your system is completely broken - NumLock uses \"%1\"as its modifier. This "
-"is madness - see the man page for xmodmap to find out how to fix this."
-msgstr ""
+#: gtk2_ardour/keyboard.cc:502
+msgid "your own"
+msgstr "tu propia disposición"
 
-#: keyboard.cc:533
-msgid ""
-"Your system generates \"%1\" when the NumLock key is pressed. This can cause "
-"problems when editing so Ardour will use %2 to mean Meta rather than %1"
-msgstr ""
+#: gtk2_ardour/keyboard.cc:566
+#: gtk2_ardour/keyboard.cc:590
+msgid "Default keybindings not found - Ardour will be hard to use!"
+msgstr "No se encontraron las combinaciones de teclas por defecto - ¡Ardour será difícil de usar!"
 
-#: keyboard.cc:594
-msgid "You have %1 keys bound to \"mod1\""
-msgstr "Tiene %1 teclas asignadas a \"mod1\""
+#: gtk2_ardour/keyboard.cc:569
+#: gtk2_ardour/keyboard.cc:593
+msgid "Key bindings file \"%1\" not found. Default bindings used instead"
+msgstr "No se pudo encontrar el archivo de combinaciones de teclas \"%1\". Se usarán las combinaciones de teclas por defecto."
 
-#: keyboard.cc:609
-msgid "You have %1 keys bound to \"mod2\""
-msgstr "Tiene %1 teclas asignadas a \"mod2\""
+#: gtk2_ardour/keyboard.cc:632
+msgid "Ardour key bindings file not found at \"%1\" or contains errors."
+msgstr "No se pudo encontrar el archivo de combinaciones de teclas en \"%1\" o éste contiene errores."
 
-#: keyboard.cc:624
-msgid "You have %1 keys bound to \"mod3\""
-msgstr "Tiene %1 teclas asignadas a \"mod3\""
+#: gtk2_ardour/keyeditor.cc:29
+msgid "Shortcut Editor"
+msgstr "Editor de atajos"
 
-#: keyboard.cc:639
-msgid "You have %1 keys bound to \"mod4\""
-msgstr "Tiene %1 teclas asignadas a \"mod4\""
+#: gtk2_ardour/keyeditor.cc:30
+msgid "Remove shortcut"
+msgstr "Eliminar atajo"
 
-#: keyboard.cc:654
-msgid "You have %1 keys bound to \"mod5\""
-msgstr "Tiene %1 teclas asignadas a \"mod5\""
+#: gtk2_ardour/keyeditor.cc:40
+msgid "Action"
+msgstr "Acción"
 
-#: location_ui.cc:48 location_ui.cc:51
-#, fuzzy
-msgid "Set"
-msgstr "Selecionar"
+#: gtk2_ardour/keyeditor.cc:41
+msgid "Shortcut"
+msgstr "Atajo"
 
-#: location_ui.cc:49 location_ui.cc:52
-msgid "Go"
+#: gtk2_ardour/keyeditor.cc:61
+msgid "Select an action, then press the key(s) to (re)set its shortcut"
+msgstr "Seleccione una acción, luego presione la/s tecla/s para grabar el atajo."
+
+#: gtk2_ardour/keyeditor.cc:267
+msgid "Command-"
 msgstr ""
 
-#: location_ui.cc:55
+# se refiere a la tecla 'Option'
+#: gtk2_ardour/keyeditor.cc:268
+msgid "Option-"
+msgstr "Opción-"
+
+# se refiere a la tecla 'shift', no traducir
+#: gtk2_ardour/keyeditor.cc:269
+msgid "Shift-"
+msgstr "Shift-"
+
+#: gtk2_ardour/keyeditor.cc:270
+msgid "Control-"
+msgstr "Control-"
+
+#: gtk2_ardour/location_ui.cc:49
+#: gtk2_ardour/location_ui.cc:52
+msgid "Use PH"
+msgstr "Usar Cursor"
+
+#: gtk2_ardour/location_ui.cc:50
+#: gtk2_ardour/location_ui.cc:53
+msgid "Go"
+msgstr "Ir"
+
+#: gtk2_ardour/location_ui.cc:56
 msgid "CD"
 msgstr "CD"
 
-#: location_ui.cc:58
+#: gtk2_ardour/location_ui.cc:59
 msgid "SCMS"
 msgstr ""
 
-#: location_ui.cc:59
+#: gtk2_ardour/location_ui.cc:60
 msgid "Pre-Emphasis"
-msgstr ""
+msgstr "Pre-Énfasis"
 
-#: location_ui.cc:570
-#, fuzzy
-msgid "Add New Location"
-msgstr "Agregar nueva localizacin"
+#: gtk2_ardour/location_ui.cc:85
+#: gtk2_ardour/location_ui.cc:86
+msgid "Set value to Playhead"
+msgstr "Ajustar valor a Cursor"
 
-#: location_ui.cc:571
-msgid "Add New Range"
-msgstr "Agregar nueva regin"
+#: gtk2_ardour/location_ui.cc:443
+msgid "You cannot put a CD marker at the start of the session"
+msgstr "No puede colocar una marca de CD al inicio de la sesión"
 
-#: location_ui.cc:575
-msgid "ardour: locations"
-msgstr "ardour: localizaciones"
+#: gtk2_ardour/location_ui.cc:624
+msgid "Add New Location"
+msgstr "Agregar Lugar Nuevo"
 
-#: location_ui.cc:576
-msgid "ardour_locations"
-msgstr ""
+#: gtk2_ardour/location_ui.cc:625
+msgid "Add New Range"
+msgstr "Agregar Rango Nuevo"
 
-#: location_ui.cc:604
-#, fuzzy
+#: gtk2_ardour/location_ui.cc:663
 msgid "Location (CD Index) Markers"
-msgstr "Marcadores de localizacin"
+msgstr "Marcas de Índice de CD"
 
-#: location_ui.cc:624
-#, fuzzy
+#: gtk2_ardour/location_ui.cc:683
 msgid "Range (CD Track) Markers"
-msgstr "Marcadores de intervalo"
+msgstr "Marcas de rango (Pistas de CD)"
 
-#: location_ui.cc:790
-#, fuzzy
+#: gtk2_ardour/location_ui.cc:870
 msgid "add range marker"
-msgstr "agregar un marcador de regin"
-
-#: main.cc:72
-msgid "ardour is killing itself for a clean exit\n"
-msgstr "ardour se est�cerrando limpiamente\n"
+msgstr "agregar una marca de rango"
 
-#: main.cc:81
-msgid "stopping user interface\n"
-msgstr "deteniendo interfase visual\n"
+#: gtk2_ardour/main.cc:191
+msgid "cannot create user ardour folder %1 (%2)"
+msgstr "No se pudo crear la carpeta de ardour de usuario %1 (%2)"
 
-#. XXX its doubtful that snprintf() is async-safe
-#: main.cc:100
-#, c-format
-msgid "%d(%d): received signal %d\n"
-msgstr ""
+#: gtk2_ardour/main.cc:199
+msgid "cannot open pango.rc file %1"
+msgstr "no se pudo abrir el archivo pango.rc %1"
 
-#: main.cc:180
-msgid "cannot become new process group leader (%1)"
-msgstr ""
-
-#: main.cc:207
-msgid "cannot setup signal handling for %1"
-msgstr ""
+#: gtk2_ardour/main.cc:247
+msgid "SIGPIPE received - JACK has probably died"
+msgstr "SIGPIPE recibido - Probablemente se haya detenido JACK"
 
-#: main.cc:218
-msgid "cannot set default signal mask (%1)"
-msgstr ""
-
-#: main.cc:248
-#, fuzzy
-msgid ""
-"Without a UI style file, ardour will look strange.\n"
-" Please set ARDOUR2_UI_RC to point to a valid UI style file"
-msgstr ""
-"Sin un archivo de interfase visual, Ardour no se \n"
-"ver�correctamente. Apunte ARDOUR_UI_RC a un archivo v�ido"
-
-#: main.cc:270
-#, fuzzy
-msgid "Ardour could not connect to JACK."
-msgstr "No se pudo conectar a JACK con el nombre \"%1\""
-
-#: main.cc:274
-#, fuzzy
-msgid ""
-"There are several possible reasons:\n"
-"\n"
-"1) JACK is not running.\n"
-"2) JACK is running as another user, perhaps root.\n"
-"3) There is already another client called \"ardour\".\n"
-"\n"
-"Please consider the possibilities, and perhaps (re)start JACK."
-msgstr ""
-"Ardour no pudo conectarse a JACK.\n"
-"Hay varias razones posibles:\n"
-"\n"
-"1) JACK no est�corriendo.\n"
-"2) JACK est�corriendo bajo otro nombre de usuario,tal vez root.\n"
-"3) Ya hay otro cliente JACK corriendo con el nombre \"ardour\".\n"
-"\n"
-"Considere estas posibilidades y o reinicie a JACK.\n"
-
-#: main.cc:304
-msgid "could not load command line session \"%1\""
-msgstr "no se pudo cargar desde l�ea de comando a la sesin \"%1\""
-
-#. it wasn't new, but we require a new session
-#: main.cc:324
-msgid ""
-"\n"
-"\n"
-"A session named \"%1\" already exists.\n"
-"To avoid this message, start ardour as \"ardour %1"
-msgstr ""
-
-#: main.cc:335
-msgid ""
-"\n"
-"\n"
-"No session named \"%1\" exists.\n"
-"To create it from the command line, start ardour as \"ardour --new %1"
-msgstr ""
-
-#: main.cc:399
+#: gtk2_ardour/main.cc:306
 msgid "Ardour/GTK "
-msgstr ""
+msgstr "Ardour/GTK "
 
-#: main.cc:401
+#: gtk2_ardour/main.cc:308
 msgid ""
 "\n"
 "   (built using "
 msgstr ""
+"\n"
+" (compilado usando"
 
-#: main.cc:405
-#, fuzzy
-msgid " with libardour "
-msgstr " corriendo con libardour "
-
-#: main.cc:410
+#: gtk2_ardour/main.cc:311
 msgid " and GCC version "
-msgstr ""
+msgstr "y GCC versión"
 
-#: main.cc:420
-msgid "Copyright (C) 1999-2006 Paul Davis"
-msgstr ""
+#: gtk2_ardour/main.cc:321
+msgid "Copyright (C) 1999-2008 Paul Davis"
+msgstr "Copyright (C) 1999-2008 Paul Davis"
 
-#: main.cc:421
-msgid ""
-"Some portions Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel "
-"Baker"
-msgstr ""
+#: gtk2_ardour/main.cc:322
+msgid "Some portions Copyright (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker"
+msgstr "Derechos reservados de algunas porciones (C) Steve Harris, Ari Johnson, Brett Viren, Joel Baker"
 
-#: main.cc:423
+#: gtk2_ardour/main.cc:324
 msgid "Ardour comes with ABSOLUTELY NO WARRANTY"
-msgstr "Ardour no ofrece ningn tipo de garant�"
+msgstr "Ardour no ofrece ningún tipo de garantía"
 
-#: main.cc:424
+#: gtk2_ardour/main.cc:325
 msgid "not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
 msgstr ""
 
-#: main.cc:425
+#: gtk2_ardour/main.cc:326
 msgid "This is free software, and you are welcome to redistribute it "
-msgstr "Este software es gratuito.Usted puede distribuirlo "
+msgstr "Este es software libre. Usted puede distribuirlo "
 
-#: main.cc:426
-#, fuzzy
+#: gtk2_ardour/main.cc:327
 msgid "under certain conditions; see the source for copying conditions."
-msgstr "bajo ciertas condiciones; lea el archivo COPYING para m� detalles"
+msgstr "bajo ciertas condiciones; lea el código para conocer las condiciones de copia."
 
-#: main.cc:435
-msgid "could not create ARDOUR GUI"
-msgstr "no se pudo crear la interfase visual de Ardour"
-
-#: main.cc:453
-msgid "Could not connect to JACK server as  \"%1\""
-msgstr "No se pudo conectar a JACK con el nombre \"%1\""
+#: gtk2_ardour/main.cc:336
+msgid "Cannot install SIGPIPE error handler"
+msgstr ""
 
-#: main.cc:456
-msgid "could not initialize Ardour."
-msgstr "no se pudo iniciar a Ardour."
+#: gtk2_ardour/main.cc:342
+msgid "could not create ARDOUR GUI"
+msgstr "no se pudo crear la interfaz visual de Ardour"
 
-#: marker.cc:244
-#, fuzzy
+#: gtk2_ardour/marker.cc:245
 msgid "MarkerText"
-msgstr "Marcas"
+msgstr "Texto de la marca"
 
-#: marker_time_axis.cc:254
-#, fuzzy
+#: gtk2_ardour/marker_time_axis.cc:248
 msgid "Remove Marker"
-msgstr "quitar marcador"
-
-#: marker_time_axis.cc:256
-#, fuzzy
-msgid "Marker"
-msgstr "Marcas"
-
-#: meter_bridge.cc:78
-msgid "ardour: meter bridge"
-msgstr "ardour: vmetro"
-
-#: meter_bridge.cc:79
-msgid "ardour_meter_bridge"
-msgstr ""
+msgstr "Quitar Marca"
 
-#: meter_bridge_strip.cc:80 meter_bridge_strip.cc:94
-#, c-format
-msgid "# of %u-sample overs"
-msgstr ""
+#: gtk2_ardour/midi_port_dialog.cc:22
+msgid "Port name"
+msgstr "Nombre del puerto"
 
-#: meter_bridge_strip.cc:222
-#, fuzzy
-msgid "New Name for Meter:"
-msgstr "Nuevo nombre para vmetro"
+#: gtk2_ardour/mixer_strip.cc:88
+#: gtk2_ardour/mixer_strip.cc:109
+#: gtk2_ardour/mixer_strip.cc:491
+#: gtk2_ardour/route_time_axis.cc:173
+msgid "Record"
+msgstr "Grabar"
 
-#: mixer_strip.cc:95 mixer_strip.cc:140 mixer_strip.cc:1227
+#: gtk2_ardour/mixer_strip.cc:98
+#: gtk2_ardour/mixer_strip.cc:119
+#: gtk2_ardour/mixer_strip.cc:384
+#: gtk2_ardour/mixer_strip.cc:1296
 msgid "pre"
-msgstr ""
+msgstr "pre"
 
-#: mixer_strip.cc:96 mixer_strip.cc:822
+#: gtk2_ardour/mixer_strip.cc:99
+#: gtk2_ardour/mixer_strip.cc:120
+#: gtk2_ardour/mixer_strip.cc:498
+#: gtk2_ardour/mixer_strip.cc:857
 msgid "Comments"
-msgstr ""
+msgstr "Notas"
 
-#: mixer_strip.cc:119
-#, fuzzy
+#: gtk2_ardour/mixer_strip.cc:147
 msgid "Input"
-msgstr "Entradas"
-
-#: mixer_strip.cc:136 mixer_strip.cc:1223
-#, fuzzy
-msgid "input"
-msgstr "%1 entrada"
+msgstr "Entrada"
 
-#: mixer_strip.cc:144 mixer_strip.cc:1231
-#, fuzzy
-msgid "post"
-msgstr "conector"
+#: gtk2_ardour/mixer_strip.cc:148
+msgid "Click to choose inputs"
+msgstr "Pulse para elegir entradas"
 
-#. TRANSLATORS: this string should be longest of the strings
-#. used to describe meter points. In english, its "input".
-#.
-#: mixer_strip.cc:152
-msgid "tupni"
-msgstr ""
+#: gtk2_ardour/mixer_strip.cc:154
+msgid "Click to choose outputs"
+msgstr "Pulse para elegir salidas"
 
-#: mixer_strip.cc:207
-#, fuzzy
-msgid "Varispeed"
-msgstr "velocidad"
+#: gtk2_ardour/mixer_strip.cc:159
+msgid "Select metering point"
+msgstr "Seleccione punto de medición"
 
-#: mixer_strip.cc:233 mixer_strip.cc:836
-msgid "Click to Add/Edit Comments"
-msgstr ""
+# it's just a meaningless string
+#: gtk2_ardour/mixer_strip.cc:167
+msgid "tupni"
+msgstr "tupni"
 
-#: mixer_strip.cc:374
-msgid "unknown strip width \"%1\" in XML GUI information"
-msgstr ""
+#: gtk2_ardour/mixer_strip.cc:200
+msgid "Mix group"
+msgstr "Grupo de mezcla"
 
-#: mixer_strip.cc:417
-#, fuzzy
-msgid "record"
-msgstr "Grabar"
+#: gtk2_ardour/mixer_strip.cc:363
+msgid "Varispeed"
+msgstr "Varíe-Velocidad"
 
-#: mixer_strip.cc:418 region_editor.cc:47
-msgid "mute"
-msgstr "mudo"
+#: gtk2_ardour/mixer_strip.cc:380
+#: gtk2_ardour/mixer_strip.cc:1292
+#: gtk2_ardour/option_editor.cc:762
+msgid "input"
+msgstr "entrada"
 
-#: mixer_strip.cc:419
-msgid "solo"
-msgstr "solo"
+#: gtk2_ardour/mixer_strip.cc:388
+#: gtk2_ardour/mixer_strip.cc:1300
+msgid "post"
+msgstr "post"
 
-#: mixer_strip.cc:422
-msgid "comments"
-msgstr ""
+#: gtk2_ardour/mixer_strip.cc:396
+#: gtk2_ardour/mixer_strip.cc:873
+msgid "Click to Add/Edit Comments"
+msgstr "Pulse para Añadir/Editar Notas"
 
-#: mixer_strip.cc:424
-msgid "*comments*"
-msgstr ""
+#: gtk2_ardour/mixer_strip.cc:501
+#: gtk2_ardour/mixer_strip.cc:854
+msgid "*Comments*"
+msgstr "*Notas*"
 
-#: mixer_strip.cc:438
-#, fuzzy
+#: gtk2_ardour/mixer_strip.cc:514
 msgid "Rec"
-msgstr "buscar de nuevo"
-
-#: mixer_strip.cc:439
-msgid "M"
-msgstr ""
+msgstr "Grb"
 
-#: mixer_strip.cc:440
+#: gtk2_ardour/mixer_strip.cc:517
 msgid "S"
 msgstr ""
 
-#: mixer_strip.cc:443 mixer_strip.cc:830
-#, fuzzy
+#: gtk2_ardour/mixer_strip.cc:521
+#: gtk2_ardour/mixer_strip.cc:867
 msgid "Cmt"
-msgstr "cortar"
+msgstr "Nts"
 
-#: mixer_strip.cc:445 mixer_strip.cc:828
+#: gtk2_ardour/mixer_strip.cc:524
+#: gtk2_ardour/mixer_strip.cc:864
 msgid "*Cmt*"
-msgstr ""
+msgstr "Notas"
 
-#: mixer_strip.cc:483 mixer_strip.cc:549 redirect_box.cc:1006
+#: gtk2_ardour/mixer_strip.cc:564
+#: gtk2_ardour/mixer_strip.cc:630
+#: gtk2_ardour/redirect_box.cc:1150
 msgid "Not connected to JACK - no I/O changes are possible"
-msgstr ""
+msgstr "No está conectado a JACK - No es posible realizar cambios de E/S"
 
-#: mixer_strip.cc:560
-msgid "Track"
-msgstr "Pista"
-
-#: mixer_strip.cc:588 mixer_strip.cc:604
+#: gtk2_ardour/mixer_strip.cc:664
+#: gtk2_ardour/mixer_strip.cc:680
 msgid "could not register new ports required for that connection"
-msgstr ""
+msgstr "no se pudieron registrar los puertos nuevos requeridos para esa conexión"
 
-#: mixer_strip.cc:747
-#, fuzzy
+#: gtk2_ardour/mixer_strip.cc:783
 msgid " Input"
-msgstr "# Entradas"
+msgstr "Entrada"
 
-#: mixer_strip.cc:750
-#, fuzzy
+#: gtk2_ardour/mixer_strip.cc:786
 msgid "I"
-msgstr "ENTRADA"
+msgstr "E"
 
-#: mixer_strip.cc:820
-msgid "*Comments*"
-msgstr ""
+#: gtk2_ardour/mixer_strip.cc:806
+msgid "O"
+msgstr "S"
 
-#: mixer_strip.cc:859
-#, fuzzy
+#: gtk2_ardour/mixer_strip.cc:909
 msgid ": comment editor"
-msgstr "no se pudo iniciar el editor"
+msgstr ": editor de notas"
+
+#: gtk2_ardour/mixer_strip.cc:978
+#: gtk2_ardour/route_time_axis.cc:308
+msgid "No group"
+msgstr "Sin grupo"
 
-#: mixer_strip.cc:953
+#: gtk2_ardour/mixer_strip.cc:1004
 msgid "Grp"
-msgstr ""
+msgstr "Grp"
 
-#: mixer_strip.cc:956
+#: gtk2_ardour/mixer_strip.cc:1007
 msgid "~G"
 msgstr ""
 
-#: mixer_strip.cc:1004
-#, fuzzy
+#: gtk2_ardour/mixer_strip.cc:1049
+msgid "Save As Template"
+msgstr "Guardar plantilla..."
+
+#: gtk2_ardour/mixer_strip.cc:1056
 msgid "Invert Polarity"
-msgstr "polaridad"
+msgstr "Invertir polaridad"
 
-#: mixer_ui.cc:85
-msgid "Strips"
-msgstr "Pistas"
+#: gtk2_ardour/mixer_strip.cc:1059
+msgid "Protect against denormals"
+msgstr "Proteger contra denormals"
 
-#: mixer_ui.cc:110
-#, fuzzy
-msgid "Group"
-msgstr "Grupos de Mixer"
+#: gtk2_ardour/mixer_strip.cc:1066
+#: gtk2_ardour/route_time_axis.cc:455
+msgid "Remote Control ID"
+msgstr "ID de Control Remoto"
 
-#: mixer_ui.cc:211 mixer_ui.cc:370
-msgid "ardour: mixer"
-msgstr ""
+#: gtk2_ardour/mixer_ui.cc:88
+msgid "Strips"
+msgstr "Canales"
 
-#: mixer_ui.cc:212
-msgid "ardour_mixer"
-msgstr "ardour_mixer"
+#: gtk2_ardour/mixer_ui.cc:114
+msgid "Group"
+msgstr "Grupo"
 
-#: mixer_ui.cc:346
-msgid "ardour: mixer: "
-msgstr ""
+#: gtk2_ardour/mixer_ui.cc:214
+#: gtk2_ardour/mixer_ui.cc:446
+#: gtk2_ardour/mixer_ui.cc:478
+msgid "Mixer"
+msgstr "Mezclador"
 
-#: mixer_ui.cc:573
+#: gtk2_ardour/mixer_ui.cc:308
+#: gtk2_ardour/mixer_ui.cc:309
 msgid "signal"
-msgstr "seal"
+msgstr "señal"
 
-#: mixer_ui.cc:723
+#: gtk2_ardour/mixer_ui.cc:974
 msgid "track display list item for renamed strip not found!"
 msgstr ""
 
-#
-#: new_session_dialog.cc:39
-#, fuzzy
-msgid "New Session Name :"
-msgstr "Nombre de sesin:"
+#: gtk2_ardour/nag.cc:15
+msgid "Support Ardour Development"
+msgstr "Colabore con el desarrollo del Ardour"
+
+#: gtk2_ardour/nag.cc:16
+msgid "I'd like to make a one-time donation"
+msgstr "Quisiera hacer una donación de una sola vez"
+
+#: gtk2_ardour/nag.cc:17
+msgid "Tell me more about becoming a subscriber"
+msgstr "Dígame más sobre cómo hacerme suscriptor"
+
+#: gtk2_ardour/nag.cc:18
+msgid "I'm already a subscriber!"
+msgstr "¡Ya soy un suscriptor!"
+
+#: gtk2_ardour/nag.cc:19
+msgid "Ask about this the next time I export"
+msgstr "Pregunte por esto la próxima vez que exporte un archivo"
+
+#: gtk2_ardour/nag.cc:20
+msgid "Never ever ask me about this again"
+msgstr "Nunca nunca me pregunte acerca de esto otra vez"
+
+#: gtk2_ardour/nag.cc:23
+msgid ""
+"Congratulations on your session export.\n"
+"\n"
+"It looks as if you may already be a subscriber. If so, thanks, and sorry\n"
+"to bother you again about this - I'm working on improving our subscriber system\n"
+"so that I don't have to keep annoying you with this message.\n"
+"\n"
+"If you're not a subscriber, perhaps you might consider supporting my work\n"
+"on Ardour with either a one-time donation or subscription. Nothing will \n"
+"happen if you choose not to do so. However Ardour's continuing development\n"
+"relies on a stable, sustainable income stream. Thanks for using Ardour!"
+msgstr ""
+"Felicitaciones por tu sesión exportada.\n"
+"\n"
+"Al parecer ya eres un subscriptor. Si es así, gracias, y disculpas por\n"
+"incomodar de nuevo con esto - Estoy trabajando en el mejoramiento de\n"
+"nuestro sistema de subscripción así no tengo que continuar molestando\n"
+"con este mensaje.\n"
+"\n"
+"Si no eres un subscriptor, quizás podrías considerar colaborar con mi\n"
+"trabajo en Ardour con una donación eventual o con subscribiéndote.\n"
+"Nada pasará si decides no hacerlo. De todos modos, el desarrollo\n"
+"continuo de Ardour depende de una flujo de ingresos estable y sostenible.\n"
+"¡Gracias por usar Ardour!"
 
-#: new_session_dialog.cc:41
-msgid "Create Session Directory In :"
+#: gtk2_ardour/nag.cc:32
+msgid ""
+"Congratulations on your session export.\n"
+"\n"
+"I hope you find Ardour a useful tool. I'd like to ask you to consider supporting\n"
+"its development with either a one-time donation or subscription. Nothing\n"
+"will happen if you choose not to do so. However Ardour's continuing development\n"
+"relies on a stable, sustainable income stream. Thanks for using Ardour!"
 msgstr ""
+"Felicitaciones por tu sesión exportada.\n"
+"\n"
+"Espero que encuentres en Ardour una herramienta útil. Me gustaría pedirte\n"
+"que consideres colaborar en su desarrollo con una donación eventual.\n"
+"Nada pasará si eliges no hacerlo. De cualquier modo, el desarrollo continuo\n"
+"de Ardour depende en un flujo de ingresos estable y sostenible.\n"
+"¡Gracias por usar Ardour!"
+
+#: gtk2_ardour/new_session_dialog.cc:50
+msgid "Name :"
+msgstr "Nombre :"
+
+#: gtk2_ardour/new_session_dialog.cc:54
+#: gtk2_ardour/new_session_dialog.cc:55
+#: gtk2_ardour/new_session_dialog.cc:56
+#: gtk2_ardour/new_session_dialog.cc:57
+msgid "channels"
+msgstr "canales"
+
+#: gtk2_ardour/new_session_dialog.cc:75
+msgid "<b>Busses</b>"
+msgstr "<b>Buses</b>"
 
-#: new_session_dialog.cc:43
-#, fuzzy
-msgid "Use Session Template :"
-msgstr "usar esquema existente"
+#: gtk2_ardour/new_session_dialog.cc:76
+msgid "<b>Inputs</b>"
+msgstr "<b>Entradas</b>"
 
-#: new_session_dialog.cc:45
-#, fuzzy
-msgid "Channel Count"
-msgstr "Cancelar importacin"
+#: gtk2_ardour/new_session_dialog.cc:77
+msgid "<b>Outputs</b>"
+msgstr "<b>Salidas</b>"
 
-#: new_session_dialog.cc:46
-#, fuzzy
+#: gtk2_ardour/new_session_dialog.cc:79
+msgid "Create Folder In :"
+msgstr "Crear carpeta en :"
+
+#: gtk2_ardour/new_session_dialog.cc:81
+msgid "Template :"
+msgstr "Plantilla :"
+
+#: gtk2_ardour/new_session_dialog.cc:83
 msgid "Create Monitor Bus"
-msgstr "Control de Salidas"
+msgstr "Crear bus de monitorización"
 
-#: new_session_dialog.cc:53
-#, fuzzy
+#: gtk2_ardour/new_session_dialog.cc:90
 msgid "Create Master Bus"
-msgstr "usar salidas Master"
+msgstr "Crear bus Master (Principal)"
 
-#: new_session_dialog.cc:55
-#, fuzzy
-msgid "Automatically Connect Inputs"
-msgstr "conectar autom�icamente entradas de pistas a entradas f�icas"
+#: gtk2_ardour/new_session_dialog.cc:92
+msgid "Automatically Connect to Physical Inputs"
+msgstr "Conectar a entradas físicas automáticamente"
 
-#: new_session_dialog.cc:56 new_session_dialog.cc:67
-#, fuzzy
-msgid "Port Limit"
-msgstr "Olvidarlo"
+#: gtk2_ardour/new_session_dialog.cc:93
+#: gtk2_ardour/new_session_dialog.cc:106
+msgid "Use only"
+msgstr "Usar solamente"
 
-#: new_session_dialog.cc:64
-#, fuzzy
-msgid "<b>Track/Bus Inputs</b>"
-msgstr "Pistas/Buses"
-
-#: new_session_dialog.cc:66
-#, fuzzy
+#: gtk2_ardour/new_session_dialog.cc:105
 msgid "Automatically Connect Outputs"
-msgstr "conectar pistas manualmente"
+msgstr "Conectar salidas de pistas automáticamente"
 
-#: new_session_dialog.cc:75
-msgid "Connect to Master Bus"
-msgstr ""
+#: gtk2_ardour/new_session_dialog.cc:114
+msgid "... to Master Bus"
+msgstr "...al Bus Master"
 
-#: new_session_dialog.cc:76
-msgid "Connect to Physical Outputs"
-msgstr ""
+#: gtk2_ardour/new_session_dialog.cc:115
+msgid "... to Physical Outputs"
+msgstr "...a Salidas Físicas"
 
-#: new_session_dialog.cc:80
-#, fuzzy
-msgid "<b>Track/Bus Outputs</b>"
-msgstr "Salidas"
-
-#: new_session_dialog.cc:83
-#, fuzzy
+#: gtk2_ardour/new_session_dialog.cc:121
 msgid "Advanced Options"
-msgstr "Opciones Editor"
-
-#
-#: new_session_dialog.cc:91
-#, fuzzy
-msgid "Open Recent Session"
-msgstr "Abrir sesin"
-
-#
-#: new_session_dialog.cc:127
-#, fuzzy
-msgid "Open Session File :"
-msgstr "Abrir sesin"
-
-#: new_session_dialog.cc:274
-#, fuzzy
-msgid "New Session"
-msgstr "Sesin"
+msgstr "Opciones Avanzadas"
 
-#
-#: new_session_dialog.cc:276
-#, fuzzy
-msgid "Open Session"
-msgstr "Abrir sesin"
+#: gtk2_ardour/new_session_dialog.cc:129
+msgid "Recent:"
+msgstr "Recientes:"
 
-#: new_session_dialog.cc:281
-#, fuzzy
-msgid "ardour: session control"
-msgstr "ardour: guardar sesin?"
+#: gtk2_ardour/new_session_dialog.cc:166
+msgid "Browse:"
+msgstr "Explorar:"
 
-#: new_session_dialog.cc:310
-#, fuzzy
+#: gtk2_ardour/new_session_dialog.cc:378
+msgid "Session Control"
+msgstr "Control de Sesión"
+
+#: gtk2_ardour/new_session_dialog.cc:418
 msgid "select template"
-msgstr "-esquema"
+msgstr "seleccione la plantilla"
 
-#: new_session_dialog.cc:316
-#, fuzzy
+#: gtk2_ardour/new_session_dialog.cc:424
 msgid "select session file"
-msgstr "Reproducir regin seleccionada cont�uamente"
+msgstr "seleccione el archivo de sesión"
 
-#: new_session_dialog.cc:325
-#, fuzzy
+#: gtk2_ardour/new_session_dialog.cc:433
 msgid "select directory"
-msgstr "Reproducir regin seleccionada cont�uamente"
+msgstr "seleccione el directorio"
 
-#: option_editor.cc:76
-msgid "SMPTE offset is negative"
-msgstr ""
+#: gtk2_ardour/new_session_dialog.cc:496
+msgid "Audio Setup"
+msgstr "Configuración de Audio"
 
-#: option_editor.cc:102
-msgid "ardour: options editor"
-msgstr "ardour: opciones editor"
+#: gtk2_ardour/new_session_dialog.cc:520
+msgid "New Session"
+msgstr "Crear nueva sesión"
+
+#: gtk2_ardour/new_session_dialog.cc:525
+msgid "Open Session"
+msgstr "Abrir sesión"
+
+#: gtk2_ardour/option_editor.cc:82
+msgid "Limit undo history"
+msgstr "Limitar historial de Deshacer"
+
+#: gtk2_ardour/option_editor.cc:83
+msgid "Save undo history"
+msgstr "Guardar historial de Deshacer"
+
+#: gtk2_ardour/option_editor.cc:88
+msgid "SMPTE offset is negative"
+msgstr "La compensación de SMPTE es negativa"
 
-#: option_editor.cc:103
-msgid "ardour_option_editor"
+#: gtk2_ardour/option_editor.cc:89
+msgid "Timecode source is sample-clock synced"
 msgstr ""
 
-#: option_editor.cc:127
+#: gtk2_ardour/option_editor.cc:98
+msgid "Add new MIDI port"
+msgstr "Añadir nuevo puerto MIDI"
+
+#: gtk2_ardour/option_editor.cc:154
 msgid "Paths/Files"
-msgstr "Carpetas/Archivos"
+msgstr "Rutas/Archivos"
 
-#: option_editor.cc:128
+#: gtk2_ardour/option_editor.cc:155
 msgid "Kbd/Mouse"
-msgstr "Teclado/Mouse"
+msgstr "Teclado/Ratón"
 
-#: option_editor.cc:131
-msgid "Layers & Fades"
-msgstr ""
+#: gtk2_ardour/option_editor.cc:159
+msgid "Misc"
+msgstr "Misc"
 
-#: option_editor.cc:135
+#: gtk2_ardour/option_editor.cc:162
 msgid "MIDI"
 msgstr "MIDI"
 
-#: option_editor.cc:177
-msgid "24 FPS"
-msgstr ""
+#: gtk2_ardour/option_editor.cc:232
+msgid "session RAID path"
+msgstr "ubicación de archivos de sesión"
+
+#: gtk2_ardour/option_editor.cc:248
+#: gtk2_ardour/option_editor.cc:254
+#: gtk2_ardour/option_editor.cc:988
+#: gtk2_ardour/option_editor.cc:1008
+msgid "internal"
+msgstr "interno"
+
+#: gtk2_ardour/option_editor.cc:281
+msgid "Font Scaling"
+msgstr "Escalamiento de las fuentes"
+
+#: gtk2_ardour/option_editor.cc:295
+msgid "Short crossfade length (msecs)"
+msgstr "Longitud del fundido cruzado corto (mseg)"
+
+#: gtk2_ardour/option_editor.cc:307
+msgid "Destructive crossfade length (msecs)"
+msgstr "Longitud del fundido cruzado destructivo (mseg)"
+
+#: gtk2_ardour/option_editor.cc:326
+msgid "History depth (commands)"
+msgstr "Profundidad del historial (comandos)"
+
+#: gtk2_ardour/option_editor.cc:347
+msgid "Saved history depth (commands)"
+msgstr "Profundidad del historial guardado (comandos)"
 
-#: option_editor.cc:179
-msgid "25 FPS"
+#: gtk2_ardour/option_editor.cc:445
+msgid "SMPTE Offset"
 msgstr ""
 
-#: option_editor.cc:181
-msgid "30 FPS"
+#: gtk2_ardour/option_editor.cc:518
+msgid "Inbound MMC Device ID"
 msgstr ""
 
-#: option_editor.cc:187
-msgid "30 FPS drop"
+#: gtk2_ardour/option_editor.cc:528
+msgid "Outbound MMC Device ID"
 msgstr ""
 
-#: option_editor.cc:244
-msgid "session RAID path"
-msgstr "ubicacin de archivos de sesin"
+#: gtk2_ardour/option_editor.cc:538
+msgid "Startup program change"
+msgstr ""
 
-#: option_editor.cc:249
-#, fuzzy
-msgid "Soundfile Search Paths"
-msgstr "Biblioteca de audio"
+#: gtk2_ardour/option_editor.cc:577
+msgid "Port"
+msgstr "Puerto"
 
-#: option_editor.cc:254
-#, fuzzy
-msgid "Paths"
-msgstr "Carpetas/Archivos"
+#: gtk2_ardour/option_editor.cc:581
+msgid "Offline"
+msgstr "Fuera de línea"
 
-#: option_editor.cc:268 option_editor.cc:274 option_editor.cc:723
-#: option_editor.cc:750
-msgid "internal"
-msgstr "interno"
+#: gtk2_ardour/option_editor.cc:585
+msgid ""
+"Trace\n"
+"Input"
+msgstr "Vigilar Entrada MIDI"
 
-#: option_editor.cc:287
-msgid "Short crossfade length (msecs)"
-msgstr ""
+#: gtk2_ardour/option_editor.cc:589
+msgid ""
+"Trace\n"
+"Output"
+msgstr "Vigilar Salida MIDI"
 
-#: option_editor.cc:299
-msgid "Destructive crossfade length (msecs)"
-msgstr ""
+#: gtk2_ardour/option_editor.cc:593
+msgid "MTC"
+msgstr "MTC"
 
-#: option_editor.cc:367
-msgid "SMPTE Frames/second"
-msgstr "SMPTE Cuadros/segundo"
+#: gtk2_ardour/option_editor.cc:597
+msgid "MMC"
+msgstr "MMC"
 
-#: option_editor.cc:368
-msgid "SMPTE Offset"
+#: gtk2_ardour/option_editor.cc:601
+msgid ""
+"MIDI Parameter\n"
+"Control"
 msgstr ""
+"Parámetro MIDI\n"
+"Control"
 
-#: option_editor.cc:462 option_editor.cc:469 option_editor.cc:472
-#: option_editor.cc:618
-#, fuzzy
+#: gtk2_ardour/option_editor.cc:640
+#: gtk2_ardour/option_editor.cc:647
+#: gtk2_ardour/option_editor.cc:650
+#: gtk2_ardour/option_editor.cc:863
 msgid "online"
-msgstr "linear"
+msgstr "en línea"
 
-#. remember, we have to handle the i18n case where the relative
-#. lengths of the strings in language N is different than in english.
-#.
-#: option_editor.cc:469 option_editor.cc:470 option_editor.cc:615
-#, fuzzy
+#: gtk2_ardour/option_editor.cc:647
+#: gtk2_ardour/option_editor.cc:648
+#: gtk2_ardour/option_editor.cc:860
 msgid "offline"
-msgstr "linear"
+msgstr "fuera de línea"
 
-#: option_editor.cc:670
+#: gtk2_ardour/option_editor.cc:764
+msgid "output"
+msgstr "salida"
+
+#: gtk2_ardour/option_editor.cc:935
 msgid "Choose Click"
-msgstr ""
+msgstr "Elija Click"
 
-#: option_editor.cc:689
-#, fuzzy
+#: gtk2_ardour/option_editor.cc:957
 msgid "Choose Click Emphasis"
-msgstr "Usar como �fasis de metrnomo"
+msgstr "Elija Click acentuado"
 
-#: option_editor.cc:803
+#: gtk2_ardour/option_editor.cc:1056
 msgid "Click audio file"
-msgstr "Archivo de sonido para metrnomo"
+msgstr "Sonido a usar como click"
 
-#: option_editor.cc:809
+#: gtk2_ardour/option_editor.cc:1062
 msgid "Click emphasis audiofile"
-msgstr "Archivo de sonido de �fasis de metrnomo"
+msgstr "Sonido de click acentuado"
 
-#: option_editor.cc:846
+#: gtk2_ardour/option_editor.cc:1111
 msgid ""
 "The auditioner is a dedicated mixer strip used\n"
 "for listening to specific regions outside the context\n"
 "of the overall mix. It can be connected just like any\n"
 "other mixer strip."
 msgstr ""
-"El audicionador es una salida de sonido dedicada empleada\n"
-"para o� regiones espec�icas de la sesin o para\n"
-"escuchar archivos de sonido en el men Biblioteca de Audio\n"
-"Se puede configurar sus conecciones como a cualquier.otra del mixer"
+"El audicionador es un canal de sonido dedicado empleado\n"
+"para escuchar regiones específicas fuera del contexto de\n"
+"la mezcla general. Puede conectarse como cualquier otro\n"
+"canal del Mezclador."
 
-#: option_editor.cc:919
+#: gtk2_ardour/option_editor.cc:1203
 msgid "Edit using"
-msgstr "Editar con"
+msgstr "Editar usando"
 
-#: option_editor.cc:926 option_editor.cc:953
+#: gtk2_ardour/option_editor.cc:1210
+#: gtk2_ardour/option_editor.cc:1237
 msgid "+ button"
-msgstr "botn +"
+msgstr "+ botón"
 
-#: option_editor.cc:946
+#: gtk2_ardour/option_editor.cc:1230
 msgid "Delete using"
-msgstr "Eliminar con"
+msgstr "Eliminar usando"
 
-#: option_editor.cc:973
+#: gtk2_ardour/option_editor.cc:1257
 msgid "Ignore snap using"
-msgstr "Ignorar trabar con"
+msgstr "Ignorar Ajustar usando"
 
-#: opts.cc:46
+#: gtk2_ardour/option_editor.cc:1274
+msgid "Keyboard layout"
+msgstr "Disposición de teclado"
+
+#: gtk2_ardour/opts.cc:50
 msgid "Usage: "
 msgstr "Uso: "
 
-#: opts.cc:47
+#: gtk2_ardour/opts.cc:51
 msgid "  -v, --version                    Show version information\n"
-msgstr ""
-"  -v, --version                    Mostra informacin acerca de la versin\n"
+msgstr "  -v, --version                    Muestra información acerca de la versión\n"
 
-#: opts.cc:48
+#: gtk2_ardour/opts.cc:52
 msgid "  -h, --help                       Print this message\n"
 msgstr "  -h, --help                       Muestra este mensage\n"
 
-#: opts.cc:49
-msgid ""
-"  -b, --bindings                   Print all possible keyboard binding "
-"names\n"
-msgstr ""
-"  -b, --bindings                   Muestra todos los comandos asignables a "
-"botones del teclado(shortcuts)\n"
+#: gtk2_ardour/opts.cc:53
+msgid "  -b, --bindings                   Print all possible keyboard binding names\n"
+msgstr "  -b, --bindings                   Muestra todos los comandos asignables a botones del teclado(shortcuts)\n"
 
-#: opts.cc:50
-#, fuzzy
+#: gtk2_ardour/opts.cc:54
+msgid "  -c, --name  name                 Use a specific jack client name, default is ardour\n"
+msgstr "  -c, --name  nombre               Nombre de cliente JACK para Ardour. Si no selecciona ninguno, el nombre ardour\n"
+
+#: gtk2_ardour/opts.cc:55
+msgid "  -d, --disable-plugins            Disable all plugins in an existing session\n"
+msgstr "  -d, --disable-plugins            Deshabilitar todos los plugins de una sesión existente\n"
+
+#: gtk2_ardour/opts.cc:56
 msgid "  -n, --show-splash                Show splash screen\n"
-msgstr "  -n, --no-splash                  No mostrar recuadro inicial\n"
+msgstr "  -n, --show-splash                Mostrar pantalla inicial\n"
 
-#: opts.cc:51
-#, fuzzy
-msgid ""
-"  -c, --name  name                 Use a specific jack client name, default "
-"is ardour\n"
-msgstr ""
-"  -c, --jack-client-name  nombre     Nombre de cliente jack para Ardour. Si "
-"no selecciona ninguno, el nombre ser�ardour\n"
+#: gtk2_ardour/opts.cc:57
+msgid "  -m, --menus file                 Use \"file\" for Ardour menus\n"
+msgstr "  -m, --menus archivo                 Usar \"archivo\" para los menúes de Ardour\n"
 
-#: opts.cc:52
-#, fuzzy
-msgid ""
-"  -N, --new session-name           Create a new session from the command "
-"line\n"
-msgstr "  [nombre-sesin]                   Nombre de sesin a cargar\n"
+#: gtk2_ardour/opts.cc:58
+msgid "  -N, --new session-name           Create a new session from the command line\n"
+msgstr "  -N, --new session-name           Crear una sesión nueva desde la línea de comandos\n"
 
-#: opts.cc:53
-msgid ""
-"  -o, --use-hw-optimizations        Try to use h/w specific optimizations\n"
-msgstr ""
+#: gtk2_ardour/opts.cc:59
+msgid "  -O, --no-hw-optimizations        Disable h/w specific optimizations\n"
+msgstr "  -O, --no-hw-optimizations        Deshabilitar las optimizaciones específicas de h/w\n"
 
-#: opts.cc:55
-#, fuzzy
+# no sé realmente qué significa
+#: gtk2_ardour/opts.cc:60
+msgid "  -S, --sync\t                      Draw the gui synchronously \n"
+msgstr "  -S, --sync\t                      Dibujar la interfaz gráfica de usuario sincrónicamente\n"
+
+#: gtk2_ardour/opts.cc:62
 msgid "  -V, --novst                      Do not use VST support\n"
-msgstr "  -n, --no-splash                  No mostrar recuadro inicial\n"
+msgstr "  -V, --novst                      No usar soporte VST\n"
 
-#: opts.cc:57
+#: gtk2_ardour/opts.cc:64
 msgid "  [session-name]                   Name of session to load\n"
-msgstr "  [nombre-sesin]                   Nombre de sesin a cargar\n"
+msgstr "  [nombre-sesión]                   Nombre de sesión a cargar\n"
 
-#: opts.cc:58
+#: gtk2_ardour/opts.cc:65
 msgid "  -C, --curvetest filename         Curve algorithm debugger\n"
-msgstr ""
+msgstr "  -C, --curvetest filename         Debug del algoritmo de la curva\n"
 
-#: opts.cc:59
-#, fuzzy
-msgid "  -g, --gtktheme                   Allow GTK to load a theme\n"
-msgstr "  -h, --help                       Muestra este mensage\n"
+#: gtk2_ardour/opts.cc:66
+msgid "  -k, --keybindings filename       Name of key bindings to load (default is ~/.ardour2/ardour.bindings)\n"
+msgstr "  -k, --keybindings filename       Nombre de las combinaciones de teclas a cargar (por defecto: ~/.ardour2/ardour.bindings)\n"
 
-#: pan_automation_time_axis.cc:60
-msgid "You can't graphically edit panning of more than stream"
-msgstr ""
+#: gtk2_ardour/pan_automation_time_axis.cc:69
+msgid "You need to select which line to edit"
+msgstr "Necesita seleccionar qué línea editar"
 
-#: pan_automation_time_axis.cc:80
-#, fuzzy
+#: gtk2_ardour/pan_automation_time_axis.cc:90
 msgid "add pan automation event"
-msgstr "agregar evento de automatizacin a "
+msgstr "agregar evento de automatización de panorámica"
 
-#: panner2d.cc:589 panner_ui.cc:435 plugin_ui.cc:834
-#, fuzzy
+#: gtk2_ardour/panner2d.cc:588
+#: gtk2_ardour/panner_ui.cc:473
+#: gtk2_ardour/plugin_ui.cc:329
 msgid "Bypass"
-msgstr "no procesar"
+msgstr "Puentear"
 
-#: panner_ui.cc:58 panner_ui.cc:225
-#, fuzzy
+#: gtk2_ardour/panner_ui.cc:57
+#: gtk2_ardour/panner_ui.cc:270
 msgid "link"
-msgstr "entrada"
+msgstr "vinc"
 
-#: panner_ui.cc:69
-#, fuzzy
+#: gtk2_ardour/panner_ui.cc:70
 msgid "Pan automation mode"
-msgstr "modo de automatizacin de balance"
+msgstr "Modo de automatización de panorámica"
 
-#: panner_ui.cc:70
-#, fuzzy
+#: gtk2_ardour/panner_ui.cc:71
 msgid "Pan automation type"
-msgstr "estado de automatizacin de balance"
+msgstr "Tipo de automatización de panorámica"
 
-#: panner_ui.cc:81
+#: gtk2_ardour/panner_ui.cc:81
 msgid "panning link control"
-msgstr ""
+msgstr "control del vínculo de panorámica"
 
-#: panner_ui.cc:83
+#: gtk2_ardour/panner_ui.cc:83
 msgid "panning link direction"
-msgstr ""
+msgstr "dirección del vínculo de panorámica"
 
-#: panner_ui.cc:235
+#: gtk2_ardour/panner_ui.cc:273
 msgid "L"
 msgstr ""
 
-#: panner_ui.cc:335
+#: gtk2_ardour/panner_ui.cc:394
 #, c-format
-msgid "panner for channel %lu"
-msgstr ""
-
-#: panner_ui.cc:337
-#, c-format
-msgid "panner for channel %u"
-msgstr ""
+msgid "panner for channel %zu"
+msgstr "panorámica del canal %zu"
 
-#: panner_ui.cc:445
-#, fuzzy
+#: gtk2_ardour/panner_ui.cc:483
 msgid "Reset all"
-msgstr "resetear"
+msgstr "Limpiar todos"
 
-#: playlist_selector.cc:52
-#, fuzzy
-msgid "ardour: playlists"
-msgstr "ardour: plugins"
+#: gtk2_ardour/playlist_selector.cc:58
+msgid "Playlists"
+msgstr "Listas de Reproducción"
 
-#: playlist_selector.cc:59
+#: gtk2_ardour/playlist_selector.cc:63
 msgid "Playlists grouped by track"
-msgstr ""
+msgstr "Listas de Reproducción agrupadas por pista"
 
-#: playlist_selector.cc:98
-#, fuzzy
-msgid "ardour: playlist for "
-msgstr "ardour: plugins"
+#: gtk2_ardour/playlist_selector.cc:112
+msgid "Playlist for %1"
+msgstr "Lista de Reproducción en %1"
 
-#: playlist_selector.cc:114
-#, fuzzy
+#: gtk2_ardour/playlist_selector.cc:126
 msgid "Other tracks"
-msgstr "Ocultar esta pista"
+msgstr "Otras pistas"
 
-#: playlist_selector.cc:130
+#: gtk2_ardour/playlist_selector.cc:143
 msgid "unassigned"
-msgstr ""
-
-#: plugin_selector.cc:43
+msgstr "no asignado"
+
+#: gtk2_ardour/plugin_selector.cc:51
+#: gtk2_ardour/plugin_selector.cc:209
+msgid "Name contains"
+msgstr "Nombre contiene"
+
+#: gtk2_ardour/plugin_selector.cc:52
+#: gtk2_ardour/plugin_selector.cc:211
+msgid "Type contains"
+msgstr "Tipo contiene"
+
+#: gtk2_ardour/plugin_selector.cc:53
+#: gtk2_ardour/plugin_selector.cc:213
+msgid "Author contains"
+msgstr "Autor contiene"
+
+#: gtk2_ardour/plugin_selector.cc:54
+#: gtk2_ardour/plugin_selector.cc:215
+msgid "Library contains"
+msgstr "Biblioteca contiene"
+
+#: gtk2_ardour/plugin_selector.cc:55
+#: gtk2_ardour/plugin_selector.cc:203
+#: gtk2_ardour/plugin_selector.cc:450
+msgid "Favorites only"
+msgstr "Sólo favoritos"
+
+#: gtk2_ardour/plugin_selector.cc:60
 msgid "ardour: plugins"
 msgstr "ardour: plugins"
 
-#: plugin_selector.cc:56
-#, fuzzy
-msgid "Available LADSPA Plugins"
-msgstr "Plugins LADSPA dispon�les"
+#: gtk2_ardour/plugin_selector.cc:77
+msgid "Fav"
+msgstr "Fav"
+
+#: gtk2_ardour/plugin_selector.cc:78
+msgid "Available Plugins"
+msgstr "Plugins Disponibles"
 
-#: plugin_selector.cc:57
+#: gtk2_ardour/plugin_selector.cc:79
 msgid "Type"
 msgstr "Tipo"
 
-#: plugin_selector.cc:58 plugin_selector.cc:81
+#: gtk2_ardour/plugin_selector.cc:80
+msgid "Category"
+msgstr "Categoría"
+
+#: gtk2_ardour/plugin_selector.cc:81
+msgid "Creator"
+msgstr "Creador"
+
+#: gtk2_ardour/plugin_selector.cc:82
 msgid "# Inputs"
 msgstr "# Entradas"
 
-#: plugin_selector.cc:59 plugin_selector.cc:82
+#: gtk2_ardour/plugin_selector.cc:83
 msgid "# Outputs"
 msgstr "# Salidas"
 
-#: plugin_selector.cc:68
-msgid "Plugins to be Connected to Insert"
-msgstr ""
-
-#: plugin_selector.cc:80
-#, fuzzy
-msgid "Available plugins"
-msgstr "Plugins LADSPA dispon�les"
+#: gtk2_ardour/plugin_selector.cc:100
+msgid "Plugins to be connected"
+msgstr "Plugins que se conectarán"
 
-#: plugin_selector.cc:98
+#: gtk2_ardour/plugin_selector.cc:113
 msgid "Add a plugin to the effect list"
-msgstr "Agregar plugin a lista de efectos"
+msgstr "Agregar plugin a la lista de efectos"
 
-#: plugin_selector.cc:102
+#: gtk2_ardour/plugin_selector.cc:117
 msgid "Remove a plugin from the effect list"
-msgstr "Quitar plugin de lista de efectos"
+msgstr "Eliminar plugin de la lista de efectos"
 
-#: plugin_selector.cc:104
+#: gtk2_ardour/plugin_selector.cc:119
 msgid "Update available plugins"
-msgstr "Actualizar plugins dispon�les"
+msgstr "Actualizar plugins disponibles"
 
-#: plugin_selector.cc:126
-msgid "LADSPA"
-msgstr ""
+#: gtk2_ardour/plugin_selector.cc:156
+msgid "Insert Plugin(s)"
+msgstr "Insertar Plugin/s"
 
-#: plugin_selector.cc:129
-msgid "VST"
-msgstr ""
+#: gtk2_ardour/plugin_selector.cc:502
+msgid "Favorites"
+msgstr "Favoritos"
 
-#: plugin_ui.cc:84
-msgid ""
-"unknown type of editor-supplying plugin (note: no VST support in this "
-"version of ardour)"
-msgstr ""
+#: gtk2_ardour/plugin_selector.cc:503
+msgid "Plugin Manager"
+msgstr "Administrador de Plugins"
 
-#: plugin_ui.cc:139
-msgid "<span size=\"large\">Presets</span>"
+#: gtk2_ardour/plugin_ui.cc:87
+msgid "Eh? LADSPA plugins don't have editors!"
+msgstr "¿Eh? ¡Los plugins LADSPA no tienen editores!"
+
+#: gtk2_ardour/plugin_ui.cc:96
+#: gtk2_ardour/plugin_ui.cc:219
+msgid "unknown type of editor-supplying plugin (note: no VST support in this version of ardour)"
 msgstr ""
 
-#: plugin_ui.cc:230
-#, fuzzy
-msgid "Controls"
-msgstr "Control de Salidas"
+#: gtk2_ardour/plugin_ui.cc:99
+msgid "unknown type of editor-supplying plugin"
+msgstr ""
 
-#: plugin_ui.cc:267
-msgid "Plugin Editor: could not build control element for port %1"
+#: gtk2_ardour/plugin_ui.cc:284
+msgid "create_lv2_editor called on non-LV2 plugin"
 msgstr ""
 
-#: plugin_ui.cc:358
-#, fuzzy
-msgid "Automation control"
-msgstr "mover evento de automatizacin"
+#: gtk2_ardour/plugin_ui.cc:358
+#: gtk2_ardour/plugin_ui.cc:435
+msgid "Click to focus all keyboard events on this plugin window"
+msgstr "Pulse para que todos los eventos de teclado tengan foco en esta ventana de plugin"
 
-#: plugin_ui.cc:854
+#: gtk2_ardour/plugin_ui.cc:359
+msgid "Click to enable/disable this plugin"
+msgstr "Pulse para activar/desactivar este plugin"
+
+#: gtk2_ardour/plugin_ui.cc:377
 msgid "Plugin preset %1 not found"
-msgstr ""
+msgstr "No se encontró el preset %1"
 
-#: plugin_ui.cc:864
-#, fuzzy
+#: gtk2_ardour/plugin_ui.cc:386
 msgid "Name of New Preset:"
-msgstr "Nombre para nueva coneccin:"
+msgstr "Nombre del Nuevo Preset:"
+
+#: gtk2_ardour/plugin_ui.cc:441
+msgid "Click to remove keyboard focus from this plugin window"
+msgstr "Pulse para eliminar el foco de los eventos de teclado de esta ventana"
 
-#: redirect_automation_line.cc:54
+# ¿qué es esto?
+#: gtk2_ardour/redirect_automation_line.cc:53
 msgid "redirect automation created for non-plugin"
-msgstr "automatizacin creada para un redireccionamiento no-plugin"
+msgstr "redireccionar automatización creada para un no-plugin"
 
-#: redirect_automation_time_axis.cc:94
-#, fuzzy
+#: gtk2_ardour/redirect_automation_time_axis.cc:95
 msgid "add automation event to "
-msgstr "agregar evento de automatizacin a "
+msgstr "agregar evento de automatización a "
 
-#: redirect_box.cc:223
+#: gtk2_ardour/redirect_box.cc:228
 msgid "New send"
-msgstr ""
+msgstr "Nuevo envío"
 
-#: redirect_box.cc:224
-#, fuzzy
+#: gtk2_ardour/redirect_box.cc:229
 msgid "Show send controls"
-msgstr "Control de velocidad y sentido de reproduccin(pitch)"
+msgstr "Mostrar controles del envío"
+
+#: gtk2_ardour/redirect_box.cc:421
+#: gtk2_ardour/redirect_box.cc:729
+msgid "ardour: weird plugin dialog"
+msgstr "ardour: diálogo de plugin extraño"
 
-#: redirect_box.cc:383
+#: gtk2_ardour/redirect_box.cc:428
 msgid ""
 "You attempted to add a plugin (%1).\n"
 "The plugin has %2 inputs\n"
@@ -5648,8 +7356,15 @@ msgid ""
 "This makes no sense - you are throwing away\n"
 "part of the signal."
 msgstr ""
+"Intentaste añadir un plugin (%1).\n"
+"El plugin tiene %2 entrada/s\n"
+"pero hay %3 señal/es activa/s en el\n"
+"punto de inserción.\n"
+"\n"
+"Esto no tiene sentido - estás perdiendo\n"
+"parte de la señal."
 
-#: redirect_box.cc:395
+#: gtk2_ardour/redirect_box.cc:440
 msgid ""
 "You attempted to add a plugin (%1).\n"
 "The plugin has %2 inputs\n"
@@ -5660,8 +7375,16 @@ msgid ""
 "side-chain inputs. A future version of Ardour will\n"
 "support this type of configuration."
 msgstr ""
+"Intentaste añadir un plugin (%1).\n"
+"El plugin tiene %2 entrada/s\n"
+"pero sólo hay %3 señal/es activa/s\n"
+"en el punto de inserción.\n"
+"\n"
+"Esto no tiene sentido - a menos que el plugin\n"
+"soporte entradas de sidechain. Futuras versiones\n"
+"de Ardour soportarán este tipo de configuración."
 
-#: redirect_box.cc:408
+#: gtk2_ardour/redirect_box.cc:453
 msgid ""
 "You attempted to add a plugin (%1).\n"
 "\n"
@@ -5673,1051 +7396,1001 @@ msgid ""
 "\n"
 "Ardour does not understand what to do in such situations.\n"
 msgstr ""
+"Intentaste añadir un plugin (%1).\n"
+"\n"
+"La configuración de E/S no tiene sentido:\n"
+"\n"
+"El plugin tiene %2 entrada/s y %3 salida/s.\n"
+"La pista o bus tiene %4 entrada/s y %5 salida/s.\n"
+"El punto de inserción tiene %6 señal/es activa/s.\n"
+"\n"
+"Ardour no sabe qué hacer en estas situaciones.\n"
 
-#: redirect_box.cc:495
+#: gtk2_ardour/redirect_box.cc:502
+msgid "Cannot set up new send: %1"
+msgstr "No se pudo configurar el nuevo envío: %1"
+
+#: gtk2_ardour/redirect_box.cc:561
 msgid "Pre-fader inserts, sends & plugins:"
-msgstr ""
+msgstr "Inserciones, envíos y plugins pre-atenuador:"
 
-#: redirect_box.cc:498
+#: gtk2_ardour/redirect_box.cc:564
 msgid "Post-fader inserts, sends & plugins:"
-msgstr ""
+msgstr "Inserciones, envíos y plugins post-atenuador:"
 
-#: redirect_box.cc:644
+#: gtk2_ardour/redirect_box.cc:732
 msgid ""
 "You cannot reorder this set of redirects\n"
 "in that way because the inputs and\n"
 "outputs do not work correctly."
 msgstr ""
+"No se puede reordenar este juego de conexiones\n"
+"de ese modo porque las entradas y salidas no\n"
+"fucionarán correctamente."
 
-#: redirect_box.cc:749
-#, fuzzy
+#: gtk2_ardour/redirect_box.cc:887
 msgid "rename redirect"
-msgstr "ardour: renombrar regin"
+msgstr "renombrar conexión"
 
-#: redirect_box.cc:826 redirect_box.cc:874
+#: gtk2_ardour/redirect_box.cc:963
+#: gtk2_ardour/redirect_box.cc:1012
 msgid ""
 "Copying the set of redirects on the clipboard failed,\n"
 "probably because the I/O configuration of the plugins\n"
 "could not match the configuration of this track."
 msgstr ""
+"Falló el copiado del juego de conexiones desde el\n"
+"portapapeles, probablemente debido a que la\n"
+"configuración de E/S de los plugins no concuerda\n"
+"con la configuración de esta pista."
 
-#: redirect_box.cc:896
-#, fuzzy
+#: gtk2_ardour/redirect_box.cc:1035
 msgid ""
-"Do you really want to remove all redirects from this track?\n"
+"Do you really want to remove all pre-fader redirects from this track?\n"
 "(this cannot be undone)"
 msgstr ""
-"Realmente desea quitar la pista \"%1\" ?\n"
-"(no podr�deshacer esto)"
+"¿Desea realmente eliminar todas las\n"
+"conexiones pre-atenuador de esta pista?\n"
+"(No podrá deshacer esta acción)"
 
-#: redirect_box.cc:899
-#, fuzzy
+#: gtk2_ardour/redirect_box.cc:1038
 msgid ""
-"Do you really want to remove all redirects from this bus?\n"
+"Do you really want to remove all post-fader redirects from this track?\n"
 "(this cannot be undone)"
 msgstr ""
-"Realmente desea quitar la pista \"%1\" ?\n"
-"(no podr�deshacer esto)"
+"¿Desea realmente eliminar todas las\n"
+"conexiones post-atenuador de esta pista?\n"
+"(No podrá deshacer esta acción)"
 
-#: redirect_box.cc:904
-#, fuzzy
-msgid "Yes, remove them all"
-msgstr "Si, eliminar esto."
+#: gtk2_ardour/redirect_box.cc:1043
+msgid ""
+"Do you really want to remove all pre-fader redirects from this bus?\n"
+"(this cannot be undone)"
+msgstr ""
+"¿Desea realmente eliminar todas las\n"
+"conexiones pre-atenuador de este bus?\n"
+"(No podrá deshacer esta acción)"
 
-#: redirect_box.cc:940
-#, fuzzy
-msgid "ardour: %1"
-msgstr "ardour: reloj"
+#: gtk2_ardour/redirect_box.cc:1046
+msgid ""
+"Do you really want to remove all post-fader redirects from this bus?\n"
+"(this cannot be undone)"
+msgstr ""
+"¿Desea realmente eliminar todas las\n"
+"conexiones post-atenuador de este bus?\n"
+"(No podrá deshacer esta acción)"
 
-#: redirect_box.cc:982
-#, fuzzy
-msgid "ardour: %1: %2 (by %3)"
-msgstr "ardour: regin"
+#: gtk2_ardour/redirect_box.cc:1052
+msgid "Yes, remove them all"
+msgstr "Sí, eliminarlas todas."
 
-#. new stuff
-#: redirect_box.cc:1054
-msgid "New Plugin ..."
-msgstr ""
+#: gtk2_ardour/redirect_box.cc:1199
+msgid "New Plugin"
+msgstr "Nuevo plugin"
 
-#: redirect_box.cc:1055
-#, fuzzy
+#: gtk2_ardour/redirect_box.cc:1201
 msgid "New Insert"
-msgstr "nueva entrada"
+msgstr "Nueva inserción"
 
-#: redirect_box.cc:1056
+#: gtk2_ardour/redirect_box.cc:1203
 msgid "New Send ..."
-msgstr ""
+msgstr "Nuevo envío..."
 
-#: redirect_box.cc:1068
-#, fuzzy
-msgid "Deselect All"
-msgstr "Seleccionar todo"
-
-#: redirect_box.cc:1075
-#, fuzzy
+#: gtk2_ardour/redirect_box.cc:1228
 msgid "Activate all"
-msgstr "Activar"
+msgstr "Activar todos"
 
-#: redirect_box.cc:1076
-#, fuzzy
+#: gtk2_ardour/redirect_box.cc:1229
 msgid "Deactivate all"
-msgstr "Desactivar"
+msgstr "Desactivar todos"
 
-#: region_editor.cc:45
-msgid "NAME:"
-msgstr "NOMBRE:"
+#: gtk2_ardour/redirect_box.cc:1422
+msgid "%1: %2 (by %3)"
+msgstr "%1: %2 (a %3)"
 
-#: region_editor.cc:46
-msgid "lock"
-msgstr "bloquear"
+#: gtk2_ardour/rhythm_ferret.cc:31
+msgid "Percussive Onset"
+msgstr "Inicios de percusión"
 
-#: region_editor.cc:48
-msgid "opaque"
-msgstr "opaco"
+#: gtk2_ardour/rhythm_ferret.cc:32
+msgid "Note Onset"
+msgstr "Inicios de notas"
 
-#: region_editor.cc:49 region_editor.cc:192 region_editor.cc:226
-msgid "active"
-msgstr "activo"
+#: gtk2_ardour/rhythm_ferret.cc:37
+msgid "Energy Based"
+msgstr "Basado en Energía"
 
-#: region_editor.cc:50
-msgid "visible"
-msgstr "visible"
+#: gtk2_ardour/rhythm_ferret.cc:38
+msgid "Spectral Difference"
+msgstr "Diferencia espectral"
 
-#: region_editor.cc:53
-msgid "Layer"
-msgstr "Capa"
+#: gtk2_ardour/rhythm_ferret.cc:39
+msgid "High-Frequency Content"
+msgstr "Contenido de Frecuencias Altas"
 
-#: region_editor.cc:54
-msgid "play"
-msgstr "reproducir"
+#: gtk2_ardour/rhythm_ferret.cc:40
+msgid "Complex Domain"
+msgstr "Dominio complejo"
 
-#: region_editor.cc:61
-msgid "ENVELOPE"
-msgstr "ENVELOPE"
+#: gtk2_ardour/rhythm_ferret.cc:41
+msgid "Phase Deviation"
+msgstr "Desviación de fase"
 
-#: region_editor.cc:107
-msgid "mute this region"
-msgstr "enmudecer a esta regin"
+#: gtk2_ardour/rhythm_ferret.cc:42
+msgid "Kullback-Liebler"
+msgstr "Kullback-Liebler"
 
-#: region_editor.cc:108
-msgid "regions underneath this one cannot be heard"
-msgstr "no se oir� a las regiones que est� bajo �ta"
+#: gtk2_ardour/rhythm_ferret.cc:43
+msgid "Modified Kullback-Liebler"
+msgstr "Kullback-Liebler modificado"
 
-#: region_editor.cc:109
-msgid "prevent any changes to this region"
-msgstr "bloquear contra cambios a esta regin"
+#: gtk2_ardour/rhythm_ferret.cc:50
+msgid "Operation"
+msgstr "Operación"
 
-#: region_editor.cc:110
-msgid "use the gain envelope during playback"
-msgstr "usar envelope de volumen durante la reproduccin"
+#: gtk2_ardour/rhythm_ferret.cc:51
+msgid "Selection"
+msgstr "Selección"
 
-#: region_editor.cc:111
-msgid "show the gain envelope"
-msgstr "mostrar envelope de volumen"
+#: gtk2_ardour/rhythm_ferret.cc:52
+msgid "Analysis"
+msgstr "Análisis"
 
-#: region_editor.cc:112
-msgid "use fade in curve during playback"
-msgstr "usar fade-in durante reproduccin"
+#: gtk2_ardour/rhythm_ferret.cc:55
+msgid "Set Tempo Map"
+msgstr "Definir mapa de tempo"
 
-#: region_editor.cc:113
-msgid "use fade out curve during playback"
-msgstr "usar fade-out durante reproduccin"
+# es una opción en rhythm ferret, no estoy seguro qué hace...
+#: gtk2_ardour/rhythm_ferret.cc:56
+msgid "Conform Region"
+msgstr "Conformar región"
 
-#: region_editor.cc:114
-msgid "audition this region"
-msgstr "audicionar esta regin"
+#: gtk2_ardour/rhythm_ferret.cc:57
+msgid "Mode"
+msgstr "Modo"
 
-#: region_editor.cc:147
-msgid "START:"
-msgstr "INICIO"
+#: gtk2_ardour/rhythm_ferret.cc:60
+msgid "Threshold"
+msgstr "Umbral"
 
-#: region_editor.cc:149
-msgid "END:"
-msgstr "FINAL:"
+#: gtk2_ardour/rhythm_ferret.cc:63
+msgid "Sensitivity"
+msgstr "Sensibilidad"
 
-#: region_editor.cc:151
-msgid "LENGTH:"
-msgstr "DURACI�:"
+#: gtk2_ardour/rhythm_ferret.cc:64
+msgid "Analyze"
+msgstr "Analizar"
 
-#: region_editor.cc:191
-msgid "FADE IN"
-msgstr "FADE IN"
+#: gtk2_ardour/rhythm_ferret.cc:65
+msgid "Detection function"
+msgstr "Función de detección"
 
-#: region_editor.cc:193 region_editor.cc:227
-msgid "msecs"
-msgstr "milisecs."
+#: gtk2_ardour/rhythm_ferret.cc:68
+msgid "Peak Threshold"
+msgstr "Umbral de pico"
 
-#: region_editor.cc:225
-msgid "FADE OUT"
-msgstr "FADE OUT"
+#: gtk2_ardour/rhythm_ferret.cc:71
+msgid "Silent Threshold (dB)"
+msgstr "Umbral de silencio (dB)"
 
-#: region_editor.cc:265
-msgid "ardour: region "
-msgstr "ardour: regin"
+#: gtk2_ardour/rhythm_ferret.cc:74
+msgid "Trigger gap (msecs)"
+msgstr "Intervalo entre disparos (mseg)"
 
-#: region_editor.cc:402
-msgid "fade in edit"
-msgstr "editar fade in"
+#: gtk2_ardour/rhythm_ferret.cc:316
+#: gtk2_ardour/sfdb_ui.cc:1359
+msgid "programming error: %1 (%2)"
+msgstr "error de programación: %1 (%2)"
 
-#: region_editor.cc:414
-#, fuzzy
-msgid "fade out edit"
-msgstr "agregar salida"
+#: gtk2_ardour/rhythm_ferret.cc:394
+msgid "split regions (rhythm ferret)"
+msgstr "separar regiones (rhythm ferret)"
 
-#: regionview.cc:1146
-#, fuzzy
-msgid "add gain control point"
-msgstr "Remover punto de sincron�"
-
-#: route_params_ui.cc:89
+#: gtk2_ardour/route_params_ui.cc:85
 msgid "Tracks/Buses"
 msgstr "Pistas/Buses"
 
-#: route_params_ui.cc:109
-#, fuzzy
+#: gtk2_ardour/route_params_ui.cc:105
 msgid "Pre-fader Redirects"
-msgstr "Pre Redireccionamentos"
+msgstr "Conexiones pre-atenuador"
 
-#: route_params_ui.cc:110
-#, fuzzy
+#: gtk2_ardour/route_params_ui.cc:106
 msgid "Post-fader Redirects"
-msgstr "Pst Redireccionamentos"
-
-#: route_params_ui.cc:144
-#, fuzzy
-msgid "ardour: track/bus inspector"
-msgstr "ardour: agregar Pistas/bus"
+msgstr "Conexiones post-atenuador"
 
-#: route_params_ui.cc:145
-msgid "ardour_route_parameters"
-msgstr "ardour_route_parameters"
-
-#: route_params_ui.cc:202
+#: gtk2_ardour/route_params_ui.cc:205
 msgid "route display list item for renamed route not found!"
 msgstr ""
 
-#: route_params_ui.cc:453
+#: gtk2_ardour/route_params_ui.cc:455
 msgid "NO TRACK"
 msgstr "NINGUNA PISTA"
 
-#: route_params_ui.cc:695
-#, fuzzy
-msgid "ardour: track/bus inspector: "
-msgstr "ardour: agregar Pistas/bus"
-
-#: route_params_ui.cc:699
+#: gtk2_ardour/route_params_ui.cc:685
+#: gtk2_ardour/route_params_ui.cc:686
 msgid "No Route Selected"
-msgstr "No seleccion ninguna Ruta"
-
-#: route_params_ui.cc:700
-#, fuzzy
-msgid "ardour: track/bus/inspector: no route selected"
-msgstr "ardour: par�etros de ruteo: no seleccion ninguna ruta"
-
-#. ctrl-shift-click applies change to all routes
-#: route_ui.cc:134
-#, fuzzy
-msgid "mute change"
-msgstr "Seleccionar intervalo de punch"
-
-#. ctrl-shift-click applies change to all routes
-#. ctrl-alt-click: exclusively solo this track, not a toggle */
-#: route_ui.cc:209 route_ui.cc:219
-#, fuzzy
-msgid "solo change"
-msgstr "rango de reproduccin cont�ua"
-
-#: route_ui.cc:282
-msgid "rec-enable change"
-msgstr ""
-
-#: route_ui.cc:479
-#, fuzzy
-msgid "Solo-safe"
-msgstr "Solo"
-
-#: route_ui.cc:487 route_ui.cc:530
-#, fuzzy
-msgid "MIDI Bind"
-msgstr "MIDI"
-
-#: route_ui.cc:501
-msgid "Pre Fader"
-msgstr "Pre-Fader"
-
-#: route_ui.cc:508
-msgid "Post Fader"
-msgstr "Pst-Fader"
+msgstr "No se seleccionó ninguna Ruta"
 
-#: route_ui.cc:515
-msgid "Control Outs"
-msgstr "Control de Salidas"
-
-#: route_ui.cc:522
-msgid "Main Outs"
-msgstr "Salidas Principales"
-
-#: route_ui.cc:559
-msgid "mix group solo  change"
-msgstr ""
-
-#: route_ui.cc:593
-msgid "mix group mute change"
+#: gtk2_ardour/route_time_axis.cc:99
+msgid "m"
 msgstr ""
 
-#: route_ui.cc:609
-msgid "mix group rec-enable change"
+#: gtk2_ardour/route_time_axis.cc:99
+msgid "s"
 msgstr ""
 
-#: route_ui.cc:626 visual_time_axis.cc:237
-msgid "ardour: color selection"
-msgstr "ardour: seleccin de color"
-
-#: route_ui.cc:702
-#, fuzzy
-msgid ""
-"Do you really want to remove track \"%1\" ?\n"
-"\n"
-"You may also lose the playlist used by this track.\n"
-"(cannot be undone)"
+#: gtk2_ardour/route_time_axis.cc:99
+msgid "r"
 msgstr ""
-"Realmente desea quitar la pista \"%1\" ?\n"
-"(no podr�deshacer esto)"
 
-#: route_ui.cc:704
-msgid ""
-"Do you really want to remove bus \"%1\" ?\n"
-"(cannot be undone)"
+#: gtk2_ardour/route_time_axis.cc:103
+msgid "g"
 msgstr ""
-"Realmente desea quitar el  bus \"%1\" ?\n"
-"(no podr�deshacer esto)"
-
-#: route_ui.cc:708 visual_time_axis.cc:279
-msgid "Yes, remove it."
-msgstr "Si, eliminar esto."
-
-#: route_ui.cc:737
-#, fuzzy
-msgid "New Name: "
-msgstr "nuevo nombre: "
-
-#: sfdb_ui.cc:58
-msgid "Add Field..."
-msgstr "Agregar Campo..."
-
-#: sfdb_ui.cc:59
-msgid "Remove Field"
-msgstr "Quitar Campo"
-
-#: sfdb_ui.cc:62
-msgid "Soundfile Info"
-msgstr "Informacin de archivo"
-
-#: sfdb_ui.cc:80
-msgid "Field"
-msgstr "Campo"
-
-#: sfdb_ui.cc:81
-msgid "Value"
-msgstr "Valor"
-
-#: sfdb_ui.cc:161
-#, fuzzy
-msgid "channels"
-msgstr "cancelar"
 
-#: sfdb_ui.cc:161
-#, fuzzy
-msgid "samplerate"
-msgstr "Separar Regin"
-
-#: sfdb_ui.cc:162
-#, fuzzy
-msgid "resolution"
-msgstr "Reproducir seleccin"
-
-#: sfdb_ui.cc:162
-#, fuzzy
-msgid "format"
-msgstr "Normal"
-
-#: sfdb_ui.cc:183
-#, fuzzy
-msgid "Could not read file: %1 (%2)."
-msgstr "No se pudo abrir el archivo \"%1\" (%2)"
-
-#: sfdb_ui.cc:199
-msgid "Could not access soundfile: "
-msgstr "No se pudo acceder a archivo de audio"
-
-#: sfdb_ui.cc:236
-#, fuzzy
-msgid "Name for Field"
-msgstr "Nombre para regin:"
-
-#: sfdb_ui.cc:335
-msgid "Split Channels"
-msgstr "Separar canales"
-
-#: sfdb_ui.cc:342
-msgid "Create a region for each channel"
+#: gtk2_ardour/route_time_axis.cc:104
+msgid "p"
 msgstr ""
 
-#: sfdb_ui.cc:344
-msgid "Embed"
+#: gtk2_ardour/route_time_axis.cc:105
+#: gtk2_ardour/visual_time_axis.cc:73
+msgid "h"
 msgstr ""
 
-#: sfdb_ui.cc:346
-#, fuzzy
-msgid "Link to an external file"
-msgstr "Insertar archivo de audio externo"
-
-#: sfdb_ui.cc:348
-msgid "Import"
-msgstr "Importar"
-
-#: sfdb_ui.cc:350
-msgid "Copy a file to the session folder"
+#: gtk2_ardour/route_time_axis.cc:106
+msgid "a"
 msgstr ""
 
-#: sfdb_ui.cc:414
-msgid "programming error: %1"
+#: gtk2_ardour/route_time_axis.cc:107
+#: gtk2_ardour/visual_time_axis.cc:72
+msgid "v"
 msgstr ""
 
-#: tempo_dialog.cc:18 tempo_dialog.cc:35
-msgid "Beats per minute"
-msgstr "Pulsos por minuto"
-
-#: tempo_dialog.cc:21 tempo_dialog.cc:38 tempo_dialog.cc:203
-#: tempo_dialog.cc:221
-msgid "Bar"
-msgstr "Comp�"
-
-#: tempo_dialog.cc:22 tempo_dialog.cc:39 tempo_dialog.cc:204
-#: tempo_dialog.cc:222
-msgid "Beat"
-msgstr "Pulsos"
-
-#: tempo_dialog.cc:24 tempo_dialog.cc:41 tempo_dialog.cc:205
-#: tempo_dialog.cc:223
-msgid "Location"
-msgstr "Localizacin"
-
-#: tempo_dialog.cc:199 tempo_dialog.cc:217
-msgid "Meter denominator"
-msgstr "Denominador m�rico"
-
-#: tempo_dialog.cc:200 tempo_dialog.cc:218
-msgid "Beats per bar"
-msgstr "Pulsos por compaces"
-
-#: tempo_dialog.cc:236 tempo_dialog.cc:247
-msgid "whole (1)"
-msgstr "toda (1)"
-
-#: tempo_dialog.cc:237 tempo_dialog.cc:249
-msgid "second (2)"
-msgstr "segunda (2)"
-
-#: tempo_dialog.cc:238 tempo_dialog.cc:251
-msgid "third (3)"
-msgstr "tercera (3)"
-
-#: tempo_dialog.cc:239 tempo_dialog.cc:253 tempo_dialog.cc:261
-msgid "quarter (4)"
-msgstr "cuarta (4)"
-
-#: tempo_dialog.cc:240 tempo_dialog.cc:255
-msgid "eighth (8)"
-msgstr "octava (8)"
-
-#: tempo_dialog.cc:241 tempo_dialog.cc:257
-msgid "sixteenth (16)"
-msgstr "d�ima sexta (16)"
-
-#: tempo_dialog.cc:242 tempo_dialog.cc:259
-msgid "thirty-second (32)"
-msgstr "trig�ima segunda (32)"
+#: gtk2_ardour/route_time_axis.cc:190
+msgid "Edit Group"
+msgstr "Editar Grupo"
 
-#: tempo_dialog.cc:420
-msgid "garbaged note type entry (%1)"
-msgstr "se descart el texto (%1)"
+#: gtk2_ardour/route_time_axis.cc:191
+#: gtk2_ardour/visual_time_axis.cc:91
+msgid "Display Height"
+msgstr "Altura de visor"
 
-#: tempo_dialog.cc:430
-msgid "incomprehensible note type entry (%1)"
-msgstr "El formato de este texto es incomprensible(%1)"
+#: gtk2_ardour/route_time_axis.cc:192
+msgid "Playlist"
+msgstr "Lista de Reproducción"
 
-#: time_axis_view.cc:112
-msgid "gTortnam"
-msgstr "gTortnam"
+#: gtk2_ardour/route_time_axis.cc:193
+#: gtk2_ardour/route_time_axis.cc:457
+msgid "Automation"
+msgstr "Automatización"
 
-#: time_axis_view.cc:549
-msgid "Largest"
-msgstr "Enorme"
+#: gtk2_ardour/route_time_axis.cc:194
+#: gtk2_ardour/visual_time_axis.cc:92
+msgid "Visual options"
+msgstr "Opciones visuales"
 
-#: time_axis_view.cc:550
-msgid "Large"
-msgstr "Grande"
+#: gtk2_ardour/route_time_axis.cc:195
+#: gtk2_ardour/visual_time_axis.cc:93
+msgid "Hide this track"
+msgstr "Ocultar esta pista"
 
-#: time_axis_view.cc:551
-msgid "Larger"
-msgstr "Mayor"
+#: gtk2_ardour/route_time_axis.cc:418
+msgid "Show all automation"
+msgstr "Mostrar toda automatización"
 
-#: time_axis_view.cc:553
-msgid "Smaller"
-msgstr "Menor"
+#: gtk2_ardour/route_time_axis.cc:421
+msgid "Show existing automation"
+msgstr "Mostrar toda automatización existente"
 
-#: time_axis_view.cc:554
-msgid "Small"
-msgstr "Chico"
+#: gtk2_ardour/route_time_axis.cc:424
+msgid "Hide all automation"
+msgstr "Ocultar toda automatización"
 
-#: time_axis_view.cc:870
-msgid "unknown track height name \"%1\" in XML GUI information"
-msgstr ""
+#: gtk2_ardour/route_time_axis.cc:427
+msgid "Plugins"
+msgstr "Plugins"
 
-#. first constructed item sets up font info
-#: time_axis_view_item.cc:79
-msgid "TimeAxisViewItemName"
-msgstr ""
+#: gtk2_ardour/route_time_axis.cc:473
+msgid "Align with existing material"
+msgstr "Alinear con el material existente"
 
-#: time_axis_view_item.cc:298
-msgid "new duration %1 frames is out of bounds for %2"
-msgstr ""
+#: gtk2_ardour/route_time_axis.cc:479
+msgid "Align with capture time"
+msgstr "Alinear con tiempo de captura"
 
-#: time_selection.cc:41
-msgid "programming error: request for non-existent audio range (%1)!"
-msgstr ""
+#: gtk2_ardour/route_time_axis.cc:486
+msgid "Alignment"
+msgstr "Alineación"
 
-#: utils.cc:107 utils.cc:150
-msgid "bad XPM header %1"
-msgstr ""
+#: gtk2_ardour/route_time_axis.cc:490
+msgid "Normal mode"
+msgstr "Modo Normal"
 
-#: utils.cc:332
-msgid "missing RGBA style for \"%1\""
-msgstr ""
+#: gtk2_ardour/route_time_axis.cc:493
+msgid "Tape mode"
+msgstr "Modo de Cinta"
 
-#: visual_time_axis.cc:276
-msgid ""
-"Do you really want to remove track \"%1\" ?\n"
-"(cannot be undone)"
-msgstr ""
-"Realmente desea quitar la pista \"%1\" ?\n"
-"(no podr�deshacer esto)"
+#: gtk2_ardour/route_time_axis.cc:883
+msgid "Name for playlist"
+msgstr "Nombre para Lista de Reproducción"
 
-#: visual_time_axis.cc:325
-msgid "new name: "
-msgstr "nuevo nombre: "
+#: gtk2_ardour/route_time_axis.cc:966
+#: gtk2_ardour/route_time_axis.cc:1016
+msgid "Name for Playlist"
+msgstr "Nombre para Lista de Reproducción"
 
-#: visual_time_axis.cc:336
+#: gtk2_ardour/route_time_axis.cc:1219
+#: gtk2_ardour/visual_time_axis.cc:326
+#: gtk2_ardour/visual_time_axis.cc:373
 msgid "A track already exists with that name"
 msgstr "Ya existe una pista con este nombre"
 
-#, fuzzy
-#~ msgid "set selected trackview"
-#~ msgstr "Insertar seleccin"
-
-#, fuzzy
-#~ msgid "set selected control point"
-#~ msgstr "Remover punto de sincron�"
-
-#, fuzzy
-#~ msgid "set selected regionview"
-#~ msgstr "Reproducir regin seleccionada cont�uamente"
-
-#~ msgid "Start a new session\n"
-#~ msgstr "Iniciar una nueva sesin\n"
-
-#~ msgid "via Session menu"
-#~ msgstr "via men de Sesin"
-
-#, fuzzy
-#~ msgid "<b>Advanced</b>"
-#~ msgstr "Avanzado..."
-
-#, fuzzy
-#~ msgid "Select a File"
-#~ msgstr "Seleccionar todo"
-
-#, fuzzy
-#~ msgid "Track/Bus connection options"
-#~ msgstr "Pistas/Buses"
-
-#~ msgid "RECORD"
-#~ msgstr "GRABAR"
-
-#~ msgid "INPUT"
-#~ msgstr "ENTRADA"
-
-#~ msgid "OUTPUT"
-#~ msgstr "SALIDA"
-
-#, fuzzy
-#~ msgid "Gain automation mode"
-#~ msgstr "modo de automatizacin de volumen"
-
-#, fuzzy
-#~ msgid "Gain automation type"
-#~ msgstr "estado de automatizacin de volumen"
-
-#, fuzzy
-#~ msgid "trim"
-#~ msgstr "cortar"
-
-#, fuzzy
-#~ msgid "gain automation mode"
-#~ msgstr "modo de automatizacin de volumen"
-
-#, fuzzy
-#~ msgid "gain automation state"
-#~ msgstr "estado de automatizacin de volumen"
-
-#, fuzzy
-#~ msgid "pan automation state"
-#~ msgstr "estado de automatizacin de balance"
-
-#~ msgid "OUT"
-#~ msgstr "SALIDA"
-
-#~ msgid "no group"
-#~ msgstr "sin grupo"
-
-#, fuzzy
-#~ msgid "normal"
-#~ msgstr "Normal"
-
-#~ msgid "Disk r:%5.1f w:%5.1f MB/s"
-#~ msgstr "Disco r:%5.1f w:%5.1f MB/s"
-
-#, fuzzy
-#~ msgid "ardour cleanup"
-#~ msgstr "ardour: limpiar"
-
-#~ msgid "close session"
-#~ msgstr "cerrar sesin"
-
-#, fuzzy
-#~ msgid "SetRegionLayerMode"
-#~ msgstr "Fines de regin"
-
-#, fuzzy
-#~ msgid "SetCrossfadeModel"
-#~ msgstr "editar fade in"
-
-#, fuzzy
-#~ msgid "Play from"
-#~ msgstr "Reproducir desde"
-
-#, fuzzy
-#~ msgid "Set from range"
-#~ msgstr "selecionar intervalo de reproduccin cont�ua"
-
-#~ msgid "FORMAT"
-#~ msgstr "FORMATO"
-
-#, fuzzy
-#~ msgid "CD MARKER FILE TYPE"
-#~ msgstr "TIPO DE ARCHIVO"
-
-#~ msgid "CHANNELS"
-#~ msgstr "CANALES"
-
-#~ msgid "FILE TYPE"
-#~ msgstr "TIPO DE ARCHIVO"
-
-#~ msgid "SAMPLE FORMAT"
-#~ msgstr "FORMATO"
-
-#~ msgid "SAMPLE ENDIANNESS"
-#~ msgstr "TIPO DE ENDIAN"
-
-#~ msgid "SAMPLE RATE"
-#~ msgstr "FRECUENCIA DE MUESTREO"
-
-#~ msgid "CONVERSION QUALITY"
-#~ msgstr "CALIDAD DE CONVERSI�"
-
-#~ msgid "DITHER TYPE"
-#~ msgstr "TIPO DE DITHER"
-
-#, fuzzy
-#~ msgid "EXPORT CD MARKER FILE ONLY"
-#~ msgstr "TIPO DE ARCHIVO"
+#: gtk2_ardour/route_time_axis.cc:1409
+msgid "New Copy"
+msgstr "Nueva Copia"
 
-#~ msgid "EXPORT TO FILE"
-#~ msgstr "EXPORTAR A ARCHIVO"
+#: gtk2_ardour/route_time_axis.cc:1413
+msgid "New Take"
+msgstr "Nueva Toma"
 
-#, fuzzy
-#~ msgid "ardour: unplugged"
-#~ msgstr "ardour: desconectado"
+#: gtk2_ardour/route_time_axis.cc:1414
+msgid "Copy Take"
+msgstr "Copiar Toma"
 
-#~ msgid "To be added"
-#~ msgstr "Plugins que se agregar�"
+#: gtk2_ardour/route_time_axis.cc:1419
+msgid "Clear Current"
+msgstr "Borrar actual"
 
-#~ msgid "Update"
-#~ msgstr "Actualizar"
+#: gtk2_ardour/route_time_axis.cc:1422
+msgid "Select from all ..."
+msgstr "Seleccione de todos..."
 
-#, fuzzy
-#~ msgid "save"
-#~ msgstr "Guardar"
+#: gtk2_ardour/route_ui.cc:89
+msgid "Mute this track"
+msgstr "Enmudecer esta pista"
 
-#~ msgid "bypass"
-#~ msgstr "no procesar"
+#: gtk2_ardour/route_ui.cc:94
+msgid "Mute other (non-soloed) tracks"
+msgstr "Enmudecer resto de pistas (que no estén en solo)"
 
-#~ msgid "Name for plugin settings:"
-#~ msgstr "Nombre para configuracin de plugin"
+#: gtk2_ardour/route_ui.cc:99
+msgid "Enable recording on this track"
+msgstr "Habilitar la grabación en esta pista"
 
-#~ msgid "Authors"
-#~ msgstr "Autores"
+#: gtk2_ardour/route_ui.cc:246
+msgid "mute change"
+msgstr "cambiar mudo"
 
-#, fuzzy
-#~ msgid "Sprung"
-#~ msgstr "Salto"
+#: gtk2_ardour/route_ui.cc:348
+#: gtk2_ardour/route_ui.cc:363
+msgid "solo change"
+msgstr "cambiar solo"
 
-#~ msgid "Wheel"
-#~ msgstr "Rueda"
+#: gtk2_ardour/route_ui.cc:443
+msgid "Not connected to JACK - cannot engage record"
+msgstr "No está conectado a JACK - no se puede activar la grabación"
 
-#~ msgid "rescan"
-#~ msgstr "buscar de nuevo"
+#: gtk2_ardour/route_ui.cc:457
+msgid "rec-enable change"
+msgstr "cambiar habilitación de grabación"
 
-#~ msgid "UI: cannot setup meter_bridge"
-#~ msgstr "no se pudo iniciar el medidor volum�rico (VU)"
+#: gtk2_ardour/route_ui.cc:696
+msgid "Solo-safe"
+msgstr "Seguro Solo"
 
-#, fuzzy
-#~ msgid "Enable/Disable follow playhead"
-#~ msgstr "Habilitar/desbilitar reproduccin cont�ua"
+#: gtk2_ardour/route_ui.cc:718
+msgid "Pre Fader"
+msgstr "Pre-Atenuador"
 
-#~ msgid "Select sprung or wheel behaviour"
-#~ msgstr "Modo Salto(cambio constante) o Rueda deslizante(cambio moment�eo)"
+#: gtk2_ardour/route_ui.cc:725
+msgid "Post Fader"
+msgstr "Post-Atenuador"
 
-#~ msgid "Image Compositor"
-#~ msgstr "Compositor de imagen"
+#: gtk2_ardour/route_ui.cc:732
+msgid "Control Outs"
+msgstr "Salidas de Control"
 
-#~ msgid "Audio Library"
-#~ msgstr "Biblioteca de Audio"
+#: gtk2_ardour/route_ui.cc:739
+msgid "Main Outs"
+msgstr "Salidas Principales"
 
-#~ msgid "Meter Bridge"
-#~ msgstr "V�ETRO"
+#: gtk2_ardour/route_ui.cc:776
+msgid "mix group solo  change"
+msgstr "cambiar solo en grupo de mezcla"
 
-#~ msgid "Input Connections"
-#~ msgstr "Conecciones de entrada"
+#: gtk2_ardour/route_ui.cc:815
+msgid "mix group mute change"
+msgstr "cambiar mudo en grupo de mezcla"
 
-#~ msgid "Output Connections"
-#~ msgstr "Conecciones de salida"
+#: gtk2_ardour/route_ui.cc:832
+msgid "mix group rec-enable change"
+msgstr "cambiar habilitación de grabación en grupo de mezcla"
 
-#, fuzzy
-#~ msgid "New Input"
-#~ msgstr "nueva entrada"
+#: gtk2_ardour/route_ui.cc:850
+#: gtk2_ardour/visual_time_axis.cc:227
+msgid "ardour: color selection"
+msgstr "ardour: selección de color"
 
-#, fuzzy
-#~ msgid "New Output"
-#~ msgstr "nueva salida"
+#: gtk2_ardour/route_ui.cc:926
+msgid ""
+"Do you really want to remove track \"%1\" ?\n"
+"\n"
+"You may also lose the playlist used by this track.\n"
+"(cannot be undone)"
+msgstr ""
+"¿Realmente desea quitar la pista \"%1\" ?\n"
+"\n"
+"Puede que también pierda la Lista de Reproducción\n"
+"usada por esta pista.\n"
+"(no podrá deshacer esta acción)"
 
-#, fuzzy
-#~ msgid "Add Port"
-#~ msgstr "agregar puerto"
+#: gtk2_ardour/route_ui.cc:928
+msgid ""
+"Do you really want to remove bus \"%1\" ?\n"
+"(cannot be undone)"
+msgstr ""
+"¿Realmente desea quitar el  bus \"%1\" ?\n"
+"(no podrá deshacer esta acción)"
 
-#~ msgid "Available Ports"
-#~ msgstr "Puertos Disponibles"
+#: gtk2_ardour/route_ui.cc:953
+msgid "New Name: "
+msgstr "Nuevo Nombre: "
 
-#~ msgid "ardour: connections"
-#~ msgstr "ardour: conecciones"
+#: gtk2_ardour/route_ui.cc:1185
+msgid "Cannot create route template directory %1"
+msgstr ""
 
-#~ msgid "in %d"
-#~ msgstr "em %d"
+#: gtk2_ardour/route_ui.cc:1191
+msgid "Template name:"
+msgstr "Nombre de Plantilla :"
 
-#, fuzzy
-#~ msgid "crossfade editor"
-#~ msgstr "editar fade in"
+#: gtk2_ardour/sfdb_ui.cc:77
+#: gtk2_ardour/sfdb_ui.cc:97
+#: gtk2_ardour/sfdb_ui.cc:106
+msgid "as new tracks"
+msgstr "como nuevas pistas"
 
-#~ msgid "Regions/name"
-#~ msgstr "Regiones/nombre"
+#: gtk2_ardour/sfdb_ui.cc:79
+#: gtk2_ardour/sfdb_ui.cc:99
+msgid "to selected tracks"
+msgstr "a las pistas seleccionadas"
 
-#, fuzzy
-#~ msgid "Invert"
-#~ msgstr "Invertir"
+#: gtk2_ardour/sfdb_ui.cc:81
+#: gtk2_ardour/sfdb_ui.cc:101
+msgid "to region list"
+msgstr "a Lista de Regiones"
 
-#~ msgid "Edit:"
-#~ msgstr "Editar:"
+#: gtk2_ardour/sfdb_ui.cc:83
+#: gtk2_ardour/sfdb_ui.cc:103
+msgid "as new tape tracks"
+msgstr "como pistas de cinta"
 
-#~ msgid "Embed audio (link)"
-#~ msgstr "Linquear a a archivo"
+#: gtk2_ardour/sfdb_ui.cc:87
+msgid "programming error: unknown import mode string %1"
+msgstr ""
 
-#, fuzzy
-#~ msgid "Cancel cleanup"
-#~ msgstr "Limpiar"
+#: gtk2_ardour/sfdb_ui.cc:115
+msgid "Auto-play"
+msgstr ""
+"Auto\n"
+"Play"
+
+#: gtk2_ardour/sfdb_ui.cc:124
+#: gtk2_ardour/sfdb_ui.cc:234
+msgid "<b>Soundfile Info</b>"
+msgstr "<b>Información del archivo</b>"
+
+#: gtk2_ardour/sfdb_ui.cc:135
+msgid "Length:"
+msgstr "Duración:"
+
+#: gtk2_ardour/sfdb_ui.cc:136
+msgid "Timestamp:"
+msgstr "Marca temporal:"
+
+#: gtk2_ardour/sfdb_ui.cc:137
+msgid "Format:"
+msgstr "Formato:"
+
+#: gtk2_ardour/sfdb_ui.cc:138
+msgid "Channels:"
+msgstr "Canales:"
+
+#: gtk2_ardour/sfdb_ui.cc:139
+#: gtk2_ardour/sfdb_ui.cc:254
+#: gtk2_ardour/sfdb_ui.cc:259
+msgid "Sample rate:"
+msgstr "Frec. de muestreo:"
+
+#: gtk2_ardour/sfdb_ui.cc:171
+#: gtk2_ardour/sfdb_ui.cc:490
+msgid "Tags:"
+msgstr "Etiquetas:"
+
+#: gtk2_ardour/sfdb_ui.cc:181
+msgid "Play (double click)"
+msgstr "Play"
+
+#: gtk2_ardour/sfdb_ui.cc:235
+#: gtk2_ardour/sfdb_ui.cc:236
+#: gtk2_ardour/sfdb_ui.cc:237
+msgid "n/a"
+msgstr "no disponible"
+
+#: gtk2_ardour/sfdb_ui.cc:314
+msgid "Could not read file: %1 (%2)."
+msgstr "No se pudo abrir el archivo %1 (%2)."
 
-#~ msgid "Name for new edit group"
-#~ msgstr "Nombre para nuevo grupo de edicin"
+#: gtk2_ardour/sfdb_ui.cc:334
+msgid "Could not access soundfile: "
+msgstr "No se pudo acceder al archivo de audio: "
 
-#, fuzzy
-#~ msgid "Import selected as tracks"
-#~ msgstr "Importar seleccin"
+#: gtk2_ardour/sfdb_ui.cc:380
+msgid "SoundFileBox: Could not tokenize string: "
+msgstr ""
 
-#~ msgid "ardour: audio import in progress"
-#~ msgstr "ardour: importando archivo de audio"
+#: gtk2_ardour/sfdb_ui.cc:400
+msgid "Search"
+msgstr "Buscar"
 
-#, fuzzy
-#~ msgid "You can't embed an audiofile until you have a session loaded."
-#~ msgstr "No puede linquear a un archivo a menos que abra o cree una sesin"
+#: gtk2_ardour/sfdb_ui.cc:402
+#: gtk2_ardour/sfdb_ui.cc:792
+msgid "Start Downloading"
+msgstr "Iniciar descarga"
 
-#, fuzzy
-#~ msgid "Insert selected as new tracks"
-#~ msgstr "Insertar seleccin"
+#: gtk2_ardour/sfdb_ui.cc:417
+msgid "Audio files"
+msgstr "Archivos de audio"
 
-#~ msgid "Insert selected"
-#~ msgstr "Insertar seleccin"
+#: gtk2_ardour/sfdb_ui.cc:420
+msgid "All files"
+msgstr "Todos los archivos"
 
-#, fuzzy
-#~ msgid "hidden"
-#~ msgstr "Oculto"
+#: gtk2_ardour/sfdb_ui.cc:431
+msgid "Browse Files"
+msgstr "Explorar archivos"
 
-#~ msgid "Sorting"
-#~ msgstr "Orden"
+#: gtk2_ardour/sfdb_ui.cc:458
+#: gtk2_ardour/sfdb_ui.cc:505
+msgid "Paths"
+msgstr "Rutas"
 
-#~ msgid "Regions/length"
-#~ msgstr "Regiones/tamao"
+#: gtk2_ardour/sfdb_ui.cc:467
+msgid "Search Tags"
+msgstr "Buscar etiquetas"
 
-#~ msgid "Regions/start"
-#~ msgstr "Regiones/in�io"
+#: gtk2_ardour/sfdb_ui.cc:482
+msgid "User:"
+msgstr "Usario:"
 
-#~ msgid "Regions/end"
-#~ msgstr "Regiones/final"
+#: gtk2_ardour/sfdb_ui.cc:486
+msgid "Password:"
+msgstr "Contraseña:"
 
-#~ msgid "Regions/file name"
-#~ msgstr "Regiones/nombre del archivo"
+#: gtk2_ardour/sfdb_ui.cc:515
+msgid "Search Freesound"
+msgstr "Buscar en Freesound"
 
-#~ msgid "Regions/file size"
-#~ msgstr "Regiones/tamao del archivo"
+#: gtk2_ardour/sfdb_ui.cc:698
+msgid "SoundFileBrowser: Could not tokenize string: "
+msgstr ""
 
-#~ msgid "Regions/file date"
-#~ msgstr "Regiones/fecha del archivo"
+#: gtk2_ardour/sfdb_ui.cc:734
+msgid "Cancelling.."
+msgstr "Cancelando..."
 
-#~ msgid "Regions/file system"
-#~ msgstr "Regiones/sistema de archivos"
+#: gtk2_ardour/sfdb_ui.cc:959
+#: gtk2_ardour/sfdb_ui.cc:1238
+#: gtk2_ardour/sfdb_ui.cc:1280
+msgid "one track per file"
+msgstr "1 pista por archivo"
 
-#~ msgid "Show All AbstractTracks"
-#~ msgstr "Mostrar todas las pistas de Audio"
+#: gtk2_ardour/sfdb_ui.cc:962
+#: gtk2_ardour/sfdb_ui.cc:1281
+msgid "one track per channel"
+msgstr "1 pista por canal"
 
-#~ msgid "Hide All AbstractTracks"
-#~ msgstr "Ocultar todas las pistas de Audio"
+#: gtk2_ardour/sfdb_ui.cc:970
+#: gtk2_ardour/sfdb_ui.cc:1283
+msgid "sequence files"
+msgstr "secuenciar archivos"
 
-#~ msgid "ardour: soundfile selector"
-#~ msgstr "ardour: seleccin de color"
+#: gtk2_ardour/sfdb_ui.cc:973
+#: gtk2_ardour/sfdb_ui.cc:987
+#: gtk2_ardour/sfdb_ui.cc:1287
+msgid "all files in one region"
+msgstr "todos los archivos en una región"
 
-#~ msgid "Add to Library..."
-#~ msgstr "Agregar a Biblioteca..."
+#: gtk2_ardour/sfdb_ui.cc:979
+#: gtk2_ardour/sfdb_ui.cc:1285
+msgid "one region per file"
+msgstr "una región por archivo"
 
-#~ msgid "Remove..."
-#~ msgstr "Quitar..."
+#: gtk2_ardour/sfdb_ui.cc:982
+#: gtk2_ardour/sfdb_ui.cc:1286
+msgid "one region per channel"
+msgstr "una región por canal"
 
-#~ msgid "Find..."
-#~ msgstr "Buscar..."
+#: gtk2_ardour/sfdb_ui.cc:1040
+msgid ""
+"One or more of the selected files\n"
+"cannot be used by Ardour"
+msgstr ""
+"Uno o más de los archivos seleccionados\n"
+"no puede ser usado por Ardour."
+
+#: gtk2_ardour/sfdb_ui.cc:1167
+msgid "Copy files to session"
+msgstr ""
+"Copiar archivos\n"
+"a la sesión"
+
+#: gtk2_ardour/sfdb_ui.cc:1183
+#: gtk2_ardour/sfdb_ui.cc:1318
+msgid "use file timestamp"
+msgstr "según marca temporal"
+
+#: gtk2_ardour/sfdb_ui.cc:1184
+#: gtk2_ardour/sfdb_ui.cc:1320
+msgid "at edit point"
+msgstr "en Punto de Edición"
+
+#: gtk2_ardour/sfdb_ui.cc:1185
+#: gtk2_ardour/sfdb_ui.cc:1322
+msgid "at playhead"
+msgstr "en Cursor"
+
+#: gtk2_ardour/sfdb_ui.cc:1186
+msgid "at session start"
+msgstr "en Inicio de Sesión"
+
+#: gtk2_ardour/sfdb_ui.cc:1191
+msgid "Add files:"
+msgstr "Agregar:"
+
+#: gtk2_ardour/sfdb_ui.cc:1213
+msgid "Insert:"
+msgstr "Insertar:"
+
+#: gtk2_ardour/sfdb_ui.cc:1226
+msgid "Mapping:"
+msgstr "Mapeo:"
+
+#: gtk2_ardour/sfdb_ui.cc:1244
+msgid "Conversion Quality:"
+msgstr "Conversión:"
+
+#: gtk2_ardour/sfdb_ui.cc:1256
+#: gtk2_ardour/sfdb_ui.cc:1334
+msgid "Best"
+msgstr "La mejor"
+
+#: gtk2_ardour/sfdb_ui.cc:1257
+#: gtk2_ardour/sfdb_ui.cc:1336
+msgid "Good"
+msgstr "Buena"
+
+# Quick=Veloz
+# Fast=Rápida
+# if not, you get two "rápida" entries in the combo
+#: gtk2_ardour/sfdb_ui.cc:1258
+#: gtk2_ardour/sfdb_ui.cc:1338
+msgid "Quick"
+msgstr "Veloz"
+
+#: gtk2_ardour/sfdb_ui.cc:1282
+msgid "merge files"
+msgstr "fusionar archivos"
+
+#: gtk2_ardour/splash.cc:42
+msgid "Ardour loading ..."
+msgstr "Cargando Ardour..."
+
+#: gtk2_ardour/tempo_dialog.cc:36
+msgid "edit tempo"
+msgstr "editar tempo"
+
+#: gtk2_ardour/tempo_dialog.cc:42
+#: gtk2_ardour/tempo_dialog.cc:61
+msgid "Bar"
+msgstr "Compás"
 
-#~ msgid "Add Folder"
-#~ msgstr "Agregar Carpeta"
+#: gtk2_ardour/tempo_dialog.cc:43
+#: gtk2_ardour/tempo_dialog.cc:62
+msgid "Beat"
+msgstr "Pulso"
 
-#~ msgid "Add audio file or directory"
-#~ msgstr "Agregar archivo o carpeta"
+#: gtk2_ardour/tempo_dialog.cc:45
+#: gtk2_ardour/tempo_dialog.cc:64
+#: gtk2_ardour/tempo_dialog.cc:276
+#: gtk2_ardour/tempo_dialog.cc:291
+msgid "Location"
+msgstr "Lugar"
 
-#~ msgid "Importing"
-#~ msgstr "Importando"
+#: gtk2_ardour/tempo_dialog.cc:77
+#: gtk2_ardour/tempo_dialog.cc:94
+#: gtk2_ardour/tempo_dialog.cc:304
+#: gtk2_ardour/tempo_dialog.cc:322
+msgid "whole (1)"
+msgstr "redonda (1)"
 
-#~ msgid "%1 not added to database"
-#~ msgstr "%1 se agreg a banco de dados"
+#: gtk2_ardour/tempo_dialog.cc:78
+#: gtk2_ardour/tempo_dialog.cc:96
+#: gtk2_ardour/tempo_dialog.cc:305
+#: gtk2_ardour/tempo_dialog.cc:324
+msgid "second (2)"
+msgstr "blanca (2)"
 
-#~ msgid "Folder name:"
-#~ msgstr "Nombre de carpeta:"
+#: gtk2_ardour/tempo_dialog.cc:79
+#: gtk2_ardour/tempo_dialog.cc:98
+#: gtk2_ardour/tempo_dialog.cc:306
+#: gtk2_ardour/tempo_dialog.cc:326
+msgid "third (3)"
+msgstr "blanca con punto (3)"
+
+#: gtk2_ardour/tempo_dialog.cc:80
+#: gtk2_ardour/tempo_dialog.cc:100
+#: gtk2_ardour/tempo_dialog.cc:108
+#: gtk2_ardour/tempo_dialog.cc:307
+#: gtk2_ardour/tempo_dialog.cc:328
+#: gtk2_ardour/tempo_dialog.cc:336
+msgid "quarter (4)"
+msgstr "negra (4)"
 
-#~ msgid "Should not be reached"
-#~ msgstr "No deber� alcanzarse"
+#: gtk2_ardour/tempo_dialog.cc:81
+#: gtk2_ardour/tempo_dialog.cc:102
+#: gtk2_ardour/tempo_dialog.cc:308
+#: gtk2_ardour/tempo_dialog.cc:330
+msgid "eighth (8)"
+msgstr "corchea (8)"
 
-#~ msgid "file \"%1\" could not be opened"
-#~ msgstr "el archivo \"%1\" no se pudo abrir"
+#: gtk2_ardour/tempo_dialog.cc:82
+#: gtk2_ardour/tempo_dialog.cc:104
+#: gtk2_ardour/tempo_dialog.cc:309
+#: gtk2_ardour/tempo_dialog.cc:332
+msgid "sixteenth (16)"
+msgstr "semi corchea (16)"
 
-#~ msgid "Field name:"
-#~ msgstr "Nombre del campo:"
+#: gtk2_ardour/tempo_dialog.cc:83
+#: gtk2_ardour/tempo_dialog.cc:106
+#: gtk2_ardour/tempo_dialog.cc:310
+#: gtk2_ardour/tempo_dialog.cc:334
+msgid "thirty-second (32)"
+msgstr "fusa (32)"
 
-#~ msgid "Field value:"
-#~ msgstr "Valor del campo:"
+#: gtk2_ardour/tempo_dialog.cc:110
+msgid "Beats Per Minute:"
+msgstr "Pulsos por minuto:"
 
-#~ msgid "Find"
-#~ msgstr "Buscar"
+#: gtk2_ardour/tempo_dialog.cc:150
+msgid "Tempo Begins at:"
+msgstr "Tempo comienza en:"
 
-#~ msgid "AND"
-#~ msgstr "Y"
+#: gtk2_ardour/tempo_dialog.cc:246
+#: gtk2_ardour/tempo_dialog.cc:478
+msgid "garbaged note type entry (%1)"
+msgstr "se descartó el texto (%1)"
 
-#~ msgid "ardour: locate soundfiles"
-#~ msgstr "ardour: localizar archivos de audio"
+#: gtk2_ardour/tempo_dialog.cc:256
+#: gtk2_ardour/tempo_dialog.cc:488
+msgid "incomprehensible note type entry (%1)"
+msgstr "El formato de este texto es incomprensible (%1)"
 
-#~ msgid "Results"
-#~ msgstr "Resultados"
+#: gtk2_ardour/tempo_dialog.cc:317
+msgid "thirtq-second (32)"
+msgstr "trigésima segunda (32)"
 
-#~ msgid "Uris"
-#~ msgstr "URIs"
+# hace referencia al tipo de nota (corchea, semicorchea, etc...)
+# (aparece en la ventana de configuración de compás: pulsos por compás, etc...)
+#: gtk2_ardour/tempo_dialog.cc:338
+msgid "Note Value:"
+msgstr "Valor de nota"
 
-#~ msgid "Create multi-channel region"
-#~ msgstr "Crear regin multi canal"
+#: gtk2_ardour/tempo_dialog.cc:339
+msgid "Beats Per Bar:"
+msgstr "Pulsos por compás:"
 
-#~ msgid "Ardour: Search Results"
-#~ msgstr "Ardour: Resultado de Bsqueda"
+#: gtk2_ardour/tempo_dialog.cc:357
+msgid "Meter Begins at Bar:"
+msgstr "Métrica comienza en el compás:"
 
-#~ msgid "Hide All AudioTrack MixerStrips"
-#~ msgstr "Ocultar todas las pistas de Audio en el Mixer"
+#: gtk2_ardour/theme_manager.cc:54
+msgid "Object"
+msgstr "Objeto"
 
-#~ msgid "Show All AudioBus MixerStrips"
-#~ msgstr "Mostrar todos los Buses en el Mixer"
+#: gtk2_ardour/theme_manager.cc:187
+msgid "Unable to find UI style file %1. Ardour will look strange"
+msgstr ""
 
-#~ msgid "Hide All AudioBus MixerStrips"
-#~ msgstr "Ocultar todos los Buses en el Mixer"
+#: gtk2_ardour/time_axis_view.cc:113
+msgid "gTortnam"
+msgstr "gTortnam"
 
-#~ msgid "Name for new mix group"
-#~ msgstr "Nombre para nuevo grupo del mixer"
+#: gtk2_ardour/time_axis_view.cc:983
+msgid "unknown track height name \"%1\" in XML GUI information"
+msgstr "Altura de pista desconocida \"%1\" en el archivo XML de información de la interfaz gráfica"
 
-#, fuzzy
-#~ msgid "Create"
-#~ msgstr "Crear"
+#: gtk2_ardour/time_axis_view_item.cc:80
+msgid "TimeAxisViewItemName"
+msgstr ""
 
-#, fuzzy
-#~ msgid "use control outs"
-#~ msgstr "Usar salidas de Control"
+#: gtk2_ardour/time_axis_view_item.cc:327
+msgid "new duration %1 frames is out of bounds for %2"
+msgstr "La nueva duración de %1 cuadros está por fuera de los límites para %2."
 
-#, fuzzy
-#~ msgid "automatically connect track outputs to master outs"
-#~ msgstr "conectar autom�icamente salidas de pistas a salidas Master"
+#: gtk2_ardour/time_selection.cc:40
+msgid "programming error: request for non-existent audio range (%1)!"
+msgstr "Error de programación: ¡se solicitó un rango de audio no existente (%1)!"
 
-#, fuzzy
-#~ msgid "automatically connect track outputs to physical ports"
-#~ msgstr "conectar autom�icamente salidas de pistas a salidas f�icas"
+#: gtk2_ardour/ui_config.cc:82
+msgid "loading default ui configuration file %1"
+msgstr "Cargando el archivo de configuración de interfaz de usuario por defecto %1."
 
-#, fuzzy
-#~ msgid "show again"
-#~ msgstr "Mostrar toda automatizacin"
+#: gtk2_ardour/ui_config.cc:85
+msgid "Ardour: cannot read default ui configuration file \"%1\""
+msgstr "Ardour: no se pudo leer el archivo de configuración de interfaz de usuario por defecto \"%1\"."
 
-#
-#, fuzzy
-#~ msgid "new session setup"
-#~ msgstr "Configuracin para nueva sesin"
+#: gtk2_ardour/ui_config.cc:90
+msgid "Ardour: default ui configuration file \"%1\" not loaded successfully."
+msgstr "Ardour: el archivo de configuración de interfaz de usuario por defecto \"%1\" no pudo ser cargado."
 
-#~ msgid "This session will playback and record at %1 Hz"
-#~ msgstr "Esta sesin reproducir�y grabar�a %1 Hz"
+#: gtk2_ardour/ui_config.cc:108
+msgid "loading user ui configuration file %1"
+msgstr "Cargando el archivo de configuración de interfaz de usuario %1."
 
-#, fuzzy
-#~ msgid ""
-#~ "This rate is set by JACK and cannot be changed.\n"
-#~ "If you want to use a different sample rate\n"
-#~ "please exit and restart JACK"
-#~ msgstr ""
-#~ "Esta frecuencia de muestreo es configurada por JACK\n"
-#~ "y no puede ser modificada desde Ardour.Si desea una\n"
-#~ "frecuencia de muestreo distinta, cierre Ardour,reinice\n"
-#~ "JACK y vuelva a ejecutar Ardour\n"
+#: gtk2_ardour/ui_config.cc:111
+msgid "Ardour: cannot read ui configuration file \"%1\""
+msgstr "Ardour: no se pudo leer el archivo de configuración de interfaz de usuario \"%1\"."
 
-#~ msgid "blank"
-#~ msgstr "en blanco"
+#: gtk2_ardour/ui_config.cc:116
+msgid "Ardour: user ui configuration file \"%1\" not loaded successfully."
+msgstr "Ardour: el archivo de configuración de interfaz de usuario \"%1\" no pudo ser cargado."
 
-#, fuzzy
-#~ msgid "Slave to MTC"
-#~ msgstr "Enviar MTC"
+#: gtk2_ardour/ui_config.cc:139
+msgid "UI config file %1 not saved"
+msgstr "No se salvó el archivo de configuración de interfaz de usuario %1."
 
-#~ msgid "Narrow mixer strips"
-#~ msgstr "Estrechar pistas del mixer"
+#: gtk2_ardour/utils.cc:138
+#: gtk2_ardour/utils.cc:181
+msgid "bad XPM header %1"
+msgstr "Encabezado XPM erróneo %1."
 
-#~ msgid "Misc"
-#~ msgstr "Miscel�ea"
+#: gtk2_ardour/utils.cc:320
+msgid "missing RGBA style for \"%1\""
+msgstr "No se encuentra el estilo RGBA para \"%1\"."
 
-#~ msgid "Broadcast WAVE/floating point"
-#~ msgstr "Broadcast WAVE/punto flotante"
+#: gtk2_ardour/utils.cc:343
+msgid "no style found for %1, using red"
+msgstr "No se encontró el estilo para %1, usando \"red\" (rojo)."
 
-#~ msgid "WAVE/floating point"
-#~ msgstr "WAVE/punto flotante"
+#: gtk2_ardour/utils.cc:382
+msgid "unknown style attribute %1 requested for color; using \"red\""
+msgstr "Atributo de estilo desconocido (%1) para color; se usará \"red\" (rojo)."
 
-#~ msgid "Native Format"
-#~ msgstr "Formato Nativo"
+#: gtk2_ardour/utils.cc:601
+msgid "cannot find icon image for %1"
+msgstr "No se pudo encontrar la imagen del ícono para %1."
 
-#~ msgid "--unknown--"
-#~ msgstr "--desconocido--"
+#: gtk2_ardour/visual_time_axis.cc:266
+msgid ""
+"Do you really want to remove track \"%1\" ?\n"
+"(cannot be undone)"
+msgstr ""
+"¿Desea realmente eliminar la pista \"%1\" ?\n"
+"(no podrá deshacer esta acción)"
 
-#~ msgid "in"
-#~ msgstr "entrada"
+#: gtk2_ardour/visual_time_axis.cc:315
+msgid "new name: "
+msgstr "nuevo nombre: "
 
-#~ msgid "ins"
-#~ msgstr "entradas"
+#: gtk2_ardour/connection_editor.cc:50
+msgid "ardour: connections"
+msgstr "ardour: conexiones"
 
-#~ msgid "out"
-#~ msgstr "salida"
+#: gtk2_ardour/connection_editor.cc:51
+msgid "Input Connections"
+msgstr "Conexiones de Entrada"
 
-#~ msgid "outs"
-#~ msgstr "salidas"
+#: gtk2_ardour/connection_editor.cc:52
+msgid "Output Connections"
+msgstr "Conexiones de Salida"
 
-#, fuzzy
-#~ msgid "Select all"
-#~ msgstr "Seleccionar todo"
+#: gtk2_ardour/connection_editor.cc:53
+msgid "New Input"
+msgstr "Nueva Entrada"
 
-#, fuzzy
-#~ msgid "Inserts"
-#~ msgstr "Invertir"
+#: gtk2_ardour/connection_editor.cc:54
+msgid "New Output"
+msgstr "Nueva Salida"
 
-#, fuzzy
-#~ msgid "Sends"
-#~ msgstr "Minutos:Segundos"
+#: gtk2_ardour/connection_editor.cc:57
+#: gtk2_ardour/connection_editor.cc:100
+msgid "Add Port"
+msgstr "Agregar Puerto"
 
-#, fuzzy
-#~ msgid "Select all ..."
-#~ msgstr "Seleccionar todo"
+#: gtk2_ardour/connection_editor.cc:105
+msgid "Available Ports"
+msgstr "Puertos Disponibles"
 
-#~ msgid "Pre Redirects"
-#~ msgstr "Pre Redireccionamentos"
+#: gtk2_ardour/connection_editor.cc:500
+msgid "Connection \""
+msgstr "Conexión \""
 
-#~ msgid "Post Redirects"
-#~ msgstr "Pst Redireccionamentos"
+#: gtk2_ardour/connection_editor.cc:502
+msgid "\""
+msgstr "\""
 
-#, fuzzy
-#~ msgid "Trace MIDI Input"
-#~ msgstr "Vigilar Entrada de MIDI"
+#: gtk2_ardour/connection_editor.cc:531
+#, c-format
+msgid "in %d"
+msgstr "entrada %d"
 
-#, fuzzy
-#~ msgid "Trace MIDI Output"
-#~ msgstr "Vigilar Salida de MIDI"
+#: gtk2_ardour/connection_editor.cc:533
+#, c-format
+msgid "out %d"
+msgstr "salida %d"
 
-#~ msgid "MTC Port"
-#~ msgstr "Puerto MTC"
+#: gtk2_ardour/connection_editor.cc:657
+msgid "Name for new connection:"
+msgstr "Nombre de la nueva conexión: "
 
-#~ msgid "attempt to timestretch a non-audio track!"
-#~ msgstr "se intent hacer estiramiento a una pista que no es de audio!"
+#: gtk2_ardour/analysis_window.cc:46
+msgid "Signal source"
+msgstr "Fuente de señal"
 
-#~ msgid "ardour: tempo editor"
-#~ msgstr "ardour: editor de tempo"
+#: gtk2_ardour/analysis_window.cc:47
+msgid "Selected ranges"
+msgstr "Rangos seleccionados"
 
-#~ msgid "ok"
-#~ msgstr "ok"
+# (de la ventana de FFT)
+#: gtk2_ardour/analysis_window.cc:50
+msgid "Display model"
+msgstr "Modelo de visualización"
 
-#, fuzzy
-#~ msgid "apply"
-#~ msgstr "aplicar"
+#: gtk2_ardour/analysis_window.cc:51
+msgid "Composite graphs for each track"
+msgstr "Gráficos compuestos para cada pista"
 
-#, fuzzy
-#~ msgid "Edit left"
-#~ msgstr "Modo de edicin"
+#: gtk2_ardour/analysis_window.cc:52
+msgid "Composite graph of all tracks"
+msgstr "Gráfico compuesto de todas las pistas"
 
-#, fuzzy
-#~ msgid "Edit right"
-#~ msgstr "Editar con"
+#: gtk2_ardour/analysis_window.cc:54
+msgid "Show frequency power range"
+msgstr "Mostrar rango de potencia de frecuencias"
 
-#, fuzzy
-#~ msgid "Edit fade"
-#~ msgstr "Modo de edicin"
+#: gtk2_ardour/analysis_window.cc:55
+msgid "Normalize values"
+msgstr "Normalizar valores"
 
-#, fuzzy
-#~ msgid "Bounce region"
-#~ msgstr "Grabar seleccin"
+#: gtk2_ardour/analysis_window.cc:59
+#: gtk2_ardour/analysis_window.cc:60
+msgid "FFT analysis window"
+msgstr "Ventana de análisis FFT"
 
-#~ msgid "clear connections"
-#~ msgstr "Quitar conecciones"
+#: gtk2_ardour/analysis_window.cc:135
+msgid "Re-analyze data"
+msgstr "Re-analizar datos"
 
-#, fuzzy
-#~ msgid "outside this computer"
-#~ msgstr "Ocultar esta pista"
+#~ msgid "Magnetic Snap"
+#~ msgstr "Ajuste Magnético"
 
-#, fuzzy
-#~ msgid "inside this computer"
-#~ msgstr "Ocultar esta pista"
diff --git a/gtk2_ardour/po/sv_SE.po b/gtk2_ardour/po/sv_SE.po
index 199b46a..fb56e0b 100644
--- a/gtk2_ardour/po/sv_SE.po
+++ b/gtk2_ardour/po/sv_SE.po
@@ -5525,9 +5525,13 @@ msgstr ""
 "men vid punkten det infogades finns bara\n"
 "%3 aktiva signalströmmar.\n"
 "\n"
-"Detta är orimligt - du slängers bort\n"
+"Detta är orimligt - du slänger bort\n"
 "en del av signalen."
 
+#: gtk2_ardour/redirect_box.cc:422 gtk2_ardour/redirect_box.cc:725
+msgid "ardour: weird plugin dialog"
+msgstr "ardour: underlig plugin"
+
 #: ../redirect_box.cc:394
 msgid ""
 "You attempted to add a plugin (%1).\n"
@@ -7699,3 +7703,55 @@ msgstr "Använd regiontoningar (globalt)"
 msgid "Ranges"
 msgstr "Omfång"
 
+#: gtk2_ardour/mixer_strip.cc:1049
+msgid "Save As Template"
+msgstr "Spara som spårmall"
+
+#: gtk2_ardour/add_route_dialog.cc:68
+msgid "Using this template:"
+msgstr "Med denna spårmall:"
+
+#: gtk2_ardour/add_route_dialog.cc:119
+msgid "Add this many:"
+msgstr "Lägg till:"
+
+
+#: gtk2_ardour/add_route_dialog.cc:144
+msgid "OR"
+msgstr "ELLER"
+
+#: gtk2_ardour/route_ui.cc:1191
+msgid "Template name:"
+msgstr "Namn på spårmall:"
+
+#: gtk2_ardour/add_route_dialog.cc:174
+msgid "Track Mode"
+msgstr "Spårläge"
+
+#: gtk2_ardour/ardour_ui_ed.cc:206
+msgid "Toggle Editor Mixer on Top"
+msgstr "Växla Redigerare & Mixer överst"
+
+#: gtk2_ardour/ardour_ui_ed.cc:449
+msgid "New plugins are active"
+msgstr "Nya insticksprogram är aktiverade"
+
+#: gtk2_ardour/editor_actions.cc:393
+msgid "Add 1 Range Marker"
+msgstr "Lägga till 1 omfångsmarkör"
+
+#: gtk2_ardour/editor_actions.cc:396
+msgid "Add Range Marker(s)"
+msgstr "Lägga till omfångsmarkörer"
+
+#: gtk2_ardour/ardour_ui_ed.cc:597
+msgid "Auto Rebind Controls"
+msgstr "Återkoppla kontroller automatiskt"
+
+#: gtk2_ardour/ardour_ui_ed.cc:514
+msgid "Override muting"
+msgstr "Åsidosätt tystning "
+
+#: gtk2_ardour/editor.cc:1965
+msgid "Add Single Range"
+msgstr "Lägg till enskilt omfång "
diff --git a/gtk2_ardour/redirect_automation_line.cc b/gtk2_ardour/redirect_automation_line.cc
index b1b19d5..942344a 100644
--- a/gtk2_ardour/redirect_automation_line.cc
+++ b/gtk2_ardour/redirect_automation_line.cc
@@ -58,6 +58,7 @@ RedirectAutomationLine::RedirectAutomationLine (const string & name, Redirect& r
 
 	upper = desc.upper;
 	lower = desc.lower;
+	range = upper - lower;
 
 	if (desc.toggled) {
 		no_draw = true;
@@ -65,7 +66,6 @@ RedirectAutomationLine::RedirectAutomationLine (const string & name, Redirect& r
 	}
 
 	no_draw = false;
-	range = upper - lower;
 
 	/* XXX set min/max for underlying curve ??? */
 }
diff --git a/gtk2_ardour/redirect_box.cc b/gtk2_ardour/redirect_box.cc
index 2a696e2..e743be2 100644
--- a/gtk2_ardour/redirect_box.cc
+++ b/gtk2_ardour/redirect_box.cc
@@ -78,6 +78,7 @@ using namespace Glib;
 using namespace Gtkmm2ext;
 
 RedirectBox* RedirectBox::_current_redirect_box = 0;
+RefPtr<Action> RedirectBox::cut_action;
 RefPtr<Action> RedirectBox::paste_action;
 bool RedirectBox::get_colors = true;
 Gdk::Color* RedirectBox::active_redirect_color;
@@ -157,6 +158,7 @@ RedirectBox::set_route (boost::shared_ptr<Route> r)
 
 	connections.push_back (_route->redirects_changed.connect (mem_fun(*this, &RedirectBox::redisplay_redirects)));
 	connections.push_back (_route->GoingAway.connect (mem_fun (*this, &RedirectBox::route_going_away)));
+	connections.push_back (_route->name_changed.connect (mem_fun(*this, &RedirectBox::route_name_changed)));
 
 	redisplay_redirects (0);
 }
@@ -254,6 +256,8 @@ RedirectBox::show_redirect_menu (gint arg)
 		plugin_menu_item->set_submenu (_plugin_selector.plugin_menu());
 	}
 
+	cut_action->set_sensitive (can_cut_redirects ());
+	
 	paste_action->set_sensitive (!_rr_selection.redirects.empty());
 
 	redirect_menu->popup (1, arg);
@@ -342,7 +346,11 @@ RedirectBox::redirect_button_release_event (GdkEventButton *ev)
 		show_redirect_menu(ev->time);
 		ret = true;
 
-	} else if (redirect && Keyboard::is_button2_event (ev) && (Keyboard::no_modifier_keys_pressed (ev) && ((ev->state & Gdk::BUTTON2_MASK) == Gdk::BUTTON2_MASK))) {
+	} else if (redirect && Keyboard::is_button2_event (ev)
+#ifndef GTKOSX
+		   && (Keyboard::no_modifier_keys_pressed (ev) && ((ev->state & Gdk::BUTTON2_MASK) == Gdk::BUTTON2_MASK))
+#endif 
+		) {
 		
 		/* button2-click with no modifiers */
 
@@ -762,6 +770,23 @@ RedirectBox::rename_redirects ()
 	}
 }
 
+bool
+RedirectBox::can_cut_redirects ()
+{
+	vector<boost::shared_ptr<Redirect> > sel;
+	get_selected_redirects (sel);
+	
+	/* cut_redirects () does not cut inserts or sends */
+	for (vector<boost::shared_ptr<Redirect> >::const_iterator i = sel.begin (); i != sel.end (); ++i) {
+
+		if (boost::dynamic_pointer_cast<PluginInsert>(*i) != 0) {
+			return true;
+		}
+	}
+
+	return false;
+}
+
 void
 RedirectBox::cut_redirects ()
 {
@@ -1128,10 +1153,7 @@ RedirectBox::edit_redirect (boost::shared_ptr<Redirect> redirect)
 				plugin_ui->set_title (title.get_string());
 				
 				plugin_insert->set_gui (plugin_ui);
-				
-				// change window title when route name is changed
-				_route->name_changed.connect (bind (mem_fun(*this, &RedirectBox::route_name_changed), plugin_ui, boost::weak_ptr<PluginInsert> (plugin_insert)));
-				
+
 			} else {
 				plugin_ui = reinterpret_cast<PluginUIWindow *> (plugin_insert->get_gui());
 				plugin_ui->set_parent (win);
@@ -1206,8 +1228,8 @@ RedirectBox::register_actions ()
 	ActionManager::register_action (popup_act_grp, X_("clear"), _("Clear"),  sigc::ptr_fun (RedirectBox::rb_clear));
 
 	/* standard editing stuff */
-	act = ActionManager::register_action (popup_act_grp, X_("cut"), _("Cut"),  sigc::ptr_fun (RedirectBox::rb_cut));
-	ActionManager::plugin_selection_sensitive_actions.push_back(act);
+	cut_action = ActionManager::register_action (popup_act_grp, X_("cut"), _("Cut"),  sigc::ptr_fun (RedirectBox::rb_cut));
+	ActionManager::plugin_selection_sensitive_actions.push_back (cut_action);
 	act = ActionManager::register_action (popup_act_grp, X_("copy"), _("Copy"),  sigc::ptr_fun (RedirectBox::rb_copy));
 	ActionManager::plugin_selection_sensitive_actions.push_back(act);
 
@@ -1391,16 +1413,39 @@ RedirectBox::rb_edit ()
 }
 
 void
-RedirectBox::route_name_changed (void* src, PluginUIWindow* plugin_ui, boost::weak_ptr<PluginInsert> wpi)
+RedirectBox::route_name_changed (void* src)
 {
-	ENSURE_GUI_THREAD(bind (mem_fun (*this, &RedirectBox::route_name_changed), src, plugin_ui, wpi));
-	boost::shared_ptr<PluginInsert> pi (wpi.lock());
-	
+	boost::shared_ptr<Redirect> redirect;
+	boost::shared_ptr<Insert> insert;
+	Gtk::TreeModel::Children children = model->children();
+
+	for (Gtk::TreeModel::Children::iterator iter = children.begin(); iter != children.end(); ++iter) {
+  		Gtk::TreeModel::Row row = *iter;
+
+  		redirect= row[columns.redirect];
+		
+		void* gui = redirect->get_gui();
+
+		if (!gui) {
+			continue;
+		}
 
-	if (pi) {
-		WindowTitle title(Glib::get_application_name());
-		title += generate_redirect_title (pi);
-		plugin_ui->set_title (title.get_string());
+		/* rename editor windows for sends and plugins */
+
+		WindowTitle title (Glib::get_application_name());
+		
+		if ((insert = boost::dynamic_pointer_cast<Insert> (redirect)) == 0) {
+			boost::shared_ptr<Send> send = boost::dynamic_pointer_cast<Send> (redirect);
+			title += send->name();
+			static_cast<Window*>(gui)->set_title (title.get_string());
+		} else {
+			boost::shared_ptr<PluginInsert> plugin_insert;
+			
+			if ((plugin_insert = boost::dynamic_pointer_cast<PluginInsert> (insert)) != 0) {
+				title += generate_redirect_title (plugin_insert);
+			}
+			static_cast<Window*>(gui)->set_title (title.get_string());
+		}
 	}
 }
 
diff --git a/gtk2_ardour/redirect_box.h b/gtk2_ardour/redirect_box.h
index bb00d82..b7d7e32 100644
--- a/gtk2_ardour/redirect_box.h
+++ b/gtk2_ardour/redirect_box.h
@@ -99,6 +99,7 @@ class RedirectBox : public Gtk::HBox, public PluginInterestedObject
 	RouteRedirectSelection  & _rr_selection;
 
 	void route_going_away ();
+	bool can_cut_redirects ();
 
 	struct ModelColumns : public Gtk::TreeModel::ColumnRecord {
 	    ModelColumns () {
@@ -183,6 +184,7 @@ class RedirectBox : public Gtk::HBox, public PluginInterestedObject
 	void for_selected_redirects (void (RedirectBox::*pmf)(boost::shared_ptr<ARDOUR::Redirect>));
 	void get_selected_redirects (vector<boost::shared_ptr<ARDOUR::Redirect> >&);
 
+	static Glib::RefPtr<Gtk::Action> cut_action;
 	static Glib::RefPtr<Gtk::Action> paste_action;
 	void paste_redirect_list (const std::list<boost::shared_ptr<ARDOUR::Redirect> >& redirects);
 	
@@ -219,7 +221,7 @@ class RedirectBox : public Gtk::HBox, public PluginInterestedObject
 	static void rb_deactivate_all ();
 	static void rb_edit ();
 	
-	void route_name_changed (void* src, PluginUIWindow* plugin_ui, boost::weak_ptr<ARDOUR::PluginInsert> pi);
+	void route_name_changed (void* src);
 	std::string generate_redirect_title (boost::shared_ptr<ARDOUR::PluginInsert> pi);
 };
 
diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc
index 1a85ef0..303a697 100644
--- a/gtk2_ardour/route_time_axis.cc
+++ b/gtk2_ardour/route_time_axis.cc
@@ -396,13 +396,8 @@ RouteTimeAxisView::playlist_click ()
 void
 RouteTimeAxisView::automation_click ()
 {
-	if (automation_action_menu == 0) {
-		/* this seems odd, but the automation action
-		   menu is built as part of the display menu.
-		*/
-		build_display_menu ();
-	}
 	conditionally_add_to_selection ();
+	build_automation_action_menu ();
 	automation_action_menu->popup (1, gtk_get_current_event_time());
 }
 
@@ -453,6 +448,7 @@ RouteTimeAxisView::build_display_menu ()
 	if (!Profile->get_sae()) {
 		build_remote_control_menu ();
 		items.push_back (MenuElem (_("Remote Control ID"), *remote_control_menu));
+		/* rebuild this every time */
 		build_automation_action_menu ();
 		items.push_back (MenuElem (_("Automation"), *automation_action_menu));
 		items.push_back (SeparatorElem());
@@ -1465,7 +1461,6 @@ RouteTimeAxisView::use_playlist (boost::weak_ptr<Playlist> wpl)
 
 				Track *track = dynamic_cast<Track *>(*i);
 				if (!track) {
-					std::cerr << "route " << (*i)->name() << " is not a Track" << std::endl;
 					continue;
 				}
 
@@ -1888,7 +1883,7 @@ RouteTimeAxisView::redirects_changed (void *src)
 		++tmp;
 
 		if (!(*i)->valid) {
-
+			
 			delete *i;
 			redirect_automation.erase (i);
 
diff --git a/gtk2_ardour/route_ui.cc b/gtk2_ardour/route_ui.cc
index cc4f541..74d95a4 100644
--- a/gtk2_ardour/route_ui.cc
+++ b/gtk2_ardour/route_ui.cc
@@ -23,6 +23,7 @@
 #include <gtkmm2ext/doi.h>
 #include <gtkmm2ext/bindable_button.h>
 #include <gtkmm2ext/gtk_ui.h>
+#include <gtkmm2ext/prompter.h>
 
 #include <ardour/route_group.h>
 #include <pbd/memento_command.h>
@@ -41,6 +42,7 @@
 #include <ardour/audio_track.h>
 #include <ardour/audio_diskstream.h>
 #include <ardour/profile.h>
+#include <ardour/utils.h>
 
 #include "i18n.h"
 using namespace sigc;
@@ -68,6 +70,7 @@ RouteUI::RouteUI (boost::shared_ptr<ARDOUR::Route> rt,
 void
 RouteUI::init ()
 {
+	self_destruct = true;
 	xml_node = 0;
 	mute_menu = 0;
 	solo_menu = 0;
@@ -147,7 +150,9 @@ RouteUI::set_route (boost::shared_ptr<Route> rp)
 	   up when the route is destroyed.
 	*/
 
-	new PairedShiva<Route,RouteUI> (*_route, *this);
+	if (self_destruct) {
+		new PairedShiva<Route,RouteUI> (*_route, *this);
+	}
 
 	mute_button->set_controllable (&_route->mute_control());
 	mute_button->set_label (m_name);
@@ -187,7 +192,9 @@ RouteUI::set_route (boost::shared_ptr<Route> rp)
 
 RouteUI::~RouteUI()
 {
-	GoingAway (); /* EMIT SIGNAL */
+	/* derived classes should emit GoingAway so that they receive the signal
+	   when the object is still a legal derived instance.
+	 */
 
 	if (solo_menu) {
 		delete solo_menu;
@@ -691,7 +698,7 @@ RouteUI::build_solo_menu (void)
 	MenuList& items = solo_menu->items();
 	CheckMenuItem* check;
 
-	check = new CheckMenuItem(_("Solo-safe"));
+	check = new CheckMenuItem(_("Solo Locke "));
 	check->set_active (_route->solo_safe());
 	check->signal_toggled().connect (bind (mem_fun (*this, &RouteUI::toggle_solo_safe), check));
 	_route->solo_safe_changed.connect(bind (mem_fun (*this, &RouteUI::solo_safe_toggle), check));
@@ -1170,3 +1177,38 @@ RouteUI::map_frozen ()
 	}
 }
 
+void
+RouteUI::save_as_template ()
+{
+	Glib::ustring path;
+	Glib::ustring safe_name;
+	std::string name;
+	
+	path = Session::route_template_dir();
+	
+	if (g_mkdir_with_parents (path.c_str(), 0755)) {
+		error << string_compose (_("Cannot create route template directory %1"), path) << endmsg;
+		return;
+	}
+	
+	Prompter p (true); // modal
+	
+	p.set_prompt (_("Template name:"));
+	switch (p.run()) {
+	case RESPONSE_ACCEPT:
+		break;
+	default:
+		return;
+	}
+	
+	p.hide ();
+	p.get_result (name, true);
+	
+	safe_name = legalize_for_path (name);
+	safe_name += Session::template_suffix ();
+	
+	path = Glib::build_filename (path, safe_name);
+	
+	_route->save_as_template (path, name);
+}
+
diff --git a/gtk2_ardour/route_ui.h b/gtk2_ardour/route_ui.h
index c468f84..f58c8f4 100644
--- a/gtk2_ardour/route_ui.h
+++ b/gtk2_ardour/route_ui.h
@@ -89,6 +89,8 @@ class RouteUI : public virtual AxisView
 	void ensure_xml_node ();
 
 	XMLNode* get_child_xml_node (const string & childname);
+
+	void save_as_template ();
 	
 	bool mute_press(GdkEventButton*);
 	bool mute_release(GdkEventButton*);
@@ -168,8 +170,12 @@ class RouteUI : public virtual AxisView
 	std::string m_name;
 	std::string r_name;
 
+	bool self_destruct; 
+
 	void init ();
 	void reset ();
+
+	void save_template (const std::string&);
 };
 
 #endif /* __ardour_route_ui__ */
diff --git a/gtk2_ardour/tempo_dialog.cc b/gtk2_ardour/tempo_dialog.cc
index 6220455..7a59fe9 100644
--- a/gtk2_ardour/tempo_dialog.cc
+++ b/gtk2_ardour/tempo_dialog.cc
@@ -82,13 +82,7 @@ TempoDialog::init (const BBT_Time& when, double bpm, double note_type, bool mova
 	strings.push_back (_("sixteenth (16)"));
 	strings.push_back (_("thirty-second (32)"));
 	
-	/* the string here needs to be the longest one to display */
-	const guint32 FUDGE = 20; // Combo's are stupid - they steal space from the entry for the button
-	// TRANSLATORS: this is not a mis-spelling of "thirty", we're including a vertical 
-	// descender to make sure the height gets computed properly.
-        Gtkmm2ext::set_size_request_to_display_given_text (note_types, "thirtq-second (32)", 7+FUDGE, 15);
-
-	set_popdown_strings (note_types, strings);
+	set_popdown_strings (note_types, strings, true);
 
 	if (note_type==1.0f)
 		note_types.set_active_text (_("whole (1)"));
@@ -309,14 +303,7 @@ MeterDialog::init (const BBT_Time& when, double bpb, double note_type, bool mova
 	strings.push_back (_("sixteenth (16)"));
 	strings.push_back (_("thirty-second (32)"));
 	
-	/* the string here needs to be the longest one to display */
-	const guint32 FUDGE = 20; // Combo's are stupid - they steal space from the entry for the button
-
-	// TRANSLATORS: this is not a mis-spelling of "thirty", we're including a vertical 
-	// descender to make sure the height gets computed properly.
-        Gtkmm2ext::set_size_request_to_display_given_text (note_types, _("thirtq-second (32)"), 7+FUDGE, 15);
-
-	set_popdown_strings (note_types, strings);
+	set_popdown_strings (note_types, strings, true);
 
 	if (note_type==1.0f)
 		note_types.set_active_text (_("whole (1)"));
diff --git a/gtk2_ardour/visual_time_axis.cc b/gtk2_ardour/visual_time_axis.cc
index 2035293..468b967 100644
--- a/gtk2_ardour/visual_time_axis.cc
+++ b/gtk2_ardour/visual_time_axis.cc
@@ -84,18 +84,22 @@ VisualTimeAxis::VisualTimeAxis(const string & name, PublicEditor& ed, ARDOUR::Se
 	size_button.set_name("TrackSizeButton") ;
 	visual_button.set_name("TrackVisualButton") ;
 	hide_button.set_name("TrackRemoveButton") ;
-	hide_button.add(*(Gtk::manage(new Gtk::Image(get_xpm("small_x.xpm")))));
+	hide_button.add (*(manage (new Image (::get_icon("hide")))));
+	hide_button.show_all ();
+
 	size_button.signal_button_release_event().connect (mem_fun (*this, &VisualTimeAxis::size_click)) ;
 	visual_button.signal_clicked().connect (mem_fun (*this, &VisualTimeAxis::visual_click)) ;
 	hide_button.signal_clicked().connect (mem_fun (*this, &VisualTimeAxis::hide_click)) ;
 	ARDOUR_UI::instance()->tooltips().set_tip(size_button,_("Display Height")) ;
 	ARDOUR_UI::instance()->tooltips().set_tip(visual_button, _("Visual options")) ;
 	ARDOUR_UI::instance()->tooltips().set_tip(hide_button, _("Hide this track")) ;
-		
+
+if (0) {		
+		/* old school - when we used to put an extra row of buttons in place */
 	controls_table.attach (hide_button, 0, 1, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
 	controls_table.attach (visual_button, 1, 2, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
 	controls_table.attach (size_button, 2, 3, 1, 2, Gtk::FILL|Gtk::EXPAND, Gtk::FILL|Gtk::EXPAND);
-
+}
 	/* remove focus from the buttons */
 	size_button.unset_flags(Gtk::CAN_FOCUS) ;
 	hide_button.unset_flags(Gtk::CAN_FOCUS) ;
@@ -154,15 +158,21 @@ VisualTimeAxis::set_height(uint32_t h)
 	if (h >= hNormal) {
 		hide_name_label ();
 		show_name_entry ();
-		other_button_hbox.show_all() ;
+		visual_button.show();
+		size_button.show();
+		hide_button.show();
 	} else if (h >= hSmaller) {
 		hide_name_label ();
 		show_name_entry ();
-		other_button_hbox.hide_all() ;
+		visual_button.hide ();
+		size_button.hide ();
+		hide_button.hide();
 	} else if (h >= hSmall) {
 		hide_name_entry ();
 		show_name_label ();
-		other_button_hbox.hide_all() ;
+		visual_button.hide ();
+		size_button.hide ();
+		hide_button.hide ();
 	}
 }
 
diff --git a/gtk2_ardour/vst_pluginui.cc b/gtk2_ardour/vst_pluginui.cc
index 6fee847..19a0826 100644
--- a/gtk2_ardour/vst_pluginui.cc
+++ b/gtk2_ardour/vst_pluginui.cc
@@ -18,6 +18,7 @@
 */
 
 #include <fst.h>
+#include <gtk/gtk.h>
 #include <gtk/gtksocket.h>
 #include <ardour/insert.h>
 #include <ardour/vst_plugin.h>
@@ -34,11 +35,17 @@ VSTPluginUI::VSTPluginUI (boost::shared_ptr<PluginInsert> pi, boost::shared_ptr<
 	: PlugUIBase (pi),
 	  vst (vp)
 {
+	create_preset_store ();
+
 	fst_run_editor (vst->fst());
 
+	preset_box.set_spacing (6);
+	preset_box.set_border_width (6);
 	preset_box.pack_end (bypass_button, false, false, 10);
 	preset_box.pack_end (save_button, false, false);
-	preset_box.pack_end (preset_combo, false, false);
+	preset_box.pack_end (vst_preset_combo, false, false);
+
+	vst_preset_combo.signal_changed().connect (mem_fun (*this, &VSTPluginUI::preset_chosen));
 
 	bypass_button.set_active (!insert->active());
 	
@@ -48,7 +55,16 @@ VSTPluginUI::VSTPluginUI (boost::shared_ptr<PluginInsert> pi, boost::shared_ptr<
 
 VSTPluginUI::~VSTPluginUI ()
 {
-	// nothing to do here - plugin destructor destroys the GUI
+	// plugin destructor destroys the custom GUI, via Windows fun-and-games,
+	// and then our PluginUIWindow does the rest
+}
+
+void
+VSTPluginUI::preset_chosen ()
+{
+	// we can't dispatch directly here, too many plugins only expects one GUI thread.
+	vst->fst()->want_program = vst_preset_combo.get_active_row_number ();
+	socket.grab_focus ();
 }
 
 int
@@ -76,6 +92,8 @@ VSTPluginUI::package (Gtk::Window& win)
 	
 	socket.add_id (fst_get_XID (vst->fst()));
 
+	fst_move_window_into_view (vst->fst());
+
 	return 0;
 }
 
@@ -118,3 +136,68 @@ VSTPluginUI::configure_handler (GdkEventConfigure* ev, Gtk::Socket *socket)
 	return false;
 }
 
+void
+VSTPluginUI::create_preset_store ()
+{
+	FST *fst = vst->fst();
+	int vst_version = fst->plugin->dispatcher (fst->plugin, effGetVstVersion, 0, 0, NULL, 0.0f);
+
+	preset_model = ListStore::create (preset_columns);
+
+	for (int i = 0; i < fst->plugin->numPrograms; ++i) {
+		char buf[100];
+		TreeModel::Row row = *(preset_model->append());
+
+		snprintf (buf, 90, "preset %d", i);
+
+		if (vst_version >= 2) {
+			fst->plugin->dispatcher (fst->plugin, 29, i, 0, buf, 0.0);
+		}
+		
+		row[preset_columns.name] = buf;
+		row[preset_columns.number] = i;
+	}
+	
+	if (fst->plugin->numPrograms > 0) {
+		fst->plugin->dispatcher( fst->plugin, effSetProgram, 0, 0, NULL, 0.0 );
+	}
+	
+	vst_preset_combo.set_model (preset_model);
+
+	CellRenderer* renderer = manage (new CellRendererText());
+	vst_preset_combo.pack_start (*renderer, true);
+	vst_preset_combo.add_attribute (*renderer, "text", 0);
+
+	if (vst->fst()->current_program != -1) {
+		vst_preset_combo.set_active (vst->fst()->current_program);
+	} else {
+		vst_preset_combo.set_active (0);
+	}
+}
+
+typedef int (*error_handler_t)( Display *, XErrorEvent *);
+static Display *the_gtk_display;
+static error_handler_t wine_error_handler;
+static error_handler_t gtk_error_handler;
+
+static int 
+fst_xerror_handler( Display *disp, XErrorEvent *ev )
+{
+	if (disp == the_gtk_display) {
+		printf ("relaying error to gtk\n");
+		return gtk_error_handler (disp, ev);
+	} else {
+		printf( "relaying error to wine\n" );
+		return wine_error_handler (disp, ev);
+	}
+}
+
+void
+gui_init (int *argc, char **argv[])
+{
+	wine_error_handler = XSetErrorHandler (NULL);
+	gtk_init (argc, argv);
+	the_gtk_display = gdk_x11_display_get_xdisplay (gdk_display_get_default());
+	gtk_error_handler = XSetErrorHandler( fst_xerror_handler );
+}
+
diff --git a/libs/ardour/SConscript b/libs/ardour/SConscript
index 1610130..100986b 100644
--- a/libs/ardour/SConscript
+++ b/libs/ardour/SConscript
@@ -23,6 +23,7 @@ ardour.Append(POTFILE = domain + '.pot')
 if ardour['IS_OSX']:
 	ardour.Append (LINKFLAGS="-Xlinker -headerpad -Xlinker 2048")
 
+
 #
 # explicitly reference the control protocol LGPL library for includes
 # 
@@ -253,6 +254,8 @@ if conf.CheckCHeader('/System/Library/Frameworks/CoreAudio.framework/Headers/Cor
 if conf.CheckCHeader('/System/Library/Frameworks/AudioUnit.framework/Headers/AudioUnit.h') and ardour['AUDIOUNITS']:
     ardour.Append(CXXFLAGS="-DHAVE_AUDIOUNITS")
     ardour.Append(LINKFLAGS="-framework AudioUnit")
+    if ardour['AUSTATE']:
+	    ardour.Append(CXXFLAGS="-DAU_STATE_SUPPORT")
     extra_sources += audiounit_files
  
 if ardour['COREAUDIO']:
diff --git a/libs/ardour/ardour/audio_track.h b/libs/ardour/ardour/audio_track.h
index 96a12c9..b972263 100644
--- a/libs/ardour/ardour/audio_track.h
+++ b/libs/ardour/ardour/audio_track.h
@@ -52,14 +52,15 @@ class AudioTrack : public Track
 
 	int use_diskstream (string name);
 	int use_diskstream (const PBD::ID& id);
-	
-	int export_stuff (vector<Sample*>& buffers, uint32_t nbufs, nframes_t nframes, nframes_t end_frame);
+	void use_new_diskstream ();
+
+	int export_stuff (vector<Sample*>& buffers, uint32_t nbufs, nframes_t nframes, nframes_t end_frame, bool enable_processing = true);
 
 	void freeze (InterThreadInfo&);
 	void unfreeze ();
 
 	boost::shared_ptr<Region> bounce (InterThreadInfo&);
-	boost::shared_ptr<Region> bounce_range (nframes_t start, nframes_t end, InterThreadInfo&);
+	boost::shared_ptr<Region> bounce_range (nframes_t start, nframes_t end, InterThreadInfo&, bool enable_processing);
 
 	int set_state(const XMLNode& node);
 
diff --git a/libs/ardour/ardour/audio_unit.h b/libs/ardour/ardour/audio_unit.h
index 0798678..50c7c5f 100644
--- a/libs/ardour/ardour/audio_unit.h
+++ b/libs/ardour/ardour/audio_unit.h
@@ -28,6 +28,7 @@
 #include <set>
 #include <string>
 #include <vector>
+#include <map>
 
 #include <ardour/plugin.h>
 
@@ -96,7 +97,8 @@ class AUPlugin : public ARDOUR::Plugin
 	bool save_preset (string name);
 	bool load_preset (const string preset_label);
 	std::vector<std::string> get_presets ();
-    
+	std::string current_preset() const;
+
 	bool has_editor () const;
 	
 	int32_t can_do (int32_t in, int32_t& out);
@@ -115,13 +117,18 @@ class AUPlugin : public ARDOUR::Plugin
   private:
         boost::shared_ptr<CAComponent> comp;
         boost::shared_ptr<CAAudioUnit> unit;
-
+	
         bool initialized;
 	int32_t input_channels;
 	int32_t output_channels;
 	std::vector<std::pair<int,int> > io_configs;
 	AudioBufferList* buffers;
-	
+
+	/* XXX this should really be shared across all AUPlugin instances */
+
+	typedef std::map<std::string,std::string> PresetMap;
+	PresetMap preset_map;
+
 	UInt32 global_elements;
 	UInt32 output_elements;
 	UInt32 input_elements;
@@ -167,9 +174,10 @@ class AUPluginInfo : public PluginInfo {
   private:
 	boost::shared_ptr<CAComponentDescription> descriptor;
 	UInt32 version;
-
+	
 	static void discover_music (PluginInfoList&);
 	static void discover_fx (PluginInfoList&);
+	static void discover_generators (PluginInfoList&);
 	static void discover_by_description (PluginInfoList&, CAComponentDescription&);
 	static Glib::ustring au_cache_path ();
 
diff --git a/libs/ardour/ardour/configuration_vars.h b/libs/ardour/ardour/configuration_vars.h
index 481dad6..22ec734 100644
--- a/libs/ardour/ardour/configuration_vars.h
+++ b/libs/ardour/ardour/configuration_vars.h
@@ -78,6 +78,8 @@ CONFIG_VARIABLE (EditMode, edit_mode, "edit-mode", Slide)
 CONFIG_VARIABLE (LayerModel, layer_model, "layer-model", MoveAddHigher)
 CONFIG_VARIABLE (bool, link_region_and_track_selection, "link-region-and-track-selection", false)
 CONFIG_VARIABLE (std::string, keyboard_layout_name, "keyboard-layout-name", "ansi")
+CONFIG_VARIABLE (bool, region_boundaries_from_selected_tracks, "region-boundaries-from-selected-tracks", true)
+CONFIG_VARIABLE (bool, region_boundaries_from_onscreen_tracks, "region-boundaries-from-onscreen_tracks", true)
 
 /* monitoring, mute, solo etc */
 
diff --git a/libs/ardour/ardour/io.h b/libs/ardour/ardour/io.h
index 0e81c75..a9be3c9 100644
--- a/libs/ardour/ardour/io.h
+++ b/libs/ardour/ardour/io.h
@@ -216,6 +216,8 @@ class IO : public PBD::StatefulDestructible
 
 	
 	static void update_meters();
+	static std::string name_from_state (const XMLNode&);
+	static void set_name_in_state (XMLNode&, const std::string&);
 
   private: 
 
diff --git a/libs/ardour/ardour/plugin.h b/libs/ardour/ardour/plugin.h
index abf2867..c983afd 100644
--- a/libs/ardour/ardour/plugin.h
+++ b/libs/ardour/ardour/plugin.h
@@ -138,6 +138,9 @@ class Plugin : public PBD::StatefulDestructible
 	virtual bool save_preset(string name) = 0;
 	virtual bool load_preset (const string preset_label);
 	virtual std::vector<std::string> get_presets();
+	virtual std::string current_preset() const { return std::string(); }
+
+	static sigc::signal<bool> PresetFileExists;
 
 	virtual bool has_editor() const = 0;
 
diff --git a/libs/ardour/ardour/port.h b/libs/ardour/ardour/port.h
index 74eef70..bff6c7d 100644
--- a/libs/ardour/ardour/port.h
+++ b/libs/ardour/ardour/port.h
@@ -33,24 +33,11 @@ class AudioEngine;
 class Port : public sigc::trackable {
    public:
 	virtual ~Port() { 
-		free (_port);
+        // Port is an opage pointer, so should be be desallocated ??
 	}
 
 	Sample *get_buffer (nframes_t nframes) {
-		if (_flags & JackPortIsOutput) {
-			return _buffer;
-		} else {
-			return (Sample *) jack_port_get_buffer (_port, nframes);
-		}
-	}
-
-	void reset_buffer () {
-		if (_flags & JackPortIsOutput) {
-			_buffer = (Sample *) jack_port_get_buffer (_port, 0);
-		} else {
-			_buffer = 0; /* catch illegal attempts to use it */
-		}
-		_silent = false;
+		return (Sample *) jack_port_get_buffer (_port, nframes);
 	}
 
 	std::string name() { 
@@ -166,7 +153,7 @@ class Port : public sigc::trackable {
 	/** Assumes that the port is an audio output port */
 	void silence (nframes_t nframes, nframes_t offset) {
 		if (!_silent) {
-			memset (_buffer + offset, 0, sizeof (Sample) * nframes);
+			memset ((Sample *) jack_port_get_buffer (_port, nframes) + offset, 0, sizeof (Sample) * nframes);
 			if (offset == 0) {
 				/* XXX this isn't really true, but i am not sure
 				   how to set this correctly. we really just
@@ -190,8 +177,6 @@ class Port : public sigc::trackable {
 	
 	/* engine isn't supposed to below here */
 
-	Sample *_buffer;
-
 	/* cache these 3 from JACK so that we can
 	   access them for reconnecting.
 	*/
diff --git a/libs/ardour/ardour/route.h b/libs/ardour/ardour/route.h
index 0ac50f4..c3c92e9 100644
--- a/libs/ardour/ardour/route.h
+++ b/libs/ardour/ardour/route.h
@@ -206,6 +206,8 @@ class Route : public IO
 	int set_state(const XMLNode& node);
 	virtual XMLNode& get_template();
 
+	int save_as_template (const std::string& path, const std::string& name);
+
 	sigc::signal<void,void*> SelectedChanged;
 
 	int set_control_outs (const vector<std::string>& ports);
diff --git a/libs/ardour/ardour/session.h b/libs/ardour/ardour/session.h
index a2089b4..cba51e2 100644
--- a/libs/ardour/ardour/session.h
+++ b/libs/ardour/ardour/session.h
@@ -267,8 +267,17 @@ class Session : public PBD::StatefulDestructible
 	static string suffixed_search_path (std::string suffix, bool data);
 	static string control_protocol_path ();
 	static string template_path ();
+	static string route_template_path ();
 	static string template_dir ();
-	static void get_template_list (list<string>&);
+	static string route_template_dir ();
+	static void get_template_list (std::list<std::string>&);
+
+	struct RouteTemplateInfo {
+	  std::string name;
+	  std::string path;
+	};
+
+	static void get_route_templates (std::vector<RouteTemplateInfo>&);
 	
 	static string change_audio_path_by_name (string oldpath, string oldname, string newname, bool destructive);
 	string audio_path_from_name (string, uint32_t nchans, uint32_t chan, bool destructive);
@@ -438,7 +447,6 @@ class Session : public PBD::StatefulDestructible
 	void remove_pending_capture_state ();
 
 	static int rename_template (string old_name, string new_name);
-
 	static int delete_template (string name);
 	
 	sigc::signal<void,string> StateSaved;
@@ -495,6 +503,13 @@ class Session : public PBD::StatefulDestructible
 
 	std::list<boost::shared_ptr<AudioTrack> > new_audio_track (int input_channels, int output_channels, TrackMode mode = Normal, uint32_t how_many = 1);
 	RouteList new_audio_route (int input_channels, int output_channels, uint32_t how_many);
+	RouteList new_route_from_template (uint32_t how_many, const std::string& template_path);
+
+	/* this is a hack put in to support work on video tracks by Robin Gareus. Nobody 
+	   should assume that this works yet (February 2009)
+	*/
+
+ 	boost::shared_ptr<Route> new_video_track (string name);
 
 	void   remove_route (boost::shared_ptr<Route>);
 
@@ -696,8 +711,7 @@ class Session : public PBD::StatefulDestructible
 
 	/* flattening stuff */
 
-	boost::shared_ptr<Region> write_one_audio_track (AudioTrack&, nframes_t start, nframes_t end, bool overwrite, vector<boost::shared_ptr<AudioSource> >&,
-							 InterThreadInfo& wot);
+	boost::shared_ptr<Region> write_one_audio_track (AudioTrack&, nframes_t start, nframes_t end, bool overwrite, vector<boost::shared_ptr<AudioSource> >&, InterThreadInfo& wot, bool enable_processing = true);
 	int freeze (InterThreadInfo&);
 
 	/* session-wide solo/mute/rec-enable */
@@ -1051,7 +1065,11 @@ class Session : public PBD::StatefulDestructible
 	void process_with_events    (nframes_t);
 	void process_audition       (nframes_t);
 	int  process_export         (nframes_t, ARDOUR::AudioExportSpecification*);
-	
+
+	void block_processing() { g_atomic_int_set (&processing_prohibited, 1); }
+	void unblock_processing() { g_atomic_int_set (&processing_prohibited, 0); }
+	bool processing_blocked() const { return g_atomic_int_get (&processing_prohibited); }
+
 	/* slave tracking */
 
 	static const int delta_accumulator_size = 25;
@@ -1761,6 +1779,8 @@ class Session : public PBD::StatefulDestructible
 	/* used in ::audible_frame() */
 
 	mutable bool have_looped;
+
+	static void get_templates_from (const std::string& path, std::list<std::string> &template_names);
 };
 
 } // namespace ARDOUR
diff --git a/libs/ardour/ardour/track.h b/libs/ardour/ardour/track.h
index 4ba1b88..6a1a4e2 100644
--- a/libs/ardour/ardour/track.h
+++ b/libs/ardour/ardour/track.h
@@ -77,12 +77,14 @@ class Track : public Route
 	virtual void unfreeze () = 0;
 
 	virtual boost::shared_ptr<Region> bounce (InterThreadInfo&) = 0;
-	virtual boost::shared_ptr<Region> bounce_range (nframes_t start, nframes_t end, InterThreadInfo&) = 0;
+	virtual boost::shared_ptr<Region> bounce_range (nframes_t start, nframes_t end, InterThreadInfo&, bool enable_processing = true) = 0;
 
 	XMLNode&    get_state();
 	XMLNode&    get_template();
 	virtual int set_state(const XMLNode& node) = 0;
 
+	static void zero_diskstream_id_in_xml (XMLNode&);
+
 	PBD::Controllable& rec_enable_control() { return _rec_enable_control; }
 
 	bool record_enabled() const;
diff --git a/libs/ardour/audio_track.cc b/libs/ardour/audio_track.cc
index 0fdd523..27d4a8a 100644
--- a/libs/ardour/audio_track.cc
+++ b/libs/ardour/audio_track.cc
@@ -37,6 +37,7 @@
 #include <ardour/playlist_factory.h>
 #include <ardour/panner.h>
 #include <ardour/utils.h>
+#include <ardour/mix.h>
 
 #include "i18n.h"
 
@@ -47,6 +48,22 @@ using namespace PBD;
 AudioTrack::AudioTrack (Session& sess, string name, Route::Flag flag, TrackMode mode)
 	: Track (sess, name, flag, mode)
 {
+	use_new_diskstream ();
+}
+
+AudioTrack::AudioTrack (Session& sess, const XMLNode& node)
+	: Track (sess, node)
+{
+	_set_state (node, false);
+}
+
+AudioTrack::~AudioTrack ()
+{
+}
+
+void
+AudioTrack::use_new_diskstream ()
+{
 	AudioDiskstream::Flag dflags = AudioDiskstream::Flag (0);
 
 	if (_flags & Hidden) {
@@ -55,27 +72,17 @@ AudioTrack::AudioTrack (Session& sess, string name, Route::Flag flag, TrackMode
 		dflags = AudioDiskstream::Flag (dflags | AudioDiskstream::Recordable);
 	}
 
-	if (mode == Destructive) {
+	if (_mode == Destructive) {
 		dflags = AudioDiskstream::Flag (dflags | AudioDiskstream::Destructive);
 	}
 
-	boost::shared_ptr<AudioDiskstream> ds (new AudioDiskstream (_session, name, dflags));
+	boost::shared_ptr<AudioDiskstream> ds (new AudioDiskstream (_session, name(), dflags));
 	
 	_session.add_diskstream (ds);
 
 	set_diskstream (boost::dynamic_pointer_cast<AudioDiskstream> (ds), this);
 }
 
-AudioTrack::AudioTrack (Session& sess, const XMLNode& node)
-	: Track (sess, node)
-{
-	_set_state (node, false);
-}
-
-AudioTrack::~AudioTrack ()
-{
-}
-
 int
 AudioTrack::set_mode (TrackMode m)
 {
@@ -269,8 +276,19 @@ AudioTrack::_set_state (const XMLNode& node, bool call_base)
 	} else {
 		
 		PBD::ID id (prop->value());
-		
-		if (use_diskstream (id)) {
+		PBD::ID zero ("0");
+
+		/* this wierd hack is used when creating tracks from a template. there isn't
+		   a particularly good time to interpose between setting the first part of
+		   the track state (notably Route::set_state() and the track mode), and the
+		   second part (diskstream stuff). So, we have a special ID for the diskstream
+		   that means "you should create a new diskstream here, not look for
+		   an old one.
+		*/
+
+		if (id == zero) {
+			use_new_diskstream ();
+		} else if (use_diskstream (id)) {
 			return -1;
 		}
 	}
@@ -292,7 +310,11 @@ AudioTrack::_set_state (const XMLNode& node, bool call_base)
 
 	pending_state = const_cast<XMLNode*> (&node);
 
-	_session.StateReady.connect (mem_fun (*this, &AudioTrack::set_state_part_two));
+	if (_session.state_of_the_state() & Session::Loading) {
+		_session.StateReady.connect (mem_fun (*this, &AudioTrack::set_state_part_two));
+	} else {
+		set_state_part_two ();
+	}
 
 	return 0;
 }
@@ -353,8 +375,11 @@ AudioTrack::set_state_part_two ()
 	XMLProperty* prop;
 	LocaleGuard lg (X_("POSIX"));
 
-	/* This is called after all session state has been restored but before
-	   have been made ports and connections are established.
+	/* During session loading: this is called after all session state has been restored but before
+	   ports have been created and connections are established.
+
+	   During creation from templates: this is called after ports have been created, and connections
+	   are established.
 	*/
 
 	if (pending_state == 0) {
@@ -538,7 +563,7 @@ AudioTrack::roll (nframes_t nframes, nframes_t start_frame, nframes_t end_frame,
 	Sample* tmpb;
 	nframes_t transport_frame;
 	boost::shared_ptr<AudioDiskstream> diskstream = audio_diskstream();
-	
+
 	{
 		Glib::RWLock::ReaderLock lm (redirect_lock, Glib::TRY_LOCK);
 		if (lm.locked()) {
@@ -716,7 +741,7 @@ AudioTrack::silent_roll (nframes_t nframes, nframes_t start_frame, nframes_t end
 }
 
 int
-AudioTrack::export_stuff (vector<Sample*>& buffers, uint32_t nbufs, nframes_t start, nframes_t nframes)
+AudioTrack::export_stuff (vector<Sample*>& buffers, uint32_t nbufs, nframes_t start, nframes_t nframes, bool enable_processing)
 {
 	gain_t  gain_automation[nframes];
 	gain_t  gain_buffer[nframes];
@@ -754,6 +779,9 @@ AudioTrack::export_stuff (vector<Sample*>& buffers, uint32_t nbufs, nframes_t st
 		}
 	}
 
+	// If no processing is required, there's no need to go any further.
+	if (!enable_processing)
+		return 0;
 
 	/* note: only run inserts during export. other layers in the machinery
 	   will already have checked that there are no external port inserts.
@@ -788,10 +816,7 @@ AudioTrack::export_stuff (vector<Sample*>& buffers, uint32_t nbufs, nframes_t st
 	} else {
 
 		for (bi = buffers.begin(); bi != buffers.end(); ++bi) {
-			Sample *b = *bi;
-			for (nframes_t n = 0; n < nframes; ++n) {
-				b[n] *= this_gain;
-			}
+			apply_gain_to_buffer(*bi, nframes, this_gain);
 		}
 	}
 
@@ -825,10 +850,10 @@ AudioTrack::bounce (InterThreadInfo& itt)
 
 
 boost::shared_ptr<Region>
-AudioTrack::bounce_range (nframes_t start, nframes_t end, InterThreadInfo& itt)
+AudioTrack::bounce_range (nframes_t start, nframes_t end, InterThreadInfo& itt, bool enable_processing)
 {
 	vector<boost::shared_ptr<AudioSource> > srcs;
-	return _session.write_one_audio_track (*this, start, end, false, srcs, itt);
+	return _session.write_one_audio_track (*this, start, end, false, srcs, itt, enable_processing);
 }
 
 void
diff --git a/libs/ardour/audio_unit.cc b/libs/ardour/audio_unit.cc
index 5d9a2d8..4b0065e 100644
--- a/libs/ardour/audio_unit.cc
+++ b/libs/ardour/audio_unit.cc
@@ -18,10 +18,13 @@
 */
 
 #include <sstream>
+#include <errno.h>
+#include <string.h>
 
 #include <pbd/transmitter.h>
 #include <pbd/xml++.h>
 #include <pbd/whitespace.h>
+#include <pbd/pathscanner.h>
 
 #include <glibmm/thread.h>
 #include <glibmm/fileutils.h>
@@ -37,6 +40,7 @@
 #include <appleutility/CAAudioUnit.h>
 #include <appleutility/CAAUParameter.h>
 
+#include <CoreFoundation/CoreFoundation.h>
 #include <CoreServices/CoreServices.h>
 #include <AudioUnit/AudioUnit.h>
 
@@ -46,8 +50,19 @@ using namespace std;
 using namespace PBD;
 using namespace ARDOUR;
 
+#ifndef AU_STATE_SUPPORT
+static bool seen_get_state_message = false;
+static bool seen_set_state_message = false;
+static bool seen_loading_message = false;
+static bool seen_saving_message = false;
+#endif
+
 AUPluginInfo::CachedInfoMap AUPluginInfo::cached_info;
 
+static string preset_search_path = "/Library/Audio/Presets:/Network/Library/Audio/Presets";
+static string preset_suffix = ".aupreset";
+static bool preset_search_path_initialized = false;
+
 static OSStatus 
 _render_callback(void *userData,
 		 AudioUnitRenderActionFlags *ioActionFlags,
@@ -59,6 +74,212 @@ _render_callback(void *userData,
 	return ((AUPlugin*)userData)->render_callback (ioActionFlags, inTimeStamp, inBusNumber, inNumberFrames, ioData);
 }
 
+static int 
+save_property_list (CFPropertyListRef propertyList, Glib::ustring path)
+
+{
+	CFDataRef xmlData;
+	int fd;
+
+	// Convert the property list into XML data.
+	
+	xmlData = CFPropertyListCreateXMLData( kCFAllocatorDefault, propertyList);
+
+	if (!xmlData) {
+		error << _("Could not create XML version of property list") << endmsg;
+		return -1;
+	}
+
+	// Write the XML data to the file.
+
+	fd = open (path.c_str(), O_WRONLY|O_CREAT|O_EXCL, 0664);
+	while (fd < 0) {
+		if (errno == EEXIST) {
+			/* tell any UI's that this file already exists and ask them what to do */
+			bool overwrite = Plugin::PresetFileExists(); // EMIT SIGNAL
+			if (overwrite) {
+				fd = open (path.c_str(), O_WRONLY, 0664);
+				continue;
+			} else {
+				return 0;
+			}
+		}
+		error << string_compose (_("Cannot open preset file %1 (%2)"), path, strerror (errno)) << endmsg;
+		CFRelease (xmlData);
+		return -1;
+	}
+
+	size_t cnt = CFDataGetLength (xmlData);
+
+	if (write (fd, CFDataGetBytePtr (xmlData), cnt) != cnt) {
+		CFRelease (xmlData);
+		close (fd);
+		return -1;
+	}
+
+	close (fd);
+	return 0;
+}
+ 
+
+static CFPropertyListRef 
+load_property_list (Glib::ustring path) 
+{
+	int fd;
+	CFPropertyListRef propertyList;
+	CFDataRef         xmlData;
+	CFStringRef       errorString;
+
+	// Read the XML file.
+	
+	if ((fd = open (path.c_str(), O_RDONLY)) < 0) {
+		return propertyList;
+
+	}
+	
+	off_t len = lseek (fd, 0, SEEK_END);
+	char* buf = new char[len];
+	lseek (fd, 0, SEEK_SET);
+
+	if (read (fd, buf, len) != len) {
+		delete [] buf;
+		close (fd);
+		return propertyList;
+	}
+	
+	close (fd);
+
+	xmlData = CFDataCreateWithBytesNoCopy (kCFAllocatorDefault, (UInt8*) buf, len, kCFAllocatorNull);
+	
+	// Reconstitute the dictionary using the XML data.
+	
+	propertyList = CFPropertyListCreateFromXMLData( kCFAllocatorDefault,
+							xmlData,
+							kCFPropertyListImmutable,
+							&errorString);
+
+	CFRelease (xmlData);
+	delete [] buf;
+
+	return propertyList;
+}
+
+//-----------------------------------------------------------------------------
+static void 
+set_preset_name_in_plist (CFPropertyListRef plist, string preset_name)
+{
+	if (!plist) {
+		return;
+	}
+	CFStringRef pn = CFStringCreateWithCString (kCFAllocatorDefault, preset_name.c_str(), kCFStringEncodingUTF8);
+
+	if (CFGetTypeID (plist) == CFDictionaryGetTypeID()) {
+		CFDictionarySetValue ((CFMutableDictionaryRef)plist, CFSTR(kAUPresetNameKey), pn);
+	}
+	
+	CFRelease (pn);
+}
+
+//-----------------------------------------------------------------------------
+static std::string
+get_preset_name_in_plist (CFPropertyListRef plist)
+{
+	std::string ret;
+
+	if (!plist) {
+		return ret;
+	}
+
+	if (CFGetTypeID (plist) == CFDictionaryGetTypeID()) {
+		const void *p = CFDictionaryGetValue ((CFMutableDictionaryRef)plist, CFSTR(kAUPresetNameKey));
+		if (p) {
+			CFStringRef str = (CFStringRef) p;
+			int len = CFStringGetLength(str);
+			len =  (len * 2) + 1;
+			char local_buffer[len];
+			if (CFStringGetCString (str, local_buffer, len, kCFStringEncodingUTF8)) {
+				ret = local_buffer;
+			}
+		} 
+	}
+	return ret;
+}
+
+//--------------------------------------------------------------------------
+// general implementation for ComponentDescriptionsMatch() and ComponentDescriptionsMatch_Loosely()
+// if inIgnoreType is true, then the type code is ignored in the ComponentDescriptions
+Boolean ComponentDescriptionsMatch_General(const ComponentDescription * inComponentDescription1, const ComponentDescription * inComponentDescription2, Boolean inIgnoreType);
+Boolean ComponentDescriptionsMatch_General(const ComponentDescription * inComponentDescription1, const ComponentDescription * inComponentDescription2, Boolean inIgnoreType)
+{
+	if ( (inComponentDescription1 == NULL) || (inComponentDescription2 == NULL) )
+		return FALSE;
+
+	if ( (inComponentDescription1->componentSubType == inComponentDescription2->componentSubType) 
+			&& (inComponentDescription1->componentManufacturer == inComponentDescription2->componentManufacturer) )
+	{
+		// only sub-type and manufacturer IDs need to be equal
+		if (inIgnoreType)
+			return TRUE;
+		// type, sub-type, and manufacturer IDs all need to be equal in order to call this a match
+		else if (inComponentDescription1->componentType == inComponentDescription2->componentType)
+			return TRUE;
+	}
+
+	return FALSE;
+}
+
+//--------------------------------------------------------------------------
+// general implementation for ComponentAndDescriptionMatch() and ComponentAndDescriptionMatch_Loosely()
+// if inIgnoreType is true, then the type code is ignored in the ComponentDescriptions
+Boolean ComponentAndDescriptionMatch_General(Component inComponent, const ComponentDescription * inComponentDescription, Boolean inIgnoreType);
+Boolean ComponentAndDescriptionMatch_General(Component inComponent, const ComponentDescription * inComponentDescription, Boolean inIgnoreType)
+{
+	OSErr status;
+	ComponentDescription desc;
+
+	if ( (inComponent == NULL) || (inComponentDescription == NULL) )
+		return FALSE;
+
+	// get the ComponentDescription of the input Component
+	status = GetComponentInfo(inComponent, &desc, NULL, NULL, NULL);
+	if (status != noErr)
+		return FALSE;
+
+	// check if the Component's ComponentDescription matches the input ComponentDescription
+	return ComponentDescriptionsMatch_General(&desc, inComponentDescription, inIgnoreType);
+}
+
+//--------------------------------------------------------------------------
+// determine if 2 ComponentDescriptions are basically equal
+// (by that, I mean that the important identifying values are compared, 
+// but not the ComponentDescription flags)
+Boolean ComponentDescriptionsMatch(const ComponentDescription * inComponentDescription1, const ComponentDescription * inComponentDescription2)
+{
+	return ComponentDescriptionsMatch_General(inComponentDescription1, inComponentDescription2, FALSE);
+}
+
+//--------------------------------------------------------------------------
+// determine if 2 ComponentDescriptions have matching sub-type and manufacturer codes
+Boolean ComponentDescriptionsMatch_Loose(const ComponentDescription * inComponentDescription1, const ComponentDescription * inComponentDescription2)
+{
+	return ComponentDescriptionsMatch_General(inComponentDescription1, inComponentDescription2, TRUE);
+}
+
+//--------------------------------------------------------------------------
+// determine if a ComponentDescription basically matches that of a particular Component
+Boolean ComponentAndDescriptionMatch(Component inComponent, const ComponentDescription * inComponentDescription)
+{
+	return ComponentAndDescriptionMatch_General(inComponent, inComponentDescription, FALSE);
+}
+
+//--------------------------------------------------------------------------
+// determine if a ComponentDescription matches only the sub-type and manufacturer codes of a particular Component
+Boolean ComponentAndDescriptionMatch_Loosely(Component inComponent, const ComponentDescription * inComponentDescription)
+{
+	return ComponentAndDescriptionMatch_General(inComponent, inComponentDescription, TRUE);
+}
+
+
 AUPlugin::AUPlugin (AudioEngine& engine, Session& session, boost::shared_ptr<CAComponent> _comp)
 	: Plugin (engine, session),
 	  comp (_comp),
@@ -70,6 +291,14 @@ AUPlugin::AUPlugin (AudioEngine& engine, Session& session, boost::shared_ptr<CAC
 	  current_buffers (0),
 	frames_processed (0)
 {			
+	if (!preset_search_path_initialized) {
+		Glib::ustring p = Glib::get_home_dir();
+		p += "/Library/Audio/Presets:";
+		p += preset_search_path;
+		preset_search_path = p;
+		preset_search_path_initialized = true;
+	}
+
 	init ();
 }
 
@@ -109,7 +338,6 @@ AUPlugin::init ()
 		err = CAAudioUnit::Open (*(comp.get()), *unit);
 	} catch (...) {
 		error << _("Exception thrown during AudioUnit plugin loading - plugin ignored") << endmsg;
-		cerr << _("Exception thrown during AudioUnit plugin loading - plugin ignored") << endl;
 		throw failed_constructor();
 	}
 
@@ -762,33 +990,406 @@ AUPlugin::parameter_is_output (uint32_t) const
 XMLNode&
 AUPlugin::get_state()
 {
-	XMLNode *root = new XMLNode (state_node_name());
 	LocaleGuard lg (X_("POSIX"));
+	XMLNode *root = new XMLNode (state_node_name());
+
+#ifdef AU_STATE_SUPPORT
+	CFDataRef xmlData;
+	CFPropertyListRef propertyList;
+
+	if (unit->GetAUPreset (propertyList) != noErr) {
+		return *root;
+	}
+
+	// Convert the property list into XML data.
+	
+	xmlData = CFPropertyListCreateXMLData( kCFAllocatorDefault, propertyList);
+
+	if (!xmlData) {
+		error << _("Could not create XML version of property list") << endmsg;
+		return *root;
+	}
+
+	/* re-parse XML bytes to create a libxml++ XMLTree that we can merge into
+	   our state node. GACK!
+	*/
+
+	XMLTree t;
+
+	if (t.read_buffer (string ((const char*) CFDataGetBytePtr (xmlData), CFDataGetLength (xmlData)))) {
+		if (t.root()) {
+			root->add_child_copy (*t.root());
+		}
+	}
+
+	CFRelease (xmlData);
+	CFRelease (propertyList);
+#else
+	if (!seen_get_state_message) {
+		info << _("Saving AudioUnit settings is not supported in this build of Ardour. Consider paying for a newer version")
+		     << endmsg;
+		seen_get_state_message = true;
+	}
+#endif
+	
 	return *root;
 }
 
 int
 AUPlugin::set_state(const XMLNode& node)
 {
-	return -1;
+#ifdef AU_STATE_SUPPORT
+	int ret = -1;
+	CFPropertyListRef propertyList;
+	LocaleGuard lg (X_("POSIX"));
+
+	if (node.name() != state_node_name()) {
+		error << _("Bad node sent to AUPlugin::set_state") << endmsg;
+		return -1;
+	}
+	
+	if (node.children().empty()) {
+		return -1;
+	}
+
+	XMLNode* top = node.children().front();
+	XMLNode* copy = new XMLNode (*top);
+
+	XMLTree t;
+	t.set_root (copy);
+
+	const string& xml = t.write_buffer ();
+	CFDataRef xmlData = CFDataCreateWithBytesNoCopy (kCFAllocatorDefault, (UInt8*) xml.data(), xml.length(), kCFAllocatorNull);
+	CFStringRef errorString;
+
+	propertyList = CFPropertyListCreateFromXMLData( kCFAllocatorDefault,
+							xmlData,
+							kCFPropertyListImmutable,
+							&errorString);
+
+	CFRelease (xmlData);
+	
+	if (propertyList) {
+		if (unit->SetAUPreset (propertyList) == noErr) {
+			ret = 0;
+		} 
+		CFRelease (propertyList);
+	}
+	
+	return ret;
+#else
+	if (!seen_set_state_message) {
+		info << _("Restoring AudioUnit settings is not supported in this build of Ardour. Consider paying for a newer version")
+		     << endmsg;
+	}
+	return 0;
+#endif
 }
 
 bool
-AUPlugin::save_preset (string name)
+AUPlugin::load_preset (const string preset_label)
 {
-	return false;
+#ifdef AU_STATE_SUPPORT
+	bool ret = false;
+	CFPropertyListRef propertyList;
+	Glib::ustring path;
+	PresetMap::iterator x = preset_map.find (preset_label);
+
+	if (x == preset_map.end()) {
+		return false;
+	}
+	
+	if ((propertyList = load_property_list (x->second)) != 0) {
+		if (unit->SetAUPreset (propertyList) == noErr) {
+			ret = true;
+		}
+		CFRelease(propertyList);
+	}
+	
+	return ret;
+#else
+	if (!seen_loading_message) {
+		info << _("Loading AudioUnit presets is not supported in this build of Ardour. Consider paying for a newer version")
+		     << endmsg;
+		seen_loading_message = true;
+	}
+	return true;
+#endif
 }
 
 bool
-AUPlugin::load_preset (const string preset_label)
+AUPlugin::save_preset (string preset_name)
 {
+#ifdef AU_STATE_SUPPORT
+	CFPropertyListRef propertyList;
+	vector<Glib::ustring> v;
+	Glib::ustring user_preset_path;
+	bool ret = true;
+
+	std::string m = maker();
+	std::string n = name();
+	
+	strip_whitespace_edges (m);
+	strip_whitespace_edges (n);
+
+	v.push_back (Glib::get_home_dir());
+	v.push_back ("Library");
+	v.push_back ("Audio");
+	v.push_back ("Presets");
+	v.push_back (m);
+	v.push_back (n);
+	
+	user_preset_path = Glib::build_filename (v);
+
+	if (g_mkdir_with_parents (user_preset_path.c_str(), 0775) < 0) {
+		error << string_compose (_("Cannot create user plugin presets folder (%1)"), user_preset_path) << endmsg;
+		return false;
+	}
+
+	if (unit->GetAUPreset (propertyList) != noErr) {
+		return false;
+	}
+
+	// add the actual preset name */
+
+	v.push_back (preset_name + preset_suffix);
+		
+	// rebuild
+
+	user_preset_path = Glib::build_filename (v);
+	
+	set_preset_name_in_plist (propertyList, preset_name);
+
+	if (save_property_list (propertyList, user_preset_path)) {
+		error << string_compose (_("Saving plugin state to %1 failed"), user_preset_path) << endmsg;
+		ret = false;
+	}
+
+	CFRelease(propertyList);
+
+	return ret;
+#else
+	if (!seen_saving_message) {
+		info << _("Saving AudioUnit presets is not supported in this build of Ardour. Consider paying for a newer version")
+		     << endmsg;
+		seen_saving_message = true;
+	}
 	return false;
+#endif
+}
+
+//-----------------------------------------------------------------------------
+// this is just a little helper function used by GetAUComponentDescriptionFromPresetFile()
+static SInt32 
+GetDictionarySInt32Value(CFDictionaryRef inAUStateDictionary, CFStringRef inDictionaryKey, Boolean * outSuccess)
+{
+	CFNumberRef cfNumber;
+	SInt32 numberValue = 0;
+	Boolean dummySuccess;
+
+	if (outSuccess == NULL)
+		outSuccess = &dummySuccess;
+	if ( (inAUStateDictionary == NULL) || (inDictionaryKey == NULL) )
+	{
+		*outSuccess = FALSE;
+		return 0;
+	}
+
+	cfNumber = (CFNumberRef) CFDictionaryGetValue(inAUStateDictionary, inDictionaryKey);
+	if (cfNumber == NULL)
+	{
+		*outSuccess = FALSE;
+		return 0;
+	}
+	*outSuccess = CFNumberGetValue(cfNumber, kCFNumberSInt32Type, &numberValue);
+	if (*outSuccess)
+		return numberValue;
+	else
+		return 0;
+}
+
+static OSStatus 
+GetAUComponentDescriptionFromStateData(CFPropertyListRef inAUStateData, ComponentDescription * outComponentDescription)
+{
+        CFDictionaryRef auStateDictionary;
+        ComponentDescription tempDesc = {0};
+        SInt32 versionValue;
+        Boolean gotValue;
+
+        if ( (inAUStateData == NULL) || (outComponentDescription == NULL) )
+                return paramErr;
+	
+        // the property list for AU state data must be of the dictionary type
+        if (CFGetTypeID(inAUStateData) != CFDictionaryGetTypeID()) {
+                return kAudioUnitErr_InvalidPropertyValue;
+	}
+
+        auStateDictionary = (CFDictionaryRef)inAUStateData;
+
+        // first check to make sure that the version of the AU state data is one that we know understand
+        // XXX should I really do this?  later versions would probably still hold these ID keys, right?
+        versionValue = GetDictionarySInt32Value(auStateDictionary, CFSTR(kAUPresetVersionKey), &gotValue);
+
+        if (!gotValue) {
+                return kAudioUnitErr_InvalidPropertyValue;
+	}
+#define kCurrentSavedStateVersion 0
+        if (versionValue != kCurrentSavedStateVersion) {
+                return kAudioUnitErr_InvalidPropertyValue;
+	}
+
+        // grab the ComponentDescription values from the AU state data
+        tempDesc.componentType = (OSType) GetDictionarySInt32Value(auStateDictionary, CFSTR(kAUPresetTypeKey), NULL);
+        tempDesc.componentSubType = (OSType) GetDictionarySInt32Value(auStateDictionary, CFSTR(kAUPresetSubtypeKey), NULL);
+        tempDesc.componentManufacturer = (OSType) GetDictionarySInt32Value(auStateDictionary, CFSTR(kAUPresetManufacturerKey), NULL);
+        // zero values are illegit for specific ComponentDescriptions, so zero for any value means that there was an error
+        if ( (tempDesc.componentType == 0) || (tempDesc.componentSubType == 0) || (tempDesc.componentManufacturer == 0) )
+                return kAudioUnitErr_InvalidPropertyValue;
+
+        *outComponentDescription = tempDesc;
+        return noErr;
+}
+
+
+static bool au_preset_filter (const string& str, void* arg)
+{
+	/* Not a dotfile, has a prefix before a period, suffix is aupreset */
+
+	bool ret;
+	
+	ret = (str[0] != '.' && str.length() > 9 && str.find (preset_suffix) == (str.length() - preset_suffix.length()));
+
+	if (ret && arg) {
+
+		/* check the preset file path name against this plugin
+		   ID. The idea is that all preset files for this plugin
+		   include "<manufacturer>/<plugin-name>" in their path.
+		*/
+
+		Plugin* p = (Plugin *) arg;
+		string match = p->maker();
+		match += '/';
+		match += p->name();
+
+		ret = str.find (match) != string::npos;
+
+		if (ret == false) {
+			string m = p->maker ();
+			string n = p->name ();
+			strip_whitespace_edges (m);
+			strip_whitespace_edges (n);
+			match = m;
+			match += '/';
+			match += n;
+			
+			ret = str.find (match) != string::npos;
+		}
+	}
+	
+	return ret;
+}
+
+bool 
+check_and_get_preset_name (Component component, const string& pathstr, string& preset_name)
+{
+        OSStatus status;
+        CFPropertyListRef plist;
+	ComponentDescription presetDesc;
+	bool ret = false;
+		
+	plist = load_property_list (pathstr);
+
+	if (!plist) {
+		return ret;
+	}
+	
+	// get the ComponentDescription from the AU preset file
+	
+	status = GetAUComponentDescriptionFromStateData(plist, &presetDesc);
+	
+	if (status == noErr) {
+		if (ComponentAndDescriptionMatch_Loosely(component, &presetDesc)) {
+
+			/* try to get the preset name from the property list */
+
+			if (CFGetTypeID(plist) == CFDictionaryGetTypeID()) {
+
+				const void* psk = CFDictionaryGetValue ((CFMutableDictionaryRef)plist, CFSTR(kAUPresetNameKey));
+
+				if (psk) {
+
+					const char* p = CFStringGetCStringPtr ((CFStringRef) psk, kCFStringEncodingUTF8);
+
+					if (!p) {
+						char buf[PATH_MAX+1];
+
+						if (CFStringGetCString ((CFStringRef)psk, buf, sizeof (buf), kCFStringEncodingUTF8)) {
+							preset_name = buf;
+						}
+					}
+				}
+			}
+		} 
+	}
+
+	CFRelease (plist);
+
+	return true;
+}
+
+std::string
+AUPlugin::current_preset() const
+{
+	string preset_name;
+	
+#ifdef AU_STATE_SUPPORT
+	CFPropertyListRef propertyList;
+
+	if (unit->GetAUPreset (propertyList) == noErr) {
+		preset_name = get_preset_name_in_plist (propertyList);
+		CFRelease(propertyList);
+	}
+#endif
+	return preset_name;
 }
 
 vector<string>
 AUPlugin::get_presets ()
 {
+	vector<string*>* preset_files;
 	vector<string> presets;
+	PathScanner scanner;
+
+	preset_files = scanner (preset_search_path, au_preset_filter, this, true, true, -1, true);
+	
+	if (!preset_files) {
+		return presets;
+	}
+
+	for (vector<string*>::iterator x = preset_files->begin(); x != preset_files->end(); ++x) {
+
+		string path = *(*x);
+		string preset_name;
+
+		/* make an initial guess at the preset name using the path */
+
+		preset_name = Glib::path_get_basename (path);
+		preset_name = preset_name.substr (0, preset_name.find_last_of ('.'));
+
+		/* check that this preset file really matches this plugin
+		   and potentially get the "real" preset name from
+		   within the file.
+		*/
+
+		if (check_and_get_preset_name (get_comp()->Comp(), path, preset_name)) {
+			presets.push_back (preset_name);
+			preset_map[preset_name] = path;
+		} 
+
+		delete *x;
+	}
+
+	delete preset_files;
 	
 	return presets;
 }
@@ -853,6 +1454,7 @@ AUPluginInfo::discover ()
 	
 	discover_fx (plugs);
 	discover_music (plugs);
+	discover_generators (plugs);
 
 	return plugs;
 }
@@ -884,6 +1486,19 @@ AUPluginInfo::discover_fx (PluginInfoList& plugs)
 }
 
 void
+AUPluginInfo::discover_generators (PluginInfoList& plugs)
+{
+	CAComponentDescription desc;
+	desc.componentFlags = 0;
+	desc.componentFlagsMask = 0;
+	desc.componentSubType = 0;
+	desc.componentManufacturer = 0;
+	desc.componentType = kAudioUnitType_Generator;
+
+	discover_by_description (plugs, desc);
+}
+
+void
 AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescription& desc)
 {
 	Component comp = 0;
@@ -905,6 +1520,13 @@ AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescrip
 		case kAudioUnitType_OfflineEffect:
 		case kAudioUnitType_FormatConverter:
 			continue;
+		case kAudioUnitType_Output:
+		case kAudioUnitType_MusicDevice:
+		case kAudioUnitType_MusicEffect:
+		case kAudioUnitType_Effect:
+		case kAudioUnitType_Mixer:
+		case kAudioUnitType_Generator:
+			break;
 		default:
 			break;
 		}
@@ -914,15 +1536,12 @@ AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescrip
 		case kAudioUnitSubType_SystemOutput:
 		case kAudioUnitSubType_GenericOutput:
 		case kAudioUnitSubType_AUConverter:
+			/* we don't want output units here */
 			continue;
 			break;
 
 		case kAudioUnitSubType_DLSSynth:
-			info->category = "DLSSynth";
-			break;
-
-		case kAudioUnitType_MusicEffect:
-			info->category = "MusicEffect";
+			info->category = "DLS Synth";
 			break;
 
 		case kAudioUnitSubType_Varispeed:
@@ -934,55 +1553,59 @@ AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescrip
 			break;
 
 		case kAudioUnitSubType_LowPassFilter:
-			info->category = "LowPassFilter";
+			info->category = "Low-pass Filter";
 			break;
 
 		case kAudioUnitSubType_HighPassFilter:
-			info->category = "HighPassFilter";
+			info->category = "High-pass Filter";
 			break;
 
 		case kAudioUnitSubType_BandPassFilter:
-			info->category = "BandPassFilter";
+			info->category = "Band-pass Filter";
 			break;
 
 		case kAudioUnitSubType_HighShelfFilter:
-			info->category = "HighShelfFilter";
+			info->category = "High-shelf Filter";
 			break;
 
 		case kAudioUnitSubType_LowShelfFilter:
-			info->category = "LowShelfFilter";
+			info->category = "Low-shelf Filter";
 			break;
 
 		case kAudioUnitSubType_ParametricEQ:
-			info->category = "ParametricEQ";
+			info->category = "Parametric EQ";
 			break;
 
 		case kAudioUnitSubType_GraphicEQ:
-			info->category = "GraphicEQ";
+			info->category = "Graphic EQ";
 			break;
 
 		case kAudioUnitSubType_PeakLimiter:
-			info->category = "PeakLimiter";
+			info->category = "Peak Limiter";
 			break;
 
 		case kAudioUnitSubType_DynamicsProcessor:
-			info->category = "DynamicsProcessor";
+			info->category = "Dynamics Processor";
 			break;
 
 		case kAudioUnitSubType_MultiBandCompressor:
-			info->category = "MultiBandCompressor";
+			info->category = "Multiband Compressor";
 			break;
 
 		case kAudioUnitSubType_MatrixReverb:
-			info->category = "MatrixReverb";
+			info->category = "Matrix Reverb";
 			break;
 
-		case kAudioUnitType_Mixer:
-			info->category = "Mixer";
+		case kAudioUnitSubType_SampleDelay:
+			info->category = "Sample Delay";
+			break;
+
+		case kAudioUnitSubType_Pitch:
+			info->category = "Pitch";
 			break;
 
-		case kAudioUnitSubType_StereoMixer:
-			info->category = "StereoMixer";
+		case kAudioUnitSubType_NetSend:
+			info->category = "Net Sender";
 			break;
 
 		case kAudioUnitSubType_3DMixer:
@@ -993,6 +1616,19 @@ AUPluginInfo::discover_by_description (PluginInfoList& plugs, CAComponentDescrip
 			info->category = "MatrixMixer";
 			break;
 
+		case kAudioUnitSubType_ScheduledSoundPlayer:
+			info->category = "Scheduled Sound Player";
+			break;
+
+
+		case kAudioUnitSubType_AudioFilePlayer:
+			info->category = "Audio File Player";
+			break;
+
+		case kAudioUnitSubType_NetReceive:
+			info->category = "Net Receiver";
+			break;
+
 		default:
 			info->category = "";
 		}
diff --git a/libs/ardour/audioanalyser.cc b/libs/ardour/audioanalyser.cc
index ab3691d..3123147 100644
--- a/libs/ardour/audioanalyser.cc
+++ b/libs/ardour/audioanalyser.cc
@@ -1,5 +1,5 @@
 #include <cstring>
-#include <vamp-sdk/hostext/PluginLoader.h>
+#include <vamp-hostsdk/PluginLoader.h>
 #include <glibmm/miscutils.h>
 #include <glibmm/fileutils.h>
 #include <glib/gstdio.h> // for g_remove()
diff --git a/libs/ardour/audioengine.cc b/libs/ardour/audioengine.cc
index ffaf874..cc74b92 100644
--- a/libs/ardour/audioengine.cc
+++ b/libs/ardour/audioengine.cc
@@ -32,9 +32,6 @@
 #include <ardour/session.h>
 #include <ardour/cycle_timer.h>
 #include <ardour/utils.h>
-#ifdef VST_SUPPORT
-#include <fst.h>
-#endif
 
 #include <ardour/timestamps.h>
 
@@ -453,7 +450,7 @@ AudioEngine::set_session (Session *s)
 		/* page in as much of the session process code as we
 		   can before we really start running.
 		*/
-		
+
 		session->process (blocksize);
 		session->process (blocksize);
 		session->process (blocksize);
@@ -496,9 +493,9 @@ AudioEngine::port_registration_failure (const std::string& portname)
 	string reason;
 	
 	if (p) {
-		reason = _("a port with this name already exists: check for duplicated track/bus names");
+		reason = string_compose (_("a port with the name \"%1\" already exists: check for duplicated track/bus names"), portname);
 	} else {
-		reason = _("unknown error");
+		reason = _("No more JACK ports are available. You will need to stop Ardour and restart JACK with ports if you need this many tracks.");
 	}
 	
 	throw PortRegistrationFailure (string_compose (_("AudioEngine: cannot register port \"%1\": %2"), portname, reason).c_str());
diff --git a/libs/ardour/audioregion.cc b/libs/ardour/audioregion.cc
index 287d9db..9a62747 100644
--- a/libs/ardour/audioregion.cc
+++ b/libs/ardour/audioregion.cc
@@ -509,14 +509,18 @@ AudioRegion::read_at (Sample *buf, Sample *mixdown_buffer, float *gain_buffer, n
 		      uint32_t chan_n, nframes_t read_frames, nframes_t skip_frames) const
 {
 	/* regular diskstream/butler read complete with fades etc */
-	return _read_at (sources, _length, buf, mixdown_buffer, gain_buffer, file_position, cnt, chan_n, read_frames, skip_frames, ReadOps (~0));
+	return _read_at (sources, _length, buf, mixdown_buffer, gain_buffer, file_position, cnt, 
+			 chan_n, read_frames, skip_frames, ReadOps (~0));
 }
 
 nframes_t
 AudioRegion::master_read_at (Sample *buf, Sample *mixdown_buffer, float *gain_buffer, nframes_t position, 
 			     nframes_t cnt, uint32_t chan_n) const
 {
-	return _read_at (master_sources, master_sources.front()->length(), buf, mixdown_buffer, gain_buffer, position, cnt, chan_n, 0, 0);
+	/* do not read gain/scaling/fades and do not count this disk i/o in statistics */
+
+	return _read_at (master_sources, master_sources.front()->length(), buf, mixdown_buffer, 
+			 gain_buffer, position, cnt, chan_n, 0, 0, ReadOps (0));
 }
 
 nframes_t
diff --git a/libs/ardour/automation_event.cc b/libs/ardour/automation_event.cc
index 44cba83..d5a7d50 100644
--- a/libs/ardour/automation_event.cc
+++ b/libs/ardour/automation_event.cc
@@ -1250,6 +1250,8 @@ AutomationList::serialize_events ()
 {
 	XMLNode* node = new XMLNode (X_("events"));
 	stringstream str;
+	
+	str.precision(15);  //10 digits is enough digits for 24 hours at 96kHz
 
 	for (iterator xx = events.begin(); xx != events.end(); ++xx) {
 		str << (double) (*xx)->when;
diff --git a/libs/ardour/crossfade.cc b/libs/ardour/crossfade.cc
index f0cfb9e..7a24404 100644
--- a/libs/ardour/crossfade.cc
+++ b/libs/ardour/crossfade.cc
@@ -162,6 +162,12 @@ Crossfade::Crossfade (const Playlist& playlist, XMLNode& node)
 	if (set_state (node)) {
 		throw failed_constructor();
 	}
+
+	/* we should not need to do this here, since all values were set via XML. however
+	   some older sessions may have bugs and this allows us to fix them.
+	*/
+	
+	update ();
 }
 
 Crossfade::Crossfade (const Crossfade &orig, boost::shared_ptr<AudioRegion> newin, boost::shared_ptr<AudioRegion> newout)
@@ -468,11 +474,11 @@ Crossfade::update ()
 		break;
 		
 	case EndOfIn:
-		_position = _in->last_frame() - _length;
+		_position = _in->last_frame() - _length + 1;
 		break;
 		
 	case EndOfOut:
-		_position = _out->last_frame() - _length;
+		_position = _out->last_frame() - _length + 1;
 	}
 
 	return true;
diff --git a/libs/ardour/globals.cc b/libs/ardour/globals.cc
index e509d8b..6d406fb 100644
--- a/libs/ardour/globals.cc
+++ b/libs/ardour/globals.cc
@@ -330,15 +330,15 @@ ARDOUR::init (bool use_vst, bool try_optimization)
 #endif
 
 #ifdef VST_SUPPORT
-	if (Config->get_use_vst() && fst_init ()) {
-		return -1;
+	if (Config->get_use_vst() && fst_init (0)) {
+	        return -1;
 	}
 #endif
 
 #ifdef HAVE_AUDIOUNITS
 	AUPluginInfo::load_cached_info ();
 #endif
-	
+
 	/* Make VAMP look in our library ahead of anything else */
 
 	char *p = getenv ("VAMP_PATH");
@@ -378,6 +378,9 @@ ARDOUR::cleanup ()
 	delete Library;
 	lrdf_cleanup ();
 	delete &ControlProtocolManager::instance();
+#ifdef VST_SUPPORT
+	fst_exit ();
+#endif
 	return 0;
 }
 
@@ -412,7 +415,7 @@ ARDOUR::new_change ()
 string
 ARDOUR::get_ardour_revision ()
 {
-	return "$Rev: 4214 $";
+	return "$Rev: 4889 $";
 }
 
 string
diff --git a/libs/ardour/insert.cc b/libs/ardour/insert.cc
index be4de27..e748e4b 100644
--- a/libs/ardour/insert.cc
+++ b/libs/ardour/insert.cc
@@ -281,6 +281,8 @@ PluginInsert::connect_and_run (vector<Sample*>& bufs, uint32_t nbufs, nframes_t
 	   be able to handle in-place processing.
 	*/
 
+	// cerr << "Connect and run for " << _plugins[0]->name() << " auto ? " << with_auto << " nf = " << nframes << " off = " << offset << endl;
+	
 	if (with_auto) {
 
 		vector<AutomationList*>::iterator li;
@@ -292,23 +294,26 @@ PluginInsert::connect_and_run (vector<Sample*>& bufs, uint32_t nbufs, nframes_t
 
 			if (alist && alist->automation_playback()) {
 				bool valid;
-
+				
 				float val = alist->rt_safe_eval (now, valid);				
 
 				if (valid) {
 					/* set the first plugin, the others will be set via signals */
+					// cerr << "\t@ " << now << " param[" << n << "] = " << val << endl;
 					_plugins[0]->set_parameter (n, val);
 				}
 
 			} 
 		}
-	}
+	} 
 
 	for (vector<boost::shared_ptr<Plugin> >::iterator i = _plugins.begin(); i != _plugins.end(); ++i) {
+		// cerr << "\trun C&R with in = " << in_index << " out = " << out_index << " nf = " << nframes << " off = " << offset << endl;
 		(*i)->connect_and_run (bufs, nbufs, in_index, out_index, nframes, offset);
 	}
-
+	
 	/* leave remaining channel buffers alone */
+	// cerr << "--- and out\n";
 }
 
 void
@@ -438,10 +443,15 @@ PluginInsert::automation_run (vector<Sample *>& bufs, uint32_t nbufs, nframes_t
  		connect_and_run (bufs, nbufs, cnt, offset, true, now);
  		
  		nframes -= cnt;
- 		offset += cnt;
 		now += cnt;
 		buffer_correct += cnt;
 
+		/* we are going to advance the buffer pointers by "cnt" so there
+		   is no reason to specify a non-zero offset anymore.
+		*/
+
+ 		offset = 0;
+		
 		for (uint32_t i = 0; i < nbufs; i++) {
 			bufs[i] += cnt;
 		}
@@ -679,8 +689,7 @@ PluginInsert::set_state(const XMLNode& node)
 		 */
 		
 		if (type == ARDOUR::VST) {
-			if (prop = node.property ("id")) {
-			}
+			prop = node.property ("id");
 		}
 #endif		
 		/* recheck  */
diff --git a/libs/ardour/io.cc b/libs/ardour/io.cc
index 865814b..4a993ca 100644
--- a/libs/ardour/io.cc
+++ b/libs/ardour/io.cc
@@ -2806,4 +2806,24 @@ IO::set_active (bool yn)
 	 active_changed(); /* EMIT SIGNAL */
 }
 
+string
+IO::name_from_state (const XMLNode& node)
+{
+	const XMLProperty* prop;
+	
+	if ((prop = node.property ("name")) != 0) {
+		return prop->value();
+	} 
+	
+	return string();
+}
 
+void
+IO::set_name_in_state (XMLNode& node, const string& new_name)
+{
+	const XMLProperty* prop;
+	
+	if ((prop = node.property ("name")) != 0) {
+		node.add_property ("name", new_name);
+	} 
+}
diff --git a/libs/ardour/ladspa_plugin.cc b/libs/ardour/ladspa_plugin.cc
index 9289899..6a27b85 100644
--- a/libs/ardour/ladspa_plugin.cc
+++ b/libs/ardour/ladspa_plugin.cc
@@ -523,14 +523,14 @@ LadspaPlugin::connect_and_run (vector<Sample*>& bufs, uint32_t nbufs, int32_t& i
 	while (port_index < parameter_count()) {
 		if (LADSPA_IS_PORT_AUDIO (port_descriptor(port_index))) {
 			if (LADSPA_IS_PORT_INPUT (port_descriptor(port_index))) {
-				connect_port (port_index, bufs[min((uint32_t) in_index,nbufs - 1)]);
+				connect_port (port_index, bufs[min((uint32_t) in_index,nbufs - 1)] + offset);
 				//cerr << this << ' ' << name() << " @ " << offset << " inport " << in_index << " = buf " 
 				//     << min((uint32_t)in_index,nbufs) << " = " << &bufs[min((uint32_t)in_index,nbufs)][offset] << endl;
 				in_index++;
 
 
 			} else if (LADSPA_IS_PORT_OUTPUT (port_descriptor (port_index))) {
-				connect_port (port_index, bufs[min((uint32_t) out_index,nbufs - 1)]);
+				connect_port (port_index, bufs[min((uint32_t) out_index,nbufs - 1)] + offset);
 				// cerr << this << ' ' << name() << " @ " << offset << " outport " << out_index << " = buf " 
 				//     << min((uint32_t)out_index,nbufs) << " = " << &bufs[min((uint32_t)out_index,nbufs)][offset] << endl;
 				out_index++;
diff --git a/libs/ardour/lv2_plugin.cc b/libs/ardour/lv2_plugin.cc
index 32160ab..10648c3 100644
--- a/libs/ardour/lv2_plugin.cc
+++ b/libs/ardour/lv2_plugin.cc
@@ -425,11 +425,11 @@ LV2Plugin::connect_and_run (vector<Sample*>& bufs, uint32_t nbufs, int32_t& in_i
 		if (parameter_is_audio(port_index)) {
 			if (parameter_is_input(port_index)) {
 				slv2_instance_connect_port(_instance, port_index,
-						bufs[min((uint32_t)in_index, nbufs - 1)]);
+							   bufs[min((uint32_t)in_index, nbufs - 1)] + offset);
 				in_index++;
 			} else if (parameter_is_output(port_index)) {
 				slv2_instance_connect_port(_instance, port_index,
-						bufs[min((uint32_t)out_index, nbufs - 1)]);
+							   bufs[min((uint32_t)out_index, nbufs - 1)] + offset);
 				out_index++;
 			}
 		}
diff --git a/libs/ardour/osc.cc b/libs/ardour/osc.cc
index 384e77a..ab611d0 100644
--- a/libs/ardour/osc.cc
+++ b/libs/ardour/osc.cc
@@ -241,7 +241,7 @@ OSC::init_osc_thread ()
 	pthread_attr_init(&attr);
 	pthread_attr_setstacksize(&attr, 500000);
 
-	pthread_create (&_osc_thread, &attr, &OSC::_osc_receiver, this);
+	pthread_create_and_store (X_("OSC"), &_osc_thread, &attr, &OSC::_osc_receiver, this);
 	if (!_osc_thread) {
 		return false;
 	}
diff --git a/libs/ardour/playlist.cc b/libs/ardour/playlist.cc
index 9052f87..9960074 100644
--- a/libs/ardour/playlist.cc
+++ b/libs/ardour/playlist.cc
@@ -1571,7 +1571,8 @@ Playlist::find_next_region (nframes_t frame, RegionPoint point, int dir)
 			pos = r->last_frame ();
 			break;
 		case SyncPoint:
-			pos = r->adjust_to_sync (r->first_frame());
+			pos = r->sync_position ();
+			// r->adjust_to_sync (r->first_frame());
 			break;
 		}
 
diff --git a/libs/ardour/plugin.cc b/libs/ardour/plugin.cc
index 9fd1707..79f17ff 100644
--- a/libs/ardour/plugin.cc
+++ b/libs/ardour/plugin.cc
@@ -58,6 +58,8 @@
 using namespace ARDOUR;
 using namespace PBD;
 
+sigc::signal<bool> Plugin::PresetFileExists;
+
 Plugin::Plugin (AudioEngine& e, Session& s)
 	: _engine (e), _session (s)
 {
diff --git a/libs/ardour/plugin_manager.cc b/libs/ardour/plugin_manager.cc
index d059f48..a069dd1 100644
--- a/libs/ardour/plugin_manager.cc
+++ b/libs/ardour/plugin_manager.cc
@@ -360,7 +360,23 @@ PluginManager::ladspa_discover (string path)
 			}
 		}
 
-		_ladspa_plugin_info.push_back (info);
+		if(_ladspa_plugin_info.empty()){
+			_ladspa_plugin_info.push_back (info);
+		}
+
+		//Ensure that the plugin is not already in the plugin list.
+
+		bool found = false;
+
+		for (PluginInfoList::const_iterator i = _ladspa_plugin_info.begin(); i != _ladspa_plugin_info.end(); ++i) {
+			if(0 == info->unique_id.compare((*i)->unique_id)){
+			      found = true;
+			}
+		}
+
+		if(!found){
+		    _ladspa_plugin_info.push_back (info);
+		}
 	}
 
 // GDB WILL NOT LIKE YOU IF YOU DO THIS
@@ -482,6 +498,7 @@ PluginManager::vst_discover_from_path (string path)
 
 	if (plugin_objects) {
 		for (x = plugin_objects->begin(); x != plugin_objects->end (); ++x) {
+			std::cerr << " discovering " << **x << std::endl;
 			vst_discover (**x);
 		}
 	}
@@ -522,7 +539,7 @@ PluginManager::vst_discover (string path)
 	info->unique_id = buf;
 	info->category = "VST";
 	info->path = path;
-	// need to set info->creator but FST doesn't provide it
+	info->creator = finfo->creator;
 	info->index = 0;
 	info->n_inputs = finfo->numInputs;
 	info->n_outputs = finfo->numOutputs;
diff --git a/libs/ardour/po/es_ES.po b/libs/ardour/po/es_ES.po
new file mode 100644
index 0000000..c26c3c8
--- /dev/null
+++ b/libs/ardour/po/es_ES.po
@@ -0,0 +1,2168 @@
+# Spanish Language Translation for libardour
+# Copyright (C) 2009 "Paul Davis"
+# This file is distributed under the same license as the libardour package.
+# David Täht <d at teklibre.com>, 2009
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Ardour\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: 2009-02-23 22:49-0600\n"
+"PO-Revision-Date: \n"
+"Last-Translator: Grupo de Traducción al Español <traductores at teklibre.com>\n"
+"Language-Team: Grupo de Traducción al Español <traductores at teklibre.com>\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=utf-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"X-Poedit-Language: Spanish\n"
+"X-Poedit-SourceCharset: utf-8\n"
+
+#: libs/ardour/audioanalyser.cc:29
+msgid "cannot load VAMP plugin \"%1\""
+msgstr "no se puede cargar el plugin VAMP"
+
+#: libs/ardour/audioanalyser.cc:49
+msgid "VAMP Plugin \"%1\" could not be loaded"
+msgstr "el plugin VAMP \"%1\" no pudo ser cargado"
+
+#: libs/ardour/audio_diskstream.cc:249
+msgid "AudioDiskstream: Playlist \"%1\" isn't an audio playlist"
+msgstr "AudioDiskstream %1: La lista de reproducción \"%1\" no es una lista de reproducción de audio."
+
+#: libs/ardour/audio_diskstream.cc:302
+msgid "AudioDiskstream %1: there is no existing playlist to make a copy of!"
+msgstr "AudioDiskstream %1: ¡no hay ninguna lista de reproducción para copiar!"
+
+#: libs/ardour/audio_diskstream.cc:937
+#: libs/ardour/audio_diskstream.cc:948
+msgid "AudioDiskstream %1: when refilling, cannot read %2 from playlist at frame %3"
+msgstr "AudioDiskstream %1: al rellenar, no se puede leer %2 de la lista de reproducción en el cuadro %3."
+
+#: libs/ardour/audio_diskstream.cc:1096
+msgid "AudioDiskstream %1: cannot read %2 from playlist at frame %3"
+msgstr "AudioDiskstream %1: no se puede leer %2 de la lista de reproducción en el cuadro %3."
+
+#: libs/ardour/audio_diskstream.cc:1138
+msgid "AudioDiskstream %1: cannot read xfade samples %2 from playlist at frame %3"
+msgstr ""
+
+#: libs/ardour/audio_diskstream.cc:1491
+#: libs/ardour/audio_diskstream.cc:1508
+msgid "AudioDiskstream %1: cannot write to disk"
+msgstr "AudioDiskstream %1: no se puede escribir en el disco."
+
+#: libs/ardour/audio_diskstream.cc:1553
+msgid "AudioDiskstream \"%1\": cannot flush captured data to disk!"
+msgstr ""
+
+#: libs/ardour/audio_diskstream.cc:1641
+msgid "%1: could not create region for complete audio file"
+msgstr "%1: no se pudo crear la región para el archivo de audio completo"
+
+#: libs/ardour/audio_diskstream.cc:1666
+msgid "AudioDiskstream: could not create region for captured audio!"
+msgstr "AudioDiskstream: no pudo crear región para el audio capturado!"
+
+#: libs/ardour/audio_diskstream.cc:1774
+msgid "programmer error: %1"
+msgstr "error de programador: %1"
+
+#: libs/ardour/audio_diskstream.cc:2051
+msgid "AudioDiskstream: channel %1 out of range"
+msgstr "AudioDiskstream: canal %1 fuera de rango"
+
+#: libs/ardour/audio_diskstream.cc:2070
+msgid "%1:%2 new capture file not initialized correctly"
+msgstr "%1:%2 archivo de captura nuevo no inicializado correctamente"
+
+#: libs/ardour/audio_diskstream.cc:2322
+msgid "%1: cannot restore pending capture source file %2"
+msgstr "%1: no se puede restaurar el archivo de captura pendiente %2"
+
+#: libs/ardour/audio_diskstream.cc:2344
+msgid "%1: incorrect number of pending sources listed - ignoring them all"
+msgstr "%1: cantidad listada de fuentes pendientes incorrecta - se ignorarán todas"
+
+#: libs/ardour/audio_diskstream.cc:2359
+msgid "%1: cannot create whole-file region from pending capture sources"
+msgstr "%1: no se puede crear la región del archivo entero desde las fuentes de captura pendientes"
+
+#: libs/ardour/audio_diskstream.cc:2371
+msgid "%1: cannot create region from pending capture sources"
+msgstr "%1: no se puede crear la región desde las fuentes de captura pendientes"
+
+#: libs/ardour/audioengine.cc:107
+msgid "AudioEngine::start() called while disconnected from JACK"
+msgstr ""
+
+#: libs/ardour/audioengine.cc:116
+msgid "Connect session to engine"
+msgstr "Conectar sesión al motor"
+
+#: libs/ardour/audioengine.cc:496
+msgid "a port with this name already exists: check for duplicated track/bus names"
+msgstr "ya existe un puerto con este nombre: chequee nombres de pistas/buses duplicados"
+
+#: libs/ardour/audioengine.cc:498
+msgid "unknown error"
+msgstr "error desconocido"
+
+#: libs/ardour/audioengine.cc:501
+msgid "AudioEngine: cannot register port \"%1\": %2"
+msgstr "AudioEngine: no se puede registrar el puerto \"%1\": %2"
+
+#: libs/ardour/audioengine.cc:509
+msgid "register input port called before engine was started"
+msgstr "registro de puerto de entrada invocado antes de que se inicie el motor"
+
+#: libs/ardour/audioengine.cc:543
+msgid "register output port called before engine was started"
+msgstr "registro de puerto de salida invocado antes de que se inicie el motor"
+
+#: libs/ardour/audioengine.cc:623
+msgid "connect called before engine was started"
+msgstr "conexión invocada antes de que se inicie el motor"
+
+#: libs/ardour/audioengine.cc:639
+msgid "AudioEngine: connection already exists: %1 (%2) to %3 (%4)"
+msgstr "AudioEngine: la conexión ya existe: %1 (%2) a %3 (%4)"
+
+#: libs/ardour/audioengine.cc:643
+msgid "AudioEngine: cannot connect %1 (%2) to %3 (%4)"
+msgstr "AudioEngine: no se puede conectar %1 (%2) a %3 (%4)"
+
+#: libs/ardour/audioengine.cc:656
+#: libs/ardour/audioengine.cc:685
+msgid "disconnect called before engine was started"
+msgstr "desconexión invocada antes de que se inicie el motor"
+
+#: libs/ardour/audioengine.cc:743
+msgid "get_port_by_name() called before engine was started"
+msgstr "get_port_by_name() invocada antes de que se inicie el motor"
+
+#: libs/ardour/audioengine.cc:787
+msgid "get_ports called before engine was started"
+msgstr "get_ports invocada antes de que se inicie el motor"
+
+#: libs/ardour/audioengine.cc:925
+msgid "get_nth_physical called before engine was connected"
+msgstr "get_nth_physical invocada antes de que se conecte el motor"
+
+#: libs/ardour/audioengine.cc:950
+msgid "get_port_total_latency() called with no JACK client connection"
+msgstr "get_port_total_latency() invocada con ninguna conexión de cliente JACK"
+
+#: libs/ardour/audioengine.cc:1150
+msgid "failed to connect to JACK"
+msgstr "falló la conexión a JACK"
+
+#: libs/ardour/audioengine.cc:1168
+msgid "could not reregister %1"
+msgstr "no se pudo registrar %1"
+
+#: libs/ardour/audioengine.cc:1229
+msgid "Disconnected from JACK while reconnecting. You should quit Ardour now."
+msgstr "Se desconectó de JACK mientras se reconectaba. Debería salir de Ardour ahora"
+
+#: libs/ardour/audioengine.cc:1235
+msgid "could not reconnect %1 and %2 (err = %3)"
+msgstr "no se pudo reconectar %1 y %2 (err = %3)"
+
+#: libs/ardour/audiofilesource.cc:402
+#: libs/ardour/session_state.cc:2888
+msgid "there are already 1000 files with names like %1; versioning discontinued"
+msgstr "ya hay 1000 archivos con nombres como %1; se discontinúa el versionado"
+
+#: libs/ardour/audiofilesource.cc:416
+#: libs/ardour/session_state.cc:2902
+msgid "cannot rename audio file source from %1 to %2 (%3)"
+msgstr "No se puede renombrar el archivo fuente de audio de %1 a %2 (%3)"
+
+#: libs/ardour/audiofilesource.cc:423
+#: libs/ardour/session_state.cc:2916
+msgid "cannot remove peakfile %1 for %2 (%3)"
+msgstr ""
+
+#: libs/ardour/audiofilesource.cc:459
+msgid "FileSource: search path not set"
+msgstr "Filesource: ruta de búsqueda no especificada."
+
+#: libs/ardour/audiofilesource.cc:531
+msgid ""
+"FileSource: \"%1\" is ambigous when searching %2\n"
+"\t"
+msgstr ""
+"Filesource: \"%1\" es ambiguo al buscar %2\n"
+"\t"
+
+#: libs/ardour/audiofilesource.cc:537
+msgid "Filesource: cannot find required file (%1): while searching %2"
+msgstr "Filesource: no se puede encontrar el archivo requerido (%1): al buscar %2."
+
+#: libs/ardour/audiofilesource.cc:577
+msgid "Filesource: cannot find required file (%1): %2"
+msgstr "Filesource: no se puede encontrar el archivo requerido (%1): %2."
+
+#: libs/ardour/audiofilesource.cc:582
+msgid "Filesource: cannot check for existing file (%1): %2"
+msgstr ""
+
+#: libs/ardour/audiofilesource.cc:645
+#: libs/ardour/audiosource.cc:876
+#: libs/ardour/automation_event.cc:639
+#: libs/ardour/insert.cc:555
+#: libs/ardour/session.cc:2295
+#: libs/ardour/session.cc:3717
+#: libs/ardour/session.cc:3756
+#: libs/ardour/session_command.cc:432
+#: libs/ardour/sndfilesource.cc:130
+msgid "programming error: %1"
+msgstr "error de programación: %1"
+
+#: libs/ardour/audiofilesource.cc:651
+msgid "Programming error! Ardour tried to rename a file over another file! It's safe to continue working, but please report this to the developers."
+msgstr "¡Error de programación! ¡Ardour intentó renombrar un archivo sobre otro archivo! Es seguro continuar trabajando, pero por favor, reporte eso a los desarrolladores."
+
+#: libs/ardour/audiofilesource.cc:656
+msgid "cannot rename audio file %1 to %2"
+msgstr "no se puede renombrar el archivo de audio %1 a %1"
+
+#: libs/ardour/audiofilter.cc:43
+msgid ""
+"This is an old Ardour session that does not have\n"
+"sufficient information for rendered FX"
+msgstr ""
+
+#: libs/ardour/audiofilter.cc:66
+msgid "audiofilter: error creating name for new audio file based on %1"
+msgstr "audiofilter: error al crear nombre para nuevo archivo de audio basándose en %1"
+
+#: libs/ardour/audiofilter.cc:77
+msgid "audiofilter: error creating new audio file %1 (%2)"
+msgstr "audiofilter: error al crear nuevo archivo de audio %1 (%2)."
+
+#: libs/ardour/audio_library.cc:61
+msgid "Could not open %1.  Audio Library not saved"
+msgstr "No se pudo abrir %1. Biblioteca de Audio no guardada."
+
+#: libs/ardour/audio_playlist.cc:226
+#: libs/ardour/audio_playlist.cc:615
+msgid "programming error: non-audio Region passed to remove_overlap in audio playlist"
+msgstr ""
+
+#: libs/ardour/audio_playlist.cc:356
+msgid "programming error: non-audio Region tested for overlap in audio playlist"
+msgstr ""
+
+#: libs/ardour/audioregion.cc:1636
+msgid ""
+"You have requested an operation that requires audio analysis.\n"
+"\n"
+"You currently have \"auto-analyse-audio\" disabled, which means\n"
+"that transient data must be generated every time it is required.\n"
+"\n"
+"If you are doing work that will require transient data on a\n"
+"regular basis, you should probably enable \"auto-analyse-audio\"\n"
+"then quit ardour and restart."
+msgstr ""
+
+#: libs/ardour/audiosource.cc:178
+msgid "cannot rename peakfile for %1 from %2 to %3 (%4)"
+msgstr ""
+
+#: libs/ardour/audiosource.cc:205
+msgid "AudioSource: cannot stat peakfile \"%1\""
+msgstr ""
+
+#: libs/ardour/audiosource.cc:329
+msgid "cannot read sample data for unscaled peak computation"
+msgstr ""
+
+#: libs/ardour/audiosource.cc:349
+msgid "AudioSource: cannot open peakpath (a) \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/audiosource.cc:423
+msgid "AudioSource: cannot open peakpath (b) \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/audiosource.cc:537
+msgid "AudioSource[%1]: peak read - cannot read %2 samples at offset %3 of %4 (%5)"
+msgstr ""
+
+#: libs/ardour/audiosource.cc:624
+msgid "%1: could not write read raw data for peak computation (%2)"
+msgstr ""
+
+#: libs/ardour/audiosource.cc:670
+msgid "AudioSource: cannot open peakpath (c) \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/audiosource.cc:736
+#: libs/ardour/audiosource.cc:848
+msgid "%1: could not write peak file data (%2)"
+msgstr ""
+
+#: libs/ardour/audio_track.cc:140
+msgid "Unknown connection \"%1\" listed for input of %2"
+msgstr ""
+
+#: libs/ardour/audio_track.cc:145
+msgid "in 1+2"
+msgstr ""
+
+#: libs/ardour/audio_track.cc:147
+msgid "in 1"
+msgstr ""
+
+#: libs/ardour/audio_track.cc:151
+msgid "No input connections available as a replacement"
+msgstr ""
+
+#: libs/ardour/audio_track.cc:155
+#: libs/ardour/io.cc:1861
+msgid "Connection %1 was not available - \"%2\" used instead"
+msgstr "La conexión %1 no estaba disponible - se usará \"%2\" en reemplazo"
+
+#: libs/ardour/audio_track.cc:164
+#: libs/ardour/io.cc:1941
+msgid "improper input channel list in XML node (%1)"
+msgstr ""
+
+#: libs/ardour/audio_track.cc:205
+#: libs/ardour/audio_track.cc:218
+msgid "AudioTrack: audio diskstream \"%1\" not known by session"
+msgstr ""
+
+#: libs/ardour/audio_track.cc:260
+msgid "programming error: AudioTrack given state without diskstream!"
+msgstr ""
+
+#: libs/ardour/auditioner.cc:56
+msgid "no outputs available for auditioner - manual connection required"
+msgstr ""
+
+#: libs/ardour/auditioner.cc:127
+msgid "Auditioning of non-audio regions not yet supported"
+msgstr ""
+
+#: libs/ardour/automation_event.cc:785
+#: libs/ardour/panner.cc:843
+msgid "programming error:"
+msgstr "error de programación:"
+
+#: libs/ardour/automation_event.cc:1310
+msgid "automation list: cannot load coordinates from XML, all points ignored"
+msgstr ""
+
+#: libs/ardour/automation_event.cc:1356
+msgid "automation list: no x-coordinate stored for control point (point ignored)"
+msgstr ""
+
+#: libs/ardour/automation_event.cc:1362
+msgid "automation list: no y-coordinate stored for control point (point ignored)"
+msgstr ""
+
+#: libs/ardour/automation_event.cc:1376
+msgid "AutomationList: passed XML node called %1, not \"AutomationList\" - ignored"
+msgstr ""
+
+#: libs/ardour/configuration.cc:98
+msgid "loading system configuration file %1"
+msgstr "cargando el archivo de configuración del sistema %1"
+
+#: libs/ardour/configuration.cc:101
+msgid "Ardour: cannot read system configuration file \"%1\""
+msgstr ""
+
+#: libs/ardour/configuration.cc:108
+msgid "Ardour: system configuration file \"%1\" not loaded successfully."
+msgstr ""
+
+#: libs/ardour/configuration.cc:112
+msgid "your system Ardour configuration file is empty. This probably means that there as an error installing Ardour"
+msgstr ""
+
+#: libs/ardour/configuration.cc:132
+msgid "loading user configuration file %1"
+msgstr "cargando el archivo de configuración de usuario %1"
+
+#: libs/ardour/configuration.cc:135
+msgid "Ardour: cannot read configuration file \"%1\""
+msgstr ""
+
+#: libs/ardour/configuration.cc:142
+msgid "Ardour: user configuration file \"%1\" not loaded successfully."
+msgstr ""
+
+#: libs/ardour/configuration.cc:146
+msgid "your Ardour configuration file is empty. This is not normal."
+msgstr ""
+
+#: libs/ardour/configuration.cc:164
+msgid "Config file %1 not saved"
+msgstr "Archivo de configuración %1 no guardado"
+
+#: libs/ardour/configuration.cc:253
+msgid "ill-formed MIDI port specification in ardour rcfile (ignored)"
+msgstr ""
+
+#: libs/ardour/connection.cc:182
+msgid "Node for Connection has no \"name\" property"
+msgstr ""
+
+#: libs/ardour/connection.cc:190
+msgid "Node for Connection has no \"connections\" property"
+msgstr ""
+
+#: libs/ardour/connection.cc:226
+#: libs/ardour/io.cc:1992
+msgid "IO: badly formed string in XML node for inputs \"%1\""
+msgstr ""
+
+#: libs/ardour/connection.cc:231
+#: libs/ardour/io.cc:1997
+msgid "bad input string in XML node \"%1\""
+msgstr ""
+
+#: libs/ardour/control_protocol_manager.cc:117
+msgid "control protocol name \"%1\" has no descriptor"
+msgstr ""
+
+#: libs/ardour/control_protocol_manager.cc:122
+msgid "control protocol name \"%1\" could not be initialized"
+msgstr ""
+
+#: libs/ardour/control_protocol_manager.cc:189
+msgid "Instantiating mandatory control protocol %1"
+msgstr ""
+
+#: libs/ardour/control_protocol_manager.cc:201
+msgid "looking for control protocols in %1"
+msgstr "buscando protocolos de control en %1"
+
+#: libs/ardour/control_protocol_manager.cc:223
+msgid "Control protocol %1 not usable"
+msgstr "Protocolo de control %1 no usable."
+
+#: libs/ardour/control_protocol_manager.cc:237
+msgid "Control surface protocol discovered: \"%1\""
+msgstr ""
+
+#: libs/ardour/control_protocol_manager.cc:255
+msgid "ControlProtocolManager: cannot load module \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/control_protocol_manager.cc:263
+msgid "ControlProtocolManager: module \"%1\" has no descriptor function."
+msgstr ""
+
+#: libs/ardour/control_protocol_manager.cc:380
+msgid "control protocol XML node has no name property. Ignored."
+msgstr ""
+
+#: libs/ardour/control_protocol_manager.cc:387
+msgid "control protocol \"%1\" is not known. Ignored"
+msgstr "el protocolo de control \"%1\" no existe. No hecho caso."
+
+#: libs/ardour/crossfade.cc:124
+msgid "Crossfade: no \"in\" region in state"
+msgstr ""
+
+#: libs/ardour/crossfade.cc:131
+msgid "Crossfade: no \"in\" region %1 found in playlist %2"
+msgstr ""
+
+#: libs/ardour/crossfade.cc:141
+msgid "Crossfade: no \"out\" region in state"
+msgstr ""
+
+#: libs/ardour/crossfade.cc:148
+msgid "Crossfade: no \"out\" region %1 found in playlist %2"
+msgstr ""
+
+#: libs/ardour/crossfade.cc:719
+msgid "old-style crossfade information - no position information"
+msgstr ""
+
+#: libs/ardour/curve.cc:127
+#: libs/ardour/globals.cc:400
+#: libs/ardour/insert.cc:469
+#: libs/ardour/session.cc:2777
+#: libs/ardour/session.cc:2888
+msgid "programming error: "
+msgstr "error de programación:"
+
+#: libs/ardour/cycle_timer.cc:36
+msgid "CycleTimer::get_mhz(): can't open /proc/cpuinfo"
+msgstr ""
+
+#: libs/ardour/cycle_timer.cc:48
+msgid "CycleTimer::get_mhz(): cannot locate cpu MHz in /proc/cpuinfo"
+msgstr ""
+
+#: libs/ardour/cycle_timer.cc:71
+msgid "cannot locate cpu MHz in /proc/cpuinfo"
+msgstr ""
+
+#: libs/ardour/diskstream.cc:253
+msgid "Location \"%1\" not valid for track loop (start >= end)"
+msgstr ""
+
+#: libs/ardour/globals.cc:116
+msgid "Starting OSC"
+msgstr "Iniciando OSC"
+
+#: libs/ardour/globals.cc:129
+msgid "no MIDI ports specified: no MMC or MTC control possible"
+msgstr ""
+
+#: libs/ardour/globals.cc:133
+msgid "Configuring MIDI ports"
+msgstr "Configurando puertos MIDI"
+
+#: libs/ardour/globals.cc:148
+#: libs/ardour/globals.cc:152
+#: libs/ardour/globals.cc:156
+msgid "default"
+msgstr "default"
+
+#: libs/ardour/globals.cc:186
+msgid "No MMC control (MIDI port \"%1\" not available)"
+msgstr ""
+
+#: libs/ardour/globals.cc:193
+msgid "No MTC support (MIDI port \"%1\" not available)"
+msgstr ""
+
+#: libs/ardour/globals.cc:198
+msgid "No MIDI parameter support (MIDI port \"%1\" not available)"
+msgstr ""
+
+#: libs/ardour/globals.cc:279
+msgid "Could not set system open files limit to \"unlimited\""
+msgstr ""
+
+#: libs/ardour/globals.cc:281
+msgid "Could not set system open files limit to %1"
+msgstr ""
+
+#: libs/ardour/globals.cc:285
+msgid "Removed open file count limit. Excellent!"
+msgstr ""
+
+#: libs/ardour/globals.cc:287
+msgid "Ardour will be limited to %1 open files"
+msgstr "Ardour será limitado a %1 archivos abiertos."
+
+#: libs/ardour/globals.cc:291
+msgid "Could not get system open files limit (%1)"
+msgstr ""
+
+#: libs/ardour/globals.cc:310
+msgid "Loading configuration"
+msgstr "Cargando configuración"
+
+#: libs/ardour/import.cc:185
+msgid "Could not find a source for %1 even though we are updating this file!"
+msgstr ""
+
+#: libs/ardour/import.cc:214
+msgid "Unable to create file %1 during import"
+msgstr "Incapaz de crear el archivo %1 durante la importación"
+
+#: libs/ardour/import.cc:231
+msgid ""
+"converting %1\n"
+"(resample from %2KHz to %3KHz)\n"
+"(%4 of %5)"
+msgstr ""
+"convirtiendo %1\n"
+"(remuestreo desde %2KHz a %3KHz)\n"
+"(%4 de %5)"
+
+#: libs/ardour/import.cc:238
+msgid ""
+"converting %1\n"
+"(%2 of %3)"
+msgstr ""
+"convirtiendo %1\n"
+"(%2 de %3)"
+
+#: libs/ardour/import.cc:324
+msgid "Import: cannot open input sound file \"%1\""
+msgstr ""
+
+#: libs/ardour/insert.cc:656
+#: libs/ardour/insert.cc:991
+msgid "XML node describing insert is missing the `type' field"
+msgstr ""
+
+#: libs/ardour/insert.cc:669
+msgid "unknown plugin type %1 in plugin insert state"
+msgstr ""
+
+#: libs/ardour/insert.cc:689
+msgid "Plugin has no unique ID field"
+msgstr "El plugin no tiene un campo de ID único."
+
+#: libs/ardour/insert.cc:699
+msgid ""
+"Found a reference to a plugin (\"%1\") that is unknown.\n"
+"Perhaps it was removed or moved since it was last used."
+msgstr ""
+
+#: libs/ardour/insert.cc:730
+msgid "XML node describing a plugin insert is missing the `%1' information"
+msgstr ""
+
+#: libs/ardour/insert.cc:742
+#: libs/ardour/insert.cc:1019
+msgid "XML node describing insert is missing a Redirect node"
+msgstr ""
+
+#: libs/ardour/insert.cc:796
+msgid "PluginInsert: Auto: no ladspa port number"
+msgstr ""
+
+#: libs/ardour/insert.cc:803
+msgid "PluginInsert: Auto: port id out of range"
+msgstr ""
+
+#: libs/ardour/insert.cc:834
+msgid "XML node describing a port automation is missing the `%1' information"
+msgstr ""
+
+#: libs/ardour/insert.cc:897
+#: libs/ardour/insert.cc:905
+msgid "insert %1"
+msgstr "inserción %1"
+
+#: libs/ardour/insert.cc:996
+msgid "non-port insert XML used for port plugin insert"
+msgstr ""
+
+#: libs/ardour/io.cc:639
+msgid "IO: cannot disconnect input port %1 from %2"
+msgstr ""
+
+#: libs/ardour/io.cc:707
+msgid "IO: cannot disconnect output port %1 from %2"
+msgstr ""
+
+#: libs/ardour/io.cc:861
+#: libs/ardour/io.cc:1190
+#: libs/ardour/io.cc:1309
+msgid "IO: cannot register output port %1"
+msgstr ""
+
+#: libs/ardour/io.cc:968
+#: libs/ardour/io.cc:1067
+#: libs/ardour/io.cc:1165
+msgid "IO: cannot register input port %1"
+msgstr ""
+
+#: libs/ardour/io.cc:1559
+msgid "incorrect XML node \"%1\" passed to IO object"
+msgstr ""
+
+#: libs/ardour/io.cc:1683
+msgid "%1: cannot open automation event file \"%2\""
+msgstr ""
+
+#: libs/ardour/io.cc:1698
+msgid "badly formed version number in automation event file \"%1\""
+msgstr ""
+
+#: libs/ardour/io.cc:1702
+msgid "no version information in automation event file \"%1\""
+msgstr ""
+
+#: libs/ardour/io.cc:1710
+msgid "badly formatted automation event record at line %1 of %2 (ignored)"
+msgstr ""
+
+#: libs/ardour/io.cc:1730
+msgid "dubious automation event found (and ignored)"
+msgstr ""
+
+#: libs/ardour/io.cc:1743
+msgid "IO::connecting_became_legal() called without a pending state node"
+msgstr ""
+
+#: libs/ardour/io.cc:1765
+msgid "IO::ports_became_legal() called without a pending state node"
+msgstr ""
+
+#: libs/ardour/io.cc:1795
+msgid "Unknown connection \"%1\" listed for %2 of %3"
+msgstr ""
+
+#: libs/ardour/io.cc:1864
+msgid "No %1 connections available as a replacement"
+msgstr "No hay %1 conexiones disponibles como reemplazo"
+
+#: libs/ardour/io.cc:1883
+#: libs/ardour/io.cc:1931
+#: libs/ardour/io.cc:2698
+msgid "in"
+msgstr ""
+
+#: libs/ardour/io.cc:1883
+#: libs/ardour/io.cc:1931
+msgid "input"
+msgstr ""
+
+#: libs/ardour/io.cc:1897
+#: libs/ardour/io.cc:1947
+#: libs/ardour/io.cc:2701
+msgid "out"
+msgstr ""
+
+#: libs/ardour/io.cc:1897
+#: libs/ardour/io.cc:1947
+msgid "output"
+msgstr ""
+
+#: libs/ardour/io.cc:1912
+msgid "%1: cannot create I/O ports"
+msgstr "%1: no se pueden crear puertos de E/S"
+
+#: libs/ardour/io.cc:1957
+msgid "improper output channel list in XML node (%1)"
+msgstr ""
+
+#: libs/ardour/io.cc:2042
+msgid "IO: badly formed string in XML node for outputs \"%1\""
+msgstr ""
+
+#: libs/ardour/io.cc:2047
+msgid "IO: bad output string in XML node \"%1\""
+msgstr ""
+
+#: libs/ardour/io.cc:2131
+msgid "you cannot use colons to name objects with I/O connections"
+msgstr ""
+
+#: libs/ardour/io.cc:2753
+#: libs/ardour/io.cc:2786
+#, c-format
+msgid "%s %u"
+msgstr "%s %u"
+
+#: libs/ardour/ladspa_plugin.cc:86
+msgid "LADSPA: module has no descriptor function."
+msgstr ""
+
+#: libs/ardour/ladspa_plugin.cc:91
+msgid "LADSPA: plugin has gone away since discovery!"
+msgstr ""
+
+#: libs/ardour/ladspa_plugin.cc:98
+msgid "LADSPA: \"%1\" cannot be used, since it cannot do inplace processing"
+msgstr ""
+
+#: libs/ardour/ladspa_plugin.cc:306
+msgid "illegal parameter number used with plugin \"%1\". This mayindicate a change in the plugin design, and presets may beinvalid"
+msgstr ""
+
+#: libs/ardour/ladspa_plugin.cc:389
+msgid "Bad node sent to LadspaPlugin::set_state"
+msgstr ""
+
+#: libs/ardour/ladspa_plugin.cc:402
+msgid "LADSPA: no ladspa port number"
+msgstr ""
+
+#: libs/ardour/ladspa_plugin.cc:409
+msgid "LADSPA: no ladspa port data"
+msgstr ""
+
+#: libs/ardour/ladspa_plugin.cc:648
+msgid "LADSPA: cannot load module from \"%1\""
+msgstr ""
+
+#: libs/ardour/location.cc:224
+msgid "You cannot put a CD marker at this position"
+msgstr "No puedes poner una marca de CD en esta posición."
+
+#: libs/ardour/location.cc:353
+msgid "incorrect XML node passed to Location::set_state"
+msgstr ""
+
+#: libs/ardour/location.cc:358
+msgid "XML node for Location has no ID information"
+msgstr ""
+
+#: libs/ardour/location.cc:364
+msgid "XML node for Location has no name information"
+msgstr ""
+
+#: libs/ardour/location.cc:371
+msgid "XML node for Location has no start information"
+msgstr ""
+
+#: libs/ardour/location.cc:382
+msgid "XML node for Location has no end information"
+msgstr ""
+
+#: libs/ardour/location.cc:389
+msgid "XML node for Location has no flags information"
+msgstr ""
+
+#: libs/ardour/location.cc:506
+msgid "Locations: attempt to use unknown location as selected location"
+msgstr ""
+
+#: libs/ardour/location.cc:674
+msgid "incorrect XML mode passed to Locations::set_state"
+msgstr ""
+
+#: libs/ardour/location.cc:695
+msgid "could not load location from session file - ignored"
+msgstr ""
+
+#: libs/ardour/mtc_slave.cc:127
+msgid "Unknown rate/drop value %1 in incoming MTC stream, session values used instead"
+msgstr ""
+
+#: libs/ardour/mtc_slave.cc:236
+msgid "MTC Slave: atomic read of current time failed, sleeping!"
+msgstr ""
+
+#: libs/ardour/named_selection.cc:88
+msgid "Chunk %1 uses an unknown playlist \"%2\""
+msgstr ""
+
+#: libs/ardour/named_selection.cc:91
+msgid "Chunk %1 contains misformed playlist information"
+msgstr ""
+
+#: libs/ardour/panner.cc:253
+msgid "badly formatted pan automation event record at line %1 of %2 (ignored) [%3]"
+msgstr ""
+
+#: libs/ardour/panner.cc:749
+msgid "badly-formed positional data for Multi2dPanner - ignored"
+msgstr ""
+
+#: libs/ardour/panner.cc:1149
+msgid "Unknown panner plugin \"%1\" found in pan state - ignored"
+msgstr ""
+
+#: libs/ardour/panner.cc:1155
+msgid "panner plugin node has no type information!"
+msgstr ""
+
+#: libs/ardour/panner.cc:1361
+msgid "cannot open pan automation file %1 (%2)"
+msgstr "No se puede abrir el archivo de automatización de panorámica %1 (%2)."
+
+#: libs/ardour/panner.cc:1374
+msgid "badly formed version number in pan automation event file \"%1\""
+msgstr ""
+
+#: libs/ardour/panner.cc:1378
+msgid "no version information in pan automation event file \"%1\" (first line = %2)"
+msgstr ""
+
+#: libs/ardour/panner.cc:1393
+msgid "too many panner states found in pan automation file %1"
+msgstr ""
+
+#: libs/ardour/playlist.cc:250
+msgid "playlist const copy constructor called"
+msgstr ""
+
+#: libs/ardour/playlist.cc:256
+msgid "playlist non-const copy constructor called"
+msgstr ""
+
+#: libs/ardour/playlist.cc:1217
+msgid "%1: bounds changed received for region (%2)not in playlist"
+msgstr ""
+
+#: libs/ardour/playlist.cc:1750
+msgid "region state node has no ID, ignored"
+msgstr ""
+
+#: libs/ardour/playlist.cc:1761
+msgid "Playlist: cannot reset region state from XML"
+msgstr ""
+
+#: libs/ardour/playlist.cc:1766
+msgid "Playlist: cannot create region from XML"
+msgstr ""
+
+#: libs/ardour/plugin.cc:283
+msgid "Could not locate HOME.  Preset not saved."
+msgstr ""
+
+#: libs/ardour/plugin.cc:293
+#: libs/ardour/plugin.cc:299
+msgid "Could not create %1.  Preset not saved. (%2)"
+msgstr "No se pudo crear %1. El preset no se guardó. (%2)"
+
+#: libs/ardour/plugin.cc:304
+msgid "Error saving presets file %1."
+msgstr "Error al guardar el archivo de preset %1."
+
+#: libs/ardour/plugin_manager.cc:79
+msgid "Cannot become GUI app"
+msgstr ""
+
+#: libs/ardour/plugin_manager.cc:129
+msgid "Discovering Plugins"
+msgstr "Descubriendo plugins"
+
+#: libs/ardour/plugin_manager.cc:274
+msgid "Could not parse rdf file: %1"
+msgstr ""
+
+#: libs/ardour/plugin_manager.cc:314
+msgid "LADSPA: cannot load module \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/plugin_manager.cc:321
+msgid "LADSPA: module \"%1\" has no descriptor function."
+msgstr ""
+
+#: libs/ardour/plugin_manager.cc:505
+msgid "VST plugin %1 does not support processReplacing, and so cannot be used in ardour at this time"
+msgstr ""
+
+#: libs/ardour/plugin_manager.cc:616
+msgid "unknown favorite plugin type \"%1\" - ignored"
+msgstr ""
+
+#: libs/ardour/recent_sessions.cc:48
+msgid "cannot open recent session file %1 (%2)"
+msgstr ""
+
+#: libs/ardour/redirect.cc:80
+msgid "programming error: unknown Redirect type in Redirect::Clone!\n"
+msgstr ""
+
+#: libs/ardour/redirect.cc:130
+msgid "%2: badly formatted node name in XML automation state, ignored"
+msgstr ""
+
+#: libs/ardour/redirect.cc:143
+msgid "%1: cannot load automation data from XML"
+msgstr ""
+
+#: libs/ardour/redirect.cc:224
+msgid "incorrect XML node \"%1\" passed to Redirect object"
+msgstr ""
+
+#: libs/ardour/redirect.cc:272
+msgid "XML node describing an IO is missing an IO node"
+msgstr ""
+
+#: libs/ardour/redirect.cc:277
+msgid "XML node describing a redirect is missing the `active' field"
+msgstr ""
+
+#: libs/ardour/redirect.cc:290
+msgid "XML node describing a redirect is missing the `placement' field"
+msgstr ""
+
+#: libs/ardour/redirect.cc:320
+msgid "%1: Automation node has no path property"
+msgstr ""
+
+#: libs/ardour/redirect.cc:355
+msgid "%1: cannot open %2 to load automation data (%3)"
+msgstr ""
+
+#: libs/ardour/redirect.cc:380
+msgid "%1: cannot load automation data from %2"
+msgstr ""
+
+#: libs/ardour/region.cc:1006
+msgid "XMLNode describing a Region is incomplete (no name)"
+msgstr ""
+
+#: libs/ardour/region.cc:1163
+msgid "Session: XMLNode describing a Region is incomplete (no id)"
+msgstr ""
+
+#: libs/ardour/region_factory.cc:52
+#: libs/ardour/region_factory.cc:69
+#: libs/ardour/region_factory.cc:104
+msgid "programming error: RegionFactory::create() called with unknown Region type"
+msgstr ""
+
+#: libs/ardour/resampled_source.cc:61
+msgid "Import: src_new() failed : %1"
+msgstr ""
+
+#: libs/ardour/resampled_source.cc:113
+msgid "Import: %1"
+msgstr "Importar: %1"
+
+#: libs/ardour/route.cc:84
+#: libs/ardour/session.cc:1599
+#: libs/ardour/session.cc:1605
+#: libs/ardour/session.cc:1910
+#: libs/ardour/session.cc:3510
+msgid "signal"
+msgstr "señal"
+
+#: libs/ardour/route.cc:1620
+msgid "Send construction failed"
+msgstr ""
+
+#: libs/ardour/route.cc:1648
+msgid "unknown Insert type \"%1\"; ignored"
+msgstr ""
+
+#: libs/ardour/route.cc:1656
+msgid "Insert XML node has no type property"
+msgstr ""
+
+#: libs/ardour/route.cc:1661
+msgid "insert could not be created. Ignored."
+msgstr ""
+
+#: libs/ardour/route.cc:1683
+msgid "Bad node sent to Route::set_state() [%1]"
+msgstr ""
+
+#: libs/ardour/route.cc:1749
+msgid "Route %1: unknown edit group \"%2 in saved state (ignored)"
+msgstr ""
+
+#: libs/ardour/route.cc:1765
+#: libs/ardour/route.cc:1769
+msgid "badly formed order key string in state file! [%1] ... ignored."
+msgstr ""
+
+#: libs/ardour/route.cc:1835
+#: libs/ardour/route.cc:2052
+msgid "[control]"
+msgstr "[control]"
+
+#: libs/ardour/route.cc:1874
+msgid "Route %1: unknown mix group \"%2 in saved state (ignored)"
+msgstr ""
+
+#: libs/ardour/route.cc:2070
+msgid "could not connect %1 to %2"
+msgstr "no se pudo conectar %1a %2"
+
+#: libs/ardour/send.cc:35
+#: libs/ardour/send.cc:58
+msgid "send %1"
+msgstr "envío %1"
+
+#: libs/ardour/send.cc:145
+msgid "XML node describing a send is missing a Redirect node"
+msgstr ""
+
+#: libs/ardour/session_butler.cc:80
+#: libs/ardour/session_midi.cc:1085
+msgid "Cannot create transport request signal pipe (%1)"
+msgstr ""
+
+#: libs/ardour/session_butler.cc:85
+#: libs/ardour/session_butler.cc:90
+msgid "UI: cannot set O_NONBLOCK on butler request pipe (%1)"
+msgstr ""
+
+#: libs/ardour/session_butler.cc:95
+msgid "Session: could not create butler thread"
+msgstr ""
+
+#: libs/ardour/session_butler.cc:185
+msgid "poll on butler request pipe failed (%1)"
+msgstr ""
+
+#: libs/ardour/session_butler.cc:192
+msgid "Error on butler thread request pipe: fd=%1 err=%2"
+msgstr ""
+
+#: libs/ardour/session_butler.cc:233
+msgid "Error reading from butler request pipe"
+msgstr ""
+
+#: libs/ardour/session_butler.cc:278
+msgid "Butler read ahead failure on dstream %1"
+msgstr ""
+
+#: libs/ardour/session_butler.cc:323
+msgid "Butler write-behind failure on dstream %1"
+msgstr ""
+
+#: libs/ardour/session.cc:132
+msgid "Could not resolve path: %1 (%2)"
+msgstr ""
+
+#: libs/ardour/session.cc:144
+msgid "cannot check session path %1 (%2)"
+msgstr ""
+
+#: libs/ardour/session.cc:174
+msgid "cannot check statefile %1 (%2)"
+msgstr ""
+
+#: libs/ardour/session.cc:210
+msgid "%1 is not an Ardour snapshot file"
+msgstr "%1 no es un archivo de captura de sesión de Ardour"
+
+#: libs/ardour/session.cc:227
+msgid "cannot determine current working directory (%1)"
+msgstr ""
+
+#: libs/ardour/session.cc:244
+msgid "unknown file type for session %1"
+msgstr "tipo de archivo desconocido para la sesión %1"
+
+#: libs/ardour/session.cc:407
+msgid "monitor"
+msgstr ""
+
+#: libs/ardour/session.cc:414
+#: libs/ardour/session.cc:1939
+msgid "master"
+msgstr ""
+
+#: libs/ardour/session.cc:684
+msgid "Set block size and sample rate"
+msgstr ""
+
+#: libs/ardour/session.cc:689
+msgid "Using configuration"
+msgstr ""
+
+#: libs/ardour/session.cc:722
+msgid "could not setup Click I/O"
+msgstr "no se pudo configurar la E/S del click"
+
+#: libs/ardour/session.cc:743
+msgid "cannot setup Click I/O"
+msgstr "no se puede configurar la E/S del click"
+
+#: libs/ardour/session.cc:746
+msgid "Compute I/O Latencies"
+msgstr "Computar las latencias de E/S"
+
+#: libs/ardour/session.cc:758
+msgid "Set up standard connections"
+msgstr "Configurar las conexiones estándar"
+
+#: libs/ardour/session.cc:764
+#, c-format
+msgid "out %<PRIu32>"
+msgstr ""
+
+#: libs/ardour/session.cc:776
+#, c-format
+msgid "in %<PRIu32>"
+msgstr ""
+
+#: libs/ardour/session.cc:790
+#, c-format
+msgid "out %<PRIu32>+%<PRIu32>"
+msgstr ""
+
+#: libs/ardour/session.cc:804
+#, c-format
+msgid "in %<PRIu32>+%<PRIu32>"
+msgstr ""
+
+#: libs/ardour/session.cc:837
+msgid "cannot setup master inputs"
+msgstr "no se pueden configurar las entradas principales"
+
+#: libs/ardour/session.cc:845
+msgid "cannot setup master outputs"
+msgstr "no se pueden configurar las salidas principales"
+
+#: libs/ardour/session.cc:856
+msgid "Master Out"
+msgstr ""
+
+#: libs/ardour/session.cc:865
+msgid "Setup signal flow and plugins"
+msgstr ""
+
+#: libs/ardour/session.cc:871
+msgid "Catch up with send/insert state"
+msgstr ""
+
+#: libs/ardour/session.cc:902
+msgid "Connect to engine"
+msgstr "Conectar a motor"
+
+#: libs/ardour/session.cc:909
+msgid "OSC startup"
+msgstr "Inicio de OSC"
+
+#: libs/ardour/session.cc:938
+msgid "cannot create Auditioner: no auditioning of regions possible"
+msgstr ""
+
+#: libs/ardour/session.cc:952
+msgid "cannot setup control inputs"
+msgstr ""
+
+#: libs/ardour/session.cc:960
+msgid "cannot set up master outputs"
+msgstr ""
+
+#: libs/ardour/session.cc:1163
+msgid "Session: you can't use that location for auto punch (start <= end)"
+msgstr ""
+
+#: libs/ardour/session.cc:1204
+msgid "Session: you can't use a mark for auto loop"
+msgstr ""
+
+#: libs/ardour/session.cc:1617
+msgid "feedback loop setup between %1 and %2"
+msgstr ""
+
+#: libs/ardour/session.cc:1804
+#: libs/ardour/session.cc:1970
+msgid "cannot configure %1 in/%2 out configuration for new audio track"
+msgstr ""
+
+#: libs/ardour/session.cc:1856
+msgid "Session: could not create new audio track."
+msgstr ""
+
+#: libs/ardour/session.cc:1874
+#: libs/ardour/session.cc:2019
+#: libs/ardour/session.cc:2103
+msgid "No more JACK ports are available. You will need to stop Ardour and restart JACK with ports if you need this many tracks."
+msgstr "JACK no disponde de más puertos. Necesitará salir de Ardour y reiniciar JACK con más puertos si usted necesita tantas pistas"
+
+#: libs/ardour/session.cc:1913
+msgid "editor"
+msgstr "editor"
+
+#: libs/ardour/session.cc:2014
+msgid "Session: could not create new audio route."
+msgstr "Sesión: No se pudo crear la ruta del nuevo audio"
+
+#: libs/ardour/session.cc:2076
+msgid "Session: UINT_MAX routes? impossible!"
+msgstr ""
+
+#: libs/ardour/session.cc:2087
+msgid "Session: cannot create track/bus from template description"
+msgstr ""
+
+#: libs/ardour/session.cc:2098
+#, fuzzy
+msgid "Session: could not create new route from template"
+msgstr "Sesión: No se pudo crear la ruta del nuevo audio"
+
+#: libs/ardour/session.cc:2267
+msgid "session"
+msgstr "sesión"
+
+#: libs/ardour/session.cc:2666
+msgid "cannot create new name for region \"%1\""
+msgstr "no se puede crear un nuevo nombre para region \"%1\""
+
+#: libs/ardour/session.cc:2744
+#: libs/ardour/session.cc:2804
+msgid "Session::add_region() ignored a null region. Warning: you might have lost a region."
+msgstr ""
+
+#: libs/ardour/session.cc:3300
+msgid "There are already %1 recordings for %2, which I consider too many."
+msgstr ""
+
+#: libs/ardour/session.cc:3531
+msgid "Cannot compile tape track regexp for use (%1)"
+msgstr ""
+
+#: libs/ardour/session.cc:3684
+msgid "programming error: unknown type of Insert created!"
+msgstr ""
+
+#: libs/ardour/session.cc:3690
+msgid "programming error: unknown type of Redirect created!"
+msgstr ""
+
+#: libs/ardour/session.cc:3729
+msgid "programming error: unknown type of Redirect deleted!"
+msgstr ""
+
+#: libs/ardour/session.cc:3849
+#: libs/ardour/session.cc:3863
+#: libs/ardour/session.cc:4268
+msgid "Memory allocation error: posix_memalign (%1 * %2) failed (%3)"
+msgstr ""
+
+#: libs/ardour/session.cc:3933
+msgid "send ID %1 appears to be in use already"
+msgstr ""
+
+#: libs/ardour/session.cc:3945
+msgid "insert ID %1 appears to be in use already"
+msgstr ""
+
+#: libs/ardour/session.cc:4098
+msgid "Cannot write a range where end <= start (e.g. %1 <= %2)"
+msgstr ""
+
+#: libs/ardour/session.cc:4134
+msgid "too many bounced versions of playlist \"%1\""
+msgstr ""
+
+#: libs/ardour/session.cc:4143
+msgid "cannot create new audio file \"%1\" for %2"
+msgstr "no se puede crear nuevo archivo de audio"
+
+#: libs/ardour/session.cc:4253
+msgid "Programming error: get_silent_buffers() called for %1 buffers but only %2 exist"
+msgstr ""
+
+#: libs/ardour/session_click.cc:160
+msgid "cannot open click soundfile %1 (%2)"
+msgstr ""
+
+#: libs/ardour/session_click.cc:169
+msgid "cannot read data from click soundfile"
+msgstr ""
+
+#: libs/ardour/session_click.cc:196
+msgid "cannot open click emphasis soundfile %1 (%2)"
+msgstr ""
+
+#: libs/ardour/session_click.cc:204
+msgid "cannot read data from click emphasis soundfile"
+msgstr ""
+
+#: libs/ardour/session_command.cc:75
+msgid "Tried to reconstitute a MementoCommand with no contents, failing. id="
+msgstr ""
+
+#: libs/ardour/session_command.cc:111
+msgid "could not reconstitute MementoCommand from XMLNode. object type = %1 id = %2"
+msgstr ""
+
+#: libs/ardour/session_command.cc:123
+msgid "GlobalRouteStateCommand has no \"type\" node, ignoring"
+msgstr ""
+
+#: libs/ardour/session_command.cc:138
+msgid "unknown type of GlobalRouteStateCommand (%1), ignored"
+msgstr ""
+
+#: libs/ardour/session_command.cc:186
+msgid "global route state command has no \"%1\" node, ignoring entire command"
+msgstr ""
+
+#: libs/ardour/session_command.cc:202
+#: libs/ardour/session_command.cc:515
+msgid "cannot find track/bus \"%1\" while rebuilding a global route state command, ignored"
+msgstr ""
+
+#: libs/ardour/session_command.cc:499
+msgid "global route meter state command has no \"%1\" node, ignoring entire command"
+msgstr ""
+
+#: libs/ardour/session_events.cc:161
+msgid "Session: cannot have two events of type %1 at the same frame (%2)."
+msgstr ""
+
+#: libs/ardour/session_events.cc:437
+msgid "Programming error: illegal event type in process_event (%1)"
+msgstr ""
+
+#: libs/ardour/session_export.cc:62
+msgid "Export: no output file specified"
+msgstr ""
+
+#: libs/ardour/session_export.cc:163
+#: libs/ardour/session_export.cc:168
+msgid "illegal frame range in export specification"
+msgstr ""
+
+#: libs/ardour/session_export.cc:173
+msgid "Bad data width size.  Report me!"
+msgstr ""
+
+#: libs/ardour/session_export.cc:203
+msgid "Export: cannot open output file \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/session_export.cc:213
+msgid "cannot initialize sample rate conversion: %1"
+msgstr ""
+
+#: libs/ardour/session_export.cc:321
+msgid "an error occured during sample rate conversion: %1"
+msgstr ""
+
+#: libs/ardour/session_export.cc:332
+msgid "warning, leftover frames overflowed, glitches might occur in output"
+msgstr ""
+
+#: libs/ardour/session_export.cc:423
+msgid "Export: could not write data to output file (%1)"
+msgstr ""
+
+#: libs/ardour/session_export.cc:518
+msgid "%1: cannot seek to %2 for export"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:94
+msgid "Ardour is slaved to MTC - port cannot be reset"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:109
+msgid "unknown port %1 requested for MTC"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:446
+msgid "Error reading from MIDI port %1"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:816
+msgid "Session: could not send full MIDI time code"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:875
+msgid "Session: cannot send quarter-frame MTC message (%1)"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:983
+msgid "MMC: cannot send command %1%2%3"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:1090
+msgid "UI: cannot set O_NONBLOCK on signal read pipe (%1)"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:1095
+msgid "UI: cannot set O_NONBLOCK on signal write pipe (%1)"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:1100
+msgid "Session: could not create transport thread"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:1131
+msgid "cannot send signal to midi thread! (%1)"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:1229
+msgid "MIDI thread poll failed (%1)"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:1241
+msgid "Error on transport thread request pipe"
+msgstr ""
+
+#: libs/ardour/session_midi.cc:1268
+msgid "Error reading from transport request pipe"
+msgstr ""
+
+#: libs/ardour/session_process.cc:102
+msgid "Session: error in no roll for %1"
+msgstr ""
+
+#: libs/ardour/session_state.cc:109
+msgid "Could not use path %1 (%s)"
+msgstr "No se pudo usar la ruta %1 (%s)"
+
+#: libs/ardour/session_state.cc:145
+#: libs/ardour/session_state.cc:1032
+msgid "end"
+msgstr "fin"
+
+#: libs/ardour/session_state.cc:146
+#: libs/ardour/session_state.cc:1031
+msgid "start"
+msgstr "inicio"
+
+#: libs/ardour/session_state.cc:331
+msgid "Reset Remote Controls"
+msgstr "Reestablecer los Controles Remotos"
+
+#: libs/ardour/session_state.cc:340
+msgid "Reset Control Protocols"
+msgstr "Reestablecer los Protocolos de Control"
+
+#: libs/ardour/session_state.cc:360
+msgid "Session loading complete"
+msgstr "Carga de la sesión completa"
+
+#: libs/ardour/session_state.cc:460
+#: libs/ardour/session_state.cc:2864
+msgid "Session: cannot create session peakfile folder \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/session_state.cc:471
+msgid "Session: cannot create session sounds folder \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/session_state.cc:479
+msgid "Session: cannot create session dead sounds folder \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/session_state.cc:486
+msgid "Session: cannot create session export folder \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/session_state.cc:493
+msgid "Session: cannot create session analysis folder \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/session_state.cc:505
+msgid "Session: cannot create session folder \"%1\" (%2)"
+msgstr ""
+
+#: libs/ardour/session_state.cc:537
+msgid "Could not open %1 for writing mix template"
+msgstr ""
+
+#: libs/ardour/session_state.cc:543
+msgid "Could not open mix template %1 for reading"
+msgstr ""
+
+#: libs/ardour/session_state.cc:582
+msgid "Session: could not load diskstream via XML state"
+msgstr ""
+
+#: libs/ardour/session_state.cc:625
+msgid "could not rename snapshot %1 to %2"
+msgstr ""
+
+#: libs/ardour/session_state.cc:664
+msgid "Ardour's audio engine is not connected and state saving would lose all I/O connections. Session not saved"
+msgstr ""
+
+#: libs/ardour/session_state.cc:708
+msgid "state could not be saved to %1"
+msgstr ""
+
+#: libs/ardour/session_state.cc:715
+msgid "could not rename temporary session file %1 to %2"
+msgstr ""
+
+#: libs/ardour/session_state.cc:785
+msgid "%1: session state information file \"%2\" doesn't exist!"
+msgstr ""
+
+#: libs/ardour/session_state.cc:794
+msgid "Could not understand ardour file %1"
+msgstr ""
+
+#: libs/ardour/session_state.cc:803
+msgid "Session file %1 is not an Ardour session"
+msgstr ""
+
+#: libs/ardour/session_state.cc:834
+msgid ""
+"Copying old session file %1 to %2\n"
+"Use %2 with Ardour versions before 2.0 from now on"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1150
+msgid "programming error: Session: incorrect XML node sent to set_state()"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1216
+msgid "Session: XML state has no options section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1223
+msgid "Session: XML state has no locations section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1256
+msgid "Session: XML state has no sources section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1263
+msgid "Session: XML state has no Regions section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1270
+msgid "Session: XML state has no playlists section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1289
+msgid "Session: XML state has no diskstreams section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1296
+msgid "Session: XML state has no connections section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1303
+msgid "Session: XML state has no edit groups section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1310
+msgid "Session: XML state has no mix groups section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1317
+msgid "Session: XML state has no Tempo Map section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1324
+msgid "Session: XML state has no routes section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1331
+msgid "Session: XML state has no click section"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1366
+msgid "Session: cannot create Route from XML description."
+msgstr ""
+
+#: libs/ardour/session_state.cc:1370
+msgid "Loaded track/bus %1"
+msgstr "Pista/bus %1 cargado"
+
+#: libs/ardour/session_state.cc:1409
+msgid "Session: cannot create Region from XML description."
+msgstr ""
+
+#: libs/ardour/session_state.cc:1413
+msgid "Can not load state for region '%1'"
+msgstr "No se puede cargar el estado de la región '%1'"
+
+#: libs/ardour/session_state.cc:1450
+msgid "Session: XMLNode describing a AudioRegion is incomplete (no source)"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1458
+#: libs/ardour/session_state.cc:1479
+#: libs/ardour/session_state.cc:1499
+msgid "Session: XMLNode describing a AudioRegion references an unknown source id =%1"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1464
+#: libs/ardour/session_state.cc:1485
+#: libs/ardour/session_state.cc:1505
+msgid "Session: XMLNode describing a AudioRegion references a non-audio source id =%1"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1528
+msgid "Session: XMLNode describing an AudioRegion is missing some master sources; ignored"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1579
+msgid "cannot create new file from region name \"%1\" with ident = \"%2\": too many existing files with similar names"
+msgstr ""
+
+#: libs/ardour/session_state.cc:1602
+msgid "Session: cannot create Source from XML description."
+msgstr ""
+
+#: libs/ardour/session_state.cc:1607
+msgid "A sound file is missing. It will be replaced by silence."
+msgstr "No se encuentra un archivo de audio. Será reemplazado por silencio."
+
+#: libs/ardour/session_state.cc:1628
+msgid "Found a sound file that cannot be used by Ardour. Talk to the progammers."
+msgstr "Se encontró un archivo de audio que Ardour no puede usar. Hable con los programadores."
+
+#: libs/ardour/session_state.cc:1650
+msgid "Could not create mix templates directory \"%1\" (%2)"
+msgstr "No se pudo crear el directorio para plantillas de mezclas \"%1\" (%2)"
+
+#: libs/ardour/session_state.cc:1662
+msgid "Template \"%1\" already exists - new version not created"
+msgstr "La plantilla \"%1\" ya existe - no se creará una nueva versión"
+
+#: libs/ardour/session_state.cc:1669
+msgid "mix template not saved"
+msgstr "plantilla de mezcla no guardada"
+
+#: libs/ardour/session_state.cc:1726
+msgid "cannot create session directory \"%1\"; ignored"
+msgstr "No se puede crear el directorio para la sesión \"%1\"; ignorado."
+
+#: libs/ardour/session_state.cc:1735
+msgid "cannot create sounds directory \"%1\"; ignored"
+msgstr "No se puede crear el directorio para archivos de audio \"%1\"; ignorado."
+
+#: libs/ardour/session_state.cc:1742
+msgid "cannot create dead sounds directory \"%1\"; ignored"
+msgstr "No se puede crear el directorio para archivos purgados \"%1\"; ignorado."
+
+# se refiere al directorio donde se guardan los archivos con las "imágenes" de cada sonido, creo
+#: libs/ardour/session_state.cc:1749
+msgid "cannot create peak file directory \"%1\"; ignored"
+msgstr "No se puede crear el directorio para archivos de forma de onda \"%1\"; ignorado."
+
+#: libs/ardour/session_state.cc:1881
+#: libs/ardour/session_state.cc:1902
+msgid "Session: cannot create Playlist from XML description."
+msgstr ""
+
+#: libs/ardour/session_state.cc:1941
+msgid "Session: cannot create Named Selection from XML description."
+msgstr ""
+
+#: libs/ardour/session_state.cc:2143
+msgid "Unknown node \"%1\" found in Connections list from state file"
+msgstr "Nodo desconocido \"%1\" encontrado en la lista de Conexiones del archivo de estado."
+
+#: libs/ardour/session_state.cc:2989
+msgid "cannot remove dead sound file %1 (%2)"
+msgstr "No se puede eliminar el archivo purgado %1 (%2)."
+
+#: libs/ardour/session_state.cc:3105
+msgid "could not backup old history file, current history not saved."
+msgstr "No se pudo crear una copia de respaldo del antiguo archivo de historial, historial actual no guardado."
+
+#: libs/ardour/session_state.cc:3117
+msgid "history could not be saved to %1"
+msgstr "No se pudo guardar el historial a %1"
+
+#: libs/ardour/session_state.cc:3124
+msgid "could not remove corrupt history file %1"
+msgstr "No se pudo eliminar el archivo de historial dañado %1"
+
+#: libs/ardour/session_state.cc:3128
+msgid "could not restore history file from backup %1"
+msgstr "No se pudo recuperar el archivo de historial desde la copia de respaldo %1."
+
+#: libs/ardour/session_state.cc:3150
+msgid "Loading history from '%1'."
+msgstr "Cargando historial desde '%1'."
+
+#: libs/ardour/session_state.cc:3157
+msgid "Could not understand session history file \"%1\""
+msgstr "No se pudo interpretar el archivo de historial de sesión \"%1\"."
+
+#: libs/ardour/session_state.cc:3200
+msgid "Couldn't figure out how to make a Command out of a %1 XMLNode."
+msgstr ""
+
+#: libs/ardour/session_time.cc:483
+msgid "Unknown JACK transport state %1 in sync callback"
+msgstr ""
+
+#: libs/ardour/session_transport.cc:119
+msgid "Cannot loop - no loop range defined"
+msgstr "No se puede reproducir en bucle - no se definió un rango de bucle."
+
+#: libs/ardour/session_transport.cc:538
+msgid ""
+"Seamless looping cannot be supported while Ardour is using JACK transport.\n"
+"Recommend changing the configured options"
+msgstr ""
+
+#: libs/ardour/session_transport.cc:842
+msgid "Global varispeed cannot be supported while Ardour is connected to JACK transport control"
+msgstr ""
+
+#: libs/ardour/session_transport.cc:1025
+msgid "please stop the transport before adjusting slave settings"
+msgstr "por favor, detenga el transporte antes de cambiar los ajustes del esclavo"
+
+#: libs/ardour/session_transport.cc:1058
+msgid "No MTC port defined: MTC slaving is impossible."
+msgstr ""
+
+#: libs/ardour/sndfile_helpers.cc:34
+msgid "WAV"
+msgstr "WAV"
+
+#: libs/ardour/sndfile_helpers.cc:35
+msgid "AIFF"
+msgstr "AIFF"
+
+#: libs/ardour/sndfile_helpers.cc:36
+msgid "CAF"
+msgstr "CAF"
+
+#: libs/ardour/sndfile_helpers.cc:37
+msgid "W64 (64 bit WAV)"
+msgstr "W64 (64 bit WAV)"
+
+#: libs/ardour/sndfile_helpers.cc:38
+msgid "raw (no header)"
+msgstr "raw (sin encabezado)"
+
+#: libs/ardour/sndfile_helpers.cc:43
+msgid ".wav"
+msgstr ".wav"
+
+#: libs/ardour/sndfile_helpers.cc:44
+msgid ".aiff"
+msgstr "-aiff"
+
+#: libs/ardour/sndfile_helpers.cc:45
+msgid ".caf"
+msgstr "-caf"
+
+#: libs/ardour/sndfile_helpers.cc:46
+msgid ".w64"
+msgstr ".w64"
+
+#: libs/ardour/sndfile_helpers.cc:47
+msgid ".raw"
+msgstr ".raw"
+
+#: libs/ardour/sndfile_helpers.cc:60
+msgid "16 bit"
+msgstr "16 bit"
+
+#: libs/ardour/sndfile_helpers.cc:61
+msgid "24 bit"
+msgstr "24 bit"
+
+#: libs/ardour/sndfile_helpers.cc:62
+msgid "32 bit"
+msgstr "32 bit"
+
+#: libs/ardour/sndfile_helpers.cc:63
+msgid "8 bit"
+msgstr "8 bit"
+
+#: libs/ardour/sndfile_helpers.cc:64
+msgid "float"
+msgstr "flotante"
+
+#: libs/ardour/sndfile_helpers.cc:77
+msgid "Little-endian (Intel)"
+msgstr "Little-endian (Intel)"
+
+#: libs/ardour/sndfile_helpers.cc:78
+msgid "Big-endian (Mac)"
+msgstr "Big-endian (Mac)"
+
+#: libs/ardour/sndfilesource.cc:185
+msgid "cannot set broadcast info for audio file %1 (%2); dropping broadcast info for this file"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:238
+msgid "SndFileSource: cannot open file \"%1\" for %2 (%3)"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:246
+msgid "SndFileSource: file only contains %1 channels; %2 is invalid as a channel number"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:346
+msgid "SndFileSource: could not seek to frame %1 within %2 (%3)"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:356
+msgid "SndFileSource: @ %1 could not read %2 within %3 (%4) (len = %5)"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:396
+#: libs/ardour/sndfilesource.cc:431
+msgid "attempt to write a non-writable audio file source (%1)"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:401
+#: libs/ardour/utils.cc:523
+#: libs/ardour/utils.cc:547
+#: libs/ardour/utils.cc:561
+#: libs/ardour/utils.cc:580
+msgid "programming error: %1 %2"
+msgstr "error de programación: %1 %2"
+
+#: libs/ardour/sndfilesource.cc:535
+msgid "attempt to flush a non-writable audio file source (%1)"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:545
+msgid "attempt to store broadcast info in a non-writable audio file source (%1)"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:581
+#: libs/ardour/sndfilesource.cc:602
+msgid "cannot set broadcast info for audio file %1; Dropping broadcast info for this file"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:615
+msgid "%1: cannot seek to %2 (libsndfile error: %3"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:724
+msgid "SndFileSource: \"%1\" bad read retval: %2 of %5 (%3: %4)"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:737
+#: libs/ardour/sndfilesource.cc:787
+#: libs/ardour/sndfilesource.cc:794
+msgid "SndFileSource: \"%1\" bad write (%2)"
+msgstr ""
+
+#: libs/ardour/sndfilesource.cc:817
+msgid "Filesource: start time is already set for existing file (%1): Cannot change start time."
+msgstr ""
+
+#: libs/ardour/tempo.cc:71
+msgid "TempoSection XML node has no \"start\" property"
+msgstr ""
+
+#: libs/ardour/tempo.cc:79
+msgid "TempoSection XML node has an illegal \"start\" value"
+msgstr ""
+
+#: libs/ardour/tempo.cc:86
+msgid "TempoSection XML node has no \"beats-per-minute\" property"
+msgstr ""
+
+#: libs/ardour/tempo.cc:91
+msgid "TempoSection XML node has an illegal \"beats_per_minute\" value"
+msgstr ""
+
+#: libs/ardour/tempo.cc:100
+msgid "TempoSection XML node has an illegal \"note-type\" value"
+msgstr ""
+
+#: libs/ardour/tempo.cc:106
+msgid "TempoSection XML node has no \"movable\" property"
+msgstr ""
+
+#: libs/ardour/tempo.cc:147
+msgid "MeterSection XML node has no \"start\" property"
+msgstr ""
+
+#: libs/ardour/tempo.cc:155
+msgid "MeterSection XML node has an illegal \"start\" value"
+msgstr ""
+
+#: libs/ardour/tempo.cc:162
+msgid "MeterSection XML node has no \"beats-per-bar\" property"
+msgstr ""
+
+#: libs/ardour/tempo.cc:167
+msgid "MeterSection XML node has an illegal \"beats-per-bar\" value"
+msgstr ""
+
+#: libs/ardour/tempo.cc:172
+msgid "MeterSection XML node has no \"note-type\" property"
+msgstr ""
+
+#: libs/ardour/tempo.cc:177
+msgid "MeterSection XML node has an illegal \"note-type\" value"
+msgstr ""
+
+#: libs/ardour/tempo.cc:182
+msgid "MeterSection XML node has no \"movable\" property"
+msgstr ""
+
+#: libs/ardour/tempo.cc:561
+msgid "no tempo sections defined in tempo map - cannot change tempo @ %1"
+msgstr ""
+
+#: libs/ardour/tempo.cc:585
+#: libs/ardour/tempo.cc:601
+msgid "programming error: no tempo section in tempo map!"
+msgstr ""
+
+#: libs/ardour/tempo.cc:644
+#: libs/ardour/tempo.cc:702
+msgid "programming error: unhandled MetricSection type"
+msgstr ""
+
+#: libs/ardour/tempo.cc:1461
+#: libs/ardour/tempo.cc:1473
+msgid "Tempo map: could not set new state, restoring old one."
+msgstr ""
+
+#: libs/ardour/utils.cc:300
+msgid "illegal or badly-formed string used for path (%1)"
+msgstr ""
+
+#: libs/ardour/utils.cc:305
+msgid "path (%1) is ambiguous"
+msgstr "la ruta (%1) es ambigua"
+
+#: libs/ardour/utils.cc:367
+#: libs/ardour/utils.cc:391
+msgid "Splice Edit"
+msgstr "Reunir"
+
+#: libs/ardour/utils.cc:369
+#: libs/ardour/utils.cc:384
+msgid "Slide Edit"
+msgstr "Deslizar"
+
+#: libs/ardour/utils.cc:371
+#: libs/ardour/utils.cc:387
+msgid "Lock Edit"
+msgstr "Bloquear"
+
+#: libs/ardour/utils.cc:374
+msgid "programming error: unknown edit mode string \"%1\""
+msgstr ""
+
+#: libs/ardour/utils.cc:398
+#: libs/ardour/utils.cc:427
+msgid "Internal"
+msgstr "Interno"
+
+#: libs/ardour/utils.cc:402
+#: libs/ardour/utils.cc:423
+msgid "MTC"
+msgstr "MTC"
+
+#: libs/ardour/utils.cc:406
+#: libs/ardour/utils.cc:420
+msgid "JACK"
+msgstr "JACK"
+
+#: libs/ardour/utils.cc:410
+msgid "programming error: unknown slave source string \"%1\""
+msgstr ""
+
+#: libs/ardour/vst_plugin.cc:165
+msgid "cannot create VST chunk directory: %1"
+msgstr ""
+
+#: libs/ardour/vst_plugin.cc:173
+msgid "cannot check VST chunk directory: %1"
+msgstr ""
+
+#: libs/ardour/vst_plugin.cc:179
+msgid "%1 exists but is not a directory"
+msgstr "%1 existe, pero no es un directorio"
+
+#: libs/ardour/vst_plugin.cc:218
+msgid "Bad node sent to VSTPlugin::set_state"
+msgstr ""
+
+#: libs/ardour/vst_plugin.cc:325
+#: libs/ardour/vst_plugin.cc:336
+msgid "no support for presets using chunks at this time"
+msgstr ""
+
+#: libs/ardour/vst_plugin.cc:495
+msgid "VST: cannot load module from \"%1\""
+msgstr ""
+
+#: libs/ardour/vst_plugin.cc:500
+msgid "You asked ardour to not use any VST plugins"
+msgstr ""
+
+#: libs/ardour/coreaudiosource.cc:82
+msgid "CoreAudioSource: cannot open file \"%1\" for %2"
+msgstr ""
+
+#: libs/ardour/rb_effect.cc:224
+#: libs/ardour/rb_effect.cc:265
+msgid "tempoize: error reading data from %1 at %2 (wanted %3, got %4)"
+msgstr ""
+
+#: libs/ardour/rb_effect.cc:290
+#: libs/ardour/rb_effect.cc:307
+msgid "error writing tempo-adjusted data to %1"
+msgstr ""
+
+#: libs/ardour/rb_effect.cc:314
+msgid "timefx code failure. please notify ardour-developers."
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:89
+#: libs/ardour/audio_unit.cc:1009
+#, fuzzy
+msgid "Could not create XML version of property list"
+msgstr "%1: no se pudo crear la región para el archivo de audio completo"
+
+#: libs/ardour/audio_unit.cc:107
+#, fuzzy
+msgid "Cannot open preset file %1 (%2)"
+msgstr "No se puede abrir el archivo de automatización de panorámica %1 (%2)."
+
+#: libs/ardour/audio_unit.cc:340
+msgid "Exception thrown during AudioUnit plugin loading - plugin ignored"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:345
+msgid "AudioUnit: Could not convert CAComponent to CAAudioUnit"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:372
+msgid "AUPlugin: cannot set processing block size"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:576
+msgid "AUPlugin: %1 cannot initialize plugin (err = %2)"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:678
+msgid "AU %1 has zero outputs - configuration ignored"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:736
+#: libs/ardour/audio_unit.cc:764
+msgid "AU plugin %1 has illegal IO configuration (-2,-2)"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:841
+msgid "AUPlugin: could not set stream format for %1/%2 (err = %3)"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:860
+msgid "AUPlugin: %1 input_streams() called without any format set!"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:871
+msgid "AUPlugin: %1 output_streams() called without any format set!"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:887
+msgid "AUPlugin: render callback called illegally!"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1029
+msgid "Saving AudioUnit settings is not supported in this build of Ardour. Consider paying for a newer version"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1047
+msgid "Bad node sent to AUPlugin::set_state"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1082
+msgid "Restoring AudioUnit settings is not supported in this build of Ardour. Consider paying for a newer version"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1112
+msgid "Loading AudioUnit presets is not supported in this build of Ardour. Consider paying for a newer version"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1145
+msgid "Cannot create user plugin presets folder (%1)"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1164
+msgid "Saving plugin state to %1 failed"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1173
+msgid "Saving AudioUnit presets is not supported in this build of Ardour. Consider paying for a newer version"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1450
+msgid "Discovering AudioUnit plugins (could take some time ...)"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1631
+msgid "Cannot get I/O configuration info for AU %1"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1670
+msgid "Checking AudioUnit: %1"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1680
+#: libs/ardour/audio_unit.cc:1681
+msgid "Could not load AU plugin %1 - ignored"
+msgstr ""
+
+#: libs/ardour/audio_unit.cc:1751
+msgid "could not save AU cache to %1"
+msgstr ""
+
diff --git a/libs/ardour/port.cc b/libs/ardour/port.cc
index 4b03997..83c835c 100644
--- a/libs/ardour/port.cc
+++ b/libs/ardour/port.cc
@@ -42,8 +42,6 @@ Port::Port (jack_port_t *p)
 void
 Port::reset ()
 {
-	reset_buffer ();
-	
 	_last_monitor = false;
 	_silent = false;
 	_metering = 0;
diff --git a/libs/ardour/route.cc b/libs/ardour/route.cc
index edfcaa7..4553bf2 100644
--- a/libs/ardour/route.cc
+++ b/libs/ardour/route.cc
@@ -1152,8 +1152,8 @@ Route::remove_redirect (boost::shared_ptr<Redirect> redirect, void *src, uint32_
 	}
 
 	redirect->drop_references ();
-
 	redirects_changed (src); /* EMIT SIGNAL */
+
 	return 0;
 }
 
@@ -1523,7 +1523,8 @@ Route::state(bool full_state)
 	node->add_property("mute-affects-pre-fader", _mute_affects_pre_fader?"yes":"no"); 
 	node->add_property("mute-affects-post-fader", _mute_affects_post_fader?"yes":"no"); 
 	node->add_property("mute-affects-control-outs", _mute_affects_control_outs?"yes":"no"); 
-	node->add_property("mute-affects-main-outs", _mute_affects_main_outs?"yes":"no"); 
+	node->add_property("mute-affects-main-outs", _mute_affects_main_outs?"yes":"no");
+	node->add_property("meter-point", enum_2_string (_meter_point));
 
 	if (_edit_group) {
 		node->add_property("edit-group", _edit_group->name());
@@ -1738,6 +1739,10 @@ Route::_set_state (const XMLNode& node, bool call_base)
 		_mute_affects_main_outs = (prop->value()=="yes")?true:false;
 	}
 
+	if ((prop = node.property (X_("meter-point"))) != 0) {
+		_meter_point = MeterPoint (string_2_enum (prop->value (), _meter_point));
+	}
+	
 	if ((prop = node.property (X_("edit-group"))) != 0) {
 		RouteGroup* edit_group = _session.edit_group_by_name(prop->value());
 		if(edit_group == 0) {
@@ -1829,9 +1834,22 @@ Route::_set_state (const XMLNode& node, bool call_base)
 			string coutname = _name;
 			coutname += _("[control]");
 
+			delete _control_outs;
 			_control_outs = new IO (_session, coutname);
-			_control_outs->set_state (**(child->children().begin()));
 
+			/* fix up the control out name in the XML before setting it. 
+			   Otherwise track templates don't work because the control
+			   outs end up with the stored template name, rather than
+			   the new name of the track based on the template.
+			*/
+
+			XMLProperty* prop = (*child->children().begin())->property ("name");
+			if (prop) {
+				prop->set_value (coutname);
+			}
+
+			_control_outs->set_state (**(child->children().begin()));
+			
 		} else if (child->name() == X_("Comment")) {
 
 			/* XXX this is a terrible API design in libxml++ */
@@ -2659,3 +2677,15 @@ Route::shift (nframes64_t pos, nframes64_t frames)
 		}
 	}
 }
+
+int
+Route::save_as_template (const string& path, const string& name)
+{
+	XMLNode& node (state (false));
+	XMLTree tree;
+	
+	IO::set_name_in_state (*node.children().front(), name);
+	
+	tree.set_root (&node);
+	return tree.write (path.c_str());
+}
diff --git a/libs/ardour/session.cc b/libs/ardour/session.cc
index 6754a51..ffa8eeb 100644
--- a/libs/ardour/session.cc
+++ b/libs/ardour/session.cc
@@ -677,8 +677,6 @@ Session::set_worst_io_latencies ()
 void
 Session::when_engine_running ()
 {
-	string first_physical_output;
-
 	/* we don't want to run execute this again */
 
 	BootMessage (_("Set block size and sample rate"));
@@ -725,17 +723,21 @@ Session::when_engine_running ()
 
 		} else {
 			
-			/* default state for Click */
-
-			first_physical_output = _engine.get_nth_physical_audio_output (0);
+			/* default state for Click: dual-mono to first 2 physical outputs */
 			
-			if (first_physical_output.length()) {
-				if (_click_io->add_output_port (first_physical_output, this)) {
-					// relax, even though its an error
-				} else {
-					_clicking = Config->get_clicking ();
+			for (int physport = 0; physport < 2; ++physport) {
+				string physical_output = _engine.get_nth_physical_audio_output (physport);
+			
+				if (physical_output.length()) {
+					if (_click_io->add_output_port (physical_output, this)) {
+						// relax, even though its an error
+					} 
 				}
 			}
+
+			if (_click_io->n_outputs() > 0) {
+				_clicking = Config->get_clicking ();
+			}
 		}
 	}
 
@@ -1871,7 +1873,7 @@ Session::new_audio_track (int input_channels, int output_channels, TrackMode mod
 
 		catch (AudioEngine::PortRegistrationFailure& pfe) {
 
-			error << _("No more JACK ports are available. You will need to stop Ardour and restart JACK with ports if you need this many tracks.") << endmsg;
+			error << pfe.what() << endmsg;
 
 			if (track) {
 				/* we need to get rid of this, since the track failed to be created */
@@ -2016,7 +2018,7 @@ Session::new_audio_route (int input_channels, int output_channels, uint32_t how_
 		}
 
 		catch (AudioEngine::PortRegistrationFailure& pfe) {
-			error << _("No more JACK ports are available. You will need to stop Ardour and restart JACK with ports if you need this many tracks.") << endmsg;
+			error << pfe.what() << endmsg;
 			goto failure;
 		}
 
@@ -2033,6 +2035,118 @@ Session::new_audio_route (int input_channels, int output_channels, uint32_t how_
 
 }
 
+Session::RouteList
+Session::new_route_from_template (uint32_t how_many, const std::string& template_path)
+{
+	char name[32];
+	RouteList ret;
+	uint32_t control_id;
+	XMLTree tree;
+
+	if (!tree.read (template_path.c_str())) {
+		return ret;
+	}
+
+	XMLNode* node = tree.root();
+
+	control_id = ntracks() + nbusses() + 1;
+
+	while (how_many) {
+
+		XMLNode node_copy (*node); // make a copy so we can change the name if we need to
+	  
+		std::string node_name = IO::name_from_state (*node_copy.children().front());
+
+		if (route_by_name (node_name) != 0) {
+
+			/* generate a new name by adding a number to the end of the template name */
+
+			uint32_t number = 1;
+
+			do {
+				snprintf (name, sizeof (name), "%s %" PRIu32, node_name.c_str(), number);
+	      
+				number++;
+	      
+				if (route_by_name (name) == 0) {
+					break;
+				}
+	      
+			} while (number < UINT_MAX);
+
+			if (number == UINT_MAX) {
+				fatal << _("Session: UINT_MAX routes? impossible!") << endmsg;
+				/*NOTREACHED*/
+			}
+
+			IO::set_name_in_state (*node_copy.children().front(), name);
+		}
+
+		Track::zero_diskstream_id_in_xml (node_copy);
+		
+		try {
+			shared_ptr<Route> route (XMLRouteFactory (node_copy));
+	    
+			if (route == 0) {
+				error << _("Session: cannot create track/bus from template description") << endmsg;
+				goto out;
+			}
+
+			if (boost::dynamic_pointer_cast<Track>(route)) {
+				/* force input/output change signals so that the new diskstream
+				   picks up the configuration of the route. During session
+				   loading this normally happens in a different way.
+				*/
+				route->input_changed (IOChange (ConfigurationChanged|ConnectionsChanged), this);
+				route->output_changed (IOChange (ConfigurationChanged|ConnectionsChanged), this);
+			}
+
+			route->set_remote_control_id (control_id);
+			++control_id;
+	    
+			ret.push_back (route);
+		}
+	  
+		catch (failed_constructor &err) {
+			error << _("Session: could not create new route from template") << endmsg;
+			goto out;
+		}
+	  
+		catch (AudioEngine::PortRegistrationFailure& pfe) {
+			error << pfe.what() << endmsg;
+			goto out;
+		}
+	  
+		--how_many;
+	}
+
+  out:
+	if (!ret.empty()) {
+		add_routes (ret, true);
+	}
+
+	return ret;
+}
+
+boost::shared_ptr<Route>
+Session::new_video_track (string name)
+{
+	uint32_t control_id = ntracks() + nbusses() + 1;
+	shared_ptr<Route> new_route (
+		new Route ( *this, name, -1, -1, -1, -1, Route::Flag(0), ARDOUR::DataType::NIL));
+	new_route->set_remote_control_id (control_id);
+
+	RouteList rl;
+	rl.push_back (new_route);
+        {
+		RCUWriter<RouteList> writer (routes);
+		shared_ptr<RouteList> r = writer.get_copy ();
+                r->insert (r->end(), rl.begin(), rl.end());
+		resort_routes_using (r);
+        }
+	return new_route;
+}
+
 void
 Session::add_routes (RouteList& new_routes, bool save)
 {
@@ -2226,7 +2340,7 @@ Session::route_solo_changed (void* src, boost::weak_ptr<Route> wpr)
 			
 			/* don't mess with busses */
 			
-			if (dynamic_cast<AudioTrack*>((*i).get()) == 0) {
+			if (boost::dynamic_pointer_cast<AudioTrack>(*i) == 0) {
 				continue;
 			}
 			
@@ -2234,7 +2348,7 @@ Session::route_solo_changed (void* src, boost::weak_ptr<Route> wpr)
 			
 			/* don't mess with tracks */
 			
-			if (dynamic_cast<AudioTrack*>((*i).get()) != 0) {
+			if (boost::dynamic_pointer_cast<AudioTrack>(*i) != 0) {
 				continue;
 			}
 		}
@@ -2317,7 +2431,7 @@ Session::update_route_solo_state ()
         for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
 		if ((*i)->soloed()) {
 			mute = true;
-			if (dynamic_cast<AudioTrack*>((*i).get())) {
+			if (boost::dynamic_pointer_cast<AudioTrack>(*i)) {
 				is_track = true;
 			}
 			break;
@@ -2362,7 +2476,7 @@ Session::modify_solo_mute (bool is_track, bool mute)
 			
 			/* only alter track solo mute */
 			
-			if (dynamic_cast<AudioTrack*>((*i).get())) {
+			if (boost::dynamic_pointer_cast<AudioTrack>(*i)) {
 				if ((*i)->soloed()) {
 					(*i)->set_solo_mute (!mute);
 				} else {
@@ -2373,8 +2487,8 @@ Session::modify_solo_mute (bool is_track, bool mute)
 		} else {
 
 			/* only alter bus solo mute */
-
-			if (!dynamic_cast<AudioTrack*>((*i).get())) {
+			
+			if (!boost::dynamic_pointer_cast<AudioTrack>(*i)) {
 
 				if ((*i)->soloed()) {
 
@@ -3488,7 +3602,7 @@ void
 Session::set_all_solo (bool yn)
 {
 	shared_ptr<RouteList> r = routes.reader ();
-	
+
 	for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
 		if (!(*i)->hidden()) {
 			(*i)->set_solo (yn, this);
@@ -3997,7 +4111,7 @@ Session::freeze (InterThreadInfo& itt)
 
 boost::shared_ptr<Region>
 Session::write_one_audio_track (AudioTrack& track, nframes_t start, nframes_t end, 	
-			       bool overwrite, vector<boost::shared_ptr<AudioSource> >& srcs, InterThreadInfo& itt)
+			       bool overwrite, vector<boost::shared_ptr<AudioSource> >& srcs, InterThreadInfo& itt, bool enable_processing)
 {
 	boost::shared_ptr<Region> result;
 	boost::shared_ptr<Playlist> playlist;
@@ -4021,7 +4135,9 @@ Session::write_one_audio_track (AudioTrack& track, nframes_t start, nframes_t en
 	// any bigger than this seems to cause stack overflows in called functions
 	const nframes_t chunk_size = (128 * 1024)/4;
 
-	g_atomic_int_set (&processing_prohibited, 1);
+	// block all process callback handling
+
+	block_processing ();
 	
 	/* call tree *MUST* hold route_lock */
 	
@@ -4090,7 +4206,7 @@ Session::write_one_audio_track (AudioTrack& track, nframes_t start, nframes_t en
 		
 		this_chunk = min (to_do, chunk_size);
 		
-		if (track.export_stuff (buffers, nchans, start, this_chunk)) {
+		if (track.export_stuff (buffers, nchans, start, this_chunk, enable_processing)) {
 			goto out;
 		}
 
@@ -4156,7 +4272,7 @@ Session::write_one_audio_track (AudioTrack& track, nframes_t start, nframes_t en
 		free (*i);
 	}
 
-	g_atomic_int_set (&processing_prohibited, 0);
+	unblock_processing ();
 
 	itt.done = true;
 
diff --git a/libs/ardour/session_process.cc b/libs/ardour/session_process.cc
index 5891be2..31cf3a9 100644
--- a/libs/ardour/session_process.cc
+++ b/libs/ardour/session_process.cc
@@ -47,15 +47,23 @@ Session::process (nframes_t nframes)
 {
 	_silent = false;
 
+	if (processing_blocked()) {
+		_silent = true;
+		return;
+	}
+
 	if (non_realtime_work_pending()) {
 		if (!transport_work_requested ()) {
 			post_transport ();
 		} 
 	} 
-	
-	(this->*process_function) (nframes);
 
-	SendFeedback (); /* EMIT SIGNAL */
+	(this->*process_function) (nframes);
+	
+	{
+		Glib::Mutex::Lock lm (midi_lock, Glib::TRY_LOCK);
+		SendFeedback (); /* EMIT SIGNAL */
+	}
 }
 
 void
@@ -79,13 +87,6 @@ Session::no_roll (nframes_t nframes, nframes_t offset)
 		_click_io->silence (nframes, offset);
 	}
 
-	if (g_atomic_int_get (&processing_prohibited)) {
-		for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
-			(*i)->silence (nframes, offset);
-		}
-		return 0;
-	}
-
 	for (RouteList::iterator i = r->begin(); i != r->end(); ++i) {
 		
 		if ((*i)->hidden()) {
@@ -381,7 +382,7 @@ Session::process_with_events (nframes_t nframes)
 
 			/* if an event left our state changing, do the right thing */
 
-			if (non_realtime_work_pending()) {
+			if (nframes && non_realtime_work_pending()) {
 				no_roll (nframes, offset);
 				break;
 			}
@@ -863,9 +864,7 @@ Session::maybe_sync_start (nframes_t& nframes, nframes_t& offset)
 		   with any fancy stuff here, just the minimal silence.
 		*/
 
-		g_atomic_int_inc (&processing_prohibited);
-		no_roll (nframes, 0);
-		g_atomic_int_dec_and_test (&processing_prohibited);
+		_silent = true;
 
 		if (Config->get_locate_while_waiting_for_sync()) {
 			if (micro_locate (nframes)) {
diff --git a/libs/ardour/session_state.cc b/libs/ardour/session_state.cc
index c769e57..73d8ba2 100644
--- a/libs/ardour/session_state.cc
+++ b/libs/ardour/session_state.cc
@@ -1359,6 +1359,11 @@ Session::load_routes (const XMLNode& node)
 	set_dirty();
 
 	for (niter = nlist.begin(); niter != nlist.end(); ++niter) {
+		if ((*niter)->property ("default-type")->value() == "unknown" ) {
+		  std::cout << "ignoring route with type unknown. (video-track)" << std::endl;
+		  // Note: this may mess up remote_control IDs or more..
+		  continue;
+		}
 
 		boost::shared_ptr<Route> route (XMLRouteFactory (**niter));
 
@@ -2058,6 +2063,12 @@ Session::template_dir ()
 }
 
 string
+Session::route_template_dir ()
+{
+	return Glib::build_filename (get_user_ardour_path(), "route_templates");
+}
+
+string
 Session::export_dir () const
 {
 	return Glib::build_filename (_path, export_dir_name);
@@ -2103,6 +2114,13 @@ Session::template_path ()
 	return suffixed_search_path (X_("templates"), true);
 }
 
+
+string
+Session::route_template_path ()
+{
+	return suffixed_search_path (X_("route_templates"), true);
+}
+
 string
 Session::control_protocol_path ()
 {
@@ -2471,6 +2489,43 @@ Session::get_template_list (list<string> &template_names)
 	}
 }
 
+void
+Session::get_route_templates (vector<RouteTemplateInfo>& template_names)
+{
+	vector<string *> *templates;
+	PathScanner scanner;
+	string path;
+
+	path = route_template_path ();
+	
+	templates = scanner (path, template_filter, 0, false, true);
+	
+	if (!templates) {
+	  return;
+	}
+
+	for (vector<string*>::iterator i = templates->begin(); i != templates->end(); ++i) {
+		string fullpath = *(*i);
+
+		XMLTree tree;
+
+		if (!tree.read (fullpath.c_str())) {
+		  continue;
+		}
+
+		XMLNode* root = tree.root();
+		
+		RouteTemplateInfo rti;
+
+		rti.name = IO::name_from_state (*root->children().front());
+		rti.path = fullpath;
+
+		template_names.push_back (rti);
+	}
+
+	free (templates);
+}
+
 int
 Session::read_favorite_dirs (FavoriteDirs & favs)
 {
diff --git a/libs/ardour/session_transport.cc b/libs/ardour/session_transport.cc
index 0249350..2801892 100644
--- a/libs/ardour/session_transport.cc
+++ b/libs/ardour/session_transport.cc
@@ -1,5 +1,5 @@
 /*
-    Copyright (C) 1999-2003 Paul Davis 
+    Copyright (C) 1999-2009 Paul Davis 
 
     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 --git a/libs/ardour/session_vst.cc b/libs/ardour/session_vst.cc
index 16233fe..b70b75a 100644
--- a/libs/ardour/session_vst.cc
+++ b/libs/ardour/session_vst.cc
@@ -21,17 +21,19 @@
 #include <cstdio>
 
 #include <fst.h>
-#include <vst/aeffectx.h>
+#include <fst/vestige/aeffectx.h>
 
 #include <ardour/session.h>
+#include <ardour/tempo.h>
 #include <ardour/vst_plugin.h>
 
 #include "i18n.h"
 
-// #define DEBUG_CALLBACKS
+#define DEBUG_CALLBACKS
+static int debug_callbacks = -1;
 
 #ifdef DEBUG_CALLBACKS
-#define SHOW_CALLBACK printf
+#define SHOW_CALLBACK if (debug_callbacks) printf
 #else
 #define SHOW_CALLBACK(...)
 #endif
@@ -49,14 +51,18 @@ long Session::vst_callback (AEffect* effect,
 	VSTPlugin* plug;
 	Session* session;
 
-	SHOW_CALLBACK ("am callback, opcode = %d", opcode);
+	if (debug_callbacks < 0) {
+		debug_callbacks = (getenv ("ARDOUR_DEBUG_VST_CALLBACKS") != 0);
+	}
 	
 	if (effect && effect->user) {
-		plug = static_cast<VSTPlugin*> (effect->user);
+	        plug = (VSTPlugin*) (effect->user);
 		session = &plug->session();
+		SHOW_CALLBACK ("am callback 0x%x, opcode = %ld, plugin = \"%s\" ", pthread_self(), opcode, plug->name());
 	} else {
 		plug = 0;
 		session = 0;
+		SHOW_CALLBACK ("am callback 0x%x, opcode = %ld", pthread_self(), opcode);
 	}
 
 	switch(opcode){
@@ -113,7 +119,25 @@ long Session::vst_callback (AEffect* effect,
 		if (session) {
 			_timeInfo.samplePos = session->transport_frame();
 			_timeInfo.sampleRate = session->frame_rate();
+			_timeInfo.flags = 0;
+			
+			if (value & (kVstTempoValid)) {
+				const Tempo& t (session->tempo_map().tempo_at (session->transport_frame()));
+				_timeInfo.tempo = t.beats_per_minute ();
+				_timeInfo.flags |= (kVstTempoValid);
+			}
+			if (value & (kVstBarsValid)) {
+				const Meter& m (session->tempo_map().meter_at (session->transport_frame()));
+				_timeInfo.timeSigNumerator = m.beats_per_bar ();
+				_timeInfo.timeSigDenominator = m.note_divisor ();
+				_timeInfo.flags |= (kVstBarsValid);
+			}
+			
+			if (session->transport_speed() != 0.0f) {
+				_timeInfo.flags |= kVstTransportPlaying;
+			} 
 		}
+
 		return (long)&_timeInfo;
 
 	case audioMasterProcessEvents:
@@ -128,7 +152,13 @@ long Session::vst_callback (AEffect* effect,
 	case audioMasterTempoAt:
 		SHOW_CALLBACK ("amc: audioMasterTempoAt\n");
 		// returns tempo (in bpm * 10000) at sample frame location passed in <value>
-		return 0;
+		if (session) {
+			const Tempo& t (session->tempo_map().tempo_at (value));
+			return t.beats_per_minute() * 1000;
+		} else {
+			return 0;
+		}
+		break;
 
 	case audioMasterGetNumAutomatableParameters:
 		SHOW_CALLBACK ("amc: audioMasterGetNumAutomatableParameters\n");
@@ -148,7 +178,10 @@ long Session::vst_callback (AEffect* effect,
 
 	case audioMasterNeedIdle:
 		SHOW_CALLBACK ("amc: audioMasterNeedIdle\n");
-	       // plug needs idle calls (outside its editor window)
+		// plug needs idle calls (outside its editor window)
+		if (plug) {
+			plug->fst()->wantIdle = 1;
+		}
 		return 0;
 
 	case audioMasterSizeWindow:
@@ -158,10 +191,16 @@ long Session::vst_callback (AEffect* effect,
 
 	case audioMasterGetSampleRate:
 		SHOW_CALLBACK ("amc: audioMasterGetSampleRate\n");
+		if (session) {
+			return session->frame_rate();
+		}
 		return 0;
 
 	case audioMasterGetBlockSize:
 		SHOW_CALLBACK ("amc: audioMasterGetBlockSize\n");
+		if (session) {
+			return session->get_block_size();
+		}
 		return 0;
 
 	case audioMasterGetInputLatency:
@@ -306,7 +345,7 @@ long Session::vst_callback (AEffect* effect,
 		return 0;
 		
 	default:
-		SHOW_CALLBACK ("VST master dispatcher: undefed: %d, %d\n", opcode, effKeysRequired);
+		SHOW_CALLBACK ("VST master dispatcher: undefed: %d\n", opcode);
 		break;
 	}	
 	
diff --git a/libs/ardour/svn_revision.cc b/libs/ardour/svn_revision.cc
index 5094e6c..e8cbf4d 100644
--- a/libs/ardour/svn_revision.cc
+++ b/libs/ardour/svn_revision.cc
@@ -1,4 +1,4 @@
 #include <ardour/svn_revision.h>
 namespace ARDOUR {
-extern const char* svn_revision = "4296";
+extern const char* svn_revision = "4918";
 }
diff --git a/libs/ardour/track.cc b/libs/ardour/track.cc
index 6615a3d..91bc623 100644
--- a/libs/ardour/track.cc
+++ b/libs/ardour/track.cc
@@ -220,3 +220,10 @@ Track::set_latency_delay (nframes_t longest_session_latency)
 	_diskstream->set_roll_delay (_roll_delay);
 }
 
+void
+Track::zero_diskstream_id_in_xml (XMLNode& node)
+{
+	if (node.property ("diskstream-id")) {
+		node.add_property ("diskstream-id", "0");
+	}
+}
diff --git a/libs/ardour/vst_plugin.cc b/libs/ardour/vst_plugin.cc
index c30af3b..2bcc354 100644
--- a/libs/ardour/vst_plugin.cc
+++ b/libs/ardour/vst_plugin.cc
@@ -1,19 +1,19 @@
 /*
-    Copyright (C) 2004 Paul Davis 
+  Copyright (C) 2004 Paul Davis 
 
-    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 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.
+  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., 675 Mass Ave, Cambridge, MA 02139, USA.
+  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., 675 Mass Ave, Cambridge, MA 02139, USA.
 
 */
 
@@ -41,8 +41,6 @@
 #include <pbd/pathscanner.h>
 #include <pbd/xml++.h>
 
-#include <vst/aeffectx.h>
-
 #include <ardour/ardour.h>
 #include <ardour/session.h>
 #include <ardour/audioengine.h>
@@ -72,13 +70,16 @@ VSTPlugin::VSTPlugin (AudioEngine& e, Session& session, FSTHandle* h)
 
 	/* set rate and blocksize */
 
+	//cerr << "Dispatch " <<  "effSetSampleRate" << " for " << name() << endl;
 	_plugin->dispatcher (_plugin, effSetSampleRate, 0, 0, NULL, 
 			     (float) session.frame_rate());
+	//cerr << "Dispatch " << "effSetBlockSize" << " for " << name() << endl;
 	_plugin->dispatcher (_plugin, effSetBlockSize, 0, 
 			     session.get_block_size(), NULL, 0.0f);
 	
 	/* set program to zero */
 
+	//cerr << "Dispatch " << "effSetProgram" << " for " << name() << endl;
 	_plugin->dispatcher (_plugin, effSetProgram, 0, 0, NULL, 0.0f);
 	
 	Plugin::setup_controls ();
@@ -108,6 +109,7 @@ void
 VSTPlugin::set_block_size (nframes_t nframes)
 {
 	deactivate ();
+	//cerr << "Dispatch effSetBlockSize for " << name() << endl;
 	_plugin->dispatcher (_plugin, effSetBlockSize, 0, nframes, NULL, 0.0f);
 	activate ();
 }
@@ -121,13 +123,17 @@ VSTPlugin::default_value (uint32_t port)
 void
 VSTPlugin::set_parameter (uint32_t which, float val)
 {
+	// cerr << "1SetParameter for " << name() << endl;
 	_plugin->setParameter (_plugin, which, val);
+	// cerr << "signal param change\n";
 	ParameterChanged (which, val); /* EMIT SIGNAL */
+	// cerr << "change done\n";
 }
 
 float
 VSTPlugin::get_parameter (uint32_t which) const
 {
+	// cerr << "GetParameter for " << name() << endl;
 	return _plugin->getParameter (_plugin, which);
 	
 }
@@ -145,53 +151,32 @@ VSTPlugin::get_state()
 	XMLNode *root = new XMLNode (state_node_name());
 	LocaleGuard lg (X_("POSIX"));
 
-	if (_plugin->flags & effFlagsProgramChunks) {
+	if (_fst->current_program != -1) {
+		char buf[32];
+		snprintf (buf, sizeof (buf), "%d", _fst->current_program);
+		root->add_property ("current-program", buf);
+	}
+
+	if (_plugin->flags & 32 /* effFlagsProgramChunks */) {
 
 		/* fetch the current chunk */
 		
-		void* data;
+		guchar* data;
 		long  data_size;
 		
-		if ((data_size = _plugin->dispatcher (_plugin, effGetChunk, 0, 0, &data, false)) == 0) {
+		//cerr << "Dispatch getChunk for " << name() << endl;
+		if ((data_size = _plugin->dispatcher (_plugin, 23 /* effGetChunk */, 0, 0, &data, false)) == 0) {
 			return *root;
 		}
 
-		/* save it to a file */
-
-		Glib::ustring path = Glib::build_filename (get_user_ardour_path (), "vst");
-		struct stat sbuf;
-
-		if (stat (path.c_str(), &sbuf)) {
-			if (errno == ENOENT) {
-				if (g_mkdir_with_parents (path.c_str(), 0600)) {
-					error << string_compose (_("cannot create VST chunk directory: %1"),
-								 strerror (errno))
-					      << endmsg;
-					return *root;
-				}
-
-			} else {
-
-				warning << string_compose (_("cannot check VST chunk directory: %1"), strerror (errno))
-					<< endmsg;
-				return *root;
-			}
-
-		} else if (!S_ISDIR (sbuf.st_mode)) {
-			error << string_compose (_("%1 exists but is not a directory"), path)
-			      << endmsg;
-			return *root;
-		}
-		
-		path = Glib::build_filename (path, "something");
-		
 		/* store information */
 
 		XMLNode* chunk_node = new XMLNode (X_("chunk"));
-		chunk_node->add_property ("path", path);
-		
+		gchar * encoded_data = g_base64_encode (data, data_size);
+		chunk_node->add_content (encoded_data);
+		g_free (encoded_data);
+
 		root->add_child_nocopy (*chunk_node);
-		
 	} else {
 
 		XMLNode* parameters = new XMLNode ("parameters");
@@ -205,6 +190,7 @@ VSTPlugin::get_state()
 		}
 
 		root->add_child_nocopy (*parameters);
+
 	}
 
 	return *root;
@@ -214,17 +200,35 @@ int
 VSTPlugin::set_state(const XMLNode& node)
 {
 	LocaleGuard lg (X_("POSIX"));
-
+	const XMLProperty* prop;
+	
 	if (node.name() != state_node_name()) {
 		error << _("Bad node sent to VSTPlugin::set_state") << endmsg;
 		return 0;
 	}
 
+	if ((prop = node.property ("current-program")) != 0) {
+		_fst->current_program = atoi (prop->value());
+	}
+
 	XMLNode* child;
+	int ret = -1;
 
-	if ((child = find_named_node (node, X_("chunks"))) != 0) {
+	if ((child = find_named_node (node, X_("chunk"))) != 0) {
 
-		return 0;
+		XMLPropertyList::const_iterator i;
+		XMLNodeList::const_iterator n;
+		int ret = -1;
+
+		for (n = child->children ().begin (); n != child->children ().end (); ++n) {
+			if ((*n)->is_content ()) {
+				gsize chunk_size = 0;
+				guchar * data = g_base64_decode ((*n)->content ().c_str (), &chunk_size);
+				//cerr << "Dispatch setChunk for " << name() << endl;
+				ret = _plugin->dispatcher (_plugin, 24 /* effSetChunk */, 0, chunk_size, data, 0);
+				g_free (data);
+			}
+		}
 
 	} else if ((child = find_named_node (node, X_("parameters"))) != 0) {
 		
@@ -237,27 +241,34 @@ VSTPlugin::set_state(const XMLNode& node)
 			sscanf ((*i)->name().c_str(), "param_%ld", &param);
 			sscanf ((*i)->value().c_str(), "%f", &val);
 
+			// cerr << "2setParameter for " << name() << endl;
 			_plugin->setParameter (_plugin, param, val);
 		}
 
-		return 0;
+		/* program number is not knowable */
+
+		_fst->current_program = -1;
+
+		ret = 0;
 	}
 
-	return -1;
+	
+
+	return ret;
 }
 
 int
 VSTPlugin::get_parameter_descriptor (uint32_t which, ParameterDescriptor& desc) const
 {
 	VstParameterProperties prop;
-
+	
 	desc.min_unbound = false;
 	desc.max_unbound = false;
+	prop.flags = 0;
 
+	//cerr << "Dispatch getParameterProperties for " << name() << endl;
 	if (_plugin->dispatcher (_plugin, effGetParameterProperties, which, 0, &prop, 0)) {
 
-		/* i have yet to find or hear of a VST plugin that uses this */
-
 		if (prop.flags & kVstParameterUsesIntegerMinMax) {
 			desc.lower = prop.minInteger;
 			desc.upper = prop.maxInteger;
@@ -288,6 +299,7 @@ VSTPlugin::get_parameter_descriptor (uint32_t which, ParameterDescriptor& desc)
 		}
 		
 		desc.toggled = prop.flags & kVstParameterIsSwitch;
+		// cerr << "parameter " << which << " toggled = " << desc.toggled << " from " << std::hex << prop.flags << " vs. " << kVstParameterIsSwitch << std::dec << endl;
 		desc.logarithmic = false;
 		desc.sr_dependent = false;
 		desc.label = prop.label;
@@ -299,6 +311,7 @@ VSTPlugin::get_parameter_descriptor (uint32_t which, ParameterDescriptor& desc)
 		char label[64];
 		label[0] = '\0';
 
+		// cerr << "Dispatch paramName for " << name() << endl;
 		_plugin->dispatcher (_plugin, effGetParamName, which, 0, label, 0);
 
 		desc.label = label;
@@ -319,7 +332,8 @@ VSTPlugin::get_parameter_descriptor (uint32_t which, ParameterDescriptor& desc)
 bool
 VSTPlugin::load_preset (string name)
 {
-	if (_plugin->flags & effFlagsProgramChunks) {
+
+        if (_plugin->flags & 32 /* effFlagsProgramChunks */) {
 		error << _("no support for presets using chunks at this time")
 		      << endmsg;
 		return false;
@@ -330,11 +344,12 @@ VSTPlugin::load_preset (string name)
 bool
 VSTPlugin::save_preset (string name)
 {
-	if (_plugin->flags & effFlagsProgramChunks) {
+        if (_plugin->flags & 32 /* effFlagsProgramChunks */) {
 		error << _("no support for presets using chunks at this time")
 		      << endmsg;
 		return false;
 	}
+
 	return Plugin::save_preset (name, "vst");
 }
 
@@ -342,6 +357,7 @@ string
 VSTPlugin::describe_parameter (uint32_t param)
 {
 	char name[64];
+	// cerr << "Dispatch effGetParamName for " << this->name() << endl;
 	_plugin->dispatcher (_plugin, effGetParamName, param, 0, name, 0);
 	return name;
 }
@@ -349,7 +365,11 @@ VSTPlugin::describe_parameter (uint32_t param)
 nframes_t
 VSTPlugin::latency () const
 {
-	return _plugin->initialDelay;
+#ifdef VESTIGE_HEADER
+        return *((nframes_t *) (((char *) &_plugin->flags) + 12)); /* initialDelay */
+#else
+	return 0;
+#endif
 }
 
 set<uint32_t>
@@ -371,6 +391,11 @@ VSTPlugin::connect_and_run (vector<Sample*>& bufs, uint32_t maxbuf, int32_t& in_
 	float *outs[_plugin->numOutputs];
 	int32_t i;
 
+	if (nframes == 0) {
+		warning << _("VST plugin called with zero frames - please notify Ardour developers") << endmsg;
+		return 0;
+	}
+
 	for (i = 0; i < (int32_t) _plugin->numInputs; ++i) {
 		ins[i] = bufs[min((uint32_t) in_index,maxbuf - 1)] + offset;
 		in_index++;
@@ -388,23 +413,25 @@ VSTPlugin::connect_and_run (vector<Sample*>& bufs, uint32_t maxbuf, int32_t& in_
 		out_index++;
 	}
 
-
 	/* we already know it can support processReplacing */
 
+	// cerr << "!ProcessReplacing for " << name() << endl;
 	_plugin->processReplacing (_plugin, ins, outs, nframes);
-	
+
 	return 0;
 }
 
 void
 VSTPlugin::deactivate ()
 {
+	//cerr << "Dispatch effMainsChanged for " << name() << endl;
 	_plugin->dispatcher (_plugin, effMainsChanged, 0, 0, NULL, 0.0f);
 }
 
 void
 VSTPlugin::activate ()
 {
+	//cerr << "Dispatch effMainsChanged for " << name() << endl;
 	_plugin->dispatcher (_plugin, effMainsChanged, 0, 1, NULL, 0.0f);
 }
 
@@ -412,7 +439,11 @@ string
 VSTPlugin::unique_id() const
 {
 	char buf[32];
+#ifdef VESTIGE_HEADER
+	snprintf (buf, sizeof (buf), "%d", *((int32_t*) &_plugin->unused_id));
+#else
 	snprintf (buf, sizeof (buf), "%d", _plugin->uniqueID);
+#endif
 	return string (buf);
 }
 
@@ -450,11 +481,10 @@ VSTPlugin::has_editor () const
 void
 VSTPlugin::print_parameter (uint32_t param, char *buf, uint32_t len) const
 {
-	char lab[9];
 	char *first_nonws;
 
-	_plugin->dispatcher (_plugin, effGetParamLabel, param, 0, lab, 0);
-	_plugin->dispatcher (_plugin, effGetParamDisplay, param, 0, buf, 0);
+	//cerr << "Dispatch getParamDisplay for " << name() << endl;
+	_plugin->dispatcher (_plugin, 7 /* effGetParamDisplay */, param, 0, buf, 0);
 
 	if (buf[0] == '\0') {
 		return;
diff --git a/libs/fst/SConscript b/libs/fst/SConscript
index 576283d..a543d72 100644
--- a/libs/fst/SConscript
+++ b/libs/fst/SConscript
@@ -7,50 +7,64 @@ import glob
 
 fst_src = glob.glob('*.c')
 
-Import('env install_prefix')
-fst = env.Clone(CC="winegcc")
+Import('env install_prefix libraries')
+fst = env.Clone()
 fst.Append (CPPPATH=".")
-
-if fst['VST']:
-    vst_dir     = Dir ('libs/vst')
-    vst_sdk_dir = Dir ('vstsdk2.3')
-    #
-    # if it exists, try to use the Steinberg zip package
-    #
-    vst_sdk_zip = File ('vstsdk2.3.zip')
-
-    if os.access (vst_sdk_zip.abspath, os.F_OK):
-        print 'VST package discovered.'
-    elif os.access ('vst_sdk2_3.zip', os.F_OK):
-        #
-        # add a build target that unpacks the zip package the Steinberg "meta" zip package
-        #
-        vst_meta_zip = fst.Command (vst_sdk_zip, 'vst_sdk2_3.zip',  "unzip -o -d ${TARGET.dir} $SOURCES vstsdk2.3.zip" )
-        print 'VST meta-package discovered.'
-    else:
-        if os.access ('vstsdk2.3.zip', os.F_OK) != 1:
-            print 'Did not find vst_sdk2_3.zip or vstsdk2.3.zip in libs/fst.'
-            print 'Make sure the correct file is in the correct location and correctly named.'
-            print 'Please see http://ardour.org/building_vst_support for more information.'
-            sys.exit (1)    
-
-    vst_headers = fst.Command ([ 'vst/aeffectx.h', 'vst/AEffect.h' ], vst_sdk_zip, [
-        "unzip -qq -d ${SOURCE.dir} -o $SOURCE",
-        Delete ('$TARGET.dir'),
-        Copy ('${TARGET.dir}', 'libs/fst/vstsdk2.3/source/common'),
-        "sed -i '/struct VstFileType\|struct VstFileSelect/,/};/d' $TARGET"
+fst.Merge ([
+        libraries['jack'],
+        libraries['glib2']
         ])
 
+#
+# See if JACK supports jack_set_thread_creator()
+#
+
+jack_test_source_file = """
+#include <jack/jack.h>
+#include <pthread.h>
+int
+my_pthread_create (pthread_t* thread_id, const pthread_attr_t* attr, void *(*function)(void*), void* arg)
+{
+    return 0;
+}
+int main(int argc, char **argv)
+{
+    jack_set_thread_creator (my_pthread_create);
+    return 0;
+}
+"""
+def CheckJackSetThreadCreator(context):
+    context.Message('Checking for jack_set_thread_creator()...')
+    result = context.TryLink(jack_test_source_file, '.c')
+    context.Result(result)
+    return result
+
+
+conf = Configure(fst, custom_tests = {
+	'CheckJackSetThreadCreator' : CheckJackSetThreadCreator,
+})
+
+if conf.CheckJackSetThreadCreator():
+    fst.Append(CCFLAGS="-DHAVE_JACK_SET_THREAD_CREATOR")
+
+fst = conf.Finish ()
+
+if fst['VST']:
+    fst.Replace(CC = ("winegcc"))
     a = fst.Object ('fst', 'fst.c')
     b = fst.Object ('fstinfofile', 'fstinfofile.c')
     c = fst.Object ('vstwin', 'vstwin.c')
     d = fst.Object ('vsti', 'vsti.c')
-
-    Default([vst_headers,a,b,c,d])
+    e = fst.Object ('thread', 'thread.c')
+    Default([a,b,c,d,e])
     
+vestige_headers = glob.glob ('vestige/*.h')
+
 env.Alias('tarball', env.Distribute (env['DISTTREE'],
-                                     fst_src + ['SConscript',
-                                                'fst.h',
-                                                'jackvst.h'
-                                                ] ))
+                                     fst_src + vestige_headers +
+                                     ['SConscript',
+                                      'fst.h',
+                                      'jackvst.h',
+                                      ] 
+                                     ))
 
diff --git a/libs/fst/fst.c b/libs/fst/fst.c
index 8547357..cbee5de 100644
--- a/libs/fst/fst.c
+++ b/libs/fst/fst.c
@@ -3,15 +3,6 @@
 
 #include "fst.h"
 
-
-void 
-default_fst_error_callback (const char *desc)
-{
-	fprintf(stderr, "%s\n", desc);
-}
-
-void (*fst_error_callback)(const char *desc) = &default_fst_error_callback;
-
 void 
 fst_error (const char *fmt, ...)
 {
@@ -24,4 +15,10 @@ fst_error (const char *fmt, ...)
 	va_end (ap);
 }
 
+void 
+default_fst_error_callback (const char *desc)
+{
+	fprintf(stderr, "%s\n", desc);
+}
 
+void (*fst_error_callback)(const char *desc) = &default_fst_error_callback;
diff --git a/libs/fst/fst.h b/libs/fst/fst.h
index 493cb2e..6ef5acf 100644
--- a/libs/fst/fst.h
+++ b/libs/fst/fst.h
@@ -8,22 +8,28 @@
 /**
  * Display FST error message.
  *
- * @param fmt printf-style formatting specification
+ * Set via fst_set_error_function(), otherwise a FST-provided
+ * default will print @a msg (plus a newline) to stderr.
+ *
+ * @param msg error message text (no newline at end).
  */
-extern void fst_error (const char *fmt, ...);
+extern void (*fst_error_callback)(const char *msg);
 
 /**
  * Set the @ref fst_error_callback for error message display.
  *
  * The FST library provides two built-in callbacks for this purpose:
- * default_fst_error_callback().
- *
- * The default will print the message (plus a newline) to stderr.
- *
+ * default_fst_error_callback() and silent_fst_error_callback().
  */
 void fst_set_error_function (void (*func)(const char *));
 
-#include <vst/AEffect.h>
+void  fst_error (const char *fmt, ...);
+
+#define VESTIGE_HEADER
+
+#ifdef VESTIGE_HEADER
+#include <vestige/aeffectx.h>
+#endif
 
 typedef struct _FST FST;
 typedef struct _FSTHandle FSTHandle;
@@ -32,6 +38,7 @@ typedef struct _FSTInfo FSTInfo;
 struct _FSTInfo 
 {
     char *name;
+    char *creator;
     int UniqueID;
     char *Category;
     
@@ -50,30 +57,48 @@ struct _FSTInfo
     char **ParamLabels;
 };
 
+typedef struct AEffect * (*main_entry_t)(audioMasterCallback);
+
 struct _FSTHandle
 {
     void*    dll;
     char*    name;
     char*    nameptr; /* ptr returned from strdup() etc. */
-    AEffect* (*main_entry)(audioMasterCallback);
+    //struct AEffect* (*main_entry)(audioMasterCallback);
+    main_entry_t main_entry;
 
     int plugincnt;
 };
 
 struct _FST 
 {
-    AEffect*    plugin;
+    struct AEffect*    plugin;
     void*       window; /* win32 HWND */
     int         xid; /* X11 XWindow */
     FSTHandle*  handle;
     int 	width;
     int 	height;
+    int		wantIdle;
     int         destroy;
+    int         vst_version;
 
-    struct _FST* next;
+    int		want_program;
+    int         current_program;
+    float      *want_params;
+    float      *set_params;
 
+    int         dispatcher_wantcall;
+    int         dispatcher_opcode;
+    int         dispatcher_index;
+    int         dispatcher_val;
+    void *	dispatcher_ptr;
+    float	dispatcher_opt;
+    int		dispatcher_retval;
+
+    struct _FST* next;
     pthread_mutex_t lock;
     pthread_cond_t  window_status_change;
+    pthread_cond_t  plugin_dispatcher_called;
     int             been_activated;
 };
 
@@ -81,8 +106,8 @@ struct _FST
 extern "C" {
 #endif
 
-extern int  fst_init ();
-extern void fst_finish ();
+extern int        fst_init (void* possible_hmodule);
+extern void       fst_exit ();
 
 extern FSTHandle* fst_load (const char*);
 extern int        fst_unload (FSTHandle*);
@@ -90,17 +115,29 @@ extern int        fst_unload (FSTHandle*);
 extern FST*       fst_instantiate (FSTHandle*, audioMasterCallback amc, void* userptr);
 extern void       fst_close (FST*);
 
-extern void fst_event_loop_remove_plugin (FST* fst);
-extern void fst_event_loop_add_plugin (FST* fst);
-
+extern int fst_create_editor (FST* fst);
 extern int  fst_run_editor (FST*);
 extern void  fst_destroy_editor (FST*);
 extern int  fst_get_XID (FST*);
+extern void fst_move_window_into_view (FST*);
+
+extern FSTInfo *fst_get_info (char *dllpathname);
+extern void fst_free_info (FSTInfo *info);
+extern void fst_event_loop_remove_plugin (FST* fst);
+extern int fst_call_dispatcher(FST *fst, int opcode, int index, int val, void *ptr, float opt );
+
+/**
+ * Load a plugin state from a file.
+ */
+extern int fst_load_state (FST * fst, char * filename);
+
+/**
+ * Save a plugin state to a file.
+ */
+extern int fst_save_state (FST * fst, char * filename);
 
-extern void fst_signal_handler (int sig, siginfo_t* info, void* context);
+extern int wine_pthread_create (pthread_t* thread_id, const pthread_attr_t* attr, void *(*function)(void*), void* arg);
 
-extern FSTInfo *fst_get_info( char *dllpathname );
-extern void fst_free_info( FSTInfo *info );
 
 #ifdef __cplusplus
 }
diff --git a/libs/fst/fstinfofile.c b/libs/fst/fstinfofile.c
index 7b0c69d..2d7fb2f 100644
--- a/libs/fst/fstinfofile.c
+++ b/libs/fst/fstinfofile.c
@@ -1,15 +1,13 @@
-
 #include "fst.h"
-#include "vst/aeffectx.h"
 
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <unistd.h>
 
+#include <stdlib.h>
 #include <stddef.h>
 #include <stdio.h>
 #include <string.h>
-#include <stdlib.h>
 
 #define MAX_STRING_LEN 256
 
@@ -49,6 +47,7 @@ static FSTInfo *load_fst_info_file( char *filename ) {
     }
 
     if( (info->name = read_string( fp )) == NULL ) goto error;
+    if( (info->creator = read_string( fp )) == NULL ) goto error;
     if( 1 != fscanf( fp, "%d\n", &info->UniqueID ) ) goto error;
     if( (info->Category = read_string( fp )) == NULL ) goto error;
     if( 1 != fscanf( fp, "%d\n", &info->numInputs ) ) goto error;
@@ -96,6 +95,7 @@ static int save_fst_info_file( FSTInfo *info, char *filename ) {
     }
 
     fprintf( fp, "%s\n", info->name );
+    fprintf( fp, "%s\n", info->creator );
     fprintf( fp, "%d\n", info->UniqueID );
     fprintf( fp, "%s\n", info->Category );
     fprintf( fp, "%d\n", info->numInputs );
@@ -123,7 +123,7 @@ static char *fst_dllpath_to_infopath( char *dllpath ) {
     if( strstr( dllpath, ".dll" ) == NULL ) return NULL;
     
     retval = strdup( dllpath );
-    sprintf( retval + strlen(retval) - 4, ".fst" );
+    sprintf( retval + strlen(retval) - 4, ".fsi" );
     return retval;
 }
 
@@ -144,7 +144,7 @@ static int fst_info_file_is_valid( char *dllpath ) {
 }
 
 static int fst_can_midi( FST *fst ) {
-	AEffect *plugin = fst->plugin;
+	struct AEffect *plugin = fst->plugin;
 	int vst_version = plugin->dispatcher (plugin, effGetVstVersion, 0, 0, NULL, 0.0f);
 
 	if (vst_version >= 2) {
@@ -160,8 +160,9 @@ static int fst_can_midi( FST *fst ) {
 }
 static FSTInfo *fst_info_from_plugin( FST *fst ) {
     FSTInfo *info = (FSTInfo *) malloc( sizeof( FSTInfo ) );
-    AEffect *plugin;
+    struct AEffect *plugin;
     int i;
+    char creator[65];
 
     if( ! fst ) {
 	fst_error( "fst is NULL\n" );
@@ -174,7 +175,19 @@ static FSTInfo *fst_info_from_plugin( FST *fst ) {
     
 
     info->name = strdup(fst->handle->name ); 
+    plugin->dispatcher (plugin, 47 /* effGetVendorString */, 0, 0, creator, 0);
+    if (strlen (creator) == 0) {
+      info->creator = strdup ("Unknown");
+    } else {
+      info->creator = strdup (creator);
+    }
+
+#ifdef VESTIGE_HEADER
+    info->UniqueID = *((int32_t *) &plugin->unused_id);
+#else
     info->UniqueID = plugin->uniqueID;
+#endif
+
     info->Category = strdup( "None" );          // FIXME:  
     info->numInputs = plugin->numInputs;
     info->numOutputs = plugin->numOutputs;
@@ -188,22 +201,20 @@ static FSTInfo *fst_info_from_plugin( FST *fst ) {
     for( i=0; i<info->numParams; i++ ) {
 	char name[20];
 	char label[9];
-		plugin->dispatcher (plugin,
-				    effGetParamName,
-				    i, 0, name, 0);
-		
-		plugin->dispatcher (plugin,
-				    effGetParamLabel,
-				    i, 0, label, 0);
-
+	plugin->dispatcher (plugin,
+			    effGetParamName,
+			    i, 0, name, 0);
 	info->ParamNames[i] = strdup( name );
+	plugin->dispatcher (plugin,
+			    6 /* effGetParamLabel */,
+			    i, 0, label, 0);
 	info->ParamLabels[i] = strdup( label );
     }
     return info;
 }
 
 // most simple one :) could be sufficient.... 
-static long simple_master_callback( AEffect *fx, long opcode, long index, long value, void *ptr, float opt ) {
+static long simple_master_callback( struct AEffect *fx, long opcode, long index, long value, void *ptr, float opt ) {
     if( opcode == audioMasterVersion )
 	return 2;
     else
@@ -227,9 +238,7 @@ FSTInfo *fst_get_info( char *dllpath ) {
 	FSTInfo *info;
 	char *fstpath;
 
-	if( !(h = fst_load( dllpath )) ) {
-		return NULL;
-	}
+	if( !(h = fst_load( dllpath )) ) return NULL;
 	if( !(fst = fst_instantiate( h, simple_master_callback, NULL )) ) {
 	    fst_unload( h );
 	    fst_error( "instantiate failed\n" );
@@ -261,6 +270,7 @@ void fst_free_info( FSTInfo *info ) {
 	free( info->ParamLabels[i] );
     }
     free( info->name );
+    free( info->creator );
     free( info->Category );
     free( info );
 }
diff --git a/libs/fst/jackvst.h b/libs/fst/jackvst.h
index abb9e22..31e34f5 100644
--- a/libs/fst/jackvst.h
+++ b/libs/fst/jackvst.h
@@ -1,8 +1,8 @@
 #ifndef __jack_vst_h__
 #define __jack_vst_h__
 
-#include </usr/include/sys/types.h>
-#include </usr/include/sys/time.h>
+#include <sys/types.h>
+#include <sys/time.h>
 #include <jack/jack.h>
 #include <jack/ringbuffer.h>
 #include <fst.h>
@@ -16,15 +16,24 @@ struct _JackVST {
     FST*           fst;
     float        **ins;
     float        **outs;
+    jack_port_t  *midi_port;
     jack_port_t  **inports;
     jack_port_t  **outports;
     void*          userdata;
     int            bypassed;
     int            muted;
+    int		   current_program;
+
+    int		   midi_map[128];
+    volatile int   midi_learn;
+    volatile int   midi_learn_CC;
+    volatile int   midi_learn_PARAM;
 
     int		   resume_called;
+
     /* For VST/i support */
 
+    int want_midi;
     pthread_t          midi_thread;
     snd_seq_t*         seq;
     int                midiquit;
@@ -32,4 +41,6 @@ struct _JackVST {
     struct VstEvents*  events;
 };
 
+#define MIDI_EVENT_MAX 1024
+
 #endif /* __jack_vst_h__ */
diff --git a/libs/fst/thread.c b/libs/fst/thread.c
new file mode 100644
index 0000000..22a278e
--- /dev/null
+++ b/libs/fst/thread.c
@@ -0,0 +1,82 @@
+#include <stdio.h>
+#include <sys/types.h>
+#include <pthread.h>
+#include <windows.h>
+
+typedef struct {
+    void* (*thread_function)(void*);
+    void* thread_arg;
+    pthread_t thread_id;
+    pthread_mutex_t init_lock;
+    pthread_cond_t init_cond;
+    pthread_attr_t attr;
+} real_thread_info_t;
+
+static DWORD WINAPI
+fake_thread_proxy (LPVOID parameter) 
+{
+	DWORD retval;
+	real_thread_info_t* rti = (real_thread_info_t*) parameter;
+
+	pthread_mutex_lock (&rti->init_lock);
+	rti->thread_id = pthread_self();
+	pthread_cond_signal (&rti->init_cond);
+	pthread_mutex_unlock (&rti->init_lock);
+
+#if 0
+	if (pthread_attr_get_schedparam (&rti->attr)) {
+		pthread_set_schedparam (pthread_self(), policy, sched_param);
+	}
+#endif
+	/* XXX no way to use pthread API to set contention scope,
+	   because that has to be done before a thread is created.
+	   But ... its only meaningful for an M:N thread implemenation
+	   so its not important for the only platform where
+	   this code matters (Linux running Wine) because Linux
+	   uses a 1:1 thread design.
+	*/
+
+	retval = (DWORD) rti->thread_function (rti->thread_arg);
+	free (rti);
+
+	return retval;
+}
+
+int
+wine_pthread_create (pthread_t* thread_id, const pthread_attr_t* attr, void *(*function)(void*), void* arg)
+{
+	DWORD tid;
+	size_t stack_size;
+
+	real_thread_info_t* rti = (real_thread_info_t*) malloc (sizeof (real_thread_info_t));
+
+	rti->thread_function = function;
+	rti->thread_arg = arg;
+	if (attr) {
+		rti->attr = *attr;
+	}
+
+	pthread_mutex_init (&rti->init_lock, NULL);
+	pthread_cond_init (&rti->init_cond, NULL);
+	
+	pthread_mutex_lock (&rti->init_lock);
+
+	if (attr) {
+		if (pthread_attr_getstacksize (attr, &stack_size) != 0) {
+			stack_size = 0;
+		}
+	} else {
+		stack_size = 0;
+	}
+
+	if (CreateThread (0, stack_size, fake_thread_proxy, rti, 0, &tid) == NULL) {
+		return -1;
+	}
+
+	pthread_cond_wait (&rti->init_cond, &rti->init_lock);
+	pthread_mutex_unlock (&rti->init_lock);
+
+	*thread_id = rti->thread_id;
+
+	return 0;
+} 
diff --git a/libs/fst/vestige/aeffectx.h b/libs/fst/vestige/aeffectx.h
new file mode 100644
index 0000000..dda128f
--- /dev/null
+++ b/libs/fst/vestige/aeffectx.h
@@ -0,0 +1,316 @@
+/*
+ * aeffectx.h - simple header to allow VeSTige compilation and eventually work
+ *
+ * Copyright (c) 2006 Javier Serrano Polo <jasp00/at/users.sourceforge.net>
+ * 
+ * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
+ *
+ * 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 (see COPYING); if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301 USA.
+ *
+ */
+
+
+#ifndef _AEFFECTX_H
+#define _AEFFECTX_H
+
+#include <stdint.h>
+
+#define audioMasterAutomate 0
+#define audioMasterVersion 1
+#define audioMasterCurrentId 2
+#define audioMasterIdle 3
+#define audioMasterPinConnected 4
+// unsupported? 5
+#define audioMasterWantMidi 6
+#define audioMasterGetTime 7
+#define audioMasterProcessEvents 8
+#define audioMasterSetTime 9
+#define audioMasterTempoAt 10
+#define audioMasterGetNumAutomatableParameters 11
+#define audioMasterGetParameterQuantization 12
+#define audioMasterIOChanged 13
+#define audioMasterNeedIdle 14
+#define audioMasterSizeWindow 15
+#define audioMasterGetSampleRate 16
+#define audioMasterGetBlockSize 17
+#define audioMasterGetInputLatency 18
+#define audioMasterGetOutputLatency 19
+#define audioMasterGetPreviousPlug 20
+#define audioMasterGetNextPlug 21
+#define audioMasterWillReplaceOrAccumulate 22
+#define audioMasterGetCurrentProcessLevel 23
+#define audioMasterGetAutomationState 24
+#define audioMasterOfflineStart 25
+#define audioMasterOfflineRead 26
+#define audioMasterOfflineWrite 27
+#define audioMasterOfflineGetCurrentPass 28
+#define audioMasterOfflineGetCurrentMetaPass 29
+#define audioMasterSetOutputSampleRate 30
+// unsupported? 31
+#define audioMasterGetSpeakerArrangement 31 // deprecated in 2.4?
+#define audioMasterGetVendorString 32
+#define audioMasterGetProductString 33
+#define audioMasterGetVendorVersion 34
+#define audioMasterVendorSpecific 35
+#define audioMasterSetIcon 36
+#define audioMasterCanDo 37
+#define audioMasterGetLanguage 38
+#define audioMasterOpenWindow 39
+#define audioMasterCloseWindow 40
+#define audioMasterGetDirectory 41
+#define audioMasterUpdateDisplay 42
+#define audioMasterBeginEdit 43
+#define audioMasterEndEdit 44
+#define audioMasterOpenFileSelector 45
+#define audioMasterCloseFileSelector 46// currently unused
+#define audioMasterEditFile 47// currently unused
+#define audioMasterGetChunkFile 48// currently unused
+#define audioMasterGetInputSpeakerArrangement 49 // currently unused
+
+#define effFlagsHasEditor 1
+// very likely
+#define effFlagsCanReplacing (1 << 4)
+// currently unused
+#define effFlagsIsSynth (1 << 8)
+
+#define effOpen 0
+//currently unused
+#define effClose 1
+// currently unused
+#define effSetProgram 2
+// currently unused
+#define effGetProgram 3
+// currently unused
+#define effGetProgramName 5
+#define effGetParamLabel 6
+// currently unused
+#define effGetParamName 8
+// this is a guess
+#define effSetSampleRate 10
+#define effSetBlockSize 11
+#define effMainsChanged 12
+#define effEditGetRect 13
+#define effEditOpen 14
+#define effEditClose 15
+#define effEditIdle 19
+#define effProcessEvents 25
+#define effGetEffectName 45
+// missing
+#define effGetParameterProperties 47
+#define effGetVendorString 47
+#define effGetProductString 48
+#define effGetVendorVersion 49
+// currently unused
+#define effCanDo 51
+// currently unused
+#define effGetVstVersion 58
+
+#ifdef WORDS_BIGENDIAN
+// "VstP"
+#define kEffectMagic 0x50747356
+#else
+// "PtsV"
+#define kEffectMagic 0x56737450
+#endif
+
+#define kVstLangEnglish 1
+#define kVstMidiType 1
+#define kVstTransportPlaying (1 << 1)
+
+/* validity flags for a VstTimeINfo structure this info comes from the web */
+
+#define kVstNanosValid (1 << 8)
+#define kVstPpqPosValid (1 << 9)
+#define kVstTempoValid (1 << 10)
+#define kVstBarsValid (1 << 11)
+#define kVstCyclePosValid (1 << 12)
+#define kVstTimeSigValid (1 << 13)
+#define kVstSmpteValid (1 << 14)
+#define kVstClockValid (1 << 15)
+
+#define kVstTransportChanged 1
+
+typedef struct VstMidiEvent
+{
+	// 00
+	int type;
+	// 04
+	int byteSize;
+	// 08
+	int deltaFrames;
+	// 0c?
+	int flags;
+	// 10?
+	int noteLength;
+	// 14?
+	int noteOffset;
+	// 18
+	char midiData[4];
+	// 1c?
+	char detune;
+	// 1d?
+	char noteOffVelocity;
+	// 1e?
+	char reserved1;
+	// 1f?
+	char reserved2;
+
+} VstMidiEvent;
+
+
+
+
+typedef struct VstEvent
+{
+	char dump[sizeof( VstMidiEvent )];
+
+} VstEvent ;
+
+
+
+
+typedef struct VstEvents
+{
+	// 00
+	int numEvents;
+	// 04
+	int reserved;
+	// 08
+	VstEvent * events[];
+} VstEvents;
+
+/* constants from http://www.rawmaterialsoftware.com/juceforum/viewtopic.php?t=3740&sid=183f74631fee71a493316735e2b9f28b */
+
+enum Vestige2StringConstants
+{
+	VestigeMaxNameLen       = 64,
+	VestigeMaxLabelLen      = 64,
+	VestigeMaxShortLabelLen = 8,
+	VestigeMaxCategLabelLen = 24,
+	VestigeMaxFileNameLen   = 100
+}; 
+
+/* this struct taken from http://asseca.com/vst-24-specs/efGetParameterProperties.html */
+struct VstParameterProperties
+{
+    float stepFloat;              /* float step */
+    float smallStepFloat;         /* small float step */
+    float largeStepFloat;         /* large float step */
+    char label[VestigeMaxLabelLen];  /* parameter label */
+    int32_t flags;               /* @see VstParameterFlags */
+    int32_t minInteger;          /* integer minimum */
+    int32_t maxInteger;          /* integer maximum */
+    int32_t stepInteger;         /* integer step */
+    int32_t largeStepInteger;    /* large integer step */
+    char shortLabel[VestigeMaxShortLabelLen]; /* short label, recommended: 6 + delimiter */
+    int16_t displayIndex;        /* index where this parameter should be displayed (starting with 0) */
+    int16_t category;            /* 0: no category, else group index + 1 */
+    int16_t numParametersInCategory; /* number of parameters in category */
+    int16_t reserved;            /* zero */
+    char categoryLabel[VestigeMaxCategLabelLen]; /* category label, e.g. "Osc 1"  */
+    char future[16];              /* reserved for future use */
+};
+
+/* this enum taken from http://asseca.com/vst-24-specs/efGetParameterProperties.html */
+enum VstParameterFlags
+{
+	kVstParameterIsSwitch                = 1 << 0,  /* parameter is a switch (on/off) */
+	kVstParameterUsesIntegerMinMax       = 1 << 1,  /* minInteger, maxInteger valid */
+	kVstParameterUsesFloatStep           = 1 << 2,  /* stepFloat, smallStepFloat, largeStepFloat valid */
+	kVstParameterUsesIntStep             = 1 << 3,  /* stepInteger, largeStepInteger valid */
+	kVstParameterSupportsDisplayIndex    = 1 << 4,  /* displayIndex valid */
+	kVstParameterSupportsDisplayCategory = 1 << 5,  /* category, etc. valid */
+	kVstParameterCanRamp                 = 1 << 6   /* set if parameter value can ramp up/down */
+};
+
+typedef struct AEffect
+{
+	// Never use c++!!!
+	// 00-03
+	int magic;
+	// dispatcher 04-07
+	int (* dispatcher)( struct AEffect * , int , int , int , void * , float );
+	// process, quite sure 08-0b
+	void (* process)( struct AEffect * , float * * , float * * , int );
+	// setParameter 0c-0f
+	void (* setParameter)( struct AEffect * , int , float );
+	// getParameter 10-13
+	float (* getParameter)( struct AEffect * , int );
+	// programs 14-17
+	int numPrograms;
+	// Params 18-1b
+	int numParams;
+	// Input 1c-1f
+	int numInputs;
+	// Output 20-23
+	int numOutputs;
+	// flags 24-27
+	int flags;
+	// Fill somewhere 28-2b
+        void * user;
+	// Zeroes 2c-2f 30-33 34-37 38-3b
+	char empty3[4 + 4 + 4 + 4];
+	// 1.0f 3c-3f
+	float unkown_float;
+	// An object? pointer 40-43
+	char empty4[4];
+	// Zeroes 44-47
+	char empty5[4];
+	// Id 48-4b
+	char unused_id[4];
+	// Don't know 4c-4f
+	char unknown1[4];
+	// processReplacing 50-53
+	void (* processReplacing)( struct AEffect * , float * * , float * * , int );
+
+ int uniqueID;
+
+} AEffect;
+
+
+
+
+typedef struct VstTimeInfo
+{
+    /* info from online documentation of VST provided by Steinberg */
+
+    double samplePos;
+    double sampleRate;
+    double nanoSeconds;
+    double ppqPos;
+    double tempo;
+    double barStartPos;
+    double cycleStartPos;
+    double cycleEndPos;
+    double timeSigNumerator;
+    double timeSigDenominator;
+    long   smpteOffset;
+    long   smpteFrameRate;
+    long   samplesToNextClock;
+    long   flags;
+
+} VstTimeInfo;
+
+
+typedef long int (* audioMasterCallback)( AEffect * , long int , long int ,
+						long int , void * , float );
+// we don't use it, may be noise
+#define VSTCALLBACK
+
+
+
+
+#endif
diff --git a/libs/fst/vsti.c b/libs/fst/vsti.c
index f6d8725..6a64f9c 100644
--- a/libs/fst/vsti.c
+++ b/libs/fst/vsti.c
@@ -30,7 +30,9 @@
 #include <fcntl.h>
 #include <stdbool.h>
 #include <jackvst.h>
-#include <vst/aeffectx.h>
+#include <vestige/aeffectx.h>
+#include <pthread.h>
+#include <sched.h>
 
 snd_seq_t *
 create_sequencer (const char* client_name, bool isinput)
@@ -74,7 +76,7 @@ queue_midi (JackVST *jvst, int val1, int val2, int val3)
 		return;
 	}
 		
-	pevent = (struct VstMidiEevent *) vec[0].buf;
+	pevent = (struct VstMidiEvent *) vec[0].buf;
 
 	//  printf("note: %d\n",note);
 	
@@ -104,6 +106,13 @@ void *midireceiver(void *arg)
 	JackVST *jvst = (JackVST* )arg;
 	int val;
 
+	struct sched_param scp;
+	scp.sched_priority = 50;
+
+	// Try to set fifo priority...
+	// this works, if we are root or newe sched-cap manegment is used...
+	pthread_setschedparam( pthread_self(), SCHED_FIFO, &scp ); 
+	
 	while (1) {
 
 		snd_seq_event_input (jvst->seq, &event);
diff --git a/libs/fst/vstwin.c b/libs/fst/vstwin.c
index 55061c2..09ca8f1 100644
--- a/libs/fst/vstwin.c
+++ b/libs/fst/vstwin.c
@@ -1,18 +1,18 @@
 #include <stdio.h>
+#include <jack/jack.h>
+#include <jack/thread.h>
 #include <libgen.h>
 #include <windows.h>
 #include <winnt.h>
 #include <wine/exception.h>
 #include <pthread.h>
 #include <signal.h>
-
-//#include <x11/xlib.h>
-//#include <x11/xresource.h>
-//#include <x11/xutil.h>
-//#include <x11/xatom.h>
+#include <glib.h>
 
 #include "fst.h"
 
+#include <X11/X.h>
+#include <X11/Xlib.h>
 
 struct ERect{
     short top;
@@ -21,139 +21,24 @@ struct ERect{
     short right;
 };
 
-static pthread_mutex_t plugin_mutex = PTHREAD_MUTEX_INITIALIZER;
+static pthread_mutex_t plugin_mutex;
 static FST* fst_first = NULL;
+const char magic[] = "FST Plugin State v002";
 
 DWORD  gui_thread_id = 0;
+static int gui_quit = 0;
 
-static char* message_name (int message)
-{
-	switch (message) {
-	case 0x0000:
-		return "WM_NULL";
-
-	case 0x0001:
-		return "WM_CREATE";
-
-	case 0x0002:
-		return "WM_DESTROY";
-
-	case 0x0003:
-		return "WM_MOVE";
-
-	case 0x0004:
-		return "WM_SIZEWAIT";
-
-	case 0x0005:
-		return "WM_SIZE";
-
-	case 0x0006:
-		return "WM_ACTIVATE";
-
-	case 0x0007:
-		return "WM_SETFOCUS";
-
-	case 0x0008:
-		return "WM_KILLFOCUS";
-
-	case 0x0009:
-		return "WM_SETVISIBLE";
-
-	case 0x000a:
-		return "WM_ENABLE";
-
-	case 0x000b:
-		return "WM_SETREDRAW";
-
-	case 0x000c:
-		return "WM_SETTEXT";
-
-	case 0x000d:
-		return "WM_GETTEXT";
-
-	case 0x000e:
-		return "WM_GETTEXTLENGTH";
-
-	case 0x000f:
-		return "WM_PAINT";
-
-	case 0x0010:
-		return "WM_CLOSE";
-
-	case 0x0011:
-		return "WM_QUERYENDSESSION";
-
-	case 0x0012:
-		return "WM_QUIT";
+#define DELAYED_WINDOW 1
 
-	case 0x0013:
-		return "WM_QUERYOPEN";
 
-	case 0x0014:
-		return "WM_ERASEBKGND";
-
-	case 0x0015:
-		return "WM_SYSCOLORCHANGE";
-
-	case 0x0016:
-		return "WM_ENDSESSION";
-
-	case 0x0017:
-		return "WM_SYSTEMERROR";
-
-	case 0x0018:
-		return "WM_SHOWWINDOW";
-
-	case 0x0019:
-		return "WM_CTLCOLOR";
-
-	case 0x001a:
-		return "WM_WININICHANGE";
-
-	case 0x001b:
-		return "WM_DEVMODECHANGE";
-
-	case 0x001c:
-		return "WM_ACTIVATEAPP";
-
-	case 0x001d:
-		return "WM_FONTCHANGE";
-
-	case 0x001e:
-		return "WM_TIMECHANGE";
-
-	case 0x001f:
-		return "WM_CANCELMODE";
-
-	case 0x0020:
-		return "WM_SETCURSOR";
-
-	case 0x0021:
-		return "WM_MOUSEACTIVATE";
-
-	case 0x0022:
-		return "WM_CHILDACTIVATE";
-
-	case 0x0023:
-		return "WM_QUEUESYNC";
-
-	case 0x0024:
-		return "WM_GETMINMAXINFO";
-
-	default:
-		break;
-	}
-	return "--- OTHER ---";
-}
-	
 static LRESULT WINAPI 
 my_window_proc (HWND w, UINT msg, WPARAM wp, LPARAM lp)
 {
-	FST* fst;
-
-//	if (msg != WM_TIMER) {
-//		fst_error ("window callback handler, msg = 0x%x (%s) win=%p\n", msg, message_name (msg), w);
-//	}
+#if 0
+	if (msg != WM_TIMER) {
+		fst_error ("window callback handler, msg = 0x%x win=%p\n", msg, w);
+	}
+#endif
 
 	switch (msg) {
 	case WM_KEYUP:
@@ -161,22 +46,14 @@ my_window_proc (HWND w, UINT msg, WPARAM wp, LPARAM lp)
 		break;
 
 	case WM_CLOSE:
-		PostQuitMessage (0);
+		/* we don't care about windows closing ... */
+		return 0;
+		break;
 
 	case WM_DESTROY:
 	case WM_NCDESTROY:
-		/* we should never get these */
-		//return 0;
-		break;
-
-	case WM_PAINT:
-		if ((fst = GetPropA (w, "fst_ptr")) != NULL) {
-			if (fst->window && !fst->been_activated) {
-				fst->been_activated = TRUE;
-				pthread_cond_signal (&fst->window_status_change);
-				pthread_mutex_unlock (&fst->lock);
-			}
-		}
+		/* we don't care about windows being destroyed ... */
+		return 0;
 		break;
 
 	default:
@@ -190,10 +67,11 @@ static FST*
 fst_new ()
 {
 	FST* fst = (FST*) calloc (1, sizeof (FST));
-
 	pthread_mutex_init (&fst->lock, NULL);
 	pthread_cond_init (&fst->window_status_change, NULL);
-
+	pthread_cond_init (&fst->plugin_dispatcher_called, NULL);
+	fst->want_program = -1;
+	fst->current_program = -1;
 	return fst;
 }
 
@@ -204,98 +82,6 @@ fst_handle_new ()
 	return fst;
 }
 
-int
-fst_create_editor (FST* fst)
-{
-	HMODULE hInst;
-	HWND window;
-
-	/* "guard point" to trap errors that occur during plugin loading */
-
-	/* Note: fst->lock is held while this function is called */
-
-	if (!(fst->plugin->flags & effFlagsHasEditor)) {
-		fst_error ("Plugin \"%s\" has no editor", fst->handle->name);
-		return -1;
-	}
-
-	if ((hInst = GetModuleHandleA (NULL)) == NULL) {
-		fst_error ("can't get module handle");
-		return 1;
-	}
-	
-//	if ((window = CreateWindowExA (WS_EX_TOOLWINDOW | WS_EX_TRAYWINDOW, "FST", fst->handle->name,
-	if ((window = CreateWindowExA (0, "FST", fst->handle->name,
-				       (WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX),
-				       0, 0, 1, 1,
-				       NULL, NULL,
-				       hInst,
-				       NULL)) == NULL) {
-		fst_error ("cannot create editor window");
-		return 1;
-	}
-
-	if (!SetPropA (window, "fst_ptr", fst)) {
-		fst_error ("cannot set fst_ptr on window");
-	}
-
-	fst->window = window;
-	fst->xid = (int) GetPropA (window, "__wine_x11_whole_window");
-
-	{
-		struct ERect* er;
-
-		ShowWindow (fst->window, SW_SHOW);
-	
-		fst->plugin->dispatcher (fst->plugin, effEditOpen, 0, 0, fst->window, 0 );
-		fst->plugin->dispatcher (fst->plugin, effEditGetRect, 0, 0, &er, 0 );
-		
-		fst->width =  er->right-er->left;
-		fst->height =  er->bottom-er->top;
-		
-		SetWindowPos (fst->window, 0, 0, 0, er->right-er->left+8, er->bottom-er->top+26, SWP_SHOWWINDOW|SWP_NOMOVE|SWP_NOZORDER);
-	}
-
-	return 0;
-}
-
-void
-fst_destroy_editor (FST* fst)
-{
-	pthread_mutex_lock (&fst->lock);
-	if (fst->window) {
-		fst->destroy = TRUE;
-		if (!PostThreadMessageA (gui_thread_id, WM_USER, 0, 0)) {
-			fst_error ("could not post message to gui thread");
-		}
-		pthread_cond_wait (&fst->window_status_change, &fst->lock);
-
-	}
-	pthread_mutex_unlock (&fst->lock);
-}
-
-void
-fst_event_loop_remove_plugin (FST* fst)
-{
-	FST* p;
-	FST* prev;
-
-	for (p = fst_first, prev = NULL; p->next; prev = p, p = p->next) {
-		if (p == fst) {
-			if (prev) {
-				prev->next = p->next;
-			}
-		}
-	}
-
-	if (fst_first == fst) {
-		fst_first = fst_first->next;
-	}
-
-}
-
-void debreak( void ) { printf( "debreak\n" ); }
-
 DWORD WINAPI gui_event_loop (LPVOID param)
 {
 	MSG msg;
@@ -314,28 +100,28 @@ DWORD WINAPI gui_event_loop (LPVOID param)
 	
 	if ((window = CreateWindowExA (0, "FST", "dummy",
 				       WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX,
-				       CW_USEDEFAULT, CW_USEDEFAULT,
-				       CW_USEDEFAULT, CW_USEDEFAULT,
+				       9999, 9999,
+				       1, 1,
 				       NULL, NULL,
 				       hInst,
 				       NULL )) == NULL) {
 		fst_error ("cannot create dummy timer window");
 	}
 
-	if (!SetTimer (window, 1000, 100, NULL)) {
+	if (!SetTimer (window, 1000, 20, NULL)) {
 		fst_error ("cannot set timer on dummy window");
 	}
 
-	while (1) {
-
-		GetMessageA (&msg, NULL, 0,0);
+	while (!gui_quit) {
 
-		if (msg.message == WM_SYSTEMERROR) {
-			/* sent when this thread is supposed to exist */
-			break;
+		if (!GetMessageA (&msg, NULL, 0,0)) {
+			if (!gui_quit) {
+				fprintf (stderr, "QUIT message received by Windows GUI thread - ignored\n");
+				continue;
+			} else {
+				break;
+			}
 		}
-		
-		if (msg.message == WM_KEYDOWN) debreak();
 
 		TranslateMessage( &msg );
 		DispatchMessageA (&msg);
@@ -343,92 +129,140 @@ DWORD WINAPI gui_event_loop (LPVOID param)
 		/* handle window creation requests, destroy requests, 
 		   and run idle callbacks 
 		*/
-		
-		if( msg.message == WM_TIMER ) {
-		    pthread_mutex_lock (&plugin_mutex);
+
+		if (msg.message == WM_TIMER) {
+			pthread_mutex_lock (&plugin_mutex);
+		    
 again:
-		    for (fst = fst_first; fst; fst = fst->next) {
-
-			if (fst->destroy) {
-			    if (fst->window) {
-				fst->plugin->dispatcher( fst->plugin, effEditClose, 0, 0, NULL, 0.0 );
-				CloseWindow (fst->window);
-				fst->window = NULL;
-				fst->destroy = FALSE;
-			    }
-			    fst_event_loop_remove_plugin (fst);
-			    fst->been_activated = FALSE;
-			    pthread_mutex_lock (&fst->lock);
-			    pthread_cond_signal (&fst->window_status_change);
-			    pthread_mutex_unlock (&fst->lock);
-			    goto again;
-			} 
-
-			if (fst->window == NULL) {
-			    pthread_mutex_lock (&fst->lock);
-			    if (fst_create_editor (fst)) {
-				fst_error ("cannot create editor for plugin %s", fst->handle->name);
-				fst_event_loop_remove_plugin (fst);
-				pthread_cond_signal (&fst->window_status_change);
+			for (fst = fst_first; fst; fst = fst->next) {
+				
+				pthread_mutex_lock (&fst->lock);
+
+				if (fst->destroy) {
+					fprintf (stderr, "%s scheduled for destroy\n", fst->handle->name);
+					if (fst->window) {
+						fst->plugin->dispatcher( fst->plugin, effEditClose, 0, 0, NULL, 0.0 );
+						CloseWindow (fst->window);
+						fst->window = NULL;
+						fst->destroy = FALSE;
+					}
+					fst_event_loop_remove_plugin (fst);
+					fst->been_activated = FALSE;
+					pthread_cond_signal (&fst->window_status_change);
+					pthread_mutex_unlock (&fst->lock);
+					goto again;
+				} 
+				
+				if (fst->window == NULL) {
+					if (fst_create_editor (fst)) {
+						fst_error ("cannot create editor for plugin %s", fst->handle->name);
+						fst_event_loop_remove_plugin (fst);
+						pthread_cond_signal (&fst->window_status_change);
+						pthread_mutex_unlock (&fst->lock);
+						goto again;
+					} else {
+						/* condition/unlock: it was signalled & unlocked in fst_create_editor()   */
+					}
+				}
+
+				if (fst->want_program != -1 ) {
+					if (fst->vst_version >= 2) {
+						fst->plugin->dispatcher (fst->plugin, 67 /* effBeginSetProgram */, 0, 0, NULL, 0);
+					}
+
+					fst->plugin->dispatcher (fst->plugin, effSetProgram, 0, fst->want_program, NULL, 0);
+
+					if (fst->vst_version >= 2) {
+						fst->plugin->dispatcher (fst->plugin, 68 /* effEndSetProgram */, 0, 0, NULL, 0);
+					}
+					/* did it work? */
+					fst->current_program = fst->plugin->dispatcher (fst->plugin, 3, /* effGetProgram */ 0, 0, NULL, 0);
+					fst->want_program = -1; 
+				}
+				
+				if(fst->dispatcher_wantcall) {
+					fst->dispatcher_retval = fst->plugin->dispatcher( fst->plugin, 
+											  fst->dispatcher_opcode,
+											  fst->dispatcher_index,
+											  fst->dispatcher_val,
+											  fst->dispatcher_ptr,
+											  fst->dispatcher_opt );
+					fst->dispatcher_wantcall = 0;
+					pthread_cond_signal (&fst->plugin_dispatcher_called);
+				}
+				
+				fst->plugin->dispatcher (fst->plugin, effEditIdle, 0, 0, NULL, 0);
+
+				if( fst->wantIdle ) {
+					fst->plugin->dispatcher (fst->plugin, 53, 0, 0, NULL, 0);
+				}
+
 				pthread_mutex_unlock (&fst->lock);
-				goto again;
-			    }
-			    /* condition/unlock handled when we receive WM_ACTIVATE */
 			}
-
-			fst->plugin->dispatcher (fst->plugin, effEditIdle, 0, 0, NULL, 0);
-		    }
-		    pthread_mutex_unlock (&plugin_mutex);
+			pthread_mutex_unlock (&plugin_mutex);
+			
 		}
 	}
-	fst_error ("FST GUI event loop has quit!");
+
 	return 0;
 }
 
 int
-fst_init ()
+fst_init (void* possible_hmodule)
 {
-	WNDCLASSA wc;
+	WNDCLASSEX wclass;
 	HMODULE hInst;
-
-	if ((hInst = GetModuleHandleA (NULL)) == NULL) {
+	
+	if (possible_hmodule) {
+		hInst = (HMODULE) possible_hmodule;
+	} else if ((hInst = GetModuleHandleA (NULL)) == NULL) {
 		fst_error ("can't get module handle");
 		return -1;
 	}
-	wc.style = 0;
-	wc.lpfnWndProc = my_window_proc;
-	wc.cbClsExtra = 0;
-	wc.cbWndExtra = 0;
-	wc.hInstance = hInst;
-	wc.hIcon = LoadIconA( hInst, "FST");
-	wc.hCursor = LoadCursorA( NULL, IDI_APPLICATION );
-	wc.hbrBackground = GetStockObject( BLACK_BRUSH );
-	wc.lpszMenuName = "MENU_FST";
-	wc.lpszClassName = "FST";
-
-	if (!RegisterClassA(&wc)){
-		return 1;
+
+	wclass.cbSize = sizeof(WNDCLASSEX);
+	wclass.style = 0;
+	wclass.lpfnWndProc = my_window_proc;
+	wclass.cbClsExtra = 0;
+	wclass.cbWndExtra = 0;
+	wclass.hInstance = hInst;
+	wclass.hIcon = LoadIcon(hInst, "FST");
+	wclass.hCursor = LoadCursor(0, IDI_APPLICATION);
+//    wclass.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);
+	wclass.lpszMenuName = "MENU_FST";
+	wclass.lpszClassName = "FST";
+	wclass.hIconSm = 0;
+
+
+	if (!RegisterClassExA(&wclass)){
+		printf( "Class register failed :(\n" );
+		return -1;
 	}
 
+	fst_error ("Startup win32 GUI thread\n");
+
 	if (CreateThread (NULL, 0, gui_event_loop, NULL, 0, NULL) == NULL) {
 		fst_error ("could not create new thread proxy");
 		return -1;
 	}
 
+#ifdef HAVE_JACK_SET_THREAD_CREATOR
+	jack_set_thread_creator (wine_pthread_create);
+#endif
+
 	return 0;
 }
 
 void
-fst_finish ()
+fst_exit ()
 {
-	PostThreadMessageA (gui_thread_id, WM_SYSTEMERROR, 0, 0);
+	gui_quit = 1;
+	PostQuitMessage (0);
 }
 
 int
 fst_run_editor (FST* fst)
 {
-	/* Add the FST to the list of all that should be handled by the GUI thread */
-
 	pthread_mutex_lock (&plugin_mutex);
 
 	if (fst_first == NULL) {
@@ -441,11 +275,6 @@ fst_run_editor (FST* fst)
 		p->next = fst;
 	}
 
-	if (!PostThreadMessageA (gui_thread_id, WM_USER, 0, 0)) {
-		fst_error ("could not post message to gui thread");
-		return -1;
-	}
-
 	pthread_mutex_unlock (&plugin_mutex);
 
 	/* wait for the plugin editor window to be created (or not) */
@@ -457,13 +286,188 @@ fst_run_editor (FST* fst)
 	pthread_mutex_unlock (&fst->lock);
 
 	if (!fst->window) {
-		fst_error ("no window created for VST plugin editor");
 		return -1;
 	}
 
 	return 0;
 }
 
+int
+fst_call_dispatcher (FST *fst, int opcode, int index, int val, void *ptr, float opt) 
+{
+	pthread_mutex_lock (&fst->lock);
+	fst->dispatcher_opcode = opcode;
+	fst->dispatcher_index = index;
+	fst->dispatcher_val = val;
+	fst->dispatcher_ptr = ptr;
+	fst->dispatcher_opt = opt;
+	fst->dispatcher_wantcall = 1;
+
+	pthread_cond_wait (&fst->plugin_dispatcher_called, &fst->lock);
+	pthread_mutex_unlock (&fst->lock);
+
+	return fst->dispatcher_retval;
+}
+
+int
+fst_create_editor (FST* fst)
+{
+	HMODULE hInst;
+	HWND window;
+	struct ERect* er;
+
+	/* "guard point" to trap errors that occur during plugin loading */
+
+	/* Note: fst->lock is held while this function is called */
+
+	if (!(fst->plugin->flags & effFlagsHasEditor)) {
+		fst_error ("Plugin \"%s\" has no editor", fst->handle->name);
+		return -1;
+	}
+
+	if ((hInst = GetModuleHandleA (NULL)) == NULL) {
+		fst_error ("can't get module handle");
+		return 1;
+	}
+	
+//	if ((window = CreateWindowExA (WS_EX_TOOLWINDOW | WS_EX_TRAYWINDOW, "FST", fst->handle->name,
+	if ((window = CreateWindowExA (0, "FST", fst->handle->name,
+				       (WS_OVERLAPPEDWINDOW & ~WS_THICKFRAME & ~WS_MAXIMIZEBOX),
+//				       (WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX),
+				       9999,9999,1,1,
+//				       CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
+				       NULL, NULL,
+				       hInst,
+				       NULL)) == NULL) {
+		fst_error ("cannot create editor window");
+		return 1;
+	}
+
+	if (!SetPropA (window, "fst_ptr", fst)) {
+		fst_error ("cannot set fst_ptr on window");
+	}
+
+	fst->window = window;
+//	fst->xid = (int) GetPropA (window, "__wine_x11_whole_window");
+
+
+	//printf( "effEditOpen......\n" );
+	fst->plugin->dispatcher (fst->plugin, effEditOpen, 0, 0, fst->window, 0 );
+	fst->plugin->dispatcher (fst->plugin, effEditGetRect, 0, 0, &er, 0 );
+
+	fst->width =  er->right-er->left;
+	fst->height =  er->bottom-er->top;
+	//printf( "get rect ses... %d,%d\n", fst->width, fst->height );
+
+	//SetWindowPos (fst->window, 0, 9999, 9999, er->right-er->left+8, er->bottom-er->top+26, 0);
+	SetWindowPos (fst->window, 0, 9999, 9999, 2, 2, 0);
+	ShowWindow (fst->window, SW_SHOWNA);
+	//SetWindowPos (fst->window, 0, 0, 0, er->right-er->left+8, er->bottom-er->top+26, SWP_NOMOVE|SWP_NOZORDER);
+	
+	fst->xid = (int) GetPropA (window, "__wine_x11_whole_window");
+	fst->been_activated = TRUE;
+	pthread_cond_signal (&fst->window_status_change);
+	pthread_mutex_unlock (&fst->lock);
+
+	return 0;
+}
+
+void
+fst_move_window_into_view (FST* fst)
+{
+        if (fst->window) {
+		SetWindowPos (fst->window, 0, 0, 0, fst->width, fst->height+24, 0);
+		ShowWindow (fst->window, SW_SHOWNA);
+	}
+}
+
+void
+fst_destroy_editor (FST* fst)
+{
+	pthread_mutex_lock (&fst->lock);
+	if (fst->window) {
+		fprintf (stderr, "mark %s for destroy\n", fst->handle->name);
+		fst->destroy = TRUE;
+		//if (!PostThreadMessageA (gui_thread_id, WM_USER, 0, 0)) {
+		//if (!PostThreadMessageA (gui_thread_id, WM_QUIT, 0, 0)) {
+		//	fst_error ("could not post message to gui thread");
+		//}
+		pthread_cond_wait (&fst->window_status_change, &fst->lock);
+		fprintf (stderr, "%s editor destroyed\n", fst->handle->name);
+
+	}
+	pthread_mutex_unlock (&fst->lock);
+}
+
+void
+fst_event_loop_remove_plugin (FST* fst)
+{
+	FST* p;
+	FST* prev;
+
+	for (p = fst_first, prev = NULL; p->next; prev = p, p = p->next) {
+		if (p == fst) {
+			if (prev) {
+				prev->next = p->next;
+			}
+		}
+	}
+
+	if (fst_first == fst) {
+		fst_first = fst_first->next;
+	}
+
+}
+
+HMODULE
+fst_load_vst_library(const char * path)
+{
+	HMODULE dll;
+	char * full_path;
+	char * envdup;
+	char * vst_path;
+	size_t len1;
+	size_t len2;
+
+	if ((dll = LoadLibraryA (path)) != NULL) {
+		return dll;
+	}
+
+	envdup = getenv ("VST_PATH");
+	if (envdup == NULL) {
+		return NULL;
+	}
+
+	envdup = strdup (envdup);
+	if (envdup == NULL) {
+		fst_error ("strdup failed");
+		return NULL;
+	}
+
+	len2 = strlen(path);
+
+	vst_path = strtok (envdup, ":");
+	while (vst_path != NULL) {
+		fst_error ("\"%s\"", vst_path);
+		len1 = strlen(vst_path);
+		full_path = malloc (len1 + 1 + len2 + 1);
+		memcpy(full_path, vst_path, len1);
+		full_path[len1] = '/';
+		memcpy(full_path + len1 + 1, path, len2);
+		full_path[len1 + 1 + len2] = '\0';
+
+		if ((dll = LoadLibraryA (full_path)) != NULL) {
+			break;
+		}
+
+		vst_path = strtok (NULL, ":");
+	}
+
+	free(envdup);
+
+	return dll;
+}
+
 FSTHandle*
 fst_load (const char *path)
 {
@@ -509,14 +513,12 @@ fst_load (const char *path)
 		*period = '\0';
 	}
 
-	if ((fhandle->dll = LoadLibraryA (buf)) == NULL) {
+	if ((fhandle->dll = fst_load_vst_library (buf)) == NULL) {
 		fst_unload (fhandle);
 		return NULL;
 	}
 
-	typedef AEffect* (*entryFunctionType)(audioMasterCallback);
-
-	if ((fhandle->main_entry = (entryFunctionType) GetProcAddress (fhandle->dll, "main")) == NULL) {
+	if ((fhandle->main_entry = (main_entry_t) GetProcAddress (fhandle->dll, "main")) == NULL) {
 		fst_unload (fhandle);
 		return NULL;
 	}
@@ -573,7 +575,10 @@ fst_instantiate (FSTHandle* fhandle, audioMasterCallback amc, void* userptr)
 	fst->plugin->dispatcher (fst->plugin, effOpen, 0, 0, 0, 0);
 	//fst->plugin->dispatcher (fst->plugin, effMainsChanged, 0, 0, NULL, 0);
 
+	fst->vst_version = fst->plugin->dispatcher (fst->plugin, effGetVstVersion, 0, 0, 0, 0);
+	
 	fst->handle->plugincnt++;
+	fst->wantIdle = 0;
 
 	return fst;
 }
@@ -596,3 +601,202 @@ fst_get_XID (FST* fst)
 {
 	return fst->xid;
 }
+
+float htonf (float v)
+{
+      float result;
+      char * fin = (char*)&v;
+      char * fout = (char*)&result;
+      fout[0] = fin[3];
+      fout[1] = fin[2];
+      fout[2] = fin[1];
+      fout[3] = fin[0];
+      return result;
+}
+
+#if 0
+int fst_load_state (FST * fst, char * filename)
+{
+	FILE * f = fopen (filename, "rb");
+	if (f) {
+		char testMagic[sizeof (magic)];
+		fread (&testMagic, sizeof (magic), 1, f);
+		if (strcmp (testMagic, magic)) {
+			printf ("File corrupt\n");
+			return FALSE;
+		}
+
+		char productString[64];
+		char vendorString[64];
+		char effectName[64];
+		char testString[64];
+		unsigned length;
+		int success;
+
+		fread (&length, sizeof (unsigned), 1, f);
+		length = htonl (length);
+		fread (productString, length, 1, f);
+		productString[length] = 0;
+		printf ("Product string: %s\n", productString);
+
+		success = fst_call_dispatcher( fst, effGetProductString, 0, 0, testString, 0 );
+		if (success == 1) {
+			if (strcmp (testString, productString) != 0) {
+				printf ("Product string mismatch! Plugin has: %s\n", testString);
+				fclose (f);
+				return FALSE;
+			}
+		} else if (length != 0) {
+			printf ("Product string mismatch! Plugin has none.\n", testString);
+			fclose (f);
+			return FALSE;
+		}
+
+		fread (&length, sizeof (unsigned), 1, f);
+		length = htonl (length);
+		fread (effectName, length, 1, f);
+		effectName[length] = 0;
+		printf ("Effect name: %s\n", effectName);
+
+		success = fst_call_dispatcher( fst, effGetEffectName, 0, 0, testString, 0 );
+		if (success == 1) {
+			if (strcmp (testString, effectName) != 0) {
+				printf ("Effect name mismatch! Plugin has: %s\n", testString);
+				fclose (f);
+				return FALSE;
+			}
+		} else if (length != 0) {
+			printf ("Effect name mismatch! Plugin has none.\n", testString);
+			fclose (f);
+			return FALSE;
+		}
+
+		fread (&length, sizeof (unsigned), 1, f);
+		length = htonl (length);
+		fread (vendorString, length, 1, f);
+		vendorString[length] = 0;
+		printf ("Vendor string: %s\n", vendorString);
+
+		success = fst_call_dispatcher( fst, effGetVendorString, 0, 0, testString, 0 );
+		if (success == 1) {
+			if (strcmp (testString, vendorString) != 0) {
+				printf ("Vendor string mismatch! Plugin has: %s\n", testString);
+				fclose (f);
+				return FALSE;
+			}
+		} else if (length != 0) {
+			printf ("Vendor string mismatch! Plugin has none.\n", testString);
+			fclose (f);
+			return FALSE;
+		}
+
+		int numParam;
+		unsigned i;
+		fread (&numParam, sizeof (int), 1, f);
+		numParam = htonl (numParam);
+		for (i = 0; i < numParam; ++i) {
+			float val;
+			fread (&val, sizeof (float), 1, f);
+			val = htonf (val);
+
+			pthread_mutex_lock( &fst->lock );
+			fst->plugin->setParameter( fst->plugin, i, val );
+			pthread_mutex_unlock( &fst->lock );
+		}
+
+		int bytelen;
+		fread (&bytelen, sizeof (int), 1, f);
+		bytelen = htonl (bytelen);
+		if (bytelen) {
+			char * buf = malloc (bytelen);
+			fread (buf, bytelen, 1, f);
+
+			fst_call_dispatcher( fst, 24, 0, bytelen, buf, 0 );
+			free (buf);
+		}
+	} else {
+		printf ("Could not open state file\n");
+		return FALSE;
+	}
+	return TRUE;
+
+}
+#endif
+
+int fst_save_state (FST * fst, char * filename)
+{
+	FILE * f = fopen (filename, "wb");
+	if (f) {
+		int bytelen;
+		int numParams = fst->plugin->numParams;
+		unsigned i;
+		char productString[64];
+		char effectName[64];
+		char vendorString[64];
+		int success;
+
+		// write header
+		fprintf( f, "<plugin_state>\n" );
+
+		success = fst_call_dispatcher( fst, effGetProductString, 0, 0, productString, 0 );
+		if( success == 1 ) {
+			fprintf (f, "  <check field=\"productString\" value=\"%s\"/>\n", productString);
+		} else {
+			printf ("No product string\n");
+		}
+
+		success = fst_call_dispatcher( fst, effGetEffectName, 0, 0, effectName, 0 );
+		if( success == 1 ) {
+			fprintf (f, "  <check field=\"effectName\" value=\"%s\"/>\n", effectName);
+			printf ("Effect name: %s\n", effectName);
+		} else {
+			printf ("No effect name\n");
+		}
+
+		success = fst_call_dispatcher( fst, effGetVendorString, 0, 0, vendorString, 0 );
+		if( success == 1 ) {
+			fprintf (f, "  <check field=\"vendorString\" value=\"%s\"/>\n", vendorString);
+			printf ("Vendor string: %s\n", vendorString);
+		} else {
+			printf ("No vendor string\n");
+		}
+
+
+		if( fst->plugin->flags & 32 ) {
+			numParams = 0;
+		}
+
+		for( i=0; i<numParams; i++ ) {
+			float val;
+			
+			pthread_mutex_lock( &fst->lock );
+			val = fst->plugin->getParameter( fst->plugin, i );
+			pthread_mutex_unlock( &fst->lock );
+			fprintf( f, "  <param index=\"%d\" value=\"%f\"/>\n", i, val );
+		}
+
+		if( fst->plugin->flags & 32 ) {
+			printf( "getting chunk...\n" );
+			void * chunk;
+			bytelen = fst_call_dispatcher( fst, 23, 0, 0, &chunk, 0 );
+			printf( "got tha chunk..\n" );
+			if( bytelen ) {
+				if( bytelen < 0 ) {
+					printf( "Chunke len < 0 !!! Not saving chunk.\n" );
+				} else {
+					char *encoded = g_base64_encode( chunk, bytelen );
+					fprintf( f, "  <chunk size=\"%d\">\n    %s\n  </chunk>\n", bytelen, encoded );
+					g_free( encoded );
+				}
+			}
+		} 
+
+		fprintf( f, "</plugin_state>\n" );
+		fclose( f );
+	} else {
+		printf ("Could not open state file\n");
+		return FALSE;
+	}
+	return TRUE;
+}
+
diff --git a/libs/glibmm2/Makefile.in b/libs/glibmm2/Makefile.in
index 8b6e938..ca0dd5f 100644
--- a/libs/glibmm2/Makefile.in
+++ b/libs/glibmm2/Makefile.in
@@ -107,6 +107,7 @@ CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -141,6 +142,7 @@ M4 = @M4@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -205,6 +207,7 @@ sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 ACLOCAL_AMFLAGS = -I scripts
diff --git a/libs/glibmm2/configure b/libs/glibmm2/configure
index f620916..508774d 100755
--- a/libs/glibmm2/configure
+++ b/libs/glibmm2/configure
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61.
+# Generated by GNU Autoconf 2.63.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 ## --------------------- ##
@@ -15,7 +15,7 @@ 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
@@ -37,17 +37,45 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
   else
-    PATH_SEPARATOR=:
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
   fi
-  rm -f conf$$.sh
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
 fi
 
 # Support unset when possible.
@@ -63,8 +91,6 @@ fi
 # there to prevent editors from complaining about space-tab.
 # (If _AS_PATH_WALK were called with IFS unset, it would disable word
 # splitting by setting IFS to empty value.)
-as_nl='
-'
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
@@ -87,7 +113,7 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   { (exit 1); exit 1; }
 fi
 
@@ -100,17 +126,10 @@ PS2='> '
 PS4='+ '
 
 # NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
 
 # Required to use basename.
 if expr a : '\(a\)' >/dev/null 2>&1 &&
@@ -132,7 +151,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
+$as_echo X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -158,7 +177,7 @@ else
   as_have_required=no
 fi
 
-  if test $as_have_required = yes && 	 (eval ":
+  if test $as_have_required = yes &&	 (eval ":
 (as_func_return () {
   (exit \$1)
 }
@@ -240,7 +259,7 @@ IFS=$as_save_IFS
 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
@@ -261,7 +280,7 @@ _ASEOF
 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
@@ -341,10 +360,10 @@ fi
 
       if test "x$CONFIG_SHELL" != x; then
   for as_var in BASH_ENV ENV
-        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-        done
-        export CONFIG_SHELL
-        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+	do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+	done
+	export CONFIG_SHELL
+	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
 fi
 
 
@@ -413,9 +432,10 @@ fi
 
 test \$exitcode = 0") || {
   echo No shell found that supports shell functions.
-  echo Please tell autoconf at gnu.org about your system,
-  echo including any error possibly output before this
-  echo message
+  echo Please tell bug-autoconf at gnu.org about your system,
+  echo including any error possibly output before this message.
+  echo This can help us improve future autoconf versions.
+  echo Configuration will now proceed without shell functions.
 }
 
 
@@ -451,7 +471,7 @@ test \$exitcode = 0") || {
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
    { (exit 1); exit 1; }; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
@@ -479,7 +499,6 @@ case `echo -n x` in
 *)
   ECHO_N='-n';;
 esac
-
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -492,19 +511,22 @@ if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
 else
   rm -f conf$$.dir
-  mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
     as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
+  fi
 else
   as_ln_s='cp -p'
 fi
@@ -529,10 +551,10 @@ else
   as_test_x='
     eval sh -c '\''
       if test -d "$1"; then
-        test -d "$1/.";
+	test -d "$1/.";
       else
 	case $1 in
-        -*)set "./$1";;
+	-*)set "./$1";;
 	esac;
 	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
 	???[sx]*):;;*)false;;esac;fi
@@ -767,128 +789,145 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL
-PATH_SEPARATOR
-PACKAGE_NAME
-PACKAGE_TARNAME
-PACKAGE_VERSION
-PACKAGE_STRING
-PACKAGE_BUGREPORT
-exec_prefix
-prefix
-program_transform_name
-bindir
-sbindir
-libexecdir
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-GLIBMM_MAJOR_VERSION
-GLIBMM_MINOR_VERSION
-GLIBMM_MICRO_VERSION
-GLIBMM_VERSION
-GLIBMM_RELEASE
-LIBGLIBMM_SO_VERSION
-INSTALL_PROGRAM
-INSTALL_SCRIPT
-INSTALL_DATA
-am__isrc
-CYGPATH_W
-PACKAGE
-VERSION
-ACLOCAL
-AUTOCONF
-AUTOMAKE
-AUTOHEADER
-MAKEINFO
-install_sh
-STRIP
-INSTALL_STRIP_PROGRAM
-mkdir_p
-AWK
-SET_MAKE
-am__leading_dot
-AMTAR
-am__tar
-am__untar
-MAINTAINER_MODE_TRUE
-MAINTAINER_MODE_FALSE
-MAINT
-CC
-CFLAGS
-LDFLAGS
-CPPFLAGS
-ac_ct_CC
-EXEEXT
-OBJEXT
-DEPDIR
-am__include
-am__quote
-AMDEP_TRUE
-AMDEP_FALSE
-AMDEPBACKSLASH
-CCDEPMODE
-am__fastdepCC_TRUE
-am__fastdepCC_FALSE
-CPP
-build
-build_cpu
-build_vendor
-build_os
-host
-host_cpu
-host_vendor
-host_os
-SED
-GREP
-EGREP
-LN_S
-ECHO
-AR
-RANLIB
-CXX
-CXXFLAGS
-ac_ct_CXX
-CXXDEPMODE
-am__fastdepCXX_TRUE
-am__fastdepCXX_FALSE
-CXXCPP
-F77
-FFLAGS
-ac_ct_F77
-LIBTOOL
-M4
-PKG_CONFIG
-GLIBMM_CFLAGS
-GLIBMM_LIBS
-GTHREAD_CFLAGS
-GTHREAD_LIBS
-GTKMM_FALSE_TRUE
-GTKMM_FALSE_FALSE
+ac_subst_vars='LTLIBOBJS
 LIBOBJS
-LTLIBOBJS'
+GTKMM_FALSE_FALSE
+GTKMM_FALSE_TRUE
+GTHREAD_LIBS
+GTHREAD_CFLAGS
+GLIBMM_LIBS
+GLIBMM_CFLAGS
+PKG_CONFIG
+M4
+LIBTOOL
+ac_ct_F77
+FFLAGS
+F77
+CXXCPP
+am__fastdepCXX_FALSE
+am__fastdepCXX_TRUE
+CXXDEPMODE
+ac_ct_CXX
+CXXFLAGS
+CXX
+NMEDIT
+DSYMUTIL
+RANLIB
+AR
+ECHO
+LN_S
+EGREP
+GREP
+SED
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+CPP
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+LIBGLIBMM_SO_VERSION
+GLIBMM_RELEASE
+GLIBMM_VERSION
+GLIBMM_MICRO_VERSION
+GLIBMM_MINOR_VERSION
+GLIBMM_MAJOR_VERSION
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
 ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_maintainer_mode
+enable_dependency_tracking
+enable_static
+enable_shared
+enable_fast_install
+with_gnu_ld
+enable_libtool_lock
+with_pic
+with_tags
+enable_debug_refcounting
+enable_warnings
+'
       ac_precious_vars='build_alias
 host_alias
 target_alias
@@ -914,6 +953,8 @@ GTHREAD_LIBS'
 # Initialize some variables set by options.
 ac_init_help=
 ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
 # The variables have the same names as the options, with
 # dashes changed to underlines.
 cache_file=/dev/null
@@ -1012,13 +1053,21 @@ do
     datarootdir=$ac_optarg ;;
 
   -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=no ;;
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
 
   -docdir | --docdir | --docdi | --doc | --do)
     ac_prev=docdir ;;
@@ -1031,13 +1080,21 @@ do
     dvidir=$ac_optarg ;;
 
   -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=\$ac_optarg ;;
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -1228,22 +1285,38 @@ do
     ac_init_version=: ;;
 
   -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=\$ac_optarg ;;
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
 
   -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=no ;;
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
 
   --x)
     # Obsolete; use --with-x.
@@ -1263,7 +1336,7 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
+  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
 Try \`$0 --help' for more information." >&2
    { (exit 1); exit 1; }; }
     ;;
@@ -1272,16 +1345,16 @@ Try \`$0 --help' for more information." >&2
     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
     # Reject names that are not valid shell variable names.
     expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
    { (exit 1); exit 1; }; }
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
 
   *)
     # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
     : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
     ;;
 
@@ -1290,22 +1363,38 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
+  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
    { (exit 1); exit 1; }; }
 fi
 
-# Be sure to have absolute directory names.
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
+   { (exit 1); exit 1; }; } ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
 		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
   case $ac_val in
     [\\/$]* | ?:[\\/]* )  continue;;
     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
-  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
    { (exit 1); exit 1; }; }
 done
 
@@ -1320,7 +1409,7 @@ target=$target_alias
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
     If a cross compiler is detected then cross compile mode will be used." >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
@@ -1336,10 +1425,10 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { echo "$as_me: error: Working directory cannot be determined" >&2
+  { $as_echo "$as_me: error: working directory cannot be determined" >&2
    { (exit 1); exit 1; }; }
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { echo "$as_me: error: pwd does not report name of working directory" >&2
+  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
    { (exit 1); exit 1; }; }
 
 
@@ -1347,12 +1436,12 @@ test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
   # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$0" ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$0" |
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -1379,12 +1468,12 @@ else
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
    { (exit 1); exit 1; }; }
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
+	cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
    { (exit 1); exit 1; }; }
 	pwd)`
 # When building in place, set srcdir=.
@@ -1433,9 +1522,9 @@ Configuration:
 
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
-			  [$ac_default_prefix]
+                          [$ac_default_prefix]
   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-			  [PREFIX]
+                          [PREFIX]
 
 By default, \`make install' will install all the files in
 \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
@@ -1445,25 +1534,25 @@ for instance \`--prefix=\$HOME'.
 For better control, use the options below.
 
 Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR          info documentation [DATAROOTDIR/info]
-  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR           man documentation [DATAROOTDIR/man]
-  --docdir=DIR           documentation root [DATAROOTDIR/doc/PACKAGE]
-  --htmldir=DIR          html documentation [DOCDIR]
-  --dvidir=DIR           dvi documentation [DOCDIR]
-  --pdfdir=DIR           pdf documentation [DOCDIR]
-  --psdir=DIR            ps documentation [DOCDIR]
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
 _ACEOF
 
   cat <<\_ACEOF
@@ -1484,6 +1573,7 @@ if test -n "$ac_init_help"; then
   cat <<\_ACEOF
 
 Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --enable-maintainer-mode  enable make rules and dependencies not useful
@@ -1541,15 +1631,17 @@ fi
 if test "$ac_init_help" = "recursive"; then
   # If there are subdirs, report their specific --help.
   for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" || continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
     ac_builddir=.
 
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -1585,7 +1677,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
       echo &&
       $SHELL "$ac_srcdir/configure" --help=recursive
     else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi || ac_status=$?
     cd "$ac_pwd" || { ac_status=$?; break; }
   done
@@ -1595,10 +1687,10 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 configure
-generated by GNU Autoconf 2.61
+generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1609,7 +1701,7 @@ This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by $as_me, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
+generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
 
@@ -1645,7 +1737,7 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
+  $as_echo "PATH: $as_dir"
 done
 IFS=$as_save_IFS
 
@@ -1680,7 +1772,7 @@ do
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
     *\'*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
     1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
@@ -1732,11 +1824,12 @@ _ASBOX
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
       *) $as_unset $ac_var ;;
       esac ;;
     esac
@@ -1766,9 +1859,9 @@ _ASBOX
     do
       eval ac_val=\$$ac_var
       case $ac_val in
-      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
       esac
-      echo "$ac_var='\''$ac_val'\''"
+      $as_echo "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
@@ -1783,9 +1876,9 @@ _ASBOX
       do
 	eval ac_val=\$$ac_var
 	case $ac_val in
-	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 	esac
-	echo "$ac_var='\''$ac_val'\''"
+	$as_echo "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
@@ -1801,8 +1894,8 @@ _ASBOX
       echo
     fi
     test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
   } >&5
   rm -f core *.core core.conftest.* &&
     rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -1844,21 +1937,24 @@ _ACEOF
 
 
 # Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  set x "$CONFIG_SITE"
+  ac_site_file1=$CONFIG_SITE
 elif test "x$prefix" != xNONE; then
-  set x "$prefix/share/config.site" "$prefix/etc/config.site"
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
 else
-  set x "$ac_default_prefix/share/config.site" \
-	"$ac_default_prefix/etc/config.site"
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
 fi
-shift
-for ac_site_file
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
 do
+  test "x$ac_site_file" = xNONE && continue
   if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
+    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file"
   fi
@@ -1868,16 +1964,16 @@ if test -r "$cache_file"; then
   # Some versions of bash will fail to source /dev/null (special
   # files actually), so we avoid doing that.
   if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
+    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
       *)                      . "./$cache_file";;
     esac
   fi
 else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
+  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
@@ -1891,29 +1987,38 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
     *)
       if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
       fi;;
   esac
   # Pass precious variables to config.status.
   if test "$ac_new_set" = set; then
     case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
     *) ac_arg=$ac_var=$ac_new_val ;;
     esac
     case " $ac_configure_args " in
@@ -1923,10 +2028,12 @@ echo "$as_me:   current value: $ac_new_val" >&2;}
   fi
 done
 if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
@@ -2008,8 +2115,8 @@ for ac_dir in scripts "$srcdir"/scripts; do
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in scripts \"$srcdir\"/scripts" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in scripts \"$srcdir\"/scripts" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in scripts \"$srcdir\"/scripts" >&5
+$as_echo "$as_me: error: cannot find install-sh or install.sh in scripts \"$srcdir\"/scripts" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
@@ -2041,11 +2148,12 @@ am__api_version='1.10'
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
-{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
 if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -2074,17 +2182,29 @@ case $as_dir/ in
 	    # program-specific install script used by HP pwplus--don't use.
 	    :
 	  else
-	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	    break 3
+	    rm -rf conftest.one conftest.two conftest.dir
+	    echo one > conftest.one
+	    echo two > conftest.two
+	    mkdir conftest.dir
+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	      test -s conftest.one && test -s conftest.two &&
+	      test -s conftest.dir/conftest.one &&
+	      test -s conftest.dir/conftest.two
+	    then
+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      break 3
+	    fi
 	  fi
 	fi
       done
     done
     ;;
 esac
+
 done
 IFS=$as_save_IFS
 
+rm -rf conftest.one conftest.two conftest.dir
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
@@ -2097,8 +2217,8 @@ fi
     INSTALL=$ac_install_sh
   fi
 fi
-{ echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
@@ -2108,8 +2228,8 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
 # Just in case
 sleep 1
 echo timestamp > conftest.file
@@ -2132,9 +2252,9 @@ if (
       # if, for instance, CONFIG_SHELL is bash and it inherits a
       # broken ls alias from the environment.  This has actually
       # happened.  Such a system could not be considered "sane".
-      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
+      { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
 alias in your environment" >&5
-echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
+$as_echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
 alias in your environment" >&2;}
    { (exit 1); exit 1; }; }
    fi
@@ -2145,26 +2265,23 @@ then
    # Ok.
    :
 else
-   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
+   { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
 Check your system clock" >&5
-echo "$as_me: error: newly created file is older than distributed files!
+$as_echo "$as_me: error: newly created file is older than distributed files!
 Check your system clock" >&2;}
    { (exit 1); exit 1; }; }
 fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
 test "$program_suffix" != NONE &&
   program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.  echo might interpret backslashes.
+# Double any \ or $.
 # By default was `s,x,x', remove it if useless.
-cat <<\_ACEOF >conftest.sed
-s/[\\$]/&&/g;s/;s,x,x,$//
-_ACEOF
-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm -f conftest.sed
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 
 # expand $ac_aux_dir to an absolute path
 am_aux_dir=`cd $ac_aux_dir && pwd`
@@ -2175,15 +2292,15 @@ if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
 else
   am_missing_run=
-  { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+  { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
 fi
 
-{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
-echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
   if test "${ac_cv_path_mkdir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
@@ -2218,8 +2335,8 @@ fi
     MKDIR_P="$ac_install_sh -d"
   fi
 fi
-{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
-echo "${ECHO_T}$MKDIR_P" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
 
 mkdir_p="$MKDIR_P"
 case $mkdir_p in
@@ -2231,10 +2348,10 @@ for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_AWK+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
   ac_cv_prog_AWK="$AWK" # Let the user override the test.
@@ -2247,7 +2364,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2258,22 +2375,23 @@ fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
   test -n "$AWK" && break
 done
 
-{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
-set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
 if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
 SHELL = /bin/sh
@@ -2290,12 +2408,12 @@ esac
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
   SET_MAKE=
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
@@ -2314,8 +2432,8 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
   am__isrc=' -I$(srcdir)'
   # test to see if srcdir already configured
   if test -f $srcdir/config.status; then
-    { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+    { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
    { (exit 1); exit 1; }; }
   fi
 fi
@@ -2370,10 +2488,10 @@ if test "$cross_compiling" != no; then
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
   ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
@@ -2386,7 +2504,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2397,11 +2515,11 @@ fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2410,10 +2528,10 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
   ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
@@ -2426,7 +2544,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2437,11 +2555,11 @@ fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_STRIP" = x; then
@@ -2449,12 +2567,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     STRIP=$ac_ct_STRIP
@@ -2481,8 +2595,8 @@ am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'
 
 ac_config_headers="$ac_config_headers glibmmconfig.h"
 
-{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
     # Check whether --enable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
   enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
@@ -2490,8 +2604,8 @@ else
   USE_MAINTAINER_MODE=no
 fi
 
-  { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
    if test $USE_MAINTAINER_MODE = yes; then
   MAINTAINER_MODE_TRUE=
   MAINTAINER_MODE_FALSE='#'
@@ -2527,10 +2641,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2543,7 +2657,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2554,11 +2668,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2567,10 +2681,10 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
@@ -2583,7 +2697,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2594,11 +2708,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_CC" = x; then
@@ -2606,12 +2720,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -2624,10 +2734,10 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2640,7 +2750,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2651,11 +2761,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2664,10 +2774,10 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2685,7 +2795,7 @@ do
        continue
      fi
     ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2708,11 +2818,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2723,10 +2833,10 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2739,7 +2849,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2750,11 +2860,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2767,10 +2877,10 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
@@ -2783,7 +2893,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2794,11 +2904,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2810,12 +2920,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -2825,44 +2931,50 @@ fi
 fi
 
 
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
 See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 
 # Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
 { (ac_try="$ac_compiler --version >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -v >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -V >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 
 cat >conftest.$ac_ext <<_ACEOF
@@ -2881,27 +2993,22 @@ main ()
 }
 _ACEOF
 ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-#
-# List of possible output files, starting from the most likely.
-# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
-# only as a last resort.  b.out is created by i960 compilers.
-ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
-#
-# The IRIX 6 linker writes into existing files which may not be
-# executable, retaining their permissions.  Remove them first so a
-# subsequent execution test works.
+{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
 ac_rmfiles=
 for ac_file in $ac_files
 do
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
     * ) ac_rmfiles="$ac_rmfiles $ac_file";;
   esac
 done
@@ -2912,10 +3019,11 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
@@ -2926,7 +3034,7 @@ for ac_file in $ac_files ''
 do
   test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
 	;;
     [ab].out )
 	# We found the default executable, but exeext='' is most
@@ -2953,25 +3061,27 @@ else
   ac_file=''
 fi
 
-{ echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
 if test -z "$ac_file"; then
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
 See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
+$as_echo "$as_me: error: C compiler cannot create executables
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
 fi
 
 ac_exeext=$ac_cv_exeext
 
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
 # If not cross compiling, check that we can run a simple program.
 if test "$cross_compiling" != yes; then
@@ -2980,49 +3090,53 @@ if test "$cross_compiling" != yes; then
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     cross_compiling=no
   else
     if test "$cross_compiling" = maybe; then
 	cross_compiling=yes
     else
-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
+$as_echo "$as_me: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
     fi
   fi
 fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
 
-{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
 if { (ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
@@ -3031,31 +3145,33 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 for ac_file in conftest.exe conftest conftest.*; do
   test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 	  break;;
     * ) break;;
   esac
 done
 else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 rm -f conftest$ac_cv_exeext
-{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
 if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -3078,40 +3194,43 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   for ac_file in conftest.o conftest.obj conftest.*; do
   test -f "$ac_file" || continue;
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
        break;;
   esac
 done
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
 See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
+$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
 if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -3137,20 +3256,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_compiler_gnu=no
@@ -3160,15 +3280,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
-GCC=`test $ac_compiler_gnu = yes && echo yes`
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
 if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
@@ -3195,20 +3319,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	CFLAGS=""
@@ -3233,20 +3358,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_c_werror_flag=$ac_save_c_werror_flag
@@ -3272,20 +3398,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3300,8 +3427,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
@@ -3317,10 +3444,10 @@ else
     CFLAGS=
   fi
 fi
-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
 if test "${ac_cv_prog_cc_c89+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
@@ -3391,20 +3518,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_c89=$ac_arg
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3420,15 +3548,15 @@ fi
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c89" in
   x)
-    { echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6; } ;;
+    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
   xno)
-    { echo "$as_me:$LINENO: result: unsupported" >&5
-echo "${ECHO_T}unsupported" >&6; } ;;
+    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c89"
-    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
+    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
 
 
@@ -3449,8 +3577,8 @@ am__doit:
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
-{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
 am__include="#"
 am__quote=
 _am_result=none
@@ -3477,8 +3605,8 @@ if test "$am__include" = "#"; then
 fi
 
 
-{ echo "$as_me:$LINENO: result: $_am_result" >&5
-echo "${ECHO_T}$_am_result" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
 rm -f confinc confmf
 
 # Check whether --enable-dependency-tracking was given.
@@ -3502,10 +3630,10 @@ fi
 
 depcc="$CC"   am_compiler_list=
 
-{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
   # We make a subdir and do the tests there.  Otherwise we can end up
@@ -3593,8 +3721,8 @@ else
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
  if
@@ -3613,15 +3741,15 @@ ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
   if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
@@ -3653,20 +3781,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Broken: fails on valid input.
@@ -3690,13 +3819,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
@@ -3704,7 +3834,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   # Broken: success on invalid input.
 continue
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Passes both tests.
@@ -3729,8 +3859,8 @@ fi
 else
   ac_cv_prog_CPP=$CPP
 fi
-{ echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
 do
@@ -3758,20 +3888,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Broken: fails on valid input.
@@ -3795,13 +3926,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
@@ -3809,7 +3941,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   # Broken: success on invalid input.
 continue
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Passes both tests.
@@ -3825,11 +3957,13 @@ rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
 See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 ac_ext=c
@@ -3838,11 +3972,12 @@ ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
-{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
-set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
 if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
 SHELL = /bin/sh
@@ -3859,45 +3994,45 @@ esac
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
   SET_MAKE=
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
    { (exit 1); exit 1; }; }
 
-{ echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
 if test "${ac_cv_build+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
   ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 test "x$ac_build_alias" = x &&
-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
    { (exit 1); exit 1; }; }
 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-echo "$as_me: error: invalid value of canonical build" >&2;}
+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+$as_echo "$as_me: error: invalid value of canonical build" >&2;}
    { (exit 1); exit 1; }; };;
 esac
 build=$ac_cv_build
@@ -3914,27 +4049,27 @@ IFS=$ac_save_IFS
 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-{ echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
 if test "${ac_cv_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
   ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
+    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-echo "$as_me: error: invalid value of canonical host" >&2;}
+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+$as_echo "$as_me: error: invalid value of canonical host" >&2;}
    { (exit 1); exit 1; }; };;
 esac
 host=$ac_cv_host
@@ -4025,10 +4160,10 @@ else
 fi
 
 
-{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
 if test "${lt_cv_path_SED+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   # 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.
@@ -4081,45 +4216,40 @@ fi
 
 SED=$lt_cv_path_SED
 
-{ echo "$as_me:$LINENO: result: $SED" >&5
-echo "${ECHO_T}$SED" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $SED" >&5
+$as_echo "$SED" >&6; }
 
-{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
-echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
 if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Extract the first word of "grep ggrep" to use in msg output
-if test -z "$GREP"; then
-set dummy grep ggrep; ac_prog_name=$2
-if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
+  if test -z "$GREP"; then
   ac_path_GREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_prog in grep ggrep; do
-  for ac_exec_ext in '' $ac_executable_extensions; do
-    ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-    { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-    # Check for GNU ac_path_GREP and select it if it is found.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
 case `"$ac_path_GREP" --version 2>&1` in
 *GNU*)
   ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
 *)
   ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  $as_echo_n 0123456789 >"conftest.in"
   while :
   do
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    echo 'GREP' >> "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
     "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     ac_count=`expr $ac_count + 1`
@@ -4134,74 +4264,60 @@ case `"$ac_path_GREP" --version 2>&1` in
   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 esac
 
-
-    $ac_path_GREP_found && break 3
+      $ac_path_GREP_found && break 3
+    done
   done
 done
-
-done
 IFS=$as_save_IFS
-
-
-fi
-
-GREP="$ac_cv_path_GREP"
-if test -z "$GREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+  if test -z "$ac_cv_path_GREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
    { (exit 1); exit 1; }; }
-fi
-
+  fi
 else
   ac_cv_path_GREP=$GREP
 fi
 
-
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
  GREP="$ac_cv_path_GREP"
 
 
-{ echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
 if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
    then ac_cv_path_EGREP="$GREP -E"
    else
-     # Extract the first word of "egrep" to use in msg output
-if test -z "$EGREP"; then
-set dummy egrep; ac_prog_name=$2
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
+     if test -z "$EGREP"; then
   ac_path_EGREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_prog in egrep; do
-  for ac_exec_ext in '' $ac_executable_extensions; do
-    ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-    { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-    # Check for GNU ac_path_EGREP and select it if it is found.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
 case `"$ac_path_EGREP" --version 2>&1` in
 *GNU*)
   ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
 *)
   ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  $as_echo_n 0123456789 >"conftest.in"
   while :
   do
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    echo 'EGREP' >> "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
     "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     ac_count=`expr $ac_count + 1`
@@ -4216,33 +4332,24 @@ case `"$ac_path_EGREP" --version 2>&1` in
   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 esac
 
-
-    $ac_path_EGREP_found && break 3
+      $ac_path_EGREP_found && break 3
+    done
   done
 done
-
-done
 IFS=$as_save_IFS
-
-
-fi
-
-EGREP="$ac_cv_path_EGREP"
-if test -z "$EGREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+  if test -z "$ac_cv_path_EGREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
    { (exit 1); exit 1; }; }
-fi
-
+  fi
 else
   ac_cv_path_EGREP=$EGREP
 fi
 
-
    fi
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
  EGREP="$ac_cv_path_EGREP"
 
 
@@ -4257,8 +4364,8 @@ fi
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$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
@@ -4287,14 +4394,14 @@ echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
 else
-  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
 fi
 if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
   lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
@@ -4324,19 +4431,19 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  { echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $LD" >&5
+$as_echo "$LD" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
    { (exit 1); exit 1; }; }
-{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
 if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
 case `$LD -v 2>&1 </dev/null` in
@@ -4348,20 +4455,20 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
-{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
 if test "${lt_cv_ld_reload_flag+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_reload_flag='-r'
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
 reload_flag=$lt_cv_ld_reload_flag
 case $reload_flag in
 "" | " "*) ;;
@@ -4378,10 +4485,10 @@ case $host_os in
     ;;
 esac
 
-{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
-echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
+$as_echo_n "checking for BSD-compatible nm... " >&6; }
 if test "${lt_cv_path_NM+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$NM"; then
   # Let the user override the test.
@@ -4427,25 +4534,25 @@ else
   test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
 fi
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
-echo "${ECHO_T}$lt_cv_path_NM" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
 NM="$lt_cv_path_NM"
 
-{ echo "$as_me:$LINENO: checking whether ln -s works" >&5
-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
 LN_S=$as_ln_s
 if test "$LN_S" = "ln -s"; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
 fi
 
-{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
-echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
 if test "${lt_cv_deplibs_check_method+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_file_magic_cmd='$MAGIC_CMD'
 lt_cv_file_magic_test_file=
@@ -4462,7 +4569,7 @@ lt_cv_deplibs_check_method='unknown'
 # whether `pass_all' will *always* work, you probably want this one.
 
 case $host_os in
-aix4* | aix5*)
+aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -4628,8 +4735,8 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 esac
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -4663,7 +4770,7 @@ ia64-*-hpux*)
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
     case `/usr/bin/file conftest.$ac_objext` in
     *ELF-32*)
@@ -4678,11 +4785,11 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 4681 "configure"' > conftest.$ac_ext
+  echo '#line 4788 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
    if test "$lt_cv_prog_gnu_ld" = yes; then
     case `/usr/bin/file conftest.$ac_objext` in
@@ -4720,7 +4827,7 @@ s390*-*linux*|sparc*-*linux*)
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
     case `/usr/bin/file conftest.o` in
     *32-bit*)
@@ -4771,10 +4878,10 @@ s390*-*linux*|sparc*-*linux*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   SAVE_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -belf"
-  { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
 if test "${lt_cv_cc_needs_belf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -4803,26 +4910,30 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   lt_cv_cc_needs_belf=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	lt_cv_cc_needs_belf=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
      ac_ext=c
@@ -4832,8 +4943,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
     CFLAGS="$SAVE_CFLAGS"
@@ -4845,13 +4956,17 @@ sparc*-*solaris*)
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
       yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)    LD="${LD-ld} -64" ;;
+      *)
+        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
       esac
       ;;
     esac
@@ -4866,10 +4981,10 @@ need_locks="$enable_libtool_lock"
 
 
 
-{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
 if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -4896,20 +5011,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_header_stdc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_header_stdc=no
@@ -5001,37 +5117,40 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 ac_cv_header_stdc=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -5053,11 +5172,11 @@ fi
 for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
 		  inttypes.h stdint.h unistd.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5075,20 +5194,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   eval "$as_ac_Header=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_Header=no"
@@ -5096,12 +5216,15 @@ fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -5112,20 +5235,21 @@ done
 
 for ac_header in dlfcn.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 else
   # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -5141,32 +5265,33 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_header_compiler=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
 
 # Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -5180,69 +5305,73 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   ac_header_preproc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
 
 rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
   yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
     ac_header_preproc=yes
     ;;
   no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
 
     ;;
 esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -5263,10 +5392,10 @@ if test -z "$CXX"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CXX"; then
   ac_cv_prog_CXX="$CXX" # Let the user override the test.
@@ -5279,7 +5408,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5290,11 +5419,11 @@ fi
 fi
 CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
-  { echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5307,10 +5436,10 @@ if test -z "$CXX"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CXX"; then
   ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
@@ -5323,7 +5452,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CXX="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5334,11 +5463,11 @@ fi
 fi
 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
 if test -n "$ac_ct_CXX"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5350,12 +5479,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CXX=$ac_ct_CXX
@@ -5365,43 +5490,47 @@ fi
   fi
 fi
 # Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
+$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
 { (ac_try="$ac_compiler --version >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -v >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -V >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5427,20 +5556,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_compiler_gnu=no
@@ -5450,15 +5580,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; }
-GXX=`test $ac_compiler_gnu = yes && echo yes`
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
+else
+  GXX=
+fi
 ac_test_CXXFLAGS=${CXXFLAGS+set}
 ac_save_CXXFLAGS=$CXXFLAGS
-{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
 if test "${ac_cv_prog_cxx_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_save_cxx_werror_flag=$ac_cxx_werror_flag
    ac_cxx_werror_flag=yes
@@ -5485,20 +5619,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cxx_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	CXXFLAGS=""
@@ -5523,20 +5658,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cxx_werror_flag=$ac_save_cxx_werror_flag
@@ -5562,20 +5698,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cxx_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -5590,8 +5727,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_cxx_werror_flag=$ac_save_cxx_werror_flag
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
 if test "$ac_test_CXXFLAGS" = set; then
   CXXFLAGS=$ac_save_CXXFLAGS
 elif test $ac_cv_prog_cxx_g = yes; then
@@ -5615,10 +5752,10 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 depcc="$CXX"  am_compiler_list=
 
-{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
   # We make a subdir and do the tests there.  Otherwise we can end up
@@ -5706,8 +5843,8 @@ else
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
 
  if
@@ -5731,11 +5868,11 @@ ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
-echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
 if test -z "$CXXCPP"; then
   if test "${ac_cv_prog_CXXCPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
       # Double quotes because CXXCPP needs to be expanded
     for CXXCPP in "$CXX -E" "/lib/cpp"
@@ -5767,20 +5904,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Broken: fails on valid input.
@@ -5804,13 +5942,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
@@ -5818,7 +5957,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   # Broken: success on invalid input.
 continue
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Passes both tests.
@@ -5843,8 +5982,8 @@ fi
 else
   ac_cv_prog_CXXCPP=$CXXCPP
 fi
-{ echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$CXXCPP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $CXXCPP" >&5
+$as_echo "$CXXCPP" >&6; }
 ac_preproc_ok=false
 for ac_cxx_preproc_warn_flag in '' yes
 do
@@ -5872,20 +6011,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Broken: fails on valid input.
@@ -5909,13 +6049,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
@@ -5923,7 +6064,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   # Broken: success on invalid input.
 continue
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Passes both tests.
@@ -5939,11 +6080,13 @@ rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
 See \`config.log' for more details." >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+$as_echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 ac_ext=cpp
@@ -5964,10 +6107,10 @@ if test -n "$ac_tool_prefix"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$F77"; then
   ac_cv_prog_F77="$F77" # Let the user override the test.
@@ -5980,7 +6123,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5991,11 +6134,11 @@ fi
 fi
 F77=$ac_cv_prog_F77
 if test -n "$F77"; then
-  { echo "$as_me:$LINENO: result: $F77" >&5
-echo "${ECHO_T}$F77" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $F77" >&5
+$as_echo "$F77" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -6008,10 +6151,10 @@ if test -z "$F77"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_F77"; then
   ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
@@ -6024,7 +6167,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_F77="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6035,11 +6178,11 @@ fi
 fi
 ac_ct_F77=$ac_cv_prog_ac_ct_F77
 if test -n "$ac_ct_F77"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
-echo "${ECHO_T}$ac_ct_F77" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
+$as_echo "$ac_ct_F77" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -6051,12 +6194,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     F77=$ac_ct_F77
@@ -6065,37 +6204,41 @@ fi
 
 
 # Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
+$as_echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
 { (ac_try="$ac_compiler --version >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -v >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -V >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 rm -f a.out
 
@@ -6103,10 +6246,10 @@ rm -f a.out
 # input file.  (Note that this only needs to work for GNU compilers.)
 ac_save_ext=$ac_ext
 ac_ext=F
-{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
+$as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; }
 if test "${ac_cv_f77_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
       program main
@@ -6122,20 +6265,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_f77_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_compiler_gnu=no
@@ -6145,16 +6289,16 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_f77_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
+$as_echo "$ac_cv_f77_compiler_gnu" >&6; }
 ac_ext=$ac_save_ext
 ac_test_FFLAGS=${FFLAGS+set}
 ac_save_FFLAGS=$FFLAGS
 FFLAGS=
-{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
-echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
+$as_echo_n "checking whether $F77 accepts -g... " >&6; }
 if test "${ac_cv_prog_f77_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   FFLAGS=-g
 cat >conftest.$ac_ext <<_ACEOF
@@ -6168,20 +6312,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_f77_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_f77_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_prog_f77_g=no
@@ -6190,8 +6335,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
-echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
+$as_echo "$ac_cv_prog_f77_g" >&6; }
 if test "$ac_test_FFLAGS" = set; then
   FFLAGS=$ac_save_FFLAGS
 elif test $ac_cv_prog_f77_g = yes; then
@@ -6208,7 +6353,11 @@ else
   fi
 fi
 
-G77=`test $ac_compiler_gnu = yes && echo yes`
+if test $ac_compiler_gnu = yes; then
+  G77=yes
+else
+  G77=
+fi
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -6218,12 +6367,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
 # find the maximum length of command line arguments
-{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
 if test "${lt_cv_sys_max_cmd_len+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
     i=0
   teststring="ABCD"
@@ -6332,11 +6480,11 @@ else
 fi
 
 if test -n $lt_cv_sys_max_cmd_len ; then
-  { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
 else
-  { echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6; }
+  { $as_echo "$as_me:$LINENO: result: none" >&5
+$as_echo "none" >&6; }
 fi
 
 
@@ -6344,10 +6492,10 @@ fi
 
 
 # Check for command to grab the raw symbol name followed by C symbol from nm.
-{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
 # These are sane defaults that work on at least a few old systems.
@@ -6452,14 +6600,14 @@ EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
     if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
   (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
@@ -6514,7 +6662,7 @@ EOF
 	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && test -s conftest${ac_exeext}; then
 	    pipe_works=yes
 	  fi
@@ -6533,7 +6681,7 @@ EOF
     echo "$progname: failed program was:" >&5
     cat conftest.$ac_ext >&5
   fi
-  rm -f conftest* conftst*
+  rm -rf conftest* conftst*
 
   # Do not use the global_symbol_pipe unless it works.
   if test "$pipe_works" = yes; then
@@ -6549,17 +6697,17 @@ 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
-  { echo "$as_me:$LINENO: result: failed" >&5
-echo "${ECHO_T}failed" >&6; }
+  { $as_echo "$as_me:$LINENO: result: failed" >&5
+$as_echo "failed" >&6; }
 else
-  { echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6; }
+  { $as_echo "$as_me:$LINENO: result: ok" >&5
+$as_echo "ok" >&6; }
 fi
 
-{ echo "$as_me:$LINENO: checking for objdir" >&5
-echo $ECHO_N "checking for objdir... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
 if test "${lt_cv_objdir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   rm -f .libs 2>/dev/null
 mkdir .libs 2>/dev/null
@@ -6571,8 +6719,8 @@ else
 fi
 rmdir .libs 2>/dev/null
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
-echo "${ECHO_T}$lt_cv_objdir" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
 objdir=$lt_cv_objdir
 
 
@@ -6623,10 +6771,10 @@ with_gnu_ld="$lt_cv_prog_gnu_ld"
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$AR"; then
   ac_cv_prog_AR="$AR" # Let the user override the test.
@@ -6639,7 +6787,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AR="${ac_tool_prefix}ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6650,11 +6798,11 @@ fi
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  { echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $AR" >&5
+$as_echo "$AR" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -6663,10 +6811,10 @@ if test -z "$ac_cv_prog_AR"; then
   ac_ct_AR=$AR
   # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
@@ -6679,7 +6827,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AR="ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6690,11 +6838,11 @@ fi
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_AR" = x; then
@@ -6702,12 +6850,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     AR=$ac_ct_AR
@@ -6719,10 +6863,10 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
@@ -6735,7 +6879,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6746,11 +6890,11 @@ fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  { echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -6759,10 +6903,10 @@ if test -z "$ac_cv_prog_RANLIB"; then
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
   ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
@@ -6775,7 +6919,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6786,11 +6930,11 @@ fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_RANLIB" = x; then
@@ -6798,12 +6942,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     RANLIB=$ac_ct_RANLIB
@@ -6815,10 +6955,10 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
   ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
@@ -6831,7 +6971,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6842,11 +6982,11 @@ fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -6855,10 +6995,10 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
   ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
@@ -6871,7 +7011,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6882,11 +7022,11 @@ fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_STRIP" = x; then
@@ -6894,12 +7034,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     STRIP=$ac_ct_STRIP
@@ -6962,10 +7098,10 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 case $deplibs_check_method in
 file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
@@ -7015,19 +7151,19 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
-    { echo "$as_me:$LINENO: checking for file" >&5
-echo $ECHO_N "checking for file... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
@@ -7077,11 +7213,11 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   else
@@ -7093,6 +7229,314 @@ fi
   ;;
 esac
 
+
+  case $host_os in
+    rhapsody* | darwin*)
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DSYMUTIL"; then
+  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+  { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+  ac_ct_DSYMUTIL=$DSYMUTIL
+  # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DSYMUTIL"; then
+  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DSYMUTIL" = x; then
+    DSYMUTIL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DSYMUTIL=$ac_ct_DSYMUTIL
+  fi
+else
+  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NMEDIT+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NMEDIT"; then
+  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+  { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+  ac_ct_NMEDIT=$NMEDIT
+  # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_NMEDIT"; then
+  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_NMEDIT="nmedit"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_NMEDIT" = x; then
+    NMEDIT=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    NMEDIT=$ac_ct_NMEDIT
+  fi
+else
+  NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+
+    { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+   # By default we will add the -single_module flag. You can override
+   # by either setting the environment variable LT_MULTI_MODULE
+   # non-empty at configure time, or by adding -multi_module to the
+   # link flags.
+   echo "int foo(void){return 1;}" > conftest.c
+   $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+     -dynamiclib ${wl}-single_module conftest.c
+   if test -f libconftest.dylib; then
+     lt_cv_apple_cc_single_mod=yes
+     rm -rf libconftest.dylib*
+   fi
+   rm conftest.c
+      fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  lt_cv_ld_exported_symbols_list=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	lt_cv_ld_exported_symbols_list=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+    case $host_os in
+    rhapsody* | darwin1.[0123])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*)
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+   10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+   10.[012]*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+   10.*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil="~$DSYMUTIL \$lib || :"
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+
+
 enable_dlopen=no
 enable_win32_dll=no
 
@@ -7158,7 +7602,7 @@ 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 conftest*
+$rm -r conftest*
 
 
 
@@ -7168,10 +7612,10 @@ if test "$GCC" = yes; then
   lt_prog_compiler_no_builtin_flag=' -fno-builtin'
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
   ac_outfile=conftest.$ac_objext
@@ -7186,11 +7630,11 @@ else
    -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:7189: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7633: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7193: \$? = $ac_status" >&5
+   echo "$as_me:7637: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -7203,8 +7647,8 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
     lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
@@ -7218,8 +7662,8 @@ lt_prog_compiler_wl=
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl='-Wl,'
@@ -7450,20 +7894,20 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+$as_echo "$lt_prog_compiler_pic" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic"; then
 
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_pic_works=no
+  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"
@@ -7476,27 +7920,27 @@ else
    -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:7479: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:7923: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7483: \$? = $ac_status" >&5
+   echo "$as_me:7927: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works=yes
+       lt_cv_prog_compiler_pic_works=yes
      fi
    fi
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
 
-if test x"$lt_prog_compiler_pic_works" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
     case $lt_prog_compiler_pic in
      "" | " "*) ;;
      *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
@@ -7521,12 +7965,12 @@ esac
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_static_works=no
+  lt_cv_prog_compiler_static_works=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -7539,30 +7983,30 @@ else
        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works=yes
+         lt_cv_prog_compiler_static_works=yes
        fi
      else
-       lt_prog_compiler_static_works=yes
+       lt_cv_prog_compiler_static_works=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
 
-if test x"$lt_prog_compiler_static_works" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
     :
 else
     lt_prog_compiler_static=
 fi
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
 if test "${lt_cv_prog_compiler_c_o+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
    $rm -r conftest 2>/dev/null
@@ -7580,11 +8024,11 @@ else
    -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:7583: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8027: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:7587: \$? = $ac_status" >&5
+   echo "$as_me:8031: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -7606,34 +8050,34 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
   need_locks=no
 fi
 
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
   allow_undefined_flag=
@@ -7664,12 +8108,13 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
   # 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_"
+  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
   # the symbol is explicitly referenced.  Since portable code cannot
   # rely on this symbol name, it's probably fine to never include it in
   # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
   extract_expsyms_cmds=
   # Just being paranoid about ensuring that cc_basename is set.
   for cc_temp in $compiler""; do
@@ -7728,7 +8173,7 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
     # See if GNU ld supports shared libraries.
     case $host_os in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
 	ld_shlibs=no
@@ -7947,7 +8392,7 @@ _LT_EOF
       fi
       ;;
 
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
@@ -7967,7 +8412,7 @@ _LT_EOF
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
 	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	  for ld_flag in $LDFLAGS; do
   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
   	    aix_use_runtimelinking=yes
@@ -8062,18 +8507,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -8088,12 +8536,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -8128,18 +8577,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -8154,12 +8606,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -8239,11 +8692,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       link_all_deplibs=yes
     if test "$GCC" = yes ; then
     	output_verbose_link_cmd='echo'
-        archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        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
       case $cc_basename in
         xlc*)
@@ -8612,8 +9064,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5
-echo "${ECHO_T}$ld_shlibs" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
 test "$ld_shlibs" = no && can_build_shared=no
 
 #
@@ -8633,15 +9085,15 @@ x|xyes)
       # 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $rm conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } 2>conftest.err; then
         soname=conftest
         lib=conftest
@@ -8659,7 +9111,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
   (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
         then
 	  archive_cmds_need_lc=no
@@ -8671,16 +9123,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6; }
+      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+$as_echo "$archive_cmds_need_lc" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -8763,7 +9215,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -9283,17 +9735,32 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" || \
    test -n "$runpath_var" || \
@@ -9317,8 +9784,8 @@ else
   # directories.
   hardcode_action=unsupported
 fi
-{ echo "$as_me:$LINENO: result: $hardcode_action" >&5
-echo "${ECHO_T}$hardcode_action" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
 
 if test "$hardcode_action" = relink; then
   # Fast installation is not supported
@@ -9331,13 +9798,13 @@ fi
 
 striplib=
 old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 else
 # FIXME - insert some real tests, host_os isn't really good enough
   case $host_os in
@@ -9345,16 +9812,16 @@ else
        if test -n "$STRIP" ; then
          striplib="$STRIP -x"
          old_striplib="$STRIP -S"
-         { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+         { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
        else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
        ;;
    *)
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
     ;;
   esac
 fi
@@ -9386,10 +9853,10 @@ else
 
   darwin*)
   # if libdl is installed we need to link against it
-    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
 if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
@@ -9421,33 +9888,37 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_dl_dlopen=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_dl_dlopen=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
 
@@ -9460,10 +9931,10 @@ fi
    ;;
 
   *)
-    { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for shl_load" >&5
+$as_echo_n "checking for shl_load... " >&6; }
 if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -9516,38 +9987,42 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_func_shl_load=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_func_shl_load=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+$as_echo "$ac_cv_func_shl_load" >&6; }
+if test "x$ac_cv_func_shl_load" = x""yes; then
   lt_cv_dlopen="shl_load"
 else
-  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
 if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
@@ -9579,39 +10054,43 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_dld_shl_load=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_dld_shl_load=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
-  { echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for dlopen" >&5
+$as_echo_n "checking for dlopen... " >&6; }
 if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -9664,38 +10143,42 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_func_dlopen=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_func_dlopen=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+$as_echo "$ac_cv_func_dlopen" >&6; }
+if test "x$ac_cv_func_dlopen" = x""yes; then
   lt_cv_dlopen="dlopen"
 else
-  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
 if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
@@ -9727,39 +10210,43 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_dl_dlopen=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_dl_dlopen=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
-  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
 if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsvld  $LIBS"
@@ -9791,39 +10278,43 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_svld_dlopen=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_svld_dlopen=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
-  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
 if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
@@ -9855,34 +10346,38 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_dld_dld_link=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_dld_dld_link=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
 
 
@@ -9920,10 +10415,10 @@ fi
     save_LIBS="$LIBS"
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
-    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
 if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   	  if test "$cross_compiling" = yes; then :
   lt_cv_dlopen_self=cross
@@ -9931,7 +10426,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 9934 "configure"
+#line 10429 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -9997,7 +10492,7 @@ EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
@@ -10015,15 +10510,15 @@ rm -fr conftest*
 
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
 
     if test "x$lt_cv_dlopen_self" = xyes; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
+      { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
 if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   	  if test "$cross_compiling" = yes; then :
   lt_cv_dlopen_self_static=cross
@@ -10031,7 +10526,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 10034 "configure"
+#line 10529 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -10097,7 +10592,7 @@ EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
@@ -10115,8 +10610,8 @@ rm -fr conftest*
 
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
     fi
 
     CPPFLAGS="$save_CPPFLAGS"
@@ -10138,13 +10633,13 @@ fi
 
 
 # Report which library types will actually be built
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
 
-{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
 test "$can_build_shared" = "no" && enable_shared=no
 
 # On AIX, shared libraries and static libraries use the same namespace, and
@@ -10158,21 +10653,21 @@ aix3*)
   fi
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
     test "$enable_shared" = yes && enable_static=no
   fi
     ;;
 esac
-{ echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
 
-{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$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
-{ echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
 
 # The else clause should only fire when bootstrapping the
 # libtool distribution, otherwise you forgot to ship ltmain.sh
@@ -10214,6 +10709,7 @@ if test -f "$ltmain"; then
     predeps \
     postdeps \
     compiler_lib_search_path \
+    compiler_lib_search_dirs \
     archive_cmds \
     archive_expsym_cmds \
     postinstall_cmds \
@@ -10264,8 +10760,8 @@ if test -f "$ltmain"; then
 cfgfile="${ofile}T"
   trap "$rm \"$cfgfile\"; exit 1" 1 2 15
   $rm -f "$cfgfile"
-  { echo "$as_me:$LINENO: creating $ofile" >&5
-echo "$as_me: creating $ofile" >&6;}
+  { $as_echo "$as_me:$LINENO: creating $ofile" >&5
+$as_echo "$as_me: creating $ofile" >&6;}
 
   cat <<__EOF__ >> "$cfgfile"
 #! $SHELL
@@ -10274,7 +10770,7 @@ echo "$as_me: creating $ofile" >&6;}
 # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 # Free Software Foundation, Inc.
 #
 # This file is part of GNU Libtool:
@@ -10510,6 +11006,10 @@ predeps=$lt_predeps
 # shared library.
 postdeps=$lt_postdeps
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path
@@ -10673,18 +11173,18 @@ fi
 
 if test -f "$ltmain" && test -n "$tagnames"; then
   if test ! -f "${ofile}"; then
-    { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
+$as_echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
   fi
 
   if test -z "$LTCC"; then
     eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
     if test -z "$LTCC"; then
-      { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
+      { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
+$as_echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
     else
-      { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
-echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
+      { $as_echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
+$as_echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
     fi
   fi
   if test -z "$LTCFLAGS"; then
@@ -10701,16 +11201,16 @@ echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
     # Check whether tagname contains only valid characters
     case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
     "") ;;
-    *)  { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
-echo "$as_me: error: invalid tag name: $tagname" >&2;}
+    *)  { { $as_echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
+$as_echo "$as_me: error: invalid tag name: $tagname" >&2;}
    { (exit 1); exit 1; }; }
 	;;
     esac
 
     if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
     then
-      { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
-echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
+      { { $as_echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
+$as_echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
    { (exit 1); exit 1; }; }
     fi
 
@@ -10758,6 +11258,7 @@ postdep_objects_CXX=
 predeps_CXX=
 postdeps_CXX=
 compiler_lib_search_path_CXX=
+compiler_lib_search_dirs_CXX=
 
 # Source file extension for C++ test sources.
 ac_ext=cpp
@@ -10795,7 +11296,7 @@ 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 conftest*
+$rm -r conftest*
 
 
 # Allow CC to be a program name with arguments.
@@ -10852,8 +11353,8 @@ fi
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$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
@@ -10882,14 +11383,14 @@ echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
 else
-  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
 fi
 if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
   lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
@@ -10919,19 +11420,19 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  { echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $LD" >&5
+$as_echo "$LD" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
    { (exit 1); exit 1; }; }
-{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
 if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
 case `$LD -v 2>&1 </dev/null` in
@@ -10943,8 +11444,8 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
@@ -10994,15 +11495,15 @@ else
 fi
 
 # PORTME: fill in a description of your system's C++ link characteristics
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 ld_shlibs_CXX=yes
 case $host_os in
   aix3*)
     # FIXME: insert proper C++ library support
     ld_shlibs_CXX=no
     ;;
-  aix4* | aix5*)
+  aix[4-9]*)
     if test "$host_cpu" = ia64; then
       # On IA64, the linker does run time linking by default, so we don't
       # have to do anything special.
@@ -11015,7 +11516,7 @@ case $host_os in
       # Test if we are trying to use run time linking or normal
       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
       # need to do runtime linking.
-      case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+      case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	for ld_flag in $LDFLAGS; do
 	  case $ld_flag in
 	  *-brtl*)
@@ -11112,18 +11613,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -11138,12 +11642,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -11179,18 +11684,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -11205,12 +11713,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -11273,51 +11782,23 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     fi
   ;;
       darwin* | rhapsody*)
-        case $host_os in
-        rhapsody* | darwin1.[012])
-         allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[012])
-               allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-        esac
       archive_cmds_need_lc_CXX=no
       hardcode_direct_CXX=no
       hardcode_automatic_CXX=yes
       hardcode_shlibpath_var_CXX=unsupported
       whole_archive_flag_spec_CXX=''
       link_all_deplibs_CXX=yes
-
-    if test "$GXX" = yes ; then
-      lt_int_apple_cc_single_mod=no
+      allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+      if test "$GXX" = yes ; then
       output_verbose_link_cmd='echo'
-      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
-       lt_int_apple_cc_single_mod=yes
+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+      archive_expsym_cmds_CXX="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_CXX="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}"
+      if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+        archive_cmds_CXX="\$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}"
+        archive_expsym_cmds_CXX="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
-      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-       archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      else
-          archive_cmds_CXX='$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'
-        fi
-        module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          else
-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          fi
-            module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
       else
       case $cc_basename in
         xlc*)
@@ -11568,7 +12049,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
 	whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
 	;;
-      pgCC*)
+      pgCC* | pgcpp*)
         # Portland Group C++ compiler
 	archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
   	archive_expsym_cmds_CXX='$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'
@@ -11968,14 +12449,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     ld_shlibs_CXX=no
     ;;
 esac
-{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
 test "$ld_shlibs_CXX" = no && can_build_shared=no
 
 GCC_CXX="$GXX"
 LD_CXX="$LD"
 
-
 cat > conftest.$ac_ext <<EOF
 class Foo
 {
@@ -11989,7 +12469,7 @@ EOF
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   # Parse the compiler output and extract the necessary
   # objects, libraries and library flags.
@@ -12077,6 +12557,11 @@ fi
 
 $rm -f confest.$objext
 
+compiler_lib_search_dirs_CXX=
+if test -n "$compiler_lib_search_path_CXX"; then
+  compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
 # PORTME: override above test on systems where it is broken
 case $host_os in
 interix[3-9]*)
@@ -12132,7 +12617,6 @@ solaris*)
   ;;
 esac
 
-
 case " $postdeps_CXX " in
 *" -lc "*) archive_cmds_need_lc_CXX=no ;;
 esac
@@ -12141,8 +12625,8 @@ lt_prog_compiler_wl_CXX=
 lt_prog_compiler_pic_CXX=
 lt_prog_compiler_static_CXX=
 
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
@@ -12208,7 +12692,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     esac
   else
     case $host_os in
-      aix4* | aix5*)
+      aix[4-9]*)
 	# All AIX code is PIC.
 	if test "$host_cpu" = ia64; then
 	  # AIX 5 now supports IA64 processor
@@ -12304,7 +12788,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
 	    lt_prog_compiler_pic_CXX='-KPIC'
 	    lt_prog_compiler_static_CXX='-static'
 	    ;;
-	  pgCC*)
+	  pgCC* | pgcpp*)
 	    # Portland Group C++ compiler.
 	    lt_prog_compiler_wl_CXX='-Wl,'
 	    lt_prog_compiler_pic_CXX='-fpic'
@@ -12425,20 +12909,20 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic_CXX"; then
 
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_pic_works_CXX=no
+  lt_cv_prog_compiler_pic_works_CXX=no
   ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
@@ -12451,27 +12935,27 @@ else
    -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:12454: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:12938: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:12458: \$? = $ac_status" >&5
+   echo "$as_me:12942: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works_CXX=yes
+       lt_cv_prog_compiler_pic_works_CXX=yes
      fi
    fi
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
 
-if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
     case $lt_prog_compiler_pic_CXX in
      "" | " "*) ;;
      *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
@@ -12496,12 +12980,12 @@ esac
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_static_works_CXX=no
+  lt_cv_prog_compiler_static_works_CXX=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -12514,30 +12998,30 @@ else
        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works_CXX=yes
+         lt_cv_prog_compiler_static_works_CXX=yes
        fi
      else
-       lt_prog_compiler_static_works_CXX=yes
+       lt_cv_prog_compiler_static_works_CXX=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
 
-if test x"$lt_prog_compiler_static_works_CXX" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
     :
 else
     lt_prog_compiler_static_CXX=
 fi
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_CXX=no
    $rm -r conftest 2>/dev/null
@@ -12555,11 +13039,11 @@ else
    -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:12558: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13042: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:12562: \$? = $ac_status" >&5
+   echo "$as_me:13046: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -12581,38 +13065,38 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
   need_locks=no
 fi
 
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   case $host_os in
-  aix4* | aix5*)
+  aix[4-9]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
     if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
@@ -12631,9 +13115,10 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
     export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
   esac
+  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
 
-{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
 test "$ld_shlibs_CXX" = no && can_build_shared=no
 
 #
@@ -12653,15 +13138,15 @@ x|xyes)
       # 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $rm conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } 2>conftest.err; then
         soname=conftest
         lib=conftest
@@ -12679,7 +13164,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
   (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
         then
 	  archive_cmds_need_lc_CXX=no
@@ -12691,16 +13176,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; }
+      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+$as_echo "$archive_cmds_need_lc_CXX" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -12732,7 +13217,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -13251,17 +13736,32 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action_CXX=
 if test -n "$hardcode_libdir_flag_spec_CXX" || \
    test -n "$runpath_var_CXX" || \
@@ -13285,8 +13785,8 @@ else
   # directories.
   hardcode_action_CXX=unsupported
 fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
-echo "${ECHO_T}$hardcode_action_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+$as_echo "$hardcode_action_CXX" >&6; }
 
 if test "$hardcode_action_CXX" = relink; then
   # Fast installation is not supported
@@ -13338,6 +13838,7 @@ if test -f "$ltmain"; then
     predeps_CXX \
     postdeps_CXX \
     compiler_lib_search_path_CXX \
+    compiler_lib_search_dirs_CXX \
     archive_cmds_CXX \
     archive_expsym_cmds_CXX \
     postinstall_cmds_CXX \
@@ -13586,6 +14087,10 @@ predeps=$lt_predeps_CXX
 # shared library.
 postdeps=$lt_postdeps_CXX
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
@@ -13800,7 +14305,7 @@ 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 conftest*
+$rm -r conftest*
 
 
 # Allow CC to be a program name with arguments.
@@ -13819,13 +14324,13 @@ done
 cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
 
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
 
-{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
 test "$can_build_shared" = "no" && enable_shared=no
 
 # On AIX, shared libraries and static libraries use the same namespace, and
@@ -13838,21 +14343,21 @@ aix3*)
     postinstall_cmds='$RANLIB $lib'
   fi
   ;;
-aix4* | aix5*)
+aix[4-9]*)
   if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
     test "$enable_shared" = yes && enable_static=no
   fi
   ;;
 esac
-{ echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
 
-{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$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
-{ echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
 
 GCC_F77="$G77"
 LD_F77="$LD"
@@ -13861,8 +14366,8 @@ lt_prog_compiler_wl_F77=
 lt_prog_compiler_pic_F77=
 lt_prog_compiler_static_F77=
 
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl_F77='-Wl,'
@@ -14093,20 +14598,20 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
+$as_echo "$lt_prog_compiler_pic_F77" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic_F77"; then
 
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_F77+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_pic_works_F77=no
+  lt_cv_prog_compiler_pic_works_F77=no
   ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic_F77"
@@ -14119,27 +14624,27 @@ else
    -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:14122: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14627: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14126: \$? = $ac_status" >&5
+   echo "$as_me:14631: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works_F77=yes
+       lt_cv_prog_compiler_pic_works_F77=yes
      fi
    fi
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_F77" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_F77" >&6; }
 
-if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works_F77" = xyes; then
     case $lt_prog_compiler_pic_F77 in
      "" | " "*) ;;
      *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
@@ -14164,12 +14669,12 @@ esac
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_static_works_F77=no
+  lt_cv_prog_compiler_static_works_F77=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -14182,30 +14687,30 @@ else
        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works_F77=yes
+         lt_cv_prog_compiler_static_works_F77=yes
        fi
      else
-       lt_prog_compiler_static_works_F77=yes
+       lt_cv_prog_compiler_static_works_F77=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_F77" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_F77" >&6; }
 
-if test x"$lt_prog_compiler_static_works_F77" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_F77" = xyes; then
     :
 else
     lt_prog_compiler_static_F77=
 fi
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_F77=no
    $rm -r conftest 2>/dev/null
@@ -14223,11 +14728,11 @@ else
    -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:14226: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:14731: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14230: \$? = $ac_status" >&5
+   echo "$as_me:14735: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -14249,34 +14754,34 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_F77" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
   need_locks=no
 fi
 
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
   allow_undefined_flag_F77=
@@ -14307,12 +14812,13 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
   # 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_F77="_GLOBAL_OFFSET_TABLE_"
+  exclude_expsyms_F77='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
   # the symbol is explicitly referenced.  Since portable code cannot
   # rely on this symbol name, it's probably fine to never include it in
   # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
   extract_expsyms_cmds=
   # Just being paranoid about ensuring that cc_basename is set.
   for cc_temp in $compiler""; do
@@ -14371,7 +14877,7 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
     # See if GNU ld supports shared libraries.
     case $host_os in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
 	ld_shlibs_F77=no
@@ -14590,7 +15096,7 @@ _LT_EOF
       fi
       ;;
 
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
@@ -14610,7 +15116,7 @@ _LT_EOF
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
 	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	  for ld_flag in $LDFLAGS; do
   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
   	    aix_use_runtimelinking=yes
@@ -14695,18 +15201,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_f77_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -14721,12 +15230,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -14751,18 +15261,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_f77_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -14777,12 +15290,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -14862,11 +15376,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       link_all_deplibs_F77=yes
     if test "$GCC" = yes ; then
     	output_verbose_link_cmd='echo'
-        archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+        module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+        archive_expsym_cmds_F77="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_F77="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
       case $cc_basename in
         xlc*)
@@ -15235,8 +15748,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
-echo "${ECHO_T}$ld_shlibs_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
+$as_echo "$ld_shlibs_F77" >&6; }
 test "$ld_shlibs_F77" = no && can_build_shared=no
 
 #
@@ -15256,15 +15769,15 @@ x|xyes)
       # 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $rm conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } 2>conftest.err; then
         soname=conftest
         lib=conftest
@@ -15282,7 +15795,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
   (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
         then
 	  archive_cmds_need_lc_F77=no
@@ -15294,16 +15807,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; }
+      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
+$as_echo "$archive_cmds_need_lc_F77" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -15335,7 +15848,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -15854,17 +16367,32 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action_F77=
 if test -n "$hardcode_libdir_flag_spec_F77" || \
    test -n "$runpath_var_F77" || \
@@ -15888,8 +16416,8 @@ else
   # directories.
   hardcode_action_F77=unsupported
 fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
-echo "${ECHO_T}$hardcode_action_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
+$as_echo "$hardcode_action_F77" >&6; }
 
 if test "$hardcode_action_F77" = relink; then
   # Fast installation is not supported
@@ -15941,6 +16469,7 @@ if test -f "$ltmain"; then
     predeps_F77 \
     postdeps_F77 \
     compiler_lib_search_path_F77 \
+    compiler_lib_search_dirs_F77 \
     archive_cmds_F77 \
     archive_expsym_cmds_F77 \
     postinstall_cmds_F77 \
@@ -16189,6 +16718,10 @@ predeps=$lt_predeps_F77
 # shared library.
 postdeps=$lt_postdeps_F77
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_F77
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path_F77
@@ -16363,7 +16896,7 @@ 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 conftest*
+$rm -r conftest*
 
 
 # Allow CC to be a program name with arguments.
@@ -16394,10 +16927,10 @@ if test "$GCC" = yes; then
   lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
   ac_outfile=conftest.$ac_objext
@@ -16412,11 +16945,11 @@ else
    -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:16415: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:16948: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16419: \$? = $ac_status" >&5
+   echo "$as_me:16952: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -16429,8 +16962,8 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
     lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
@@ -16444,8 +16977,8 @@ lt_prog_compiler_wl_GCJ=
 lt_prog_compiler_pic_GCJ=
 lt_prog_compiler_static_GCJ=
 
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl_GCJ='-Wl,'
@@ -16476,7 +17009,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
       # built for inclusion in a dll (and should export symbols for example).
       # Although the cygwin gcc ignores -fPIC, still need this for old-style
       # (--disable-auto-import) libraries
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+
       ;;
 
     darwin* | rhapsody*)
@@ -16546,7 +17079,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+
       ;;
 
     hpux9* | hpux10* | hpux11*)
@@ -16676,20 +17209,20 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
+$as_echo "$lt_prog_compiler_pic_GCJ" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic_GCJ"; then
 
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_GCJ+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_pic_works_GCJ=no
+  lt_cv_prog_compiler_pic_works_GCJ=no
   ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
@@ -16702,27 +17235,27 @@ else
    -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:16705: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17238: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16709: \$? = $ac_status" >&5
+   echo "$as_me:17242: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works_GCJ=yes
+       lt_cv_prog_compiler_pic_works_GCJ=yes
      fi
    fi
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_GCJ" >&6; }
 
-if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then
     case $lt_prog_compiler_pic_GCJ in
      "" | " "*) ;;
      *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
@@ -16747,12 +17280,12 @@ esac
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_GCJ+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_static_works_GCJ=no
+  lt_cv_prog_compiler_static_works_GCJ=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -16765,30 +17298,30 @@ else
        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works_GCJ=yes
+         lt_cv_prog_compiler_static_works_GCJ=yes
        fi
      else
-       lt_prog_compiler_static_works_GCJ=yes
+       lt_cv_prog_compiler_static_works_GCJ=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_GCJ" >&6; }
 
-if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then
     :
 else
     lt_prog_compiler_static_GCJ=
 fi
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_GCJ=no
    $rm -r conftest 2>/dev/null
@@ -16806,11 +17339,11 @@ else
    -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:16809: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17342: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:16813: \$? = $ac_status" >&5
+   echo "$as_me:17346: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -16832,34 +17365,34 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_GCJ" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
   need_locks=no
 fi
 
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
   allow_undefined_flag_GCJ=
@@ -16890,12 +17423,13 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
   # 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_GCJ="_GLOBAL_OFFSET_TABLE_"
+  exclude_expsyms_GCJ='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
   # the symbol is explicitly referenced.  Since portable code cannot
   # rely on this symbol name, it's probably fine to never include it in
   # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
   extract_expsyms_cmds=
   # Just being paranoid about ensuring that cc_basename is set.
   for cc_temp in $compiler""; do
@@ -16954,7 +17488,7 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
     # See if GNU ld supports shared libraries.
     case $host_os in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
 	ld_shlibs_GCJ=no
@@ -17173,7 +17707,7 @@ _LT_EOF
       fi
       ;;
 
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
@@ -17193,7 +17727,7 @@ _LT_EOF
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
 	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	  for ld_flag in $LDFLAGS; do
   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
   	    aix_use_runtimelinking=yes
@@ -17288,18 +17822,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -17314,12 +17851,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -17354,18 +17892,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -17380,12 +17921,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -17465,11 +18007,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       link_all_deplibs_GCJ=yes
     if test "$GCC" = yes ; then
     	output_verbose_link_cmd='echo'
-        archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        archive_cmds_GCJ="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+        module_cmds_GCJ="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+        archive_expsym_cmds_GCJ="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_GCJ="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
       case $cc_basename in
         xlc*)
@@ -17838,8 +18379,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
-echo "${ECHO_T}$ld_shlibs_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
+$as_echo "$ld_shlibs_GCJ" >&6; }
 test "$ld_shlibs_GCJ" = no && can_build_shared=no
 
 #
@@ -17859,15 +18400,15 @@ x|xyes)
       # 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $rm conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } 2>conftest.err; then
         soname=conftest
         lib=conftest
@@ -17885,7 +18426,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
   (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
         then
 	  archive_cmds_need_lc_GCJ=no
@@ -17897,16 +18438,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; }
+      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
+$as_echo "$archive_cmds_need_lc_GCJ" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -17938,7 +18479,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -18457,17 +18998,32 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action_GCJ=
 if test -n "$hardcode_libdir_flag_spec_GCJ" || \
    test -n "$runpath_var_GCJ" || \
@@ -18491,8 +19047,8 @@ else
   # directories.
   hardcode_action_GCJ=unsupported
 fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
-echo "${ECHO_T}$hardcode_action_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
+$as_echo "$hardcode_action_GCJ" >&6; }
 
 if test "$hardcode_action_GCJ" = relink; then
   # Fast installation is not supported
@@ -18544,6 +19100,7 @@ if test -f "$ltmain"; then
     predeps_GCJ \
     postdeps_GCJ \
     compiler_lib_search_path_GCJ \
+    compiler_lib_search_dirs_GCJ \
     archive_cmds_GCJ \
     archive_expsym_cmds_GCJ \
     postinstall_cmds_GCJ \
@@ -18792,6 +19349,10 @@ predeps=$lt_predeps_GCJ
 # shared library.
 postdeps=$lt_postdeps_GCJ
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
@@ -18965,7 +19526,7 @@ 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 conftest*
+$rm -r conftest*
 
 
 # Allow CC to be a program name with arguments.
@@ -19025,6 +19586,7 @@ if test -f "$ltmain"; then
     predeps_RC \
     postdeps_RC \
     compiler_lib_search_path_RC \
+    compiler_lib_search_dirs_RC \
     archive_cmds_RC \
     archive_expsym_cmds_RC \
     postinstall_cmds_RC \
@@ -19273,6 +19835,10 @@ predeps=$lt_predeps_RC
 # shared library.
 postdeps=$lt_postdeps_RC
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path_RC
@@ -19405,8 +19971,8 @@ CC="$lt_save_CC"
 	;;
 
       *)
-	{ { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
-echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
+	{ { $as_echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
+$as_echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
    { (exit 1); exit 1; }; }
 	;;
       esac
@@ -19425,8 +19991,8 @@ echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
     chmod +x "$ofile"
   else
     rm -f "${ofile}T"
-    { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
-echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
+    { { $as_echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
+$as_echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
    { (exit 1); exit 1; }; }
   fi
 fi
@@ -19466,10 +20032,10 @@ for ac_prog in gm4 m4
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_M4+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$M4"; then
   ac_cv_prog_M4="$M4" # Let the user override the test.
@@ -19482,7 +20048,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_M4="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -19493,11 +20059,11 @@ fi
 fi
 M4=$ac_cv_prog_M4
 if test -n "$M4"; then
-  { echo "$as_me:$LINENO: result: $M4" >&5
-echo "${ECHO_T}$M4" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $M4" >&5
+$as_echo "$M4" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -19507,18 +20073,18 @@ test -n "$M4" || M4="m4"
 
 
 if test "$M4" = "m4"; then
-  { echo "$as_me:$LINENO: checking whether m4 is GNU m4" >&5
-echo $ECHO_N "checking whether m4 is GNU m4... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether m4 is GNU m4" >&5
+$as_echo_n "checking whether m4 is GNU m4... " >&6; }
   if $M4 --version </dev/null 2>/dev/null | grep '^GNU m4 ' >/dev/null ; then
-    { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+    { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
   else
-    { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+    { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
     if test "$host_vendor" = "sun"; then
-      { { echo "$as_me:$LINENO: error: SUN m4 does not work for building gtkmm.
+      { { $as_echo "$as_me:$LINENO: error: SUN m4 does not work for building gtkmm.
 Please install GNU m4." >&5
-echo "$as_me: error: SUN m4 does not work for building gtkmm.
+$as_echo "$as_me: error: SUN m4 does not work for building gtkmm.
 Please install GNU m4." >&2;}
    { (exit 1); exit 1; }; }
     fi
@@ -19527,18 +20093,18 @@ fi
 
 
 
-{ echo "$as_me:$LINENO: checking whether make is GNU Make" >&5
-echo $ECHO_N "checking whether make is GNU Make... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether make is GNU Make" >&5
+$as_echo_n "checking whether make is GNU Make... " >&6; }
 if $ac_make --version 2>/dev/null | grep '^GNU Make ' >/dev/null ; then
-        { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+        { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-        { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+        { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
         if test "$host_vendor" = "sun" ; then
-           { { echo "$as_me:$LINENO: error: SUN make does not work for building gtkmm.
+           { { $as_echo "$as_me:$LINENO: error: SUN make does not work for building gtkmm.
 Please install GNU make." >&5
-echo "$as_me: error: SUN make does not work for building gtkmm.
+$as_echo "$as_me: error: SUN make does not work for building gtkmm.
 Please install GNU make." >&2;}
    { (exit 1); exit 1; }; }
         fi
@@ -19556,10 +20122,10 @@ if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then
 	if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args.
 set dummy ${ac_tool_prefix}pkg-config; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PKG_CONFIG+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   case $PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
@@ -19574,7 +20140,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -19586,11 +20152,11 @@ esac
 fi
 PKG_CONFIG=$ac_cv_path_PKG_CONFIG
 if test -n "$PKG_CONFIG"; then
-  { echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
-echo "${ECHO_T}$PKG_CONFIG" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5
+$as_echo "$PKG_CONFIG" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -19599,10 +20165,10 @@ if test -z "$ac_cv_path_PKG_CONFIG"; then
   ac_pt_PKG_CONFIG=$PKG_CONFIG
   # Extract the first word of "pkg-config", so it can be a program name with args.
 set dummy pkg-config; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   case $ac_pt_PKG_CONFIG in
   [\\/]* | ?:[\\/]*)
@@ -19617,7 +20183,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -19629,11 +20195,11 @@ esac
 fi
 ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG
 if test -n "$ac_pt_PKG_CONFIG"; then
-  { echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
-echo "${ECHO_T}$ac_pt_PKG_CONFIG" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5
+$as_echo "$ac_pt_PKG_CONFIG" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_pt_PKG_CONFIG" = x; then
@@ -19641,12 +20207,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     PKG_CONFIG=$ac_pt_PKG_CONFIG
@@ -19658,31 +20220,31 @@ fi
 fi
 if test -n "$PKG_CONFIG"; then
 	_pkg_min_version=0.9.0
-	{ echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
-echo $ECHO_N "checking pkg-config is at least version $_pkg_min_version... $ECHO_C" >&6; }
+	{ $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5
+$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; }
 	if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then
-		{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+		{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 	else
-		{ echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+		{ $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 		PKG_CONFIG=""
 	fi
 
 fi
 
 pkg_failed=no
-{ echo "$as_me:$LINENO: checking for GLIBMM" >&5
-echo $ECHO_N "checking for GLIBMM... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for GLIBMM" >&5
+$as_echo_n "checking for GLIBMM... " >&6; }
 
 if test -n "$GLIBMM_CFLAGS"; then
     pkg_cv_GLIBMM_CFLAGS="$GLIBMM_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \${gtkmm_min_glib_version} gobject-2.0 >= \${gtkmm_min_glib_version} gmodule-2.0 >= \${gtkmm_min_glib_version}\"") >&5
+    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \${gtkmm_min_glib_version} gobject-2.0 >= \${gtkmm_min_glib_version} gmodule-2.0 >= \${gtkmm_min_glib_version}\"") >&5
   ($PKG_CONFIG --exists --print-errors "glib-2.0 >= ${gtkmm_min_glib_version} gobject-2.0 >= ${gtkmm_min_glib_version} gmodule-2.0 >= ${gtkmm_min_glib_version}") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   pkg_cv_GLIBMM_CFLAGS=`$PKG_CONFIG --cflags "glib-2.0 >= ${gtkmm_min_glib_version} gobject-2.0 >= ${gtkmm_min_glib_version} gmodule-2.0 >= ${gtkmm_min_glib_version}" 2>/dev/null`
 else
@@ -19695,10 +20257,10 @@ if test -n "$GLIBMM_LIBS"; then
     pkg_cv_GLIBMM_LIBS="$GLIBMM_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \${gtkmm_min_glib_version} gobject-2.0 >= \${gtkmm_min_glib_version} gmodule-2.0 >= \${gtkmm_min_glib_version}\"") >&5
+    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"glib-2.0 >= \${gtkmm_min_glib_version} gobject-2.0 >= \${gtkmm_min_glib_version} gmodule-2.0 >= \${gtkmm_min_glib_version}\"") >&5
   ($PKG_CONFIG --exists --print-errors "glib-2.0 >= ${gtkmm_min_glib_version} gobject-2.0 >= ${gtkmm_min_glib_version} gmodule-2.0 >= ${gtkmm_min_glib_version}") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   pkg_cv_GLIBMM_LIBS=`$PKG_CONFIG --libs "glib-2.0 >= ${gtkmm_min_glib_version} gobject-2.0 >= ${gtkmm_min_glib_version} gmodule-2.0 >= ${gtkmm_min_glib_version}" 2>/dev/null`
 else
@@ -19725,7 +20287,7 @@ fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$GLIBMM_PKG_ERRORS" >&5
 
-	{ { echo "$as_me:$LINENO: error: Package requirements (glib-2.0 >= ${gtkmm_min_glib_version} gobject-2.0 >= ${gtkmm_min_glib_version} gmodule-2.0 >= ${gtkmm_min_glib_version}) were not met:
+	{ { $as_echo "$as_me:$LINENO: error: Package requirements (glib-2.0 >= ${gtkmm_min_glib_version} gobject-2.0 >= ${gtkmm_min_glib_version} gmodule-2.0 >= ${gtkmm_min_glib_version}) were not met:
 
 $GLIBMM_PKG_ERRORS
 
@@ -19736,7 +20298,7 @@ Alternatively, you may set the environment variables GLIBMM_CFLAGS
 and GLIBMM_LIBS to avoid the need to call pkg-config.
 See the pkg-config man page for more details.
 " >&5
-echo "$as_me: error: Package requirements (glib-2.0 >= ${gtkmm_min_glib_version} gobject-2.0 >= ${gtkmm_min_glib_version} gmodule-2.0 >= ${gtkmm_min_glib_version}) were not met:
+$as_echo "$as_me: error: Package requirements (glib-2.0 >= ${gtkmm_min_glib_version} gobject-2.0 >= ${gtkmm_min_glib_version} gmodule-2.0 >= ${gtkmm_min_glib_version}) were not met:
 
 $GLIBMM_PKG_ERRORS
 
@@ -19749,7 +20311,9 @@ See the pkg-config man page for more details.
 " >&2;}
    { (exit 1); exit 1; }; }
 elif test $pkg_failed = untried; then
-	{ { echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old.  Make sure it
+	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
@@ -19759,7 +20323,7 @@ See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details." >&5
-echo "$as_me: error: The pkg-config script could not be found or is too old.  Make sure it
+$as_echo "$as_me: error: The pkg-config script could not be found or is too old.  Make sure it
 is in your PATH or set the PKG_CONFIG environment variable to the full
 path to pkg-config.
 
@@ -19769,12 +20333,12 @@ See the pkg-config man page for more details.
 
 To get pkg-config, see <http://pkg-config.freedesktop.org/>.
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 else
 	GLIBMM_CFLAGS=$pkg_cv_GLIBMM_CFLAGS
 	GLIBMM_LIBS=$pkg_cv_GLIBMM_LIBS
-        { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+        { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 	:
 fi
 
@@ -19783,17 +20347,17 @@ fi
 # gthread isn't a requirement, but we should use its CFLAGS if available.
 
 pkg_failed=no
-{ echo "$as_me:$LINENO: checking for GTHREAD" >&5
-echo $ECHO_N "checking for GTHREAD... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for GTHREAD" >&5
+$as_echo_n "checking for GTHREAD... " >&6; }
 
 if test -n "$GTHREAD_CFLAGS"; then
     pkg_cv_GTHREAD_CFLAGS="$GTHREAD_CFLAGS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= \${gtkmm_min_glib_version}\"") >&5
+    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= \${gtkmm_min_glib_version}\"") >&5
   ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= ${gtkmm_min_glib_version}") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   pkg_cv_GTHREAD_CFLAGS=`$PKG_CONFIG --cflags "gthread-2.0 >= ${gtkmm_min_glib_version}" 2>/dev/null`
 else
@@ -19806,10 +20370,10 @@ if test -n "$GTHREAD_LIBS"; then
     pkg_cv_GTHREAD_LIBS="$GTHREAD_LIBS"
  elif test -n "$PKG_CONFIG"; then
     if test -n "$PKG_CONFIG" && \
-    { (echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= \${gtkmm_min_glib_version}\"") >&5
+    { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"gthread-2.0 >= \${gtkmm_min_glib_version}\"") >&5
   ($PKG_CONFIG --exists --print-errors "gthread-2.0 >= ${gtkmm_min_glib_version}") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   pkg_cv_GTHREAD_LIBS=`$PKG_CONFIG --libs "gthread-2.0 >= ${gtkmm_min_glib_version}" 2>/dev/null`
 else
@@ -19836,16 +20400,16 @@ fi
 	# Put the nasty error message in config.log where it belongs
 	echo "$GTHREAD_PKG_ERRORS" >&5
 
-	{ echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+	{ $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
                 GTHREAD_CFLAGS=''; GTHREAD_LIBS=''
 elif test $pkg_failed = untried; then
 	GTHREAD_CFLAGS=''; GTHREAD_LIBS=''
 else
 	GTHREAD_CFLAGS=$pkg_cv_GTHREAD_CFLAGS
 	GTHREAD_LIBS=$pkg_cv_GTHREAD_LIBS
-        { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+        { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 	:
 fi
 
@@ -19869,10 +20433,10 @@ if test -z "$CXX"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CXX"; then
   ac_cv_prog_CXX="$CXX" # Let the user override the test.
@@ -19885,7 +20449,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -19896,11 +20460,11 @@ fi
 fi
 CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
-  { echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -19913,10 +20477,10 @@ if test -z "$CXX"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CXX"; then
   ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
@@ -19929,7 +20493,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CXX="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -19940,11 +20504,11 @@ fi
 fi
 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
 if test -n "$ac_ct_CXX"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -19956,12 +20520,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CXX=$ac_ct_CXX
@@ -19971,43 +20531,47 @@ fi
   fi
 fi
 # Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
+$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
 { (ac_try="$ac_compiler --version >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -v >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -V >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -20033,20 +20597,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_compiler_gnu=no
@@ -20056,15 +20621,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; }
-GXX=`test $ac_compiler_gnu = yes && echo yes`
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
+else
+  GXX=
+fi
 ac_test_CXXFLAGS=${CXXFLAGS+set}
 ac_save_CXXFLAGS=$CXXFLAGS
-{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
 if test "${ac_cv_prog_cxx_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_save_cxx_werror_flag=$ac_cxx_werror_flag
    ac_cxx_werror_flag=yes
@@ -20091,20 +20660,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cxx_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	CXXFLAGS=""
@@ -20129,20 +20699,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cxx_werror_flag=$ac_save_cxx_werror_flag
@@ -20168,20 +20739,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cxx_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -20196,8 +20768,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_cxx_werror_flag=$ac_save_cxx_werror_flag
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
 if test "$ac_test_CXXFLAGS" = set; then
   CXXFLAGS=$ac_save_CXXFLAGS
 elif test $ac_cv_prog_cxx_g = yes; then
@@ -20221,10 +20793,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 depcc="$CXX"  am_compiler_list=
 
-{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
   # We make a subdir and do the tests there.  Otherwise we can end up
@@ -20312,8 +20884,8 @@ else
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
 
  if
@@ -20336,8 +20908,8 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 
 
-{ echo "$as_me:$LINENO: checking if C++ compiler supports bool" >&5
-echo $ECHO_N "checking if C++ compiler supports bool... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if C++ compiler supports bool" >&5
+$as_echo_n "checking if C++ compiler supports bool... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -20365,31 +20937,32 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
 
   ac_cxx_bool=yes
-  { echo "$as_me:$LINENO: result: $ac_cxx_bool" >&5
-echo "${ECHO_T}$ac_cxx_bool" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_cxx_bool" >&5
+$as_echo "$ac_cxx_bool" >&6; }
 
 
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
   ac_cxx_bool=no
-  { echo "$as_me:$LINENO: result: $ac_cxx_bool" >&5
-echo "${ECHO_T}$ac_cxx_bool" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_cxx_bool" >&5
+$as_echo "$ac_cxx_bool" >&6; }
   config_error=yes
 
 fi
@@ -20397,8 +20970,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
-{ echo "$as_me:$LINENO: checking if C++ compiler supports namespaces" >&5
-echo $ECHO_N "checking if C++ compiler supports namespaces... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if C++ compiler supports namespaces" >&5
+$as_echo_n "checking if C++ compiler supports namespaces... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -20426,31 +20999,32 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
 
  ac_cxx_namespaces=yes
- { echo "$as_me:$LINENO: result: $ac_cxx_namespaces" >&5
-echo "${ECHO_T}$ac_cxx_namespaces" >&6; }
+ { $as_echo "$as_me:$LINENO: result: $ac_cxx_namespaces" >&5
+$as_echo "$ac_cxx_namespaces" >&6; }
 
 
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
  ac_cxx_namespaces=no
- { echo "$as_me:$LINENO: result: $ac_cxx_namespaces" >&5
-echo "${ECHO_T}$ac_cxx_namespaces" >&6; }
+ { $as_echo "$as_me:$LINENO: result: $ac_cxx_namespaces" >&5
+$as_echo "$ac_cxx_namespaces" >&6; }
  config_error=yes
 
 fi
@@ -20458,8 +21032,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
-{ echo "$as_me:$LINENO: checking if C++ compiler supports mutable" >&5
-echo $ECHO_N "checking if C++ compiler supports mutable... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if C++ compiler supports mutable" >&5
+$as_echo_n "checking if C++ compiler supports mutable... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -20488,31 +21062,32 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
 
   ac_cxx_mutable=yes
-  { echo "$as_me:$LINENO: result: $ac_cxx_mutable" >&5
-echo "${ECHO_T}$ac_cxx_mutable" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_cxx_mutable" >&5
+$as_echo "$ac_cxx_mutable" >&6; }
 
 
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
   ac_cxx_mutable=no
-  { echo "$as_me:$LINENO: result: $ac_cxx_mutable" >&5
-echo "${ECHO_T}$ac_cxx_mutable" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_cxx_mutable" >&5
+$as_echo "$ac_cxx_mutable" >&6; }
   config_error=yes
 
 fi
@@ -20520,23 +21095,23 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
-{ echo "$as_me:$LINENO: checking if C++ environment provides all required features" >&5
-echo $ECHO_N "checking if C++ environment provides all required features... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if C++ environment provides all required features" >&5
+$as_echo_n "checking if C++ environment provides all required features... " >&6; }
 if test "x$config_error" = xyes ; then
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
-  { { echo "$as_me:$LINENO: error: Your compiler is not powerful enough to compile gtkmm. If it should be, see config.log for more information of why it failed." >&5
-echo "$as_me: error: Your compiler is not powerful enough to compile gtkmm. If it should be, see config.log for more information of why it failed." >&2;}
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+  { { $as_echo "$as_me:$LINENO: error: Your compiler is not powerful enough to compile gtkmm. If it should be, see config.log for more information of why it failed." >&5
+$as_echo "$as_me: error: Your compiler is not powerful enough to compile gtkmm. If it should be, see config.log for more information of why it failed." >&2;}
    { (exit 1); exit 1; }; }
 fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 
 
-  { echo "$as_me:$LINENO: checking whether C++ library symbols are declared in namespace std" >&5
-echo $ECHO_N "checking whether C++ library symbols are declared in namespace std... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether C++ library symbols are declared in namespace std" >&5
+$as_echo_n "checking whether C++ library symbols are declared in namespace std... " >&6; }
 if test "${gtkmm_cv_cxx_has_namespace_std+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
@@ -20573,20 +21148,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   gtkmm_cv_cxx_has_namespace_std="yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	gtkmm_cv_cxx_has_namespace_std="no"
@@ -20596,8 +21172,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $gtkmm_cv_cxx_has_namespace_std" >&5
-echo "${ECHO_T}$gtkmm_cv_cxx_has_namespace_std" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $gtkmm_cv_cxx_has_namespace_std" >&5
+$as_echo "$gtkmm_cv_cxx_has_namespace_std" >&6; }
 
   if test "x${gtkmm_cv_cxx_has_namespace_std}" = "xyes"; then
   {
@@ -20612,10 +21188,10 @@ _ACEOF
 
 
 
-  { echo "$as_me:$LINENO: checking whether the C++ library supports std::iterator_traits" >&5
-echo $ECHO_N "checking whether the C++ library supports std::iterator_traits... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether the C++ library supports std::iterator_traits" >&5
+$as_echo_n "checking whether the C++ library supports std::iterator_traits... " >&6; }
 if test "${gtkmm_cv_cxx_has_std_iterator_traits+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
@@ -20646,20 +21222,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   gtkmm_cv_cxx_has_std_iterator_traits="yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	gtkmm_cv_cxx_has_std_iterator_traits="no"
@@ -20669,8 +21246,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $gtkmm_cv_cxx_has_std_iterator_traits" >&5
-echo "${ECHO_T}$gtkmm_cv_cxx_has_std_iterator_traits" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $gtkmm_cv_cxx_has_std_iterator_traits" >&5
+$as_echo "$gtkmm_cv_cxx_has_std_iterator_traits" >&6; }
 
   if test "x${gtkmm_cv_cxx_has_std_iterator_traits}" = "xyes"; then
   {
@@ -20685,10 +21262,10 @@ _ACEOF
 
 
 
-  { echo "$as_me:$LINENO: checking for non-standard Sun libCstd reverse_iterator" >&5
-echo $ECHO_N "checking for non-standard Sun libCstd reverse_iterator... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for non-standard Sun libCstd reverse_iterator" >&5
+$as_echo_n "checking for non-standard Sun libCstd reverse_iterator... " >&6; }
 if test "${gtkmm_cv_cxx_has_sun_reverse_iterator+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
@@ -20719,20 +21296,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   gtkmm_cv_cxx_has_sun_reverse_iterator="yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	gtkmm_cv_cxx_has_sun_reverse_iterator="no"
@@ -20742,8 +21320,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $gtkmm_cv_cxx_has_sun_reverse_iterator" >&5
-echo "${ECHO_T}$gtkmm_cv_cxx_has_sun_reverse_iterator" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $gtkmm_cv_cxx_has_sun_reverse_iterator" >&5
+$as_echo "$gtkmm_cv_cxx_has_sun_reverse_iterator" >&6; }
 
   if test "x${gtkmm_cv_cxx_has_sun_reverse_iterator}" = "xyes"; then
   {
@@ -20758,10 +21336,10 @@ _ACEOF
 
 
 
-  { echo "$as_me:$LINENO: checking whether STL containers have templated sequence constructors" >&5
-echo $ECHO_N "checking whether STL containers have templated sequence constructors... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether STL containers have templated sequence constructors" >&5
+$as_echo_n "checking whether STL containers have templated sequence constructors... " >&6; }
 if test "${gtkmm_cv_cxx_has_template_sequence_ctors+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
@@ -20798,20 +21376,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   gtkmm_cv_cxx_has_template_sequence_ctors="yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	gtkmm_cv_cxx_has_template_sequence_ctors="no"
@@ -20821,8 +21400,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $gtkmm_cv_cxx_has_template_sequence_ctors" >&5
-echo "${ECHO_T}$gtkmm_cv_cxx_has_template_sequence_ctors" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $gtkmm_cv_cxx_has_template_sequence_ctors" >&5
+$as_echo "$gtkmm_cv_cxx_has_template_sequence_ctors" >&6; }
 
   if test "x${gtkmm_cv_cxx_has_template_sequence_ctors}" = "xyes"; then
   {
@@ -20835,8 +21414,8 @@ _ACEOF
   fi
 
 
-{ echo "$as_me:$LINENO: checking if C++ compiler allows member functions to refer to member templates" >&5
-echo $ECHO_N "checking if C++ compiler allows member functions to refer to member templates... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if C++ compiler allows member functions to refer to member templates" >&5
+$as_echo_n "checking if C++ compiler allows member functions to refer to member templates... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -20890,13 +21469,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
@@ -20908,11 +21488,11 @@ cat >>confdefs.h <<\_ACEOF
 #define GLIBMM_MEMBER_FUNCTIONS_MEMBER_TEMPLATES 1
 _ACEOF
 
-  { echo "$as_me:$LINENO: result: $glibmm_cxx_member_functions_member_templates" >&5
-echo "${ECHO_T}$glibmm_cxx_member_functions_member_templates" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $glibmm_cxx_member_functions_member_templates" >&5
+$as_echo "$glibmm_cxx_member_functions_member_templates" >&6; }
 
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -20921,8 +21501,8 @@ sed 's/^/| /' conftest.$ac_ext >&5
 #define GLIBMM_MEMBER_FUNCTIONS_MEMBER_TEMPLATES 0
 _ACEOF
 
-  { echo "$as_me:$LINENO: result: $glibmm_cxx_member_functions_member_templates" >&5
-echo "${ECHO_T}$glibmm_cxx_member_functions_member_templates" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $glibmm_cxx_member_functions_member_templates" >&5
+$as_echo "$glibmm_cxx_member_functions_member_templates" >&6; }
 
 fi
 
@@ -20931,10 +21511,10 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
 
-  { echo "$as_me:$LINENO: checking whether the compiler finds it ambiguous to have both const and non-const template specializations" >&5
-echo $ECHO_N "checking whether the compiler finds it ambiguous to have both const and non-const template specializations... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether the compiler finds it ambiguous to have both const and non-const template specializations" >&5
+$as_echo_n "checking whether the compiler finds it ambiguous to have both const and non-const template specializations... " >&6; }
 if test "${glibmm_cv_cxx_can_disambiguate_const_template_specializations+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
@@ -20995,20 +21575,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   glibmm_cv_cxx_can_disambiguate_const_template_specializations="yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	glibmm_cv_cxx_can_disambiguate_const_template_specializations="no"
@@ -21018,8 +21599,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $glibmm_cv_cxx_can_disambiguate_const_template_specializations" >&5
-echo "${ECHO_T}$glibmm_cv_cxx_can_disambiguate_const_template_specializations" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $glibmm_cv_cxx_can_disambiguate_const_template_specializations" >&5
+$as_echo "$glibmm_cv_cxx_can_disambiguate_const_template_specializations" >&6; }
 
   if test "x${glibmm_cv_cxx_can_disambiguate_const_template_specializations}" = "xyes"; then
   {
@@ -21032,10 +21613,10 @@ _ACEOF
   fi
 
 
-  { echo "$as_me:$LINENO: checking whether the compiler allows us to define a template that uses dynamic_cast<> with an object whose type is not yet defined" >&5
-echo $ECHO_N "checking whether the compiler allows us to define a template that uses dynamic_cast<> with an object whose type is not yet defined... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether the compiler allows us to define a template that uses dynamic_cast<> with an object whose type is not yet defined" >&5
+$as_echo_n "checking whether the compiler allows us to define a template that uses dynamic_cast<> with an object whose type is not yet defined... " >&6; }
 if test "${glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
@@ -21078,20 +21659,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition="yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition="no"
@@ -21101,8 +21683,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition" >&5
-echo "${ECHO_T}$glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition" >&5
+$as_echo "$glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition" >&6; }
 
   if test "x${glibmm_cv_cxx_can_use_dynamic_cast_in_unused_template_without_definition}" = "xyes"; then
   {
@@ -21115,10 +21697,10 @@ _ACEOF
   fi
 
 
-  { echo "$as_me:$LINENO: checking whether the the compilerallows us to use a non-extern \"C\" function for an extern \"C\" function pointer." >&5
-echo $ECHO_N "checking whether the the compilerallows us to use a non-extern \"C\" function for an extern \"C\" function pointer.... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether the the compilerallows us to use a non-extern \"C\" function for an extern \"C\" function pointer." >&5
+$as_echo_n "checking whether the the compilerallows us to use a non-extern \"C\" function for an extern \"C\" function pointer.... " >&6; }
 if test "${glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
@@ -21159,20 +21741,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks="yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks="no"
@@ -21182,8 +21765,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks" >&5
-echo "${ECHO_T}$glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks" >&5
+$as_echo "$glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks" >&6; }
 
   if test "x${glibmm_cv_cxx_can_assign_non_extern_c_functions_to_extern_c_callbacks}" = "xyes"; then
   {
@@ -21196,10 +21779,10 @@ _ACEOF
   fi
 
 
-  { echo "$as_me:$LINENO: checking whether the compiler uses namespace declarations inside extern \"C\" blocks." >&5
-echo $ECHO_N "checking whether the compiler uses namespace declarations inside extern \"C\" blocks.... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether the compiler uses namespace declarations inside extern \"C\" blocks." >&5
+$as_echo_n "checking whether the compiler uses namespace declarations inside extern \"C\" blocks.... " >&6; }
 if test "${glibmm_cv_cxx_can_use_namespaces_inside_externc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
@@ -21254,20 +21837,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   glibmm_cv_cxx_can_use_namespaces_inside_externc="yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	glibmm_cv_cxx_can_use_namespaces_inside_externc="no"
@@ -21277,8 +21861,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $glibmm_cv_cxx_can_use_namespaces_inside_externc" >&5
-echo "${ECHO_T}$glibmm_cv_cxx_can_use_namespaces_inside_externc" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $glibmm_cv_cxx_can_use_namespaces_inside_externc" >&5
+$as_echo "$glibmm_cv_cxx_can_use_namespaces_inside_externc" >&6; }
 
   if test "x${glibmm_cv_cxx_can_use_namespaces_inside_externc}" = "xyes"; then
   {
@@ -21293,10 +21877,10 @@ _ACEOF
 
 
 
-  { echo "$as_me:$LINENO: checking whether the compiler allows a static member variable to be initialized inline to std::string::npos" >&5
-echo $ECHO_N "checking whether the compiler allows a static member variable to be initialized inline to std::string::npos... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether the compiler allows a static member variable to be initialized inline to std::string::npos" >&5
+$as_echo_n "checking whether the compiler allows a static member variable to be initialized inline to std::string::npos... " >&6; }
 if test "${gtkmm_cv_cxx_has_allows_static_inline_npos+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
@@ -21333,20 +21917,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   gtkmm_cv_cxx_has_allows_static_inline_npos="yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	gtkmm_cv_cxx_has_allows_static_inline_npos="no"
@@ -21356,8 +21941,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $gtkmm_cv_cxx_has_allows_static_inline_npos" >&5
-echo "${ECHO_T}$gtkmm_cv_cxx_has_allows_static_inline_npos" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $gtkmm_cv_cxx_has_allows_static_inline_npos" >&5
+$as_echo "$gtkmm_cv_cxx_has_allows_static_inline_npos" >&6; }
 
   if test "x${gtkmm_cv_cxx_has_allows_static_inline_npos}" = "xyes"; then
   {
@@ -21401,8 +21986,8 @@ else
 fi
 
 
-  { echo "$as_me:$LINENO: checking for compiler warning flags to use" >&5
-echo $ECHO_N "checking for compiler warning flags to use... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for compiler warning flags to use" >&5
+$as_echo_n "checking for compiler warning flags to use... " >&6; }
 
   gtkmm_warning_flags=''
 
@@ -21446,8 +22031,8 @@ echo $ECHO_N "checking for compiler warning flags to use... $ECHO_C" >&6; }
     gtkmm_use_flags='none'
   fi
 
-  { echo "$as_me:$LINENO: result: $gtkmm_use_flags" >&5
-echo "${ECHO_T}$gtkmm_use_flags" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $gtkmm_use_flags" >&5
+$as_echo "$gtkmm_use_flags" >&6; }
 
 
 # Dummy conditional just to make automake-1.4 happy.
@@ -21495,11 +22080,12 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
       *) $as_unset $ac_var ;;
       esac ;;
     esac
@@ -21532,12 +22118,12 @@ echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     test "x$cache_file" != "x/dev/null" &&
-      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
-echo "$as_me: updating cache $cache_file" >&6;}
+      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
     cat confcache >$cache_file
   else
-    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -21553,7 +22139,7 @@ ac_ltlibobjs=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`echo "$ac_i" | sed "$ac_script"`
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
   ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -21565,54 +22151,55 @@ LTLIBOBJS=$ac_ltlibobjs
 
 
 if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
+$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"AMDEP\" was never defined.
+$as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+$as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+$as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 if test -z "${GTKMM_FALSE_TRUE}" && test -z "${GTKMM_FALSE_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"GTKMM_FALSE\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"GTKMM_FALSE\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"GTKMM_FALSE\" was never defined.
+$as_echo "$as_me: error: conditional \"GTKMM_FALSE\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
 : ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
+{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 #! $SHELL
 # Generated by $as_me.
 # Run this file to recreate the current configuration.
@@ -21625,7 +22212,7 @@ ac_cs_silent=false
 SHELL=\${CONFIG_SHELL-$SHELL}
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ## --------------------- ##
 ## M4sh Initialization.  ##
 ## --------------------- ##
@@ -21635,7 +22222,7 @@ 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
@@ -21657,17 +22244,45 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
   else
-    PATH_SEPARATOR=:
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
   fi
-  rm -f conf$$.sh
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
 fi
 
 # Support unset when possible.
@@ -21683,8 +22298,6 @@ fi
 # there to prevent editors from complaining about space-tab.
 # (If _AS_PATH_WALK were called with IFS unset, it would disable word
 # splitting by setting IFS to empty value.)
-as_nl='
-'
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
@@ -21707,7 +22320,7 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   { (exit 1); exit 1; }
 fi
 
@@ -21720,17 +22333,10 @@ PS2='> '
 PS4='+ '
 
 # NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
 
 # Required to use basename.
 if expr a : '\(a\)' >/dev/null 2>&1 &&
@@ -21752,7 +22358,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
+$as_echo X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -21803,7 +22409,7 @@ $as_unset CDPATH
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
    { (exit 1); exit 1; }; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
@@ -21831,7 +22437,6 @@ case `echo -n x` in
 *)
   ECHO_N='-n';;
 esac
-
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -21844,19 +22449,22 @@ if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
 else
   rm -f conf$$.dir
-  mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
     as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
+  fi
 else
   as_ln_s='cp -p'
 fi
@@ -21881,10 +22489,10 @@ else
   as_test_x='
     eval sh -c '\''
       if test -d "$1"; then
-        test -d "$1/.";
+	test -d "$1/.";
       else
 	case $1 in
-        -*)set "./$1";;
+	-*)set "./$1";;
 	esac;
 	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
 	???[sx]*):;;*)false;;esac;fi
@@ -21907,7 +22515,7 @@ exec 6>&1
 # values after options handling.
 ac_log="
 This file was extended by $as_me, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
+generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -21920,7 +22528,16 @@ on `(hostname || uname -n) 2>/dev/null | sed 1q`
 
 _ACEOF
 
-cat >>$CONFIG_STATUS <<_ACEOF
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 # Files that config.status was made for.
 config_files="$ac_config_files"
 config_headers="$ac_config_headers"
@@ -21928,22 +22545,23 @@ config_commands="$ac_config_commands"
 
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ac_cs_usage="\
 \`$as_me' instantiates files from templates according to the
 current configuration.
 
-Usage: $0 [OPTIONS] [FILE]...
+Usage: $0 [OPTION]... [FILE]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number and configuration settings, then exit
-  -q, --quiet      do not print progress messages
+  -q, --quiet, --silent
+                   do not print progress messages
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-		   instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-		   instantiate the configuration header FILE
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
 
 Configuration files:
 $config_files
@@ -21957,13 +22575,13 @@ $config_commands
 Report bugs to <bug-autoconf at gnu.org>."
 
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
 config.status
-configured by $0, generated by GNU Autoconf 2.61,
-  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+configured by $0, generated by GNU Autoconf 2.63,
+  with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright (C) 2006 Free Software Foundation, Inc.
+Copyright (C) 2008 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -21971,11 +22589,12 @@ ac_pwd='$ac_pwd'
 srcdir='$srcdir'
 INSTALL='$INSTALL'
 MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
 ac_need_defaults=:
 while test $# != 0
 do
@@ -21997,30 +22616,36 @@ do
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    echo "$ac_cs_version"; exit ;;
+    $as_echo "$ac_cs_version"; exit ;;
   --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
     $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    { echo "$as_me: error: ambiguous option: $1
+    { $as_echo "$as_me: error: ambiguous option: $1
 Try \`$0 --help' for more information." >&2
    { (exit 1); exit 1; }; };;
   --help | --hel | -h )
-    echo "$ac_cs_usage"; exit ;;
+    $as_echo "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil | --si | --s)
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { echo "$as_me: error: unrecognized option: $1
+  -*) { $as_echo "$as_me: error: unrecognized option: $1
 Try \`$0 --help' for more information." >&2
    { (exit 1); exit 1; }; } ;;
 
@@ -22039,27 +22664,29 @@ if $ac_cs_silent; then
 fi
 
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  CONFIG_SHELL=$SHELL
+  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
   export CONFIG_SHELL
-  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  exec "\$@"
 fi
 
 _ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 exec 5>>config.log
 {
   echo
   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 ## Running $as_me. ##
 _ASBOX
-  echo "$ac_log"
+  $as_echo "$ac_log"
 } >&5
 
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 #
 # INIT-COMMANDS
 #
@@ -22067,7 +22694,7 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 
 # Handling of arguments.
 for ac_config_target in $ac_config_targets
@@ -22079,8 +22706,8 @@ do
     "glibmm-2.4.pc") CONFIG_FILES="$CONFIG_FILES glibmm-2.4.pc" ;;
     "glibmm/Makefile") CONFIG_FILES="$CONFIG_FILES glibmm/Makefile" ;;
 
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
    { (exit 1); exit 1; }; };;
   esac
 done
@@ -22121,227 +22748,144 @@ $debug ||
   (umask 077 && mkdir "$tmp")
 } ||
 {
-   echo "$me: cannot create a temporary directory in ." >&2
+   $as_echo "$as_me: cannot create a temporary directory in ." >&2
    { (exit 1); exit 1; }
 }
 
-#
-# Set up the sed scripts for CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
 if test -n "$CONFIG_FILES"; then
 
-_ACEOF
-
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-SHELL!$SHELL$ac_delim
-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
-PACKAGE_NAME!$PACKAGE_NAME$ac_delim
-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
-PACKAGE_STRING!$PACKAGE_STRING$ac_delim
-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
-exec_prefix!$exec_prefix$ac_delim
-prefix!$prefix$ac_delim
-program_transform_name!$program_transform_name$ac_delim
-bindir!$bindir$ac_delim
-sbindir!$sbindir$ac_delim
-libexecdir!$libexecdir$ac_delim
-datarootdir!$datarootdir$ac_delim
-datadir!$datadir$ac_delim
-sysconfdir!$sysconfdir$ac_delim
-sharedstatedir!$sharedstatedir$ac_delim
-localstatedir!$localstatedir$ac_delim
-includedir!$includedir$ac_delim
-oldincludedir!$oldincludedir$ac_delim
-docdir!$docdir$ac_delim
-infodir!$infodir$ac_delim
-htmldir!$htmldir$ac_delim
-dvidir!$dvidir$ac_delim
-pdfdir!$pdfdir$ac_delim
-psdir!$psdir$ac_delim
-libdir!$libdir$ac_delim
-localedir!$localedir$ac_delim
-mandir!$mandir$ac_delim
-DEFS!$DEFS$ac_delim
-ECHO_C!$ECHO_C$ac_delim
-ECHO_N!$ECHO_N$ac_delim
-ECHO_T!$ECHO_T$ac_delim
-LIBS!$LIBS$ac_delim
-build_alias!$build_alias$ac_delim
-host_alias!$host_alias$ac_delim
-target_alias!$target_alias$ac_delim
-GLIBMM_MAJOR_VERSION!$GLIBMM_MAJOR_VERSION$ac_delim
-GLIBMM_MINOR_VERSION!$GLIBMM_MINOR_VERSION$ac_delim
-GLIBMM_MICRO_VERSION!$GLIBMM_MICRO_VERSION$ac_delim
-GLIBMM_VERSION!$GLIBMM_VERSION$ac_delim
-GLIBMM_RELEASE!$GLIBMM_RELEASE$ac_delim
-LIBGLIBMM_SO_VERSION!$LIBGLIBMM_SO_VERSION$ac_delim
-INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
-INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
-INSTALL_DATA!$INSTALL_DATA$ac_delim
-am__isrc!$am__isrc$ac_delim
-CYGPATH_W!$CYGPATH_W$ac_delim
-PACKAGE!$PACKAGE$ac_delim
-VERSION!$VERSION$ac_delim
-ACLOCAL!$ACLOCAL$ac_delim
-AUTOCONF!$AUTOCONF$ac_delim
-AUTOMAKE!$AUTOMAKE$ac_delim
-AUTOHEADER!$AUTOHEADER$ac_delim
-MAKEINFO!$MAKEINFO$ac_delim
-install_sh!$install_sh$ac_delim
-STRIP!$STRIP$ac_delim
-INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim
-mkdir_p!$mkdir_p$ac_delim
-AWK!$AWK$ac_delim
-SET_MAKE!$SET_MAKE$ac_delim
-am__leading_dot!$am__leading_dot$ac_delim
-AMTAR!$AMTAR$ac_delim
-am__tar!$am__tar$ac_delim
-am__untar!$am__untar$ac_delim
-MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim
-MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim
-MAINT!$MAINT$ac_delim
-CC!$CC$ac_delim
-CFLAGS!$CFLAGS$ac_delim
-LDFLAGS!$LDFLAGS$ac_delim
-CPPFLAGS!$CPPFLAGS$ac_delim
-ac_ct_CC!$ac_ct_CC$ac_delim
-EXEEXT!$EXEEXT$ac_delim
-OBJEXT!$OBJEXT$ac_delim
-DEPDIR!$DEPDIR$ac_delim
-am__include!$am__include$ac_delim
-am__quote!$am__quote$ac_delim
-AMDEP_TRUE!$AMDEP_TRUE$ac_delim
-AMDEP_FALSE!$AMDEP_FALSE$ac_delim
-AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim
-CCDEPMODE!$CCDEPMODE$ac_delim
-am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
-am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
-CPP!$CPP$ac_delim
-build!$build$ac_delim
-build_cpu!$build_cpu$ac_delim
-build_vendor!$build_vendor$ac_delim
-build_os!$build_os$ac_delim
-host!$host$ac_delim
-host_cpu!$host_cpu$ac_delim
-host_vendor!$host_vendor$ac_delim
-host_os!$host_os$ac_delim
-SED!$SED$ac_delim
-GREP!$GREP$ac_delim
-EGREP!$EGREP$ac_delim
-LN_S!$LN_S$ac_delim
-_ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
 
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
+ac_cr='
'
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
 fi
 
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-CEOF$ac_eof
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
 _ACEOF
 
 
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-ECHO!$ECHO$ac_delim
-AR!$AR$ac_delim
-RANLIB!$RANLIB$ac_delim
-CXX!$CXX$ac_delim
-CXXFLAGS!$CXXFLAGS$ac_delim
-ac_ct_CXX!$ac_ct_CXX$ac_delim
-CXXDEPMODE!$CXXDEPMODE$ac_delim
-am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim
-am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim
-CXXCPP!$CXXCPP$ac_delim
-F77!$F77$ac_delim
-FFLAGS!$FFLAGS$ac_delim
-ac_ct_F77!$ac_ct_F77$ac_delim
-LIBTOOL!$LIBTOOL$ac_delim
-M4!$M4$ac_delim
-PKG_CONFIG!$PKG_CONFIG$ac_delim
-GLIBMM_CFLAGS!$GLIBMM_CFLAGS$ac_delim
-GLIBMM_LIBS!$GLIBMM_LIBS$ac_delim
-GTHREAD_CFLAGS!$GTHREAD_CFLAGS$ac_delim
-GTHREAD_LIBS!$GTHREAD_LIBS$ac_delim
-GTKMM_FALSE_TRUE!$GTKMM_FALSE_TRUE$ac_delim
-GTKMM_FALSE_FALSE!$GTKMM_FALSE_FALSE$ac_delim
-LIBOBJS!$LIBOBJS$ac_delim
-LTLIBOBJS!$LTLIBOBJS$ac_delim
-_ACEOF
+  . ./conf$$subs.sh ||
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 24; then
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
    { (exit 1); exit 1; }; }
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
 done
+rm -f conf$$subs.sh
 
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\).*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\).*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
+
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
 
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
+_ACAWK
 _ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-:end
-s/|#_!!_#|//g
-CEOF$ac_eof
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
+$as_echo "$as_me: error: could not setup config files machinery" >&2;}
+   { (exit 1); exit 1; }; }
 _ACEOF
 
-
 # VPATH may cause trouble with some makes, so we remove $(srcdir),
 # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
 # trailing colons and then remove the whole line if VPATH becomes empty
@@ -22357,19 +22901,133 @@ s/^[^=]*=[	 ]*$//
 }'
 fi
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 fi # test -n "$CONFIG_FILES"
 
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
 
-for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_t"; then
+    break
+  elif $ac_last_try; then
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any.  Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  for (key in D) D_is_set[key] = 1
+  FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+  line = \$ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #undef with comments.  This is necessary, for example,
+    # in the case of _POSIX_SOURCE, which is predefined and required
+    # on some systems where configure will not decide to define it.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+  { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
+$as_echo "$as_me: error: could not setup config headers machinery" >&2;}
+   { (exit 1); exit 1; }; }
+fi # test -n "$CONFIG_HEADERS"
+
+
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+shift
+for ac_tag
 do
   case $ac_tag in
   :[FHLC]) ac_mode=$ac_tag; continue;;
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-echo "$as_me: error: Invalid tag $ac_tag." >&2;}
+  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
    { (exit 1); exit 1; }; };;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
@@ -22398,26 +23056,38 @@ echo "$as_me: error: Invalid tag $ac_tag." >&2;}
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+	   { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
    { (exit 1); exit 1; }; };;
       esac
-      ac_file_inputs="$ac_file_inputs $ac_f"
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      ac_file_inputs="$ac_file_inputs '$ac_f'"
     done
 
     # Let's still pretend it is `configure' which instantiates (i.e., don't
     # use $as_me), people would be surprised to read:
     #    /* config.h.  Generated by config.status.  */
-    configure_input="Generated from "`IFS=:
-	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
+      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
     fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin";;
+    *:-:* | *:-) cat >"$tmp/stdin" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; } ;;
     esac
     ;;
   esac
@@ -22427,7 +23097,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 	 X"$ac_file" : 'X\(//\)$' \| \
 	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$ac_file" |
+$as_echo X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -22453,7 +23123,7 @@ echo X"$ac_file" |
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -22462,7 +23132,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$as_dir" |
+$as_echo X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -22483,17 +23153,17 @@ echo X"$as_dir" |
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
+  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
    { (exit 1); exit 1; }; }; }
   ac_builddir=.
 
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -22538,12 +23208,13 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
   esac
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # If the template does not know about datarootdir, expand it.
 # FIXME: This hack should be removed a few years after 2.60.
 ac_datarootdir_hack=; ac_datarootdir_seen=
 
-case `sed -n '/datarootdir/ {
+ac_sed_dataroot='
+/datarootdir/ {
   p
   q
 }
@@ -22552,13 +23223,14 @@ case `sed -n '/datarootdir/ {
 /@infodir@/p
 /@localedir@/p
 /@mandir@/p
-' $ac_file_inputs` in
+'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   ac_datarootdir_hack='
   s&@datadir@&$datadir&g
   s&@docdir@&$docdir&g
@@ -22572,15 +23244,16 @@ _ACEOF
 # Neutralize VPATH when `$srcdir' = `.'.
 # Shell code in configure.ac might set extrasub.
 # FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
 $extrasub
 _ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 :t
 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s&@configure_input@&$configure_input&;t t
+s|@configure_input@|$ac_sed_conf_input|;t t
 s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
 s&@srcdir@&$ac_srcdir&;t t
 s&@abs_srcdir@&$ac_abs_srcdir&;t t
 s&@top_srcdir@&$ac_top_srcdir&;t t
@@ -22591,121 +23264,60 @@ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 s&@INSTALL@&$ac_INSTALL&;t t
 s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&5
-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&2;}
 
   rm -f "$tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out"; rm -f "$tmp/out";;
-  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
-  esac
+  -) cat "$tmp/out" && rm -f "$tmp/out";;
+  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  esac \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
  ;;
   :H)
   #
   # CONFIG_HEADER
   #
-_ACEOF
-
-# Transform confdefs.h into a sed script `conftest.defines', that
-# substitutes the proper values into config.h.in to produce config.h.
-rm -f conftest.defines conftest.tail
-# First, append a space to every undef/define line, to ease matching.
-echo 's/$/ /' >conftest.defines
-# Then, protect against being on the right side of a sed subst, or in
-# an unquoted here document, in config.status.  If some macros were
-# called several times there might be several #defines for the same
-# symbol, which is useless.  But do not sort them, since the last
-# AC_DEFINE must be honored.
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
-# NAME is the cpp macro being defined, VALUE is the value it is being given.
-# PARAMS is the parameter list in the macro definition--in most cases, it's
-# just an empty string.
-ac_dA='s,^\\([	 #]*\\)[^	 ]*\\([	 ]*'
-ac_dB='\\)[	 (].*,\\1define\\2'
-ac_dC=' '
-ac_dD=' ,'
-
-uniq confdefs.h |
-  sed -n '
-	t rset
-	:rset
-	s/^[	 ]*#[	 ]*define[	 ][	 ]*//
-	t ok
-	d
-	:ok
-	s/[\\&,]/\\&/g
-	s/^\('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
-	s/^\('"$ac_word_re"'\)[	 ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
-  ' >>conftest.defines
-
-# Remove the space that was appended to ease matching.
-# Then replace #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-# (The regexp can be short, since the line contains either #define or #undef.)
-echo 's/ $//
-s,^[	 #]*u.*,/* & */,' >>conftest.defines
-
-# Break up conftest.defines:
-ac_max_sed_lines=50
-
-# First sed command is:	 sed -f defines.sed $ac_file_inputs >"$tmp/out1"
-# Second one is:	 sed -f defines.sed "$tmp/out1" >"$tmp/out2"
-# Third one will be:	 sed -f defines.sed "$tmp/out2" >"$tmp/out1"
-# et cetera.
-ac_in='$ac_file_inputs'
-ac_out='"$tmp/out1"'
-ac_nxt='"$tmp/out2"'
-
-while :
-do
-  # Write a here document:
-    cat >>$CONFIG_STATUS <<_ACEOF
-    # First, check the format of the line:
-    cat >"\$tmp/defines.sed" <<\\CEOF
-/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*\$/b def
-/^[	 ]*#[	 ]*define[	 ][	 ]*$ac_word_re[(	 ]/b def
-b
-:def
-_ACEOF
-  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
-  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
-  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
-  grep . conftest.tail >/dev/null || break
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines conftest.tail
-
-echo "ac_result=$ac_in" >>$CONFIG_STATUS
-cat >>$CONFIG_STATUS <<\_ACEOF
   if test x"$ac_file" != x-; then
-    echo "/* $configure_input  */" >"$tmp/config.h"
-    cat "$ac_result" >>"$tmp/config.h"
-    if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+    } >"$tmp/config.h" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
+    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
-      rm -f $ac_file
-      mv "$tmp/config.h" $ac_file
+      rm -f "$ac_file"
+      mv "$tmp/config.h" "$ac_file" \
+	|| { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
     fi
   else
-    echo "/* $configure_input  */"
-    cat "$ac_result"
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
+$as_echo "$as_me: error: could not create -" >&2;}
+   { (exit 1); exit 1; }; }
   fi
-  rm -f "$tmp/out12"
-# Compute $ac_file's index in $config_headers.
-_am_arg=$ac_file
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
 _am_stamp_count=1
 for _am_header in $config_headers :; do
   case $_am_header in
@@ -22720,7 +23332,7 @@ $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$_am_arg" : 'X\(//\)[^/]' \| \
 	 X"$_am_arg" : 'X\(//\)$' \| \
 	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$_am_arg" |
+$as_echo X"$_am_arg" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -22740,8 +23352,8 @@ echo X"$_am_arg" |
 	  s/.*/./; q'`/stamp-h$_am_stamp_count
  ;;
 
-  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
-echo "$as_me: executing $ac_file commands" >&6;}
+  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
  ;;
   esac
 
@@ -22763,7 +23375,7 @@ $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$mf" : 'X\(//\)[^/]' \| \
 	 X"$mf" : 'X\(//\)$' \| \
 	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$mf" |
+$as_echo X"$mf" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -22807,7 +23419,7 @@ $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$file" : 'X\(//\)[^/]' \| \
 	 X"$file" : 'X\(//\)$' \| \
 	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$file" |
+$as_echo X"$file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -22833,7 +23445,7 @@ echo X"$file" |
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -22842,7 +23454,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$as_dir" |
+$as_echo X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -22863,8 +23475,8 @@ echo X"$as_dir" |
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
+  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
    { (exit 1); exit 1; }; }; }
     # echo "creating $dirpart/$file"
     echo '# dummy' > "$dirpart/$file"
@@ -22881,6 +23493,11 @@ _ACEOF
 chmod +x $CONFIG_STATUS
 ac_clean_files=$ac_clean_files_save
 
+test $ac_write_fail = 0 ||
+  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+
 
 # configure is writing to config.log, and then calls config.status.
 # config.status does its own redirection, appending to config.log.
@@ -22902,5 +23519,9 @@ if test "$no_create" != yes; then
   # would make configure fail if this is the last instruction.
   $ac_cs_success || { (exit 1); exit 1; }
 fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
 
 
diff --git a/libs/glibmm2/glibmm/Makefile.in b/libs/glibmm2/glibmm/Makefile.in
index dc59f08..66e4042 100644
--- a/libs/glibmm2/glibmm/Makefile.in
+++ b/libs/glibmm2/glibmm/Makefile.in
@@ -103,6 +103,7 @@ CXXFLAGS = @CXXFLAGS@
 CYGPATH_W = @CYGPATH_W@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -137,6 +138,7 @@ M4 = @M4@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
 PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
@@ -201,6 +203,7 @@ sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 SUBDIRS = 
diff --git a/libs/glibmm2/scripts/config.guess b/libs/glibmm2/scripts/config.guess
index 951383e..f32079a 100755
--- a/libs/glibmm2/scripts/config.guess
+++ b/libs/glibmm2/scripts/config.guess
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
 
-timestamp='2007-05-17'
+timestamp='2008-01-23'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -56,8 +56,8 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -330,7 +330,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
-    i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*)
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
@@ -532,7 +532,7 @@ EOF
 		echo rs6000-ibm-aix3.2
 	fi
 	exit ;;
-    *:AIX:*:[45])
+    *:AIX:*:[456])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
@@ -793,12 +793,15 @@ EOF
 	exit ;;
     *:Interix*:[3456]*)
     	case ${UNAME_MACHINE} in
-	    x86) 
+	    x86)
 		echo i586-pc-interix${UNAME_RELEASE}
 		exit ;;
 	    EM64T | authenticamd)
 		echo x86_64-unknown-interix${UNAME_RELEASE}
 		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
 	esac ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
@@ -833,7 +836,14 @@ EOF
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
 	exit ;;
     avr32*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -954,8 +964,8 @@ EOF
     x86_64:Linux:*:*)
 	echo x86_64-unknown-linux-gnu
 	exit ;;
-    xtensa:Linux:*:*)
-    	echo xtensa-unknown-linux-gnu
+    xtensa*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     i*86:Linux:*:*)
 	# The BFD linker knows what the default object file format is, so
@@ -1474,9 +1484,9 @@ This script, last modified $timestamp, has failed to recognize
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 and
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
diff --git a/libs/glibmm2/scripts/config.sub b/libs/glibmm2/scripts/config.sub
index c060f44..6759825 100755
--- a/libs/glibmm2/scripts/config.sub
+++ b/libs/glibmm2/scripts/config.sub
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
 
-timestamp='2007-04-29'
+timestamp='2008-01-16'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -72,8 +72,8 @@ Report bugs and patches to <config-patches at gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -369,10 +369,14 @@ case $basic_machine in
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-	| xstormy16-* | xtensa-* \
+	| xstormy16-* | xtensa*-* \
 	| ymp-* \
 	| z8k-*)
 		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
 	386bsd)
@@ -443,6 +447,14 @@ case $basic_machine in
 		basic_machine=ns32k-sequent
 		os=-dynix
 		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
@@ -475,8 +487,8 @@ case $basic_machine in
 		basic_machine=craynv-cray
 		os=-unicosmp
 		;;
-	cr16c)
-		basic_machine=cr16c-unknown
+	cr16)
+		basic_machine=cr16-unknown
 		os=-elf
 		;;
 	crds | unos)
@@ -668,6 +680,14 @@ case $basic_machine in
 		basic_machine=m68k-isi
 		os=-sysv
 		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	m88k-omron*)
 		basic_machine=m88k-omron
 		;;
@@ -813,6 +833,14 @@ case $basic_machine in
 		basic_machine=i860-intel
 		os=-osf
 		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	pbd)
 		basic_machine=sparc-tti
 		;;
@@ -1021,6 +1049,10 @@ case $basic_machine in
 		basic_machine=tic6x-unknown
 		os=-coff
 		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
 	tx39)
 		basic_machine=mipstx39-unknown
 		;;
diff --git a/libs/glibmm2/scripts/install-sh b/libs/glibmm2/scripts/install-sh
index 4d4a951..a5897de 100755
--- a/libs/glibmm2/scripts/install-sh
+++ b/libs/glibmm2/scripts/install-sh
@@ -1,7 +1,7 @@
 #!/bin/sh
 # install - install a program, script, or datafile
 
-scriptversion=2005-05-14.22
+scriptversion=2006-12-25.00
 
 # This originates from X11R5 (mit/util/scripts/install.sh), which was
 # later released in X11R6 (xc/config/util/install.sh) with the
@@ -39,38 +39,68 @@ scriptversion=2005-05-14.22
 # when there is no Makefile.
 #
 # This script is compatible with the BSD install script, but was written
-# from scratch.  It can only install one file at a time, a restriction
-# shared with many OS's install programs.
+# from scratch.
+
+nl='
+'
+IFS=" ""	$nl"
 
 # set DOITPROG to echo to test this script
 
 # Don't use :- since 4.3BSD and earlier shells don't like it.
-doit="${DOITPROG-}"
+doit=${DOITPROG-}
+if test -z "$doit"; then
+  doit_exec=exec
+else
+  doit_exec=$doit
+fi
 
-# put in absolute paths if you don't have them in your path; or use env. vars.
+# Put in absolute file names if you don't have them in your path;
+# or use environment vars.
+
+chgrpprog=${CHGRPPROG-chgrp}
+chmodprog=${CHMODPROG-chmod}
+chownprog=${CHOWNPROG-chown}
+cmpprog=${CMPPROG-cmp}
+cpprog=${CPPROG-cp}
+mkdirprog=${MKDIRPROG-mkdir}
+mvprog=${MVPROG-mv}
+rmprog=${RMPROG-rm}
+stripprog=${STRIPPROG-strip}
+
+posix_glob='?'
+initialize_posix_glob='
+  test "$posix_glob" != "?" || {
+    if (set -f) 2>/dev/null; then
+      posix_glob=
+    else
+      posix_glob=:
+    fi
+  }
+'
 
-mvprog="${MVPROG-mv}"
-cpprog="${CPPROG-cp}"
-chmodprog="${CHMODPROG-chmod}"
-chownprog="${CHOWNPROG-chown}"
-chgrpprog="${CHGRPPROG-chgrp}"
-stripprog="${STRIPPROG-strip}"
-rmprog="${RMPROG-rm}"
-mkdirprog="${MKDIRPROG-mkdir}"
+posix_mkdir=
+
+# Desired mode of installed file.
+mode=0755
 
-chmodcmd="$chmodprog 0755"
-chowncmd=
 chgrpcmd=
-stripcmd=
+chmodcmd=$chmodprog
+chowncmd=
+mvcmd=$mvprog
 rmcmd="$rmprog -f"
-mvcmd="$mvprog"
+stripcmd=
+
 src=
 dst=
 dir_arg=
-dstarg=
+dst_arg=
+
+copy_on_change=false
 no_target_directory=
 
-usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
+usage="\
+Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
    or: $0 [OPTION]... SRCFILES... DIRECTORY
    or: $0 [OPTION]... -t DIRECTORY SRCFILES...
    or: $0 [OPTION]... -d DIRECTORIES...
@@ -80,81 +110,86 @@ In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
 In the 4th, create DIRECTORIES.
 
 Options:
--c         (ignored)
--d         create directories instead of installing files.
--g GROUP   $chgrpprog installed files to GROUP.
--m MODE    $chmodprog installed files to MODE.
--o USER    $chownprog installed files to USER.
--s         $stripprog installed files.
--t DIRECTORY  install into DIRECTORY.
--T         report an error if DSTFILE is a directory.
---help     display this help and exit.
---version  display version info and exit.
+     --help     display this help and exit.
+     --version  display version info and exit.
+
+  -c            (ignored)
+  -C            install only if different (preserve the last data modification time)
+  -d            create directories instead of installing files.
+  -g GROUP      $chgrpprog installed files to GROUP.
+  -m MODE       $chmodprog installed files to MODE.
+  -o USER       $chownprog installed files to USER.
+  -s            $stripprog installed files.
+  -t DIRECTORY  install into DIRECTORY.
+  -T            report an error if DSTFILE is a directory.
 
 Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
+  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
+  RMPROG STRIPPROG
 "
 
-while test -n "$1"; do
+while test $# -ne 0; do
   case $1 in
-    -c) shift
-        continue;;
+    -c) ;;
+
+    -C) copy_on_change=true;;
 
-    -d) dir_arg=true
-        shift
-        continue;;
+    -d) dir_arg=true;;
 
     -g) chgrpcmd="$chgrpprog $2"
-        shift
-        shift
-        continue;;
+	shift;;
 
     --help) echo "$usage"; exit $?;;
 
-    -m) chmodcmd="$chmodprog $2"
-        shift
-        shift
-        continue;;
+    -m) mode=$2
+	case $mode in
+	  *' '* | *'	'* | *'
+'*	  | *'*'* | *'?'* | *'['*)
+	    echo "$0: invalid mode: $mode" >&2
+	    exit 1;;
+	esac
+	shift;;
 
     -o) chowncmd="$chownprog $2"
-        shift
-        shift
-        continue;;
+	shift;;
 
-    -s) stripcmd=$stripprog
-        shift
-        continue;;
+    -s) stripcmd=$stripprog;;
 
-    -t) dstarg=$2
-	shift
-	shift
-	continue;;
+    -t) dst_arg=$2
+	shift;;
 
-    -T) no_target_directory=true
-	shift
-	continue;;
+    -T) no_target_directory=true;;
 
     --version) echo "$0 $scriptversion"; exit $?;;
 
-    *)  # When -d is used, all remaining arguments are directories to create.
-	# When -t is used, the destination is already specified.
-	test -n "$dir_arg$dstarg" && break
-        # Otherwise, the last argument is the destination.  Remove it from $@.
-	for arg
-	do
-          if test -n "$dstarg"; then
-	    # $@ is not empty: it contains at least $arg.
-	    set fnord "$@" "$dstarg"
-	    shift # fnord
-	  fi
-	  shift # arg
-	  dstarg=$arg
-	done
+    --)	shift
 	break;;
+
+    -*)	echo "$0: invalid option: $1" >&2
+	exit 1;;
+
+    *)  break;;
   esac
+  shift
 done
 
-if test -z "$1"; then
+if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
+  # When -d is used, all remaining arguments are directories to create.
+  # When -t is used, the destination is already specified.
+  # Otherwise, the last argument is the destination.  Remove it from $@.
+  for arg
+  do
+    if test -n "$dst_arg"; then
+      # $@ is not empty: it contains at least $arg.
+      set fnord "$@" "$dst_arg"
+      shift # fnord
+    fi
+    shift # arg
+    dst_arg=$arg
+  done
+fi
+
+if test $# -eq 0; then
   if test -z "$dir_arg"; then
     echo "$0: no input file specified." >&2
     exit 1
@@ -164,24 +199,47 @@ if test -z "$1"; then
   exit 0
 fi
 
+if test -z "$dir_arg"; then
+  trap '(exit $?); exit' 1 2 13 15
+
+  # Set umask so as not to create temps with too-generous modes.
+  # However, 'strip' requires both read and write access to temps.
+  case $mode in
+    # Optimize common cases.
+    *644) cp_umask=133;;
+    *755) cp_umask=22;;
+
+    *[0-7])
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw='% 200'
+      fi
+      cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;;
+    *)
+      if test -z "$stripcmd"; then
+	u_plus_rw=
+      else
+	u_plus_rw=,u+rw
+      fi
+      cp_umask=$mode$u_plus_rw;;
+  esac
+fi
+
 for src
 do
   # Protect names starting with `-'.
   case $src in
-    -*) src=./$src ;;
+    -*) src=./$src;;
   esac
 
   if test -n "$dir_arg"; then
     dst=$src
-    src=
-
-    if test -d "$dst"; then
-      mkdircmd=:
-      chmodcmd=
-    else
-      mkdircmd=$mkdirprog
-    fi
+    dstdir=$dst
+    test -d "$dstdir"
+    dstdir_status=$?
   else
+
     # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
     # might cause directories to be created, which would be especially bad
     # if $src (and thus $dsttmp) contains '*'.
@@ -190,71 +248,199 @@ do
       exit 1
     fi
 
-    if test -z "$dstarg"; then
+    if test -z "$dst_arg"; then
       echo "$0: no destination specified." >&2
       exit 1
     fi
 
-    dst=$dstarg
+    dst=$dst_arg
     # Protect names starting with `-'.
     case $dst in
-      -*) dst=./$dst ;;
+      -*) dst=./$dst;;
     esac
 
     # If destination is a directory, append the input filename; won't work
     # if double slashes aren't ignored.
     if test -d "$dst"; then
       if test -n "$no_target_directory"; then
-	echo "$0: $dstarg: Is a directory" >&2
+	echo "$0: $dst_arg: Is a directory" >&2
 	exit 1
       fi
-      dst=$dst/`basename "$src"`
+      dstdir=$dst
+      dst=$dstdir/`basename "$src"`
+      dstdir_status=0
+    else
+      # Prefer dirname, but fall back on a substitute if dirname fails.
+      dstdir=`
+	(dirname "$dst") 2>/dev/null ||
+	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	     X"$dst" : 'X\(//\)[^/]' \| \
+	     X"$dst" : 'X\(//\)$' \| \
+	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
+	echo X"$dst" |
+	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)[^/].*/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\/\)$/{
+		   s//\1/
+		   q
+		 }
+		 /^X\(\/\).*/{
+		   s//\1/
+		   q
+		 }
+		 s/.*/./; q'
+      `
+
+      test -d "$dstdir"
+      dstdir_status=$?
     fi
   fi
 
-  # This sed command emulates the dirname command.
-  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
+  obsolete_mkdir_used=false
+
+  if test $dstdir_status != 0; then
+    case $posix_mkdir in
+      '')
+	# Create intermediate dirs using mode 755 as modified by the umask.
+	# This is like FreeBSD 'install' as of 1997-10-28.
+	umask=`umask`
+	case $stripcmd.$umask in
+	  # Optimize common cases.
+	  *[2367][2367]) mkdir_umask=$umask;;
+	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
+
+	  *[0-7])
+	    mkdir_umask=`expr $umask + 22 \
+	      - $umask % 100 % 40 + $umask % 20 \
+	      - $umask % 10 % 4 + $umask % 2
+	    `;;
+	  *) mkdir_umask=$umask,go-w;;
+	esac
+
+	# With -d, create the new directory with the user-specified mode.
+	# Otherwise, rely on $mkdir_umask.
+	if test -n "$dir_arg"; then
+	  mkdir_mode=-m$mode
+	else
+	  mkdir_mode=
+	fi
+
+	posix_mkdir=false
+	case $umask in
+	  *[123567][0-7][0-7])
+	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
+	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
+	    ;;
+	  *)
+	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
+	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
+
+	    if (umask $mkdir_umask &&
+		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
+	    then
+	      if test -z "$dir_arg" || {
+		   # Check for POSIX incompatibilities with -m.
+		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
+		   # other-writeable bit of parent directory when it shouldn't.
+		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
+		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
+		   case $ls_ld_tmpdir in
+		     d????-?r-*) different_mode=700;;
+		     d????-?--*) different_mode=755;;
+		     *) false;;
+		   esac &&
+		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
+		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
+		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
+		   }
+		 }
+	      then posix_mkdir=:
+	      fi
+	      rmdir "$tmpdir/d" "$tmpdir"
+	    else
+	      # Remove any dirs left behind by ancient mkdir implementations.
+	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
+	    fi
+	    trap '' 0;;
+	esac;;
+    esac
 
-  # Make sure that the destination directory exists.
+    if
+      $posix_mkdir && (
+	umask $mkdir_umask &&
+	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
+      )
+    then :
+    else
 
-  # Skip lots of stat calls in the usual case.
-  if test ! -d "$dstdir"; then
-    defaultIFS='
-	 '
-    IFS="${IFS-$defaultIFS}"
+      # The umask is ridiculous, or mkdir does not conform to POSIX,
+      # or it failed possibly due to a race condition.  Create the
+      # directory the slow way, step by step, checking for races as we go.
 
-    oIFS=$IFS
-    # Some sh's can't handle IFS=/ for some reason.
-    IFS='%'
-    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
-    shift
-    IFS=$oIFS
+      case $dstdir in
+	/*) prefix='/';;
+	-*) prefix='./';;
+	*)  prefix='';;
+      esac
 
-    pathcomp=
+      eval "$initialize_posix_glob"
 
-    while test $# -ne 0 ; do
-      pathcomp=$pathcomp$1
+      oIFS=$IFS
+      IFS=/
+      $posix_glob set -f
+      set fnord $dstdir
       shift
-      if test ! -d "$pathcomp"; then
-        $mkdirprog "$pathcomp"
-	# mkdir can fail with a `File exist' error in case several
-	# install-sh are creating the directory concurrently.  This
-	# is OK.
-	test -d "$pathcomp" || exit
+      $posix_glob set +f
+      IFS=$oIFS
+
+      prefixes=
+
+      for d
+      do
+	test -z "$d" && continue
+
+	prefix=$prefix$d
+	if test -d "$prefix"; then
+	  prefixes=
+	else
+	  if $posix_mkdir; then
+	    (umask=$mkdir_umask &&
+	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
+	    # Don't fail if two instances are running concurrently.
+	    test -d "$prefix" || exit 1
+	  else
+	    case $prefix in
+	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
+	      *) qprefix=$prefix;;
+	    esac
+	    prefixes="$prefixes '$qprefix'"
+	  fi
+	fi
+	prefix=$prefix/
+      done
+
+      if test -n "$prefixes"; then
+	# Don't fail if two instances are running concurrently.
+	(umask $mkdir_umask &&
+	 eval "\$doit_exec \$mkdirprog $prefixes") ||
+	  test -d "$dstdir" || exit 1
+	obsolete_mkdir_used=true
       fi
-      pathcomp=$pathcomp/
-    done
+    fi
   fi
 
   if test -n "$dir_arg"; then
-    $doit $mkdircmd "$dst" \
-      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
-
+    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
+    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
+      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
   else
-    dstfile=`basename "$dst"`
 
     # Make a couple of temp file names in the proper directory.
     dsttmp=$dstdir/_inst.$$_
@@ -262,10 +448,9 @@ do
 
     # Trap to clean up those temp files at exit.
     trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-    trap '(exit $?); exit' 1 2 13 15
 
     # Copy the file name to the temp name.
-    $doit $cpprog "$src" "$dsttmp" &&
+    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
 
     # and set any options; do chmod last to preserve setuid bits.
     #
@@ -273,48 +458,59 @@ do
     # ignore errors from any of these, just make sure not to ignore
     # errors from the above "$doit $cpprog $src $dsttmp" command.
     #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
-      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
-      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
-      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
-
-    # Now rename the file to the real destination.
-    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
-      || {
-	   # The rename failed, perhaps because mv can't rename something else
-	   # to itself, or perhaps because mv is so ancient that it does not
-	   # support -f.
-
-	   # Now remove or move aside any old file at destination location.
-	   # We try this two ways since rm can't unlink itself on some
-	   # systems and the destination file might be busy for other
-	   # reasons.  In this case, the final cleanup might fail but the new
-	   # file should still install successfully.
-	   {
-	     if test -f "$dstdir/$dstfile"; then
-	       $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
-	       || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
-	       || {
-		 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
-		 (exit 1); exit 1
-	       }
-	     else
-	       :
-	     fi
-	   } &&
-
-	   # Now rename the file to the real destination.
-	   $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
-	 }
-    }
-  fi || { (exit 1); exit 1; }
+    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
+    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
+    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
+    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
+
+    # If -C, don't bother to copy if it wouldn't change the file.
+    if $copy_on_change &&
+       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
+       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
+
+       eval "$initialize_posix_glob" &&
+       $posix_glob set -f &&
+       set X $old && old=:$2:$4:$5:$6 &&
+       set X $new && new=:$2:$4:$5:$6 &&
+       $posix_glob set +f &&
+
+       test "$old" = "$new" &&
+       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
+    then
+      rm -f "$dsttmp"
+    else
+      # Rename the file to the real destination.
+      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
+
+      # The rename failed, perhaps because mv can't rename something else
+      # to itself, or perhaps because mv is so ancient that it does not
+      # support -f.
+      {
+	# Now remove or move aside any old file at destination location.
+	# We try this two ways since rm can't unlink itself on some
+	# systems and the destination file might be busy for other
+	# reasons.  In this case, the final cleanup might fail but the new
+	# file should still install successfully.
+	{
+	  test ! -f "$dst" ||
+	  $doit $rmcmd -f "$dst" 2>/dev/null ||
+	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
+	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
+	  } ||
+	  { echo "$0: cannot unlink or rename $dst" >&2
+	    (exit 1); exit 1
+	  }
+	} &&
+
+	# Now rename the file to the real destination.
+	$doit $mvcmd "$dsttmp" "$dst"
+      }
+    fi || exit 1
+
+    trap '' 0
+  fi
 done
 
-# The final little trick to "correctly" pass the exit status to the exit trap.
-{
-  (exit 0); exit 0
-}
-
 # Local variables:
 # eval: (add-hook 'write-file-hooks 'time-stamp)
 # time-stamp-start: "scriptversion="
diff --git a/libs/glibmm2/scripts/ltmain.sh b/libs/glibmm2/scripts/ltmain.sh
index 8e5a930..2bcb848 100644
--- a/libs/glibmm2/scripts/ltmain.sh
+++ b/libs/glibmm2/scripts/ltmain.sh
@@ -2,7 +2,7 @@
 # NOTE: Changing this file will not affect anything until you rerun configure.
 #
 # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007  Free Software Foundation, Inc.
+# 2007, 2008  Free Software Foundation, Inc.
 # Originally by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
 #
 # This program is free software; you can redistribute it and/or modify
@@ -43,8 +43,8 @@ EXIT_FAILURE=1
 
 PROGRAM=ltmain.sh
 PACKAGE=libtool
-VERSION=1.5.24
-TIMESTAMP=" (1.1220.2.456 2007/06/24 02:25:32)"
+VERSION=1.5.26
+TIMESTAMP=" (1.1220.2.493 2008/02/01 16:58:18)"
 
 # Be Bourne compatible (taken from Autoconf:_AS_BOURNE_COMPATIBLE).
 if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -113,15 +113,21 @@ esac
 # These must not be set unconditionally because not all systems understand
 # e.g. LANG=C (notably SCO).
 # We save the old values to restore during execute mode.
-for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+lt_env=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
 do
   eval "if test \"\${$lt_var+set}\" = set; then
 	  save_$lt_var=\$$lt_var
+	  lt_env=\"$lt_var=\$$lt_var \$lt_env\"
 	  $lt_var=C
 	  export $lt_var
 	fi"
 done
 
+if test -n "$lt_env"; then
+  lt_env="env $lt_env"
+fi
+
 # Make sure IFS has a sensible default
 lt_nl='
 '
@@ -485,7 +491,7 @@ do
     echo "\
 $PROGRAM (GNU $PACKAGE) $VERSION$TIMESTAMP
 
-Copyright (C) 2007  Free Software Foundation, Inc.
+Copyright (C) 2008  Free Software Foundation, Inc.
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
     exit $?
@@ -788,6 +794,7 @@ if test -z "$show_help"; then
     *.for) xform=for ;;
     *.java) xform=java ;;
     *.obj) xform=obj ;;
+    *.sx) xform=sx ;;
     esac
 
     libobj=`$echo "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
@@ -956,7 +963,7 @@ EOF
       $run $rm "$lobj" "$output_obj"
 
       $show "$command"
-      if $run eval "$command"; then :
+      if $run eval $lt_env "$command"; then :
       else
 	test -n "$output_obj" && $run $rm $removelist
 	exit $EXIT_FAILURE
@@ -1028,7 +1035,7 @@ EOF
       command="$command$suppress_output"
       $run $rm "$obj" "$output_obj"
       $show "$command"
-      if $run eval "$command"; then :
+      if $run eval $lt_env "$command"; then :
       else
 	$run $rm $removelist
 	exit $EXIT_FAILURE
@@ -1161,6 +1168,7 @@ EOF
     thread_safe=no
     vinfo=
     vinfo_number=no
+    single_module="${wl}-single_module"
 
     func_infer_tag $base_compile
 
@@ -1646,6 +1654,11 @@ EOF
 	continue
 	;;
 
+      -multi_module)
+	single_module="${wl}-multi_module"
+	continue
+	;;
+
       -module)
 	module=yes
 	continue
@@ -2149,7 +2162,12 @@ EOF
 	    continue
 	  fi
 	  name=`$echo "X$deplib" | $Xsed -e 's/^-l//'`
-	  for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+	  if test "$linkmode" = lib; then
+	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+	  else
+	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+	  fi
+	  for searchdir in $searchdirs; do
 	    for search_ext in .la $std_shrext .so .a; do
 	      # Search the libtool library
 	      lib="$searchdir/lib${name}${search_ext}"
@@ -2945,12 +2963,18 @@ EOF
 		  # we do not want to link against static libs,
 		  # but need to link against shared
 		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
+		  eval deplibdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
 		  if test -n "$deplibrary_names" ; then
 		    for tmp in $deplibrary_names ; do
 		      depdepl=$tmp
 		    done
-		    if test -f "$path/$depdepl" ; then
+		    if test -f "$deplibdir/$depdepl" ; then
+		      depdepl="$deplibdir/$depdepl"
+	      	    elif test -f "$path/$depdepl" ; then
 		      depdepl="$path/$depdepl"
+		    else
+		      # Can't find it, oh well...
+		      depdepl=
 		    fi
 		    # do not add paths which are already there
 		    case " $newlib_search_path " in
@@ -3098,9 +3122,10 @@ EOF
 
     case $linkmode in
     oldlib)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2
-      fi
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for archives" 1>&2 ;;
+      esac
 
       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 	$echo "$modename: warning: \`-dlopen' is ignored for archives" 1>&2
@@ -4237,9 +4262,10 @@ EOF
       ;;
 
     obj)
-      if test -n "$deplibs"; then
-	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2
-      fi
+      case " $deplibs" in
+      *\ -l* | *\ -L*)
+	$echo "$modename: warning: \`-l' and \`-L' are ignored for objects" 1>&2 ;;
+      esac
 
       if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
 	$echo "$modename: warning: \`-dlopen' is ignored for objects" 1>&2
@@ -6478,7 +6504,7 @@ relink_command=\"$relink_command\""
       fi
 
       # Restore saved environment variables
-      for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
       do
 	eval "if test \"\${save_$lt_var+set}\" = set; then
 		$lt_var=\$save_$lt_var; export $lt_var
diff --git a/libs/glibmm2/scripts/missing b/libs/glibmm2/scripts/missing
index 894e786..1c8ff70 100755
--- a/libs/glibmm2/scripts/missing
+++ b/libs/glibmm2/scripts/missing
@@ -1,9 +1,9 @@
 #! /bin/sh
 # Common stub for a few missing GNU programs while installing.
 
-scriptversion=2005-06-08.21
+scriptversion=2006-05-10.23
 
-# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
+# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006
 #   Free Software Foundation, Inc.
 # Originally by Fran,cois Pinard <pinard at iro.umontreal.ca>, 1996.
 
@@ -33,6 +33,8 @@ if test $# -eq 0; then
 fi
 
 run=:
+sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p'
+sed_minuso='s/.* -o \([^ ]*\).*/\1/p'
 
 # In the cases where this matters, `missing' is being run in the
 # srcdir already.
@@ -44,7 +46,7 @@ fi
 
 msg="missing on your system"
 
-case "$1" in
+case $1 in
 --run)
   # Try to run requested program, and just exit if it succeeds.
   run=
@@ -77,6 +79,7 @@ Supported PROGRAM values:
   aclocal      touch file \`aclocal.m4'
   autoconf     touch file \`configure'
   autoheader   touch file \`config.h.in'
+  autom4te     touch the output file, or create a stub one
   automake     touch all \`Makefile.in' files
   bison        create \`y.tab.[ch]', if possible, from existing .[ch]
   flex         create \`lex.yy.c', if possible, from existing .c
@@ -106,7 +109,7 @@ esac
 # Now exit if we have it, but it failed.  Also exit now if we
 # don't have it and --version was passed (most likely to detect
 # the program).
-case "$1" in
+case $1 in
   lex|yacc)
     # Not GNU programs, they don't have --version.
     ;;
@@ -135,7 +138,7 @@ esac
 
 # If it does not exist, or fails to run (possibly an outdated version),
 # try to emulate it.
-case "$1" in
+case $1 in
   aclocal*)
     echo 1>&2 "\
 WARNING: \`$1' is $msg.  You should only need it if
@@ -164,7 +167,7 @@ WARNING: \`$1' is $msg.  You should only need it if
     test -z "$files" && files="config.h"
     touch_files=
     for f in $files; do
-      case "$f" in
+      case $f in
       *:*) touch_files="$touch_files "`echo "$f" |
 				       sed -e 's/^[^:]*://' -e 's/:.*//'`;;
       *) touch_files="$touch_files $f.in";;
@@ -192,8 +195,8 @@ WARNING: \`$1' is needed, but is $msg.
          You can get \`$1' as part of \`Autoconf' from any GNU
          archive site."
 
-    file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
-    test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
     if test -f "$file"; then
 	touch $file
     else
@@ -214,25 +217,25 @@ WARNING: \`$1' $msg.  You should only need it if
          in order for those modifications to take effect.  You can get
          \`Bison' from any GNU archive site."
     rm -f y.tab.c y.tab.h
-    if [ $# -ne 1 ]; then
+    if test $# -ne 1; then
         eval LASTARG="\${$#}"
-	case "$LASTARG" in
+	case $LASTARG in
 	*.y)
 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
-	    if [ -f "$SRCFILE" ]; then
+	    if test -f "$SRCFILE"; then
 	         cp "$SRCFILE" y.tab.c
 	    fi
 	    SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
-	    if [ -f "$SRCFILE" ]; then
+	    if test -f "$SRCFILE"; then
 	         cp "$SRCFILE" y.tab.h
 	    fi
 	  ;;
 	esac
     fi
-    if [ ! -f y.tab.h ]; then
+    if test ! -f y.tab.h; then
 	echo >y.tab.h
     fi
-    if [ ! -f y.tab.c ]; then
+    if test ! -f y.tab.c; then
 	echo 'main() { return 0; }' >y.tab.c
     fi
     ;;
@@ -244,18 +247,18 @@ WARNING: \`$1' is $msg.  You should only need it if
          in order for those modifications to take effect.  You can get
          \`Flex' from any GNU archive site."
     rm -f lex.yy.c
-    if [ $# -ne 1 ]; then
+    if test $# -ne 1; then
         eval LASTARG="\${$#}"
-	case "$LASTARG" in
+	case $LASTARG in
 	*.l)
 	    SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
-	    if [ -f "$SRCFILE" ]; then
+	    if test -f "$SRCFILE"; then
 	         cp "$SRCFILE" lex.yy.c
 	    fi
 	  ;;
 	esac
     fi
-    if [ ! -f lex.yy.c ]; then
+    if test ! -f lex.yy.c; then
 	echo 'main() { return 0; }' >lex.yy.c
     fi
     ;;
@@ -267,11 +270,9 @@ WARNING: \`$1' is $msg.  You should only need it if
 	 \`Help2man' package in order for those modifications to take
 	 effect.  You can get \`Help2man' from any GNU archive site."
 
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
-    if test -z "$file"; then
-	file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
-    fi
-    if [ -f "$file" ]; then
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
+    if test -f "$file"; then
 	touch $file
     else
 	test -z "$file" || exec >$file
@@ -289,11 +290,17 @@ WARNING: \`$1' is $msg.  You should only need it if
          DU, IRIX).  You might want to install the \`Texinfo' package or
          the \`GNU make' package.  Grab either from any GNU archive site."
     # The file to touch is that specified with -o ...
-    file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
+    file=`echo "$*" | sed -n "$sed_output"`
+    test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"`
     if test -z "$file"; then
       # ... or it is the one specified with @setfilename ...
       infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
-      file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
+      file=`sed -n '
+	/^@setfilename/{
+	  s/.* \([^ ]*\) *$/\1/
+	  p
+	  q
+	}' $infile`
       # ... or it is derived from the source name (dir/f.texi becomes f.info)
       test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
     fi
@@ -317,13 +324,13 @@ WARNING: \`$1' is $msg.  You should only need it if
     fi
     firstarg="$1"
     if shift; then
-	case "$firstarg" in
+	case $firstarg in
 	*o*)
 	    firstarg=`echo "$firstarg" | sed s/o//`
 	    tar "$firstarg" "$@" && exit 0
 	    ;;
 	esac
-	case "$firstarg" in
+	case $firstarg in
 	*h*)
 	    firstarg=`echo "$firstarg" | sed s/h//`
 	    tar "$firstarg" "$@" && exit 0
diff --git a/libs/gtkmm2ext/gtkmm2ext/utils.h b/libs/gtkmm2ext/gtkmm2ext/utils.h
index ca1b88a..7f986e7 100644
--- a/libs/gtkmm2ext/gtkmm2ext/utils.h
+++ b/libs/gtkmm2ext/gtkmm2ext/utils.h
@@ -36,15 +36,31 @@ namespace Gtk {
 namespace Gtkmm2ext {
 	void init ();
 
-	void get_ink_pixel_size (Glib::RefPtr<Pango::Layout>, int& width, int& height);
+	void get_ink_pixel_size (Glib::RefPtr<Pango::Layout>, 
+				 int& width, int& height);
 
 	void set_size_request_to_display_given_text (Gtk::Widget &w,
 						     const gchar *text,
 						     gint hpadding,
 						     gint vpadding);
 
-	void set_popdown_strings (Gtk::ComboBoxText&, const std::vector<std::string>&);
-	
+	void set_size_request_to_display_given_text (Gtk::Widget &w,
+						     const std::vector<std::string>&,
+						     gint hpadding,
+						     gint vpadding);
+
+	void set_popdown_strings (Gtk::ComboBoxText&, 
+				  const std::vector<std::string>&, 
+				  bool set_size = false,
+				  gint hpadding = 0, gint vpadding = 0);
+
+        // Combo's are stupid - they steal space from the entry for the button
+#ifdef GTKOSX
+        static const guint32 COMBO_FUDGE = 38; 
+#else
+        static const guint32 COMBO_FUDGE = 24; 
+#endif
+
 	template<class T> void deferred_delete (void *ptr) {
 		delete static_cast<T *> (ptr);
 	}
diff --git a/libs/gtkmm2ext/sync-menu.c b/libs/gtkmm2ext/sync-menu.c
index 894446c..3b93436 100644
--- a/libs/gtkmm2ext/sync-menu.c
+++ b/libs/gtkmm2ext/sync-menu.c
@@ -313,6 +313,7 @@ carbon_menu_item_update_accelerator (CarbonMenuItem *carbon_item,
 	  gint             n_keys;
 	  gint             use_command;
 	  gboolean         add_modifiers = FALSE;
+ 	  UInt8 modifiers = 0; /* implies Command key */
 
 	  if (gdk_keymap_get_entries_for_keyval (keymap, key->accel_key,
 						 &keys, &n_keys) == 0)
@@ -347,16 +348,20 @@ carbon_menu_item_update_accelerator (CarbonMenuItem *carbon_item,
 		  }
 
 	    } else {
-		  SetMenuItemCommandKey (carbon_item->menu, carbon_item->index,
-					 true, keys[0].keycode);
+
+		  SetMenuItemCommandKey (carbon_item->menu, carbon_item->index, true, keys[0].keycode);
+		  if (keys[0].level == 1)
+		    { 
+		       /* regular key, but it needs shift to make it work */
+		       modifiers |= kMenuShiftModifier;
+		    }
+
 		  g_free (keys);
-		  add_modifiers = TRUE;
+	          add_modifiers = TRUE;
 	    }
 
 	  if (add_modifiers)
 	    {
-  	     UInt8 modifiers = 0; /* implies Command key */
-
 	      use_command = 0;
 
 	      if (key->accel_mods)
@@ -387,7 +392,6 @@ carbon_menu_item_update_accelerator (CarbonMenuItem *carbon_item,
 
 	      SetMenuItemModifiers (carbon_item->menu, carbon_item->index,
 				    modifiers);
-
 	      return;
 	    }
 	}
@@ -589,7 +593,7 @@ menu_event_handler_func (EventHandlerCallRef  event_handler_call_ref,
 					 sizeof (widget), 0, &widget);
 	      if (err == noErr && GTK_IS_WIDGET (widget))
 		{
-		  g_idle_add (dummy_gtk_menu_item_activate, widget);
+			g_idle_add ((GSourceFunc) dummy_gtk_menu_item_activate, widget);
 		  // gtk_menu_item_activate (GTK_MENU_ITEM (widget));
 		  _in_carbon_menu_event_handler = 0;
 		  return noErr;
diff --git a/libs/gtkmm2ext/utils.cc b/libs/gtkmm2ext/utils.cc
index 14523be..ca4658a 100644
--- a/libs/gtkmm2ext/utils.cc
+++ b/libs/gtkmm2ext/utils.cc
@@ -15,7 +15,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: utils.cc 2212 2007-08-01 16:19:42Z paul $
+    $Id: utils.cc 4829 2009-03-13 13:01:23Z paul $
 */
 
 #include <iostream>
@@ -59,6 +59,25 @@ Gtkmm2ext::set_size_request_to_display_given_text (Gtk::Widget &w, const gchar *
 }
 
 void
+Gtkmm2ext::set_size_request_to_display_given_text (Gtk::Widget &w, 
+						   const std::vector<std::string>& strings,
+						   gint hpadding, gint vpadding)
+	
+{
+	int width, height;
+	int width_max = 0;
+	int height_max = 0;
+	w.ensure_style ();
+	
+	for (vector<string>::const_iterator i = strings.begin(); i != strings.end(); ++i) {
+		get_ink_pixel_size (w.create_pango_layout (*i), width, height);
+		width_max = max(width_max,width);
+		height_max = max(height_max, height);
+	}
+	w.set_size_request(width_max + hpadding, height_max + vpadding);
+}
+
+void
 Gtkmm2ext::init ()
 {
 	// Necessary for gettext
@@ -66,11 +85,36 @@ Gtkmm2ext::init ()
 }
 
 void
-Gtkmm2ext::set_popdown_strings (Gtk::ComboBoxText& cr, const vector<string>& strings)
+Gtkmm2ext::set_popdown_strings (Gtk::ComboBoxText& cr, const vector<string>& strings, bool set_size, gint hpadding, gint vpadding)
 {
+	vector<string>::const_iterator i;
+
 	cr.clear ();
 
-	for (vector<string>::const_iterator i = strings.begin(); i != strings.end(); ++i) {
+	if (set_size) {
+		vector<string> copy;
+
+		for (i = strings.begin(); i != strings.end(); ++i) {
+			if ((*i).find_first_of ("gy") != string::npos) {
+				/* contains a descender */
+				break;
+			}
+		}
+		
+		if (i == strings.end()) {
+			
+			/* make a copy of the strings then add one that has a descener */
+			
+			copy = strings;
+			copy.push_back ("g");
+			set_size_request_to_display_given_text (cr, copy, COMBO_FUDGE+10+hpadding, 15+vpadding); 
+
+		} else {
+			set_size_request_to_display_given_text (cr, strings, COMBO_FUDGE+10+hpadding, 15+vpadding); 
+		}
+	}
+
+	for (i = strings.begin(); i != strings.end(); ++i) {
 		cr.append_text (*i);
 	}
 }
diff --git a/libs/libsndfile/src/config.h b/libs/libsndfile/src/config.h
index 5f18857..f17be94 100644
--- a/libs/libsndfile/src/config.h
+++ b/libs/libsndfile/src/config.h
@@ -5,7 +5,7 @@
 #define COMPILER_IS_GCC 1
 
 /* Target processor clips on negative float to int conversion. */
-#define CPU_CLIPS_NEGATIVE 1
+#define CPU_CLIPS_NEGATIVE 0
 
 /* Target processor clips on positive float to int conversion. */
 #define CPU_CLIPS_POSITIVE 0
@@ -200,19 +200,19 @@
 #define SIZEOF_INT64_T 8
 
 /* The size of a `loff_t', as computed by sizeof. */
-#define SIZEOF_LOFF_T 8
+/* #undef SIZEOF_LOFF_T */
 
 /* The size of a `long', as computed by sizeof. */
-#define SIZEOF_LONG 4
+#define SIZEOF_LONG 8
 
 /* The size of a `long long', as computed by sizeof. */
 #define SIZEOF_LONG_LONG 8
 
 /* The size of a `off64_t', as computed by sizeof. */
-#define SIZEOF_OFF64_T 0
+/* #undef SIZEOF_OFF64_T */
 
 /* The size of a `off_t', as computed by sizeof. */
-#define SIZEOF_OFF_T 4
+#define SIZEOF_OFF_T 8
 
 /* Set to sizeof (long) if unknown. */
 #define SIZEOF_SF_COUNT_T 8
@@ -221,28 +221,28 @@
 #define SIZEOF_SHORT 2
 
 /* The size of a `size_t', as computed by sizeof. */
-#define SIZEOF_SIZE_T 4
+#define SIZEOF_SIZE_T 8
 
 /* The size of a `ssize_t', as computed by sizeof. */
-#define SIZEOF_SSIZE_T 4
+#define SIZEOF_SSIZE_T 8
 
 /* The size of a `void*', as computed by sizeof. */
-#define SIZEOF_VOIDP 4
+#define SIZEOF_VOIDP 8
 
 /* Define to 1 if you have the ANSI C header files. */
 #define STDC_HEADERS 1
 
 /* Set to long if unknown. */
-#define TYPEOF_SF_COUNT_T loff_t
+#define TYPEOF_SF_COUNT_T off_t
 
 /* Set to 1 to use the native windows API */
 #define USE_WINDOWS_API 0
 
 /* Number of bits in a file offset, on hosts where this is settable. */
-#define _FILE_OFFSET_BITS 64
+/* #undef _FILE_OFFSET_BITS */
 
 /* Define to make fseeko etc. visible, on some hosts. */
-#define _LARGEFILE_SOURCE 1
+/* #undef _LARGEFILE_SOURCE */
 
 /* Define for large files, on AIX-style hosts. */
 /* #undef _LARGE_FILES */
diff --git a/libs/libsndfile/src/sndfile.h b/libs/libsndfile/src/sndfile.h
index 8cfda01..b9f0a0f 100644
--- a/libs/libsndfile/src/sndfile.h
+++ b/libs/libsndfile/src/sndfile.h
@@ -250,7 +250,7 @@ typedef	struct SNDFILE_tag	SNDFILE ;
 ** off64_t (Solaris), __int64_t (Win32) etc.
 */
 
-typedef loff_t	sf_count_t ;
+typedef off_t	sf_count_t ;
 
 #define SF_COUNT_MAX		0x7FFFFFFFFFFFFFFFLL
 
diff --git a/libs/pbd/SConscript b/libs/pbd/SConscript
index f51ddd5..96d1a77 100644
--- a/libs/pbd/SConscript
+++ b/libs/pbd/SConscript
@@ -60,6 +60,10 @@ pbd.Merge ([ libraries['sigc2'],
              libraries['glibmm2'],
              libraries['glib2'] ])
 
+
+if pbd['VST']:
+    pbd.Append(CCFLAGS="-DWINE_THREAD_SUPPORT", CPPPATH="#libs/fst")
+
 pbd.VersionBuild(['version.cc','pbd/version.h'], [])
 
 libpbd = pbd.SharedLibrary('pbd', pbd_files)
diff --git a/libs/pbd/convert.cc b/libs/pbd/convert.cc
index 3c27026..cd30f50 100644
--- a/libs/pbd/convert.cc
+++ b/libs/pbd/convert.cc
@@ -17,6 +17,7 @@
 
 */
 
+#include <cstdio>
 #include <cmath>
 #include <locale>
 #include <algorithm>
diff --git a/libs/pbd/pathscanner.cc b/libs/pbd/pathscanner.cc
index 772bc64..1dd1348 100644
--- a/libs/pbd/pathscanner.cc
+++ b/libs/pbd/pathscanner.cc
@@ -15,7 +15,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: pathscanner.cc 3334 2008-05-11 21:42:10Z drobilla $
+    $Id: pathscanner.cc 4456 2009-01-28 15:09:36Z paul $
 */
 
 #include <cstdlib>
@@ -23,6 +23,8 @@
 #include <cstring>
 #include <vector>
 #include <dirent.h>
+#include <sys/types.h>
+#include <sys/stat.h>
 
 #include <pbd/error.h>
 #include <pbd/pathscanner.h>
@@ -33,7 +35,7 @@ using namespace PBD;
 vector<string *> *
 PathScanner::operator() (const string &dirpath, const string &regexp,
 			 bool match_fullpath, bool return_fullpath, 
-			 long limit)
+			 long limit, bool recurse)
 
 {
 	int err;
@@ -58,7 +60,7 @@ PathScanner::operator() (const string &dirpath, const string &regexp,
 			 0,
 			 match_fullpath,
 			 return_fullpath,
-			 limit);
+			 limit, recurse);
 }	
 
 vector<string *> *
@@ -67,10 +69,22 @@ PathScanner::run_scan (const string &dirpath,
 		       bool (*filter)(const string &, void *),
 		       void *arg,
 		       bool match_fullpath, bool return_fullpath,
-		       long limit)
-
+		       long limit,
+		       bool recurse)
+{
+	return run_scan_internal ((vector<string*>*) 0, dirpath, memberfilter, filter, arg, match_fullpath, return_fullpath, limit, recurse);
+}
+	
+vector<string *> *
+PathScanner::run_scan_internal (vector<string *> *result,
+				const string &dirpath, 
+				bool (PathScanner::*memberfilter)(const string &),
+				bool (*filter)(const string &, void *),
+				void *arg,
+				bool match_fullpath, bool return_fullpath,
+				long limit,
+				bool recurse)
 {
-	vector<string *> *result = 0;
 	DIR *dir;
 	struct dirent *finfo;
 	char *pathcopy = strdup (dirpath.c_str());
@@ -86,7 +100,9 @@ PathScanner::run_scan (const string &dirpath,
 		return 0;
 	}
 
-	result = new vector<string *>;
+	if (result == 0) {
+		result = new vector<string *>;
+	}
 
 	do {
 
@@ -96,37 +112,51 @@ PathScanner::run_scan (const string &dirpath,
 		
 		while ((finfo = readdir (dir)) != 0) {
 
+			if ((finfo->d_name[0] == '.' && finfo->d_name[1] == '\0') ||
+			    (finfo->d_name[0] == '.' && finfo->d_name[1] == '.' && finfo->d_name[2] == '\0')) {
+				continue;
+			}
+
 			snprintf (fullpath, sizeof(fullpath), "%s/%s",
 				  thisdir, finfo->d_name);
 
-			if (match_fullpath) {
-				search_str = fullpath;
-			} else {
-				search_str = finfo->d_name;
+			struct stat statbuf;
+			if (stat (fullpath, &statbuf) < 0) {
+				continue;
 			}
 
-			/* handle either type of function ptr */
-
-			if (memberfilter) {
-				if (!(this->*memberfilter)(search_str)) {
-					continue;
-				} 
+			if (statbuf.st_mode & S_IFDIR && recurse) {
+				run_scan_internal (result, fullpath, memberfilter, filter, arg, match_fullpath, return_fullpath, limit, recurse);
 			} else {
-				if (!filter(search_str, arg)) {
-					continue;
+				
+				if (match_fullpath) {
+					search_str = fullpath;
+				} else {
+					search_str = finfo->d_name;
 				}
+				
+				/* handle either type of function ptr */
+				
+				if (memberfilter) {
+					if (!(this->*memberfilter)(search_str)) {
+						continue;
+					} 
+				} else {
+					if (!filter(search_str, arg)) {
+						continue;
+					}
+				}
+				
+				if (return_fullpath) {
+					newstr = new string (fullpath);
+				} else {
+					newstr = new string (finfo->d_name);
+				} 
+				
+				result->push_back (newstr);
+				nfound++;
 			}
-
-			if (return_fullpath) {
-				newstr = new string (fullpath);
-			} else {
-				newstr = new string (finfo->d_name);
-			} 
-
-			result->push_back (newstr);
-			nfound++;
 		}
-
 		closedir (dir);
 		
 	} while ((limit < 0 || (nfound < limit)) && (thisdir = strtok (0, ":")));
diff --git a/libs/pbd/pbd/convert.h b/libs/pbd/pbd/convert.h
index 83cd285..f8358e8 100644
--- a/libs/pbd/pbd/convert.h
+++ b/libs/pbd/pbd/convert.h
@@ -20,6 +20,7 @@
 #ifndef __pbd_convert_h__
 #define __pbd_convert_h__
 
+#include <stdint.h>
 #include <string>
 #include <vector>
 #include <sstream>
diff --git a/libs/pbd/pbd/pathscanner.h b/libs/pbd/pbd/pathscanner.h
index 0a48d4d..550aab1 100644
--- a/libs/pbd/pbd/pathscanner.h
+++ b/libs/pbd/pbd/pathscanner.h
@@ -31,55 +31,65 @@ class PathScanner
 
 {
   public:
-    vector<string *> *operator() (const string &dirpath,
-				  bool (*filter)(const string &, void *arg),
-				  void *arg, 
-				  bool match_fullpath = true,
-				  bool return_fullpath = true,
-				  long limit = -1) {
-	    return run_scan (dirpath,
-			     (bool (PathScanner::*)(const string &)) 0, 
-			     filter, 
-			     arg,
-			     match_fullpath,
-			     return_fullpath, 
-			     limit);
-    }
-
-    vector<string *> *operator() (const string &dirpath,
-				  const string &regexp,
-				  bool match_fullpath = true,
-				  bool return_fullpath = true,
-				  long limit = -1);
-
+	vector<string *> *operator() (const string &dirpath,
+				      bool (*filter)(const string &, void *arg),
+				      void *arg, 
+				      bool match_fullpath = true,
+				      bool return_fullpath = true,
+				      long limit = -1,
+				      bool recurse = false) {
+		return run_scan (dirpath,
+				 (bool (PathScanner::*)(const string &)) 0, 
+				 filter, 
+				 arg,
+				 match_fullpath,
+				 return_fullpath, 
+				 limit, recurse);
+	}
+
+	vector<string *> *operator() (const string &dirpath,
+				      const string &regexp,
+				      bool match_fullpath = true,
+				      bool return_fullpath = true,
+				      long limit = -1,
+				      bool recurse = false);
     
-    string *find_first (const string &dirpath,
-			const string &regexp,
-			bool match_fullpath = true,
-			bool return_fullpath = true);
-
-    string *find_first (const string &dirpath,
-			bool (*filter)(const string &, void *),
-			void *arg,
-			bool match_fullpath = true,
-			bool return_fullpath = true);
-
+	string *find_first (const string &dirpath,
+			    const string &regexp,
+			    bool match_fullpath = true,
+			    bool return_fullpath = true);
+	
+	string *find_first (const string &dirpath,
+			    bool (*filter)(const string &, void *),
+			    void *arg,
+			    bool match_fullpath = true,
+			    bool return_fullpath = true);
+	
   private:
-    regex_t compiled_pattern;
-    
-    bool regexp_filter (const string &str) {
-	    return regexec (&compiled_pattern, str.c_str(), 0, 0, 0) == 0;
-    }
-
-    vector<string *> *run_scan (const string &dirpath,
-				bool (PathScanner::*mfilter) (const string &),
-				bool (*filter)(const string &, void *),
-				void *arg,
-				bool match_fullpath,
-				bool return_fullpath,
-				long limit);
-    
-
+	regex_t compiled_pattern;
+	
+	bool regexp_filter (const string &str) {
+		return regexec (&compiled_pattern, str.c_str(), 0, 0, 0) == 0;
+	}
+	
+	vector<string *> *run_scan (const string &dirpath,
+				    bool (PathScanner::*mfilter) (const string &),
+				    bool (*filter)(const string &, void *),
+				    void *arg,
+				    bool match_fullpath,
+				    bool return_fullpath,
+				    long limit,
+				    bool recurse = false);
+
+	vector<string *> *run_scan_internal (vector<string*>*, 
+					     const string &dirpath,
+				    bool (PathScanner::*mfilter) (const string &),
+				    bool (*filter)(const string &, void *),
+				    void *arg,
+				    bool match_fullpath,
+				    bool return_fullpath,
+				    long limit,
+				    bool recurse = false);
 };
 
 #endif // __libmisc_pathscanner_h__
diff --git a/libs/pbd/pthread_utils.cc b/libs/pbd/pthread_utils.cc
index 2db22e0..76d62aa 100644
--- a/libs/pbd/pthread_utils.cc
+++ b/libs/pbd/pthread_utils.cc
@@ -15,7 +15,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
 
-    $Id: pthread_utils.cc 4099 2008-11-06 22:18:27Z paul $
+    $Id: pthread_utils.cc 4889 2009-03-24 15:48:34Z paul $
 */
 
 #include <map>
@@ -24,6 +24,9 @@
 #include <stdint.h>
 
 #include <pbd/pthread_utils.h>
+#ifdef WINE_THREAD_SUPPORT
+#include <fst.h>
+#endif
 
 using namespace std;
 
@@ -39,6 +42,15 @@ namespace PBD {
 
 using namespace PBD;
 
+static int thread_creator (pthread_t* thread_id, const pthread_attr_t* attr, void *(*function)(void*), void* arg) 
+{
+#ifdef WINE_THREAD_SUPPORT
+	return wine_pthread_create (thread_id, attr, function, arg);
+#else  
+	return pthread_create (thread_id, attr, function, arg);
+#endif
+}
+
 void
 PBD::notify_gui_about_thread_creation (pthread_t thread, std::string str, int request_count)
 {
@@ -70,7 +82,7 @@ pthread_create_and_store (string name, pthread_t  *thread, pthread_attr_t *attr,
 		attr = &default_attr;
 	}
 
-	if ((ret = pthread_create (thread, attr, start_routine, arg)) == 0) {
+	if ((ret = thread_creator (thread, attr, start_routine, arg)) == 0) {
 		std::pair<string,pthread_t> newpair;
 		newpair.first = name;
 		newpair.second = *thread;
diff --git a/libs/pbd/shortpath.cc b/libs/pbd/shortpath.cc
index 9f9598e..7a075a5 100644
--- a/libs/pbd/shortpath.cc
+++ b/libs/pbd/shortpath.cc
@@ -17,6 +17,7 @@
 
 */
 
+#include <stdint.h>
 #include <pbd/shortpath.h>
 
 using namespace Glib;
diff --git a/libs/pbd/stacktrace.cc b/libs/pbd/stacktrace.cc
index 1d7190f..304859c 100644
--- a/libs/pbd/stacktrace.cc
+++ b/libs/pbd/stacktrace.cc
@@ -17,6 +17,7 @@
 
 */
 
+#include <cstdio>
 #include <pbd/stacktrace.h>
 #include <iostream>
 
diff --git a/libs/rubberband/rubberband/RubberBandStretcher.h b/libs/rubberband/rubberband/RubberBandStretcher.h
index ff12baf..1e676f2 100644
--- a/libs/rubberband/rubberband/RubberBandStretcher.h
+++ b/libs/rubberband/rubberband/RubberBandStretcher.h
@@ -15,7 +15,7 @@
 #ifndef _RUBBERBANDSTRETCHER_H_
 #define _RUBBERBANDSTRETCHER_H_
     
-#define RUBBERBAND_VERSION "1.2.0-gpl"    
+#define RUBBERBAND_VERSION "1.3.0-gpl"    
 #define RUBBERBAND_API_MAJOR_VERSION 2
 #define RUBBERBAND_API_MINOR_VERSION 0
 
diff --git a/libs/rubberband/rubberband/rubberband-c.h b/libs/rubberband/rubberband/rubberband-c.h
index 78fd129..a2cfe76 100644
--- a/libs/rubberband/rubberband/rubberband-c.h
+++ b/libs/rubberband/rubberband/rubberband-c.h
@@ -19,7 +19,7 @@
 extern "C" {
 #endif
 
-#define RUBBERBAND_VERSION "1.2.0-gpl"    
+#define RUBBERBAND_VERSION "1.3.0-gpl"
 #define RUBBERBAND_API_MAJOR_VERSION 2
 #define RUBBERBAND_API_MINOR_VERSION 0
 
diff --git a/libs/rubberband/src/AudioCurve.cpp b/libs/rubberband/src/AudioCurve.cpp
index 118caf4..8cf247b 100644
--- a/libs/rubberband/src/AudioCurve.cpp
+++ b/libs/rubberband/src/AudioCurve.cpp
@@ -31,9 +31,9 @@ AudioCurve::~AudioCurve()
 }
 
 float
-AudioCurve::process(const double *R__ mag, size_t increment)
+AudioCurve::processDouble(const double *R__ mag, size_t increment)
 {
-    cerr << "WARNING: Using inefficient AudioCurve::process(double)" << endl;
+    cerr << "AudioCurve::processDouble: WARNING: Using inefficient and lossy conversion for AudioCurve::process(float)" << endl;
     float *tmp = new float[m_windowSize];
     for (int i = 0; i < int(m_windowSize); ++i) tmp[i] = float(mag[i]);
     float df = process(tmp, increment);
diff --git a/libs/rubberband/src/AudioCurve.h b/libs/rubberband/src/AudioCurve.h
index 7896308..a34a4aa 100644
--- a/libs/rubberband/src/AudioCurve.h
+++ b/libs/rubberband/src/AudioCurve.h
@@ -31,7 +31,7 @@ public:
     virtual void setWindowSize(size_t newSize) = 0;
     
     virtual float process(const float *R__ mag, size_t increment) = 0;
-    virtual float process(const double *R__ mag, size_t increment);
+    virtual float processDouble(const double *R__ mag, size_t increment);
     virtual void reset() = 0;
 
 protected:
diff --git a/libs/rubberband/src/ConstantAudioCurve.cpp b/libs/rubberband/src/ConstantAudioCurve.cpp
index 3263c53..87867f3 100644
--- a/libs/rubberband/src/ConstantAudioCurve.cpp
+++ b/libs/rubberband/src/ConstantAudioCurve.cpp
@@ -43,5 +43,11 @@ ConstantAudioCurve::process(const float *R__, size_t)
     return 1.f;
 }
 
+float
+ConstantAudioCurve::processDouble(const double *R__, size_t)
+{
+    return 1.f;
+}
+
 }
 
diff --git a/libs/rubberband/src/ConstantAudioCurve.h b/libs/rubberband/src/ConstantAudioCurve.h
index d73cabe..41a2ea0 100644
--- a/libs/rubberband/src/ConstantAudioCurve.h
+++ b/libs/rubberband/src/ConstantAudioCurve.h
@@ -29,6 +29,7 @@ public:
     virtual void setWindowSize(size_t newSize);
 
     virtual float process(const float *R__ mag, size_t increment);
+    virtual float processDouble(const double *R__ mag, size_t increment);
     virtual void reset();
 };
 
diff --git a/libs/rubberband/src/HighFrequencyAudioCurve.cpp b/libs/rubberband/src/HighFrequencyAudioCurve.cpp
index 987cf76..71108ad 100644
--- a/libs/rubberband/src/HighFrequencyAudioCurve.cpp
+++ b/libs/rubberband/src/HighFrequencyAudioCurve.cpp
@@ -51,5 +51,19 @@ HighFrequencyAudioCurve::process(const float *R__ mag, size_t increment)
     return result;
 }
 
+float
+HighFrequencyAudioCurve::processDouble(const double *R__ mag, size_t increment)
+{
+    float result = 0.0;
+
+    const int sz = m_windowSize / 2;
+
+    for (int n = 0; n <= sz; ++n) {
+        result = result + (float)mag[n] * n;
+    }
+
+    return result;
+}
+
 }
 
diff --git a/libs/rubberband/src/HighFrequencyAudioCurve.h b/libs/rubberband/src/HighFrequencyAudioCurve.h
index d42513f..b0a3ec2 100644
--- a/libs/rubberband/src/HighFrequencyAudioCurve.h
+++ b/libs/rubberband/src/HighFrequencyAudioCurve.h
@@ -31,6 +31,7 @@ public:
     virtual void setWindowSize(size_t newSize);
 
     virtual float process(const float *R__ mag, size_t increment);
+    virtual float processDouble(const double *R__ mag, size_t increment);
     virtual void reset();
 };
 
diff --git a/libs/rubberband/src/PercussiveAudioCurve.cpp b/libs/rubberband/src/PercussiveAudioCurve.cpp
index f892596..cb03afc 100644
--- a/libs/rubberband/src/PercussiveAudioCurve.cpp
+++ b/libs/rubberband/src/PercussiveAudioCurve.cpp
@@ -82,7 +82,7 @@ PercussiveAudioCurve::process(const float *R__ mag, size_t increment)
 }
 
 float
-PercussiveAudioCurve::process(const double *R__ mag, size_t increment)
+PercussiveAudioCurve::processDouble(const double *R__ mag, size_t increment)
 {
     Profiler profiler("PercussiveAudioCurve::process");
 
diff --git a/libs/rubberband/src/PercussiveAudioCurve.h b/libs/rubberband/src/PercussiveAudioCurve.h
index 29c4fb7..9f08705 100644
--- a/libs/rubberband/src/PercussiveAudioCurve.h
+++ b/libs/rubberband/src/PercussiveAudioCurve.h
@@ -30,7 +30,7 @@ public:
     virtual void setWindowSize(size_t newSize);
 
     virtual float process(const float *R__ mag, size_t increment);
-    virtual float process(const double *R__ mag, size_t increment);
+    virtual float processDouble(const double *R__ mag, size_t increment);
     virtual void reset();
 
 protected:
diff --git a/libs/rubberband/src/Resampler.cpp b/libs/rubberband/src/Resampler.cpp
index 296537f..1e47936 100644
--- a/libs/rubberband/src/Resampler.cpp
+++ b/libs/rubberband/src/Resampler.cpp
@@ -137,9 +137,11 @@ D_SRC::resample(const float *const R__ *const R__ in,
         data.data_out = *out;
     } else {
         if (incount * m_channels > m_iinsize) {
+            m_iinsize = incount * m_channels;
             m_iin = allocFloat(m_iin, m_iinsize);
         }
         if (outcount * m_channels > m_ioutsize) {
+            m_ioutsize = outcount * m_channels;
             m_iout = allocFloat(m_iout, m_ioutsize);
         }
         for (int i = 0; i < incount; ++i) {
diff --git a/libs/rubberband/src/SilentAudioCurve.cpp b/libs/rubberband/src/SilentAudioCurve.cpp
index b445646..2bc8bdc 100644
--- a/libs/rubberband/src/SilentAudioCurve.cpp
+++ b/libs/rubberband/src/SilentAudioCurve.cpp
@@ -53,7 +53,7 @@ SilentAudioCurve::process(const float *R__ mag, size_t)
 }
 
 float
-SilentAudioCurve::process(const double *R__ mag, size_t)
+SilentAudioCurve::processDouble(const double *R__ mag, size_t)
 {
     const int hs = m_windowSize / 2;
     static double threshold = pow(10.0, -6);
diff --git a/libs/rubberband/src/SilentAudioCurve.h b/libs/rubberband/src/SilentAudioCurve.h
index ec7009a..6309f9d 100644
--- a/libs/rubberband/src/SilentAudioCurve.h
+++ b/libs/rubberband/src/SilentAudioCurve.h
@@ -29,7 +29,7 @@ public:
     virtual void setWindowSize(size_t newSize);
 
     virtual float process(const float *R__ mag, size_t increment);
-    virtual float process(const double *R__ mag, size_t increment);
+    virtual float processDouble(const double *R__ mag, size_t increment);
     virtual void reset();
 };
 
diff --git a/libs/rubberband/src/SpectralDifferenceAudioCurve.cpp b/libs/rubberband/src/SpectralDifferenceAudioCurve.cpp
index 0deec53..e391e39 100644
--- a/libs/rubberband/src/SpectralDifferenceAudioCurve.cpp
+++ b/libs/rubberband/src/SpectralDifferenceAudioCurve.cpp
@@ -65,5 +65,19 @@ SpectralDifferenceAudioCurve::process(const float *R__ mag, size_t increment)
     return result;
 }
 
+float
+SpectralDifferenceAudioCurve::processDouble(const double *R__ mag, size_t increment)
+{
+    float result = 0.0;
+
+    for (size_t n = 0; n <= m_windowSize / 2; ++n) {
+        result += sqrtf(fabsf((mag[n] * mag[n]) -
+                              (m_prevMag[n] * m_prevMag[n])));
+        m_prevMag[n] = (float)mag[n];
+    }
+
+    return result;
+}
+
 }
 
diff --git a/libs/rubberband/src/SpectralDifferenceAudioCurve.h b/libs/rubberband/src/SpectralDifferenceAudioCurve.h
index 6ab0af9..4295653 100644
--- a/libs/rubberband/src/SpectralDifferenceAudioCurve.h
+++ b/libs/rubberband/src/SpectralDifferenceAudioCurve.h
@@ -31,6 +31,7 @@ public:
     virtual void setWindowSize(size_t newSize);
 
     virtual float process(const float *R__ mag, size_t increment);
+    virtual float processDouble(const double *R__ mag, size_t increment);
     virtual void reset();
 
 protected:
diff --git a/libs/rubberband/src/StretcherChannelData.cpp b/libs/rubberband/src/StretcherChannelData.cpp
index 8378975..240df23 100644
--- a/libs/rubberband/src/StretcherChannelData.cpp
+++ b/libs/rubberband/src/StretcherChannelData.cpp
@@ -104,6 +104,14 @@ RubberBandStretcher::Impl::ChannelData::construct(const std::set<size_t> &window
     for (size_t i = 0; i < initialWindowSize * oversample; ++i) {
         dblbuf[i] = 0.0;
     }
+
+    for (size_t i = 0; i < maxSize; ++i) {
+        accumulator[i] = 0.f;
+        windowAccumulator[i] = 0.f;
+    }
+
+    // Avoid dividing opening sample (which will be discarded anyway) by zero
+    windowAccumulator[0] = 1.f;
 }
 
 void
@@ -273,6 +281,16 @@ RubberBandStretcher::Impl::ChannelData::reset()
 
     if (resampler) resampler->reset();
 
+    size_t size = inbuf->getSize();
+
+    for (size_t i = 0; i < size; ++i) {
+        accumulator[i] = 0.f;
+        windowAccumulator[i] = 0.f;
+    }
+
+    // Avoid dividing opening sample (which will be discarded anyway) by zero
+    windowAccumulator[0] = 1.f;
+    
     accumulatorFill = 0;
     prevIncrement = 0;
     chunkCount = 0;
diff --git a/libs/rubberband/src/StretcherImpl.cpp b/libs/rubberband/src/StretcherImpl.cpp
index 126b001..7ec7c16 100644
--- a/libs/rubberband/src/StretcherImpl.cpp
+++ b/libs/rubberband/src/StretcherImpl.cpp
@@ -342,6 +342,19 @@ RubberBandStretcher::Impl::calculateSizes()
     size_t windowSize = m_baseWindowSize;
     size_t outputIncrement;
 
+    if (m_pitchScale <= 0.0) {
+        // This special case is likelier than one might hope, because
+        // of naive initialisations in programs that set it from a
+        // variable
+        std::cerr << "RubberBandStretcher: WARNING: Pitch scale must be greater than zero!\nResetting it from " << m_pitchScale << " to the default of 1.0: no pitch change will occur" << std::endl;
+        m_pitchScale = 1.0;
+    }
+    if (m_timeRatio <= 0.0) {
+        // Likewise
+        std::cerr << "RubberBandStretcher: WARNING: Time ratio must be greater than zero!\nResetting it from " << m_timeRatio << " to the default of 1.0: no time stretch will occur" << std::endl;
+        m_timeRatio = 1.0;
+    }
+
     double r = getEffectiveRatio();
 
     if (m_realtime) {
@@ -921,9 +934,18 @@ RubberBandStretcher::Impl::calculateStretch()
 {
     Profiler profiler("RubberBandStretcher::Impl::calculateStretch");
 
+    size_t inputDuration = m_inputDuration;
+
+    if (!m_realtime && m_expectedInputDuration > 0) {
+        if (m_expectedInputDuration != inputDuration) {
+            std::cerr << "RubberBandStretcher: WARNING: Actual study() duration differs from duration set by setExpectedInputDuration (" << m_inputDuration << " vs " << m_expectedInputDuration << ", diff = " << (m_expectedInputDuration - m_inputDuration) << "), using the latter for calculation" << std::endl;
+            inputDuration = m_expectedInputDuration;
+        }
+    }
+
     std::vector<int> increments = m_stretchCalculator->calculate
         (getEffectiveRatio(),
-         m_inputDuration,
+         inputDuration,
          m_phaseResetDf,
          m_stretchDf);
 
diff --git a/libs/rubberband/src/StretcherProcess.cpp b/libs/rubberband/src/StretcherProcess.cpp
index 59f678b..47bf77e 100644
--- a/libs/rubberband/src/StretcherProcess.cpp
+++ b/libs/rubberband/src/StretcherProcess.cpp
@@ -67,7 +67,7 @@ RubberBandStretcher::Impl::ProcessThread::run()
 
         m_dataAvailable.lock();
         if (!m_s->testInbufReadSpace(m_channel) && !m_abandoning) {
-            m_dataAvailable.wait();
+            m_dataAvailable.wait(50000); // bounded in case of abandonment
         } else {
             m_dataAvailable.unlock();
         }
@@ -448,8 +448,8 @@ RubberBandStretcher::Impl::calculateIncrements(size_t &phaseIncrementRtn,
 
     if (m_channels == 1) {
 
-        df = m_phaseResetAudioCurve->process(cd.mag, m_increment);
-        silent = (m_silentAudioCurve->process(cd.mag, m_increment) > 0.f);
+        df = m_phaseResetAudioCurve->processDouble(cd.mag, m_increment);
+        silent = (m_silentAudioCurve->processDouble(cd.mag, m_increment) > 0.f);
 
     } else {
 
@@ -464,8 +464,8 @@ RubberBandStretcher::Impl::calculateIncrements(size_t &phaseIncrementRtn,
             }
         }
     
-        df = m_phaseResetAudioCurve->process(tmp, m_increment);
-        silent = (m_silentAudioCurve->process(tmp, m_increment) > 0.f);
+        df = m_phaseResetAudioCurve->processDouble(tmp, m_increment);
+        silent = (m_silentAudioCurve->processDouble(tmp, m_increment) > 0.f);
     }
 
     int incr = m_stretchCalculator->calculateSingle
@@ -736,7 +736,7 @@ RubberBandStretcher::Impl::modifyChunk(size_t channel,
             bool inherit = false;
 
             if (laminar) {
-                if (distance >= mi) {
+                if (distance >= mi || i == count) {
                     inherit = false;
                 } else if (bandlimited && (i == bandhigh || i == bandlow)) {
                     inherit = false;
diff --git a/libs/rubberband/src/sysutils.cpp b/libs/rubberband/src/sysutils.cpp
index d52eee9..902b126 100644
--- a/libs/rubberband/src/sysutils.cpp
+++ b/libs/rubberband/src/sysutils.cpp
@@ -109,7 +109,7 @@ float *allocFloat(float *ptr, int count)
     void *allocated;
 #ifndef _WIN32
 #ifndef __APPLE__
-    if (!posix_memalign(&allocated, 16, count * sizeof(float)))
+    if (posix_memalign(&allocated, 16, count * sizeof(float)))
 #endif
 #endif
         allocated = malloc(count * sizeof(float));
@@ -133,7 +133,7 @@ double *allocDouble(double *ptr, int count)
     void *allocated;
 #ifndef _WIN32
 #ifndef __APPLE__
-    if (!posix_memalign(&allocated, 16, count * sizeof(double)))
+    if (posix_memalign(&allocated, 16, count * sizeof(double)))
 #endif
 #endif
         allocated = malloc(count * sizeof(double));
diff --git a/libs/sigc++2/Makefile.in b/libs/sigc++2/Makefile.in
index 2169914..5b14de4 100644
--- a/libs/sigc++2/Makefile.in
+++ b/libs/sigc++2/Makefile.in
@@ -105,6 +105,7 @@ CYGPATH_W = @CYGPATH_W@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -134,6 +135,7 @@ M4 = @M4@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -199,6 +201,7 @@ sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 
diff --git a/libs/sigc++2/config.guess b/libs/sigc++2/config.guess
index 951383e..f32079a 100755
--- a/libs/sigc++2/config.guess
+++ b/libs/sigc++2/config.guess
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Attempt to guess a canonical system name.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
 
-timestamp='2007-05-17'
+timestamp='2008-01-23'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -56,8 +56,8 @@ version="\
 GNU config.guess ($timestamp)
 
 Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -330,7 +330,7 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
     sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
 	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
-    i86pc:SunOS:5.*:* | ix86xen:SunOS:5.*:*)
+    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
 	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
 	exit ;;
     sun4*:SunOS:6*:*)
@@ -532,7 +532,7 @@ EOF
 		echo rs6000-ibm-aix3.2
 	fi
 	exit ;;
-    *:AIX:*:[45])
+    *:AIX:*:[456])
 	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
 	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
 		IBM_ARCH=rs6000
@@ -793,12 +793,15 @@ EOF
 	exit ;;
     *:Interix*:[3456]*)
     	case ${UNAME_MACHINE} in
-	    x86) 
+	    x86)
 		echo i586-pc-interix${UNAME_RELEASE}
 		exit ;;
 	    EM64T | authenticamd)
 		echo x86_64-unknown-interix${UNAME_RELEASE}
 		exit ;;
+	    IA64)
+		echo ia64-unknown-interix${UNAME_RELEASE}
+		exit ;;
 	esac ;;
     [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
 	echo i${UNAME_MACHINE}-pc-mks
@@ -833,7 +836,14 @@ EOF
 	echo ${UNAME_MACHINE}-pc-minix
 	exit ;;
     arm*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
+	eval $set_cc_for_build
+	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
+	    | grep -q __ARM_EABI__
+	then
+	    echo ${UNAME_MACHINE}-unknown-linux-gnu
+	else
+	    echo ${UNAME_MACHINE}-unknown-linux-gnueabi
+	fi
 	exit ;;
     avr32*:Linux:*:*)
 	echo ${UNAME_MACHINE}-unknown-linux-gnu
@@ -954,8 +964,8 @@ EOF
     x86_64:Linux:*:*)
 	echo x86_64-unknown-linux-gnu
 	exit ;;
-    xtensa:Linux:*:*)
-    	echo xtensa-unknown-linux-gnu
+    xtensa*:Linux:*:*)
+    	echo ${UNAME_MACHINE}-unknown-linux-gnu
 	exit ;;
     i*86:Linux:*:*)
 	# The BFD linker knows what the default object file format is, so
@@ -1474,9 +1484,9 @@ This script, last modified $timestamp, has failed to recognize
 the operating system you are using. It is advised that you
 download the most up to date version of the config scripts from
 
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
 and
-  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+  http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
 
 If the version you run ($0) is already up to date, please
 send the following data and any information you think might be
diff --git a/libs/sigc++2/config.sub b/libs/sigc++2/config.sub
index c060f44..6759825 100755
--- a/libs/sigc++2/config.sub
+++ b/libs/sigc++2/config.sub
@@ -1,10 +1,10 @@
 #! /bin/sh
 # Configuration validation subroutine script.
 #   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation,
-#   Inc.
+#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
+#   Free Software Foundation, Inc.
 
-timestamp='2007-04-29'
+timestamp='2008-01-16'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -72,8 +72,8 @@ Report bugs and patches to <config-patches at gnu.org>."
 version="\
 GNU config.sub ($timestamp)
 
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
-Free Software Foundation, Inc.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001,
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 This is free software; see the source for copying conditions.  There is NO
 warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
@@ -369,10 +369,14 @@ case $basic_machine in
 	| v850-* | v850e-* | vax-* \
 	| we32k-* \
 	| x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \
-	| xstormy16-* | xtensa-* \
+	| xstormy16-* | xtensa*-* \
 	| ymp-* \
 	| z8k-*)
 		;;
+	# Recognize the basic CPU types without company name, with glob match.
+	xtensa*)
+		basic_machine=$basic_machine-unknown
+		;;
 	# Recognize the various machine names and aliases which stand
 	# for a CPU type and a company and sometimes even an OS.
 	386bsd)
@@ -443,6 +447,14 @@ case $basic_machine in
 		basic_machine=ns32k-sequent
 		os=-dynix
 		;;
+	blackfin)
+		basic_machine=bfin-unknown
+		os=-linux
+		;;
+	blackfin-*)
+		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	c90)
 		basic_machine=c90-cray
 		os=-unicos
@@ -475,8 +487,8 @@ case $basic_machine in
 		basic_machine=craynv-cray
 		os=-unicosmp
 		;;
-	cr16c)
-		basic_machine=cr16c-unknown
+	cr16)
+		basic_machine=cr16-unknown
 		os=-elf
 		;;
 	crds | unos)
@@ -668,6 +680,14 @@ case $basic_machine in
 		basic_machine=m68k-isi
 		os=-sysv
 		;;
+	m68knommu)
+		basic_machine=m68k-unknown
+		os=-linux
+		;;
+	m68knommu-*)
+		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	m88k-omron*)
 		basic_machine=m88k-omron
 		;;
@@ -813,6 +833,14 @@ case $basic_machine in
 		basic_machine=i860-intel
 		os=-osf
 		;;
+	parisc)
+		basic_machine=hppa-unknown
+		os=-linux
+		;;
+	parisc-*)
+		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
+		os=-linux
+		;;
 	pbd)
 		basic_machine=sparc-tti
 		;;
@@ -1021,6 +1049,10 @@ case $basic_machine in
 		basic_machine=tic6x-unknown
 		os=-coff
 		;;
+	tile*)
+		basic_machine=tile-unknown
+		os=-linux-gnu
+		;;
 	tx39)
 		basic_machine=mipstx39-unknown
 		;;
diff --git a/libs/sigc++2/configure b/libs/sigc++2/configure
index b16e71f..ab03f1d 100755
--- a/libs/sigc++2/configure
+++ b/libs/sigc++2/configure
@@ -1,11 +1,11 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for libsigc++ 2.2.2.
+# Generated by GNU Autoconf 2.63 for libsigc++ 2.2.2.
 #
 # Report bugs to <libsigc-list at gnome.org>.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
 # gives unlimited permission to copy, distribute and modify it.
 ## --------------------- ##
@@ -17,7 +17,7 @@ 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
@@ -39,17 +39,45 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
   else
-    PATH_SEPARATOR=:
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
   fi
-  rm -f conf$$.sh
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
 fi
 
 # Support unset when possible.
@@ -65,8 +93,6 @@ fi
 # there to prevent editors from complaining about space-tab.
 # (If _AS_PATH_WALK were called with IFS unset, it would disable word
 # splitting by setting IFS to empty value.)
-as_nl='
-'
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
@@ -89,7 +115,7 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   { (exit 1); exit 1; }
 fi
 
@@ -102,17 +128,10 @@ PS2='> '
 PS4='+ '
 
 # NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
 
 # Required to use basename.
 if expr a : '\(a\)' >/dev/null 2>&1 &&
@@ -134,7 +153,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
+$as_echo X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -160,7 +179,7 @@ else
   as_have_required=no
 fi
 
-  if test $as_have_required = yes && 	 (eval ":
+  if test $as_have_required = yes &&	 (eval ":
 (as_func_return () {
   (exit \$1)
 }
@@ -242,7 +261,7 @@ IFS=$as_save_IFS
 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
@@ -263,7 +282,7 @@ _ASEOF
 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
@@ -343,10 +362,10 @@ fi
 
       if test "x$CONFIG_SHELL" != x; then
   for as_var in BASH_ENV ENV
-        do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-        done
-        export CONFIG_SHELL
-        exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+	do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
+	done
+	export CONFIG_SHELL
+	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
 fi
 
 
@@ -415,9 +434,10 @@ fi
 
 test \$exitcode = 0") || {
   echo No shell found that supports shell functions.
-  echo Please tell autoconf at gnu.org about your system,
-  echo including any error possibly output before this
-  echo message
+  echo Please tell bug-autoconf at gnu.org about your system,
+  echo including any error possibly output before this message.
+  echo This can help us improve future autoconf versions.
+  echo Configuration will now proceed without shell functions.
 }
 
 
@@ -453,7 +473,7 @@ test \$exitcode = 0") || {
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
    { (exit 1); exit 1; }; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
@@ -481,7 +501,6 @@ case `echo -n x` in
 *)
   ECHO_N='-n';;
 esac
-
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -494,19 +513,22 @@ if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
 else
   rm -f conf$$.dir
-  mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
     as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
+  fi
 else
   as_ln_s='cp -p'
 fi
@@ -531,10 +553,10 @@ else
   as_test_x='
     eval sh -c '\''
       if test -d "$1"; then
-        test -d "$1/.";
+	test -d "$1/.";
       else
 	case $1 in
-        -*)set "./$1";;
+	-*)set "./$1";;
 	esac;
 	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
 	???[sx]*):;;*)false;;esac;fi
@@ -769,126 +791,141 @@ ac_includes_default="\
 # include <unistd.h>
 #endif"
 
-ac_subst_vars='SHELL
-PATH_SEPARATOR
-PACKAGE_NAME
-PACKAGE_TARNAME
-PACKAGE_VERSION
-PACKAGE_STRING
-PACKAGE_BUGREPORT
-exec_prefix
-prefix
-program_transform_name
-bindir
-sbindir
-libexecdir
-datarootdir
-datadir
-sysconfdir
-sharedstatedir
-localstatedir
-includedir
-oldincludedir
-docdir
-infodir
-htmldir
-dvidir
-pdfdir
-psdir
-libdir
-localedir
-mandir
-DEFS
-ECHO_C
-ECHO_N
-ECHO_T
-LIBS
-build_alias
-host_alias
-target_alias
-FP_VERSION
-FP_RELEASE
-FP_MAJOR_VERSION
-FP_MINOR_VERSION
-FP_MICRO_VERSION
-INSTALL_PROGRAM
-INSTALL_SCRIPT
-INSTALL_DATA
-am__isrc
-CYGPATH_W
-PACKAGE
-VERSION
-ACLOCAL
-AUTOCONF
-AUTOMAKE
-AUTOHEADER
-MAKEINFO
-install_sh
-STRIP
-INSTALL_STRIP_PROGRAM
-mkdir_p
-AWK
-SET_MAKE
-am__leading_dot
-AMTAR
-am__tar
-am__untar
-build
-build_cpu
-build_vendor
-build_os
-host
-host_cpu
-host_vendor
-host_os
-M4
-PERL_PATH
-MAINTAINER_MODE_TRUE
-MAINTAINER_MODE_FALSE
-MAINT
-CC
-CFLAGS
-LDFLAGS
-CPPFLAGS
-ac_ct_CC
-EXEEXT
-OBJEXT
-DEPDIR
-am__include
-am__quote
-AMDEP_TRUE
-AMDEP_FALSE
-AMDEPBACKSLASH
-CCDEPMODE
-am__fastdepCC_TRUE
-am__fastdepCC_FALSE
-CPP
-PLATFORM_WIN32_TRUE
-PLATFORM_WIN32_FALSE
-SED
-GREP
-EGREP
-LN_S
-ECHO
-AR
-RANLIB
-DLLTOOL
-AS
-OBJDUMP
-CXX
-CXXFLAGS
-ac_ct_CXX
-CXXDEPMODE
-am__fastdepCXX_TRUE
-am__fastdepCXX_FALSE
-CXXCPP
-F77
-FFLAGS
-ac_ct_F77
-LIBTOOL
+ac_subst_vars='LTLIBOBJS
 LIBOBJS
-LTLIBOBJS'
+LIBTOOL
+ac_ct_F77
+FFLAGS
+F77
+CXXCPP
+am__fastdepCXX_FALSE
+am__fastdepCXX_TRUE
+CXXDEPMODE
+ac_ct_CXX
+CXXFLAGS
+CXX
+OBJDUMP
+AS
+DLLTOOL
+NMEDIT
+DSYMUTIL
+RANLIB
+AR
+ECHO
+LN_S
+EGREP
+GREP
+SED
+PLATFORM_WIN32_FALSE
+PLATFORM_WIN32_TRUE
+CPP
+am__fastdepCC_FALSE
+am__fastdepCC_TRUE
+CCDEPMODE
+AMDEPBACKSLASH
+AMDEP_FALSE
+AMDEP_TRUE
+am__quote
+am__include
+DEPDIR
+OBJEXT
+EXEEXT
+ac_ct_CC
+CPPFLAGS
+LDFLAGS
+CFLAGS
+CC
+MAINT
+MAINTAINER_MODE_FALSE
+MAINTAINER_MODE_TRUE
+PERL_PATH
+M4
+host_os
+host_vendor
+host_cpu
+host
+build_os
+build_vendor
+build_cpu
+build
+am__untar
+am__tar
+AMTAR
+am__leading_dot
+SET_MAKE
+AWK
+mkdir_p
+MKDIR_P
+INSTALL_STRIP_PROGRAM
+STRIP
+install_sh
+MAKEINFO
+AUTOHEADER
+AUTOMAKE
+AUTOCONF
+ACLOCAL
+VERSION
+PACKAGE
+CYGPATH_W
+am__isrc
+INSTALL_DATA
+INSTALL_SCRIPT
+INSTALL_PROGRAM
+FP_MICRO_VERSION
+FP_MINOR_VERSION
+FP_MAJOR_VERSION
+FP_RELEASE
+FP_VERSION
+target_alias
+host_alias
+build_alias
+LIBS
+ECHO_T
+ECHO_N
+ECHO_C
+DEFS
+mandir
+localedir
+libdir
+psdir
+pdfdir
+dvidir
+htmldir
+infodir
+docdir
+oldincludedir
+includedir
+localstatedir
+sharedstatedir
+sysconfdir
+datadir
+datarootdir
+libexecdir
+sbindir
+bindir
+program_transform_name
+prefix
+exec_prefix
+PACKAGE_BUGREPORT
+PACKAGE_STRING
+PACKAGE_VERSION
+PACKAGE_TARNAME
+PACKAGE_NAME
+PATH_SEPARATOR
+SHELL'
 ac_subst_files=''
+ac_user_opts='
+enable_option_checking
+enable_maintainer_mode
+enable_dependency_tracking
+enable_shared
+enable_static
+enable_fast_install
+with_gnu_ld
+enable_libtool_lock
+with_pic
+with_tags
+'
       ac_precious_vars='build_alias
 host_alias
 target_alias
@@ -909,6 +946,8 @@ FFLAGS'
 # Initialize some variables set by options.
 ac_init_help=
 ac_init_version=false
+ac_unrecognized_opts=
+ac_unrecognized_sep=
 # The variables have the same names as the options, with
 # dashes changed to underlines.
 cache_file=/dev/null
@@ -1007,13 +1046,21 @@ do
     datarootdir=$ac_optarg ;;
 
   -disable-* | --disable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
+    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=no ;;
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=no ;;
 
   -docdir | --docdir | --docdi | --doc | --do)
     ac_prev=docdir ;;
@@ -1026,13 +1073,21 @@ do
     dvidir=$ac_optarg ;;
 
   -enable-* | --enable-*)
-    ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
+    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid feature name: $ac_feature" >&2
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`
-    eval enable_$ac_feature=\$ac_optarg ;;
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"enable_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval enable_$ac_useropt=\$ac_optarg ;;
 
   -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
   | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
@@ -1223,22 +1278,38 @@ do
     ac_init_version=: ;;
 
   -with-* | --with-*)
-    ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
+    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=\$ac_optarg ;;
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=\$ac_optarg ;;
 
   -without-* | --without-*)
-    ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`
+    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
     # Reject names that are not valid shell variable names.
-    expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid package name: $ac_package" >&2
+    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
+      { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2
    { (exit 1); exit 1; }; }
-    ac_package=`echo $ac_package | sed 's/[-.]/_/g'`
-    eval with_$ac_package=no ;;
+    ac_useropt_orig=$ac_useropt
+    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
+    case $ac_user_opts in
+      *"
+"with_$ac_useropt"
+"*) ;;
+      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
+	 ac_unrecognized_sep=', ';;
+    esac
+    eval with_$ac_useropt=no ;;
 
   --x)
     # Obsolete; use --with-x.
@@ -1258,7 +1329,7 @@ do
   | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
     x_libraries=$ac_optarg ;;
 
-  -*) { echo "$as_me: error: unrecognized option: $ac_option
+  -*) { $as_echo "$as_me: error: unrecognized option: $ac_option
 Try \`$0 --help' for more information." >&2
    { (exit 1); exit 1; }; }
     ;;
@@ -1267,16 +1338,16 @@ Try \`$0 --help' for more information." >&2
     ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
     # Reject names that are not valid shell variable names.
     expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&
-      { echo "$as_me: error: invalid variable name: $ac_envvar" >&2
+      { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2
    { (exit 1); exit 1; }; }
     eval $ac_envvar=\$ac_optarg
     export $ac_envvar ;;
 
   *)
     # FIXME: should be removed in autoconf 3.0.
-    echo "$as_me: WARNING: you should use --build, --host, --target" >&2
+    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      echo "$as_me: WARNING: invalid host type: $ac_option" >&2
+      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
     : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
     ;;
 
@@ -1285,22 +1356,38 @@ done
 
 if test -n "$ac_prev"; then
   ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  { echo "$as_me: error: missing argument to $ac_option" >&2
+  { $as_echo "$as_me: error: missing argument to $ac_option" >&2
    { (exit 1); exit 1; }; }
 fi
 
-# Be sure to have absolute directory names.
+if test -n "$ac_unrecognized_opts"; then
+  case $enable_option_checking in
+    no) ;;
+    fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2
+   { (exit 1); exit 1; }; } ;;
+    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
+  esac
+fi
+
+# Check all directory arguments for consistency.
 for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
 		datadir sysconfdir sharedstatedir localstatedir includedir \
 		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
 		libdir localedir mandir
 do
   eval ac_val=\$$ac_var
+  # Remove trailing slashes.
+  case $ac_val in
+    */ )
+      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
+      eval $ac_var=\$ac_val;;
+  esac
+  # Be sure to have absolute directory names.
   case $ac_val in
     [\\/$]* | ?:[\\/]* )  continue;;
     NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
   esac
-  { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
+  { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2
    { (exit 1); exit 1; }; }
 done
 
@@ -1315,7 +1402,7 @@ target=$target_alias
 if test "x$host_alias" != x; then
   if test "x$build_alias" = x; then
     cross_compiling=maybe
-    echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
+    $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.
     If a cross compiler is detected then cross compile mode will be used." >&2
   elif test "x$build_alias" != "x$host_alias"; then
     cross_compiling=yes
@@ -1331,10 +1418,10 @@ test "$silent" = yes && exec 6>/dev/null
 ac_pwd=`pwd` && test -n "$ac_pwd" &&
 ac_ls_di=`ls -di .` &&
 ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  { echo "$as_me: error: Working directory cannot be determined" >&2
+  { $as_echo "$as_me: error: working directory cannot be determined" >&2
    { (exit 1); exit 1; }; }
 test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  { echo "$as_me: error: pwd does not report name of working directory" >&2
+  { $as_echo "$as_me: error: pwd does not report name of working directory" >&2
    { (exit 1); exit 1; }; }
 
 
@@ -1342,12 +1429,12 @@ test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
 if test -z "$srcdir"; then
   ac_srcdir_defaulted=yes
   # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$0" ||
-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$0" : 'X\(//\)[^/]' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$0" |
+  ac_confdir=`$as_dirname -- "$as_myself" ||
+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
+	 X"$as_myself" : 'X\(//\)[^/]' \| \
+	 X"$as_myself" : 'X\(//\)$' \| \
+	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
+$as_echo X"$as_myself" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -1374,12 +1461,12 @@ else
 fi
 if test ! -r "$srcdir/$ac_unique_file"; then
   test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
+  { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2
    { (exit 1); exit 1; }; }
 fi
 ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
 ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2
+	cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2
    { (exit 1); exit 1; }; }
 	pwd)`
 # When building in place, set srcdir=.
@@ -1428,9 +1515,9 @@ Configuration:
 
 Installation directories:
   --prefix=PREFIX         install architecture-independent files in PREFIX
-			  [$ac_default_prefix]
+                          [$ac_default_prefix]
   --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-			  [PREFIX]
+                          [PREFIX]
 
 By default, \`make install' will install all the files in
 \`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
@@ -1440,25 +1527,25 @@ for instance \`--prefix=\$HOME'.
 For better control, use the options below.
 
 Fine tuning of the installation directories:
-  --bindir=DIR           user executables [EPREFIX/bin]
-  --sbindir=DIR          system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR       program executables [EPREFIX/libexec]
-  --sysconfdir=DIR       read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR   modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR    modifiable single-machine data [PREFIX/var]
-  --libdir=DIR           object code libraries [EPREFIX/lib]
-  --includedir=DIR       C header files [PREFIX/include]
-  --oldincludedir=DIR    C header files for non-gcc [/usr/include]
-  --datarootdir=DIR      read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR          read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR          info documentation [DATAROOTDIR/info]
-  --localedir=DIR        locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR           man documentation [DATAROOTDIR/man]
-  --docdir=DIR           documentation root [DATAROOTDIR/doc/libsigc++]
-  --htmldir=DIR          html documentation [DOCDIR]
-  --dvidir=DIR           dvi documentation [DOCDIR]
-  --pdfdir=DIR           pdf documentation [DOCDIR]
-  --psdir=DIR            ps documentation [DOCDIR]
+  --bindir=DIR            user executables [EPREFIX/bin]
+  --sbindir=DIR           system admin executables [EPREFIX/sbin]
+  --libexecdir=DIR        program executables [EPREFIX/libexec]
+  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
+  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
+  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
+  --libdir=DIR            object code libraries [EPREFIX/lib]
+  --includedir=DIR        C header files [PREFIX/include]
+  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
+  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
+  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
+  --infodir=DIR           info documentation [DATAROOTDIR/info]
+  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
+  --mandir=DIR            man documentation [DATAROOTDIR/man]
+  --docdir=DIR            documentation root [DATAROOTDIR/doc/libsigc++]
+  --htmldir=DIR           html documentation [DOCDIR]
+  --dvidir=DIR            dvi documentation [DOCDIR]
+  --pdfdir=DIR            pdf documentation [DOCDIR]
+  --psdir=DIR             ps documentation [DOCDIR]
 _ACEOF
 
   cat <<\_ACEOF
@@ -1481,6 +1568,7 @@ if test -n "$ac_init_help"; then
   cat <<\_ACEOF
 
 Optional Features:
+  --disable-option-checking  ignore unrecognized --enable/--with options
   --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
   --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
   --enable-maintainer-mode  enable make rules and dependencies not useful
@@ -1527,15 +1615,17 @@ fi
 if test "$ac_init_help" = "recursive"; then
   # If there are subdirs, report their specific --help.
   for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" || continue
+    test -d "$ac_dir" ||
+      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
+      continue
     ac_builddir=.
 
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -1571,7 +1661,7 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
       echo &&
       $SHELL "$ac_srcdir/configure" --help=recursive
     else
-      echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
+      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
     fi || ac_status=$?
     cd "$ac_pwd" || { ac_status=$?; break; }
   done
@@ -1581,10 +1671,10 @@ test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
 libsigc++ configure 2.2.2
-generated by GNU Autoconf 2.61
+generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 _ACEOF
@@ -1595,7 +1685,7 @@ This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by libsigc++ $as_me 2.2.2, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
+generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
 
@@ -1631,7 +1721,7 @@ for as_dir in $PATH
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
-  echo "PATH: $as_dir"
+  $as_echo "PATH: $as_dir"
 done
 IFS=$as_save_IFS
 
@@ -1666,7 +1756,7 @@ do
     | -silent | --silent | --silen | --sile | --sil)
       continue ;;
     *\'*)
-      ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
+      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
     esac
     case $ac_pass in
     1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;
@@ -1718,11 +1808,12 @@ _ASBOX
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
       *) $as_unset $ac_var ;;
       esac ;;
     esac
@@ -1752,9 +1843,9 @@ _ASBOX
     do
       eval ac_val=\$$ac_var
       case $ac_val in
-      *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
       esac
-      echo "$ac_var='\''$ac_val'\''"
+      $as_echo "$ac_var='\''$ac_val'\''"
     done | sort
     echo
 
@@ -1769,9 +1860,9 @@ _ASBOX
       do
 	eval ac_val=\$$ac_var
 	case $ac_val in
-	*\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
+	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
 	esac
-	echo "$ac_var='\''$ac_val'\''"
+	$as_echo "$ac_var='\''$ac_val'\''"
       done | sort
       echo
     fi
@@ -1787,8 +1878,8 @@ _ASBOX
       echo
     fi
     test "$ac_signal" != 0 &&
-      echo "$as_me: caught signal $ac_signal"
-    echo "$as_me: exit $exit_status"
+      $as_echo "$as_me: caught signal $ac_signal"
+    $as_echo "$as_me: exit $exit_status"
   } >&5
   rm -f core *.core core.conftest.* &&
     rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
@@ -1830,21 +1921,24 @@ _ACEOF
 
 
 # Let the site file select an alternate cache file if it wants to.
-# Prefer explicitly selected file to automatically selected ones.
+# Prefer an explicitly selected file to automatically selected ones.
+ac_site_file1=NONE
+ac_site_file2=NONE
 if test -n "$CONFIG_SITE"; then
-  set x "$CONFIG_SITE"
+  ac_site_file1=$CONFIG_SITE
 elif test "x$prefix" != xNONE; then
-  set x "$prefix/share/config.site" "$prefix/etc/config.site"
+  ac_site_file1=$prefix/share/config.site
+  ac_site_file2=$prefix/etc/config.site
 else
-  set x "$ac_default_prefix/share/config.site" \
-	"$ac_default_prefix/etc/config.site"
+  ac_site_file1=$ac_default_prefix/share/config.site
+  ac_site_file2=$ac_default_prefix/etc/config.site
 fi
-shift
-for ac_site_file
+for ac_site_file in "$ac_site_file1" "$ac_site_file2"
 do
+  test "x$ac_site_file" = xNONE && continue
   if test -r "$ac_site_file"; then
-    { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
-echo "$as_me: loading site script $ac_site_file" >&6;}
+    { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5
+$as_echo "$as_me: loading site script $ac_site_file" >&6;}
     sed 's/^/| /' "$ac_site_file" >&5
     . "$ac_site_file"
   fi
@@ -1854,16 +1948,16 @@ if test -r "$cache_file"; then
   # Some versions of bash will fail to source /dev/null (special
   # files actually), so we avoid doing that.
   if test -f "$cache_file"; then
-    { echo "$as_me:$LINENO: loading cache $cache_file" >&5
-echo "$as_me: loading cache $cache_file" >&6;}
+    { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5
+$as_echo "$as_me: loading cache $cache_file" >&6;}
     case $cache_file in
       [\\/]* | ?:[\\/]* ) . "$cache_file";;
       *)                      . "./$cache_file";;
     esac
   fi
 else
-  { echo "$as_me:$LINENO: creating cache $cache_file" >&5
-echo "$as_me: creating cache $cache_file" >&6;}
+  { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5
+$as_echo "$as_me: creating cache $cache_file" >&6;}
   >$cache_file
 fi
 
@@ -1877,29 +1971,38 @@ for ac_var in $ac_precious_vars; do
   eval ac_new_val=\$ac_env_${ac_var}_value
   case $ac_old_set,$ac_new_set in
     set,)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,set)
-      { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
+      { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5
+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
       ac_cache_corrupted=: ;;
     ,);;
     *)
       if test "x$ac_old_val" != "x$ac_new_val"; then
-	{ echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	{ echo "$as_me:$LINENO:   former value:  $ac_old_val" >&5
-echo "$as_me:   former value:  $ac_old_val" >&2;}
-	{ echo "$as_me:$LINENO:   current value: $ac_new_val" >&5
-echo "$as_me:   current value: $ac_new_val" >&2;}
-	ac_cache_corrupted=:
+	# differences in whitespace do not lead to failure.
+	ac_old_val_w=`echo x $ac_old_val`
+	ac_new_val_w=`echo x $ac_new_val`
+	if test "$ac_old_val_w" != "$ac_new_val_w"; then
+	  { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5
+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
+	  ac_cache_corrupted=:
+	else
+	  { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
+	  eval $ac_var=\$ac_old_val
+	fi
+	{ $as_echo "$as_me:$LINENO:   former value:  \`$ac_old_val'" >&5
+$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
+	{ $as_echo "$as_me:$LINENO:   current value: \`$ac_new_val'" >&5
+$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
       fi;;
   esac
   # Pass precious variables to config.status.
   if test "$ac_new_set" = set; then
     case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
+    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
     *) ac_arg=$ac_var=$ac_new_val ;;
     esac
     case " $ac_configure_args " in
@@ -1909,10 +2012,12 @@ echo "$as_me:   current value: $ac_new_val" >&2;}
   fi
 done
 if $ac_cache_corrupted; then
-  { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
-echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
+  { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+  { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5
+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5
+$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
@@ -2011,8 +2116,8 @@ for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
   fi
 done
 if test -z "$ac_aux_dir"; then
-  { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
-echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5
+$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
@@ -2038,11 +2143,12 @@ ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # OS/2's system install, which has a completely different semantic
 # ./install, which can be erroneously created by make from ./install.sh.
-{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }
+# Reject install programs that cannot install multiple files.
+{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5
+$as_echo_n "checking for a BSD-compatible install... " >&6; }
 if test -z "$INSTALL"; then
 if test "${ac_cv_path_install+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH
@@ -2071,17 +2177,29 @@ case $as_dir/ in
 	    # program-specific install script used by HP pwplus--don't use.
 	    :
 	  else
-	    ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	    break 3
+	    rm -rf conftest.one conftest.two conftest.dir
+	    echo one > conftest.one
+	    echo two > conftest.two
+	    mkdir conftest.dir
+	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
+	      test -s conftest.one && test -s conftest.two &&
+	      test -s conftest.dir/conftest.one &&
+	      test -s conftest.dir/conftest.two
+	    then
+	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
+	      break 3
+	    fi
 	  fi
 	fi
       done
     done
     ;;
 esac
+
 done
 IFS=$as_save_IFS
 
+rm -rf conftest.one conftest.two conftest.dir
 
 fi
   if test "${ac_cv_path_install+set}" = set; then
@@ -2094,8 +2212,8 @@ fi
     INSTALL=$ac_install_sh
   fi
 fi
-{ echo "$as_me:$LINENO: result: $INSTALL" >&5
-echo "${ECHO_T}$INSTALL" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5
+$as_echo "$INSTALL" >&6; }
 
 # Use test -z because SunOS4 sh mishandles braces in ${var-val}.
 # It thinks the first close brace ends the variable substitution.
@@ -2105,8 +2223,8 @@ test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
 
 test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
 
-{ echo "$as_me:$LINENO: checking whether build environment is sane" >&5
-echo $ECHO_N "checking whether build environment is sane... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5
+$as_echo_n "checking whether build environment is sane... " >&6; }
 # Just in case
 sleep 1
 echo timestamp > conftest.file
@@ -2129,9 +2247,9 @@ if (
       # if, for instance, CONFIG_SHELL is bash and it inherits a
       # broken ls alias from the environment.  This has actually
       # happened.  Such a system could not be considered "sane".
-      { { echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
+      { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail.  Make sure there is not a broken
 alias in your environment" >&5
-echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
+$as_echo "$as_me: error: ls -t appears to fail.  Make sure there is not a broken
 alias in your environment" >&2;}
    { (exit 1); exit 1; }; }
    fi
@@ -2142,26 +2260,23 @@ then
    # Ok.
    :
 else
-   { { echo "$as_me:$LINENO: error: newly created file is older than distributed files!
+   { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files!
 Check your system clock" >&5
-echo "$as_me: error: newly created file is older than distributed files!
+$as_echo "$as_me: error: newly created file is older than distributed files!
 Check your system clock" >&2;}
    { (exit 1); exit 1; }; }
 fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 test "$program_prefix" != NONE &&
   program_transform_name="s&^&$program_prefix&;$program_transform_name"
 # Use a double $ so make ignores it.
 test "$program_suffix" != NONE &&
   program_transform_name="s&\$&$program_suffix&;$program_transform_name"
-# Double any \ or $.  echo might interpret backslashes.
+# Double any \ or $.
 # By default was `s,x,x', remove it if useless.
-cat <<\_ACEOF >conftest.sed
-s/[\\$]/&&/g;s/;s,x,x,$//
-_ACEOF
-program_transform_name=`echo $program_transform_name | sed -f conftest.sed`
-rm -f conftest.sed
+ac_script='s/[\\$]/&&/g;s/;s,x,x,$//'
+program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"`
 
 # expand $ac_aux_dir to an absolute path
 am_aux_dir=`cd $ac_aux_dir && pwd`
@@ -2172,15 +2287,15 @@ if eval "$MISSING --run true"; then
   am_missing_run="$MISSING --run "
 else
   am_missing_run=
-  { echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
-echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
+  { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5
+$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;}
 fi
 
-{ echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
-echo $ECHO_N "checking for a thread-safe mkdir -p... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5
+$as_echo_n "checking for a thread-safe mkdir -p... " >&6; }
 if test -z "$MKDIR_P"; then
   if test "${ac_cv_path_mkdir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin
@@ -2215,8 +2330,8 @@ fi
     MKDIR_P="$ac_install_sh -d"
   fi
 fi
-{ echo "$as_me:$LINENO: result: $MKDIR_P" >&5
-echo "${ECHO_T}$MKDIR_P" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5
+$as_echo "$MKDIR_P" >&6; }
 
 mkdir_p="$MKDIR_P"
 case $mkdir_p in
@@ -2228,10 +2343,10 @@ for ac_prog in gawk mawk nawk awk
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_AWK+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$AWK"; then
   ac_cv_prog_AWK="$AWK" # Let the user override the test.
@@ -2244,7 +2359,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AWK="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2255,22 +2370,23 @@ fi
 fi
 AWK=$ac_cv_prog_AWK
 if test -n "$AWK"; then
-  { echo "$as_me:$LINENO: result: $AWK" >&5
-echo "${ECHO_T}$AWK" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $AWK" >&5
+$as_echo "$AWK" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
   test -n "$AWK" && break
 done
 
-{ echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
-echo $ECHO_N "checking whether ${MAKE-make} sets \$(MAKE)... $ECHO_C" >&6; }
-set x ${MAKE-make}; ac_make=`echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
+{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5
+$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; }
+set x ${MAKE-make}
+ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'`
 if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.make <<\_ACEOF
 SHELL = /bin/sh
@@ -2287,12 +2403,12 @@ esac
 rm -f conftest.make
 fi
 if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
   SET_MAKE=
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
@@ -2311,8 +2427,8 @@ if test "`cd $srcdir && pwd`" != "`pwd`"; then
   am__isrc=' -I$(srcdir)'
   # test to see if srcdir already configured
   if test -f $srcdir/config.status; then
-    { { echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
-echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
+    { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5
+$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;}
    { (exit 1); exit 1; }; }
   fi
 fi
@@ -2367,10 +2483,10 @@ if test "$cross_compiling" != no; then
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
   ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
@@ -2383,7 +2499,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2394,11 +2510,11 @@ fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2407,10 +2523,10 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
   ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
@@ -2423,7 +2539,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2434,11 +2550,11 @@ fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_STRIP" = x; then
@@ -2446,12 +2562,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     STRIP=$ac_ct_STRIP
@@ -2470,8 +2582,8 @@ INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s"
 AMTAR=${AMTAR-"${am_missing_run}tar"}
 
 
-{ echo "$as_me:$LINENO: checking how to create a ustar tar archive" >&5
-echo $ECHO_N "checking how to create a ustar tar archive... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to create a ustar tar archive" >&5
+$as_echo_n "checking how to create a ustar tar archive... " >&6; }
 # Loop over all known methods to create a tar archive until one works.
 _am_tools='gnutar plaintar pax cpio none'
 _am_tools=${am_cv_prog_tar_ustar-$_am_tools}
@@ -2544,13 +2656,13 @@ done
 rm -rf conftest.dir
 
 if test "${am_cv_prog_tar_ustar+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   am_cv_prog_tar_ustar=$_am_tool
 fi
 
-{ echo "$as_me:$LINENO: result: $am_cv_prog_tar_ustar" >&5
-echo "${ECHO_T}$am_cv_prog_tar_ustar" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $am_cv_prog_tar_ustar" >&5
+$as_echo "$am_cv_prog_tar_ustar" >&6; }
 
 
 
@@ -2562,34 +2674,34 @@ ac_config_headers="$ac_config_headers sigc++config.h"
 
 # Make sure we can run config.sub.
 $SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
-echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5
+$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}
    { (exit 1); exit 1; }; }
 
-{ echo "$as_me:$LINENO: checking build system type" >&5
-echo $ECHO_N "checking build system type... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking build system type" >&5
+$as_echo_n "checking build system type... " >&6; }
 if test "${ac_cv_build+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_build_alias=$build_alias
 test "x$ac_build_alias" = x &&
   ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
 test "x$ac_build_alias" = x &&
-  { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5
+$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}
    { (exit 1); exit 1; }; }
 ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
+  { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5
+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5
-echo "${ECHO_T}$ac_cv_build" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5
+$as_echo "$ac_cv_build" >&6; }
 case $ac_cv_build in
 *-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
-echo "$as_me: error: invalid value of canonical build" >&2;}
+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5
+$as_echo "$as_me: error: invalid value of canonical build" >&2;}
    { (exit 1); exit 1; }; };;
 esac
 build=$ac_cv_build
@@ -2606,27 +2718,27 @@ IFS=$ac_save_IFS
 case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
 
 
-{ echo "$as_me:$LINENO: checking host system type" >&5
-echo $ECHO_N "checking host system type... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking host system type" >&5
+$as_echo_n "checking host system type... " >&6; }
 if test "${ac_cv_host+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test "x$host_alias" = x; then
   ac_cv_host=$ac_cv_build
 else
   ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
+    { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5
+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}
    { (exit 1); exit 1; }; }
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5
-echo "${ECHO_T}$ac_cv_host" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5
+$as_echo "$ac_cv_host" >&6; }
 case $ac_cv_host in
 *-*-*) ;;
-*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
-echo "$as_me: error: invalid value of canonical host" >&2;}
+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5
+$as_echo "$as_me: error: invalid value of canonical host" >&2;}
    { (exit 1); exit 1; }; };;
 esac
 host=$ac_cv_host
@@ -2655,10 +2767,10 @@ for ac_prog in gm4 m4
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_M4+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$M4"; then
   ac_cv_prog_M4="$M4" # Let the user override the test.
@@ -2671,7 +2783,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_M4="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2682,11 +2794,11 @@ fi
 fi
 M4=$ac_cv_prog_M4
 if test -n "$M4"; then
-  { echo "$as_me:$LINENO: result: $M4" >&5
-echo "${ECHO_T}$M4" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $M4" >&5
+$as_echo "$M4" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2699,10 +2811,10 @@ for ac_prog in perl perl5
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_path_PERL_PATH+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   case $PERL_PATH in
   [\\/]* | ?:[\\/]*)
@@ -2717,7 +2829,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_path_PERL_PATH="$as_dir/$ac_word$ac_exec_ext"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2729,11 +2841,11 @@ esac
 fi
 PERL_PATH=$ac_cv_path_PERL_PATH
 if test -n "$PERL_PATH"; then
-  { echo "$as_me:$LINENO: result: $PERL_PATH" >&5
-echo "${ECHO_T}$PERL_PATH" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $PERL_PATH" >&5
+$as_echo "$PERL_PATH" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2745,8 +2857,8 @@ test -n "$PERL_PATH" || PERL_PATH="perl"
 
 AUTOHEADER=':'
 
-{ echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
-echo $ECHO_N "checking whether to enable maintainer-specific portions of Makefiles... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5
+$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; }
     # Check whether --enable-maintainer-mode was given.
 if test "${enable_maintainer_mode+set}" = set; then
   enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval
@@ -2754,8 +2866,8 @@ else
   USE_MAINTAINER_MODE=no
 fi
 
-  { echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
-echo "${ECHO_T}$USE_MAINTAINER_MODE" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5
+$as_echo "$USE_MAINTAINER_MODE" >&6; }
    if test $USE_MAINTAINER_MODE = yes; then
   MAINTAINER_MODE_TRUE=
   MAINTAINER_MODE_FALSE='#'
@@ -2776,10 +2888,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2792,7 +2904,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2803,11 +2915,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2816,10 +2928,10 @@ if test -z "$ac_cv_prog_CC"; then
   ac_ct_CC=$CC
   # Extract the first word of "gcc", so it can be a program name with args.
 set dummy gcc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
@@ -2832,7 +2944,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="gcc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2843,11 +2955,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_CC" = x; then
@@ -2855,12 +2967,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -2873,10 +2981,10 @@ if test -z "$CC"; then
           if test -n "$ac_tool_prefix"; then
     # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
 set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2889,7 +2997,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="${ac_tool_prefix}cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2900,11 +3008,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2913,10 +3021,10 @@ fi
 if test -z "$CC"; then
   # Extract the first word of "cc", so it can be a program name with args.
 set dummy cc; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2934,7 +3042,7 @@ do
        continue
      fi
     ac_cv_prog_CC="cc"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2957,11 +3065,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -2972,10 +3080,10 @@ if test -z "$CC"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
   ac_cv_prog_CC="$CC" # Let the user override the test.
@@ -2988,7 +3096,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -2999,11 +3107,11 @@ fi
 fi
 CC=$ac_cv_prog_CC
 if test -n "$CC"; then
-  { echo "$as_me:$LINENO: result: $CC" >&5
-echo "${ECHO_T}$CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CC" >&5
+$as_echo "$CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -3016,10 +3124,10 @@ if test -z "$CC"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_CC+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
   ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
@@ -3032,7 +3140,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CC="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -3043,11 +3151,11 @@ fi
 fi
 ac_ct_CC=$ac_cv_prog_ac_ct_CC
 if test -n "$ac_ct_CC"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
-echo "${ECHO_T}$ac_ct_CC" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5
+$as_echo "$ac_ct_CC" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -3059,12 +3167,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CC=$ac_ct_CC
@@ -3074,44 +3178,50 @@ fi
 fi
 
 
-test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
+test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH
 See \`config.log' for more details." >&5
-echo "$as_me: error: no acceptable C compiler found in \$PATH
+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 
 # Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
 { (ac_try="$ac_compiler --version >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -v >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -V >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 
 cat >conftest.$ac_ext <<_ACEOF
@@ -3130,27 +3240,22 @@ main ()
 }
 _ACEOF
 ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.exe b.out"
+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
 # Try to create an executable without -o first, disregard a.out.
 # It will help us diagnose broken compilers, and finding out an intuition
 # of exeext.
-{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }
-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-#
-# List of possible output files, starting from the most likely.
-# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)
-# only as a last resort.  b.out is created by i960 compilers.
-ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'
-#
-# The IRIX 6 linker writes into existing files which may not be
-# executable, retaining their permissions.  Remove them first so a
-# subsequent execution test works.
+{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5
+$as_echo_n "checking for C compiler default output file name... " >&6; }
+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
+
+# The possible output files:
+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
+
 ac_rmfiles=
 for ac_file in $ac_files
 do
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
     * ) ac_rmfiles="$ac_rmfiles $ac_file";;
   esac
 done
@@ -3161,10 +3266,11 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link_default") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
 # So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
@@ -3175,7 +3281,7 @@ for ac_file in $ac_files ''
 do
   test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
 	;;
     [ab].out )
 	# We found the default executable, but exeext='' is most
@@ -3202,25 +3308,27 @@ else
   ac_file=''
 fi
 
-{ echo "$as_me:$LINENO: result: $ac_file" >&5
-echo "${ECHO_T}$ac_file" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5
+$as_echo "$ac_file" >&6; }
 if test -z "$ac_file"; then
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { echo "$as_me:$LINENO: error: C compiler cannot create executables
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables
 See \`config.log' for more details." >&5
-echo "$as_me: error: C compiler cannot create executables
+$as_echo "$as_me: error: C compiler cannot create executables
 See \`config.log' for more details." >&2;}
-   { (exit 77); exit 77; }; }
+   { (exit 77); exit 77; }; }; }
 fi
 
 ac_exeext=$ac_cv_exeext
 
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5
-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5
+$as_echo_n "checking whether the C compiler works... " >&6; }
 # FIXME: These cross compiler hacks should be removed for Autoconf 3.0
 # If not cross compiling, check that we can run a simple program.
 if test "$cross_compiling" != yes; then
@@ -3229,49 +3337,53 @@ if test "$cross_compiling" != yes; then
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
     cross_compiling=no
   else
     if test "$cross_compiling" = maybe; then
 	cross_compiling=yes
     else
-	{ { echo "$as_me:$LINENO: error: cannot run C compiled programs.
+	{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details." >&5
-echo "$as_me: error: cannot run C compiled programs.
+$as_echo "$as_me: error: cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
     fi
   fi
 fi
-{ echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+{ $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 
-rm -f a.out a.exe conftest$ac_cv_exeext b.out
+rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
 ac_clean_files=$ac_clean_files_save
 # Check that the compiler produces executables we can run.  If not, either
 # the compiler is broken, or we cross compile.
-{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $cross_compiling" >&5
-echo "${ECHO_T}$cross_compiling" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5
+$as_echo_n "checking whether we are cross compiling... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5
+$as_echo "$cross_compiling" >&6; }
 
-{ echo "$as_me:$LINENO: checking for suffix of executables" >&5
-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5
+$as_echo_n "checking for suffix of executables... " >&6; }
 if { (ac_try="$ac_link"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   # If both `conftest.exe' and `conftest' are `present' (well, observable)
 # catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
@@ -3280,31 +3392,33 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
 for ac_file in conftest.exe conftest conftest.*; do
   test -f "$ac_file" || continue
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
     *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
 	  break;;
     * ) break;;
   esac
 done
 else
-  { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
+$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 rm -f conftest$ac_cv_exeext
-{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
-echo "${ECHO_T}$ac_cv_exeext" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5
+$as_echo "$ac_cv_exeext" >&6; }
 
 rm -f conftest.$ac_ext
 EXEEXT=$ac_cv_exeext
 ac_exeext=$EXEEXT
-{ echo "$as_me:$LINENO: checking for suffix of object files" >&5
-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5
+$as_echo_n "checking for suffix of object files... " >&6; }
 if test "${ac_cv_objext+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -3327,40 +3441,43 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   for ac_file in conftest.o conftest.obj conftest.*; do
   test -f "$ac_file" || continue;
   case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;
+    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
     *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
        break;;
   esac
 done
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
-{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
+{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile
 See \`config.log' for more details." >&5
-echo "$as_me: error: cannot compute suffix of object files: cannot compile
+$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
-echo "${ECHO_T}$ac_cv_objext" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5
+$as_echo "$ac_cv_objext" >&6; }
 OBJEXT=$ac_cv_objext
 ac_objext=$OBJEXT
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5
+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
 if test "${ac_cv_c_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -3386,20 +3503,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_compiler_gnu=no
@@ -3409,15 +3527,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_c_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }
-GCC=`test $ac_compiler_gnu = yes && echo yes`
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5
+$as_echo "$ac_cv_c_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GCC=yes
+else
+  GCC=
+fi
 ac_test_CFLAGS=${CFLAGS+set}
 ac_save_CFLAGS=$CFLAGS
-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5
+$as_echo_n "checking whether $CC accepts -g... " >&6; }
 if test "${ac_cv_prog_cc_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
    ac_c_werror_flag=yes
@@ -3444,20 +3566,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	CFLAGS=""
@@ -3482,20 +3605,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_c_werror_flag=$ac_save_c_werror_flag
@@ -3521,20 +3645,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3549,8 +3674,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_c_werror_flag=$ac_save_c_werror_flag
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5
+$as_echo "$ac_cv_prog_cc_g" >&6; }
 if test "$ac_test_CFLAGS" = set; then
   CFLAGS=$ac_save_CFLAGS
 elif test $ac_cv_prog_cc_g = yes; then
@@ -3566,10 +3691,10 @@ else
     CFLAGS=
   fi
 fi
-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5
+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
 if test "${ac_cv_prog_cc_c89+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
 ac_save_CC=$CC
@@ -3640,20 +3765,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cc_c89=$ac_arg
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -3669,15 +3795,15 @@ fi
 # AC_CACHE_VAL
 case "x$ac_cv_prog_cc_c89" in
   x)
-    { echo "$as_me:$LINENO: result: none needed" >&5
-echo "${ECHO_T}none needed" >&6; } ;;
+    { $as_echo "$as_me:$LINENO: result: none needed" >&5
+$as_echo "none needed" >&6; } ;;
   xno)
-    { echo "$as_me:$LINENO: result: unsupported" >&5
-echo "${ECHO_T}unsupported" >&6; } ;;
+    { $as_echo "$as_me:$LINENO: result: unsupported" >&5
+$as_echo "unsupported" >&6; } ;;
   *)
     CC="$CC $ac_cv_prog_cc_c89"
-    { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;
+    { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5
+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
 esac
 
 
@@ -3698,8 +3824,8 @@ am__doit:
 .PHONY: am__doit
 END
 # If we don't find an include directive, just comment out the code.
-{ echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
-echo $ECHO_N "checking for style of include used by $am_make... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5
+$as_echo_n "checking for style of include used by $am_make... " >&6; }
 am__include="#"
 am__quote=
 _am_result=none
@@ -3726,8 +3852,8 @@ if test "$am__include" = "#"; then
 fi
 
 
-{ echo "$as_me:$LINENO: result: $_am_result" >&5
-echo "${ECHO_T}$_am_result" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5
+$as_echo "$_am_result" >&6; }
 rm -f confinc confmf
 
 # Check whether --enable-dependency-tracking was given.
@@ -3751,10 +3877,10 @@ fi
 
 depcc="$CC"   am_compiler_list=
 
-{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
 if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
   # We make a subdir and do the tests there.  Otherwise we can end up
@@ -3842,8 +3968,8 @@ else
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CC_dependencies_compiler_type" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; }
 CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type
 
  if
@@ -3862,15 +3988,15 @@ ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5
+$as_echo_n "checking how to run the C preprocessor... " >&6; }
 # On Suns, sometimes $CPP names a directory.
 if test -n "$CPP" && test -d "$CPP"; then
   CPP=
 fi
 if test -z "$CPP"; then
   if test "${ac_cv_prog_CPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
     for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
@@ -3902,20 +4028,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Broken: fails on valid input.
@@ -3939,13 +4066,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
@@ -3953,7 +4081,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   # Broken: success on invalid input.
 continue
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Passes both tests.
@@ -3978,8 +4106,8 @@ fi
 else
   ac_cv_prog_CPP=$CPP
 fi
-{ echo "$as_me:$LINENO: result: $CPP" >&5
-echo "${ECHO_T}$CPP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $CPP" >&5
+$as_echo "$CPP" >&6; }
 ac_preproc_ok=false
 for ac_c_preproc_warn_flag in '' yes
 do
@@ -4007,20 +4135,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Broken: fails on valid input.
@@ -4044,13 +4173,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
@@ -4058,7 +4188,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   # Broken: success on invalid input.
 continue
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Passes both tests.
@@ -4074,11 +4204,13 @@ rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check
 See \`config.log' for more details." >&5
-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 ac_ext=c
@@ -4088,8 +4220,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
-{ echo "$as_me:$LINENO: checking for some Win32 platform" >&5
-echo $ECHO_N "checking for some Win32 platform... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for some Win32 platform" >&5
+$as_echo_n "checking for some Win32 platform... " >&6; }
 case "$host" in
   *-*-mingw*|*-*-cygwin*)
     platform_win32=yes
@@ -4098,8 +4230,8 @@ case "$host" in
     platform_win32=no
     ;;
 esac
-{ echo "$as_me:$LINENO: result: $platform_win32" >&5
-echo "${ECHO_T}$platform_win32" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $platform_win32" >&5
+$as_echo "$platform_win32" >&6; }
  if test "$platform_win32" = "yes"; then
   PLATFORM_WIN32_TRUE=
   PLATFORM_WIN32_FALSE='#'
@@ -4184,10 +4316,10 @@ else
 fi
 
 
-{ echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
-echo $ECHO_N "checking for a sed that does not truncate output... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5
+$as_echo_n "checking for a sed that does not truncate output... " >&6; }
 if test "${lt_cv_path_SED+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   # 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.
@@ -4240,45 +4372,40 @@ fi
 
 SED=$lt_cv_path_SED
 
-{ echo "$as_me:$LINENO: result: $SED" >&5
-echo "${ECHO_T}$SED" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $SED" >&5
+$as_echo "$SED" >&6; }
 
-{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
-echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5
+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
 if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-  # Extract the first word of "grep ggrep" to use in msg output
-if test -z "$GREP"; then
-set dummy grep ggrep; ac_prog_name=$2
-if test "${ac_cv_path_GREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
+  if test -z "$GREP"; then
   ac_path_GREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_prog in grep ggrep; do
-  for ac_exec_ext in '' $ac_executable_extensions; do
-    ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-    { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-    # Check for GNU ac_path_GREP and select it if it is found.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
+# Check for GNU ac_path_GREP and select it if it is found.
   # Check for GNU $ac_path_GREP
 case `"$ac_path_GREP" --version 2>&1` in
 *GNU*)
   ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
 *)
   ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  $as_echo_n 0123456789 >"conftest.in"
   while :
   do
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    echo 'GREP' >> "conftest.nl"
+    $as_echo 'GREP' >> "conftest.nl"
     "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     ac_count=`expr $ac_count + 1`
@@ -4293,74 +4420,60 @@ case `"$ac_path_GREP" --version 2>&1` in
   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 esac
 
-
-    $ac_path_GREP_found && break 3
+      $ac_path_GREP_found && break 3
+    done
   done
 done
-
-done
 IFS=$as_save_IFS
-
-
-fi
-
-GREP="$ac_cv_path_GREP"
-if test -z "$GREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+  if test -z "$ac_cv_path_GREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
    { (exit 1); exit 1; }; }
-fi
-
+  fi
 else
   ac_cv_path_GREP=$GREP
 fi
 
-
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
-echo "${ECHO_T}$ac_cv_path_GREP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5
+$as_echo "$ac_cv_path_GREP" >&6; }
  GREP="$ac_cv_path_GREP"
 
 
-{ echo "$as_me:$LINENO: checking for egrep" >&5
-echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for egrep" >&5
+$as_echo_n "checking for egrep... " >&6; }
 if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
    then ac_cv_path_EGREP="$GREP -E"
    else
-     # Extract the first word of "egrep" to use in msg output
-if test -z "$EGREP"; then
-set dummy egrep; ac_prog_name=$2
-if test "${ac_cv_path_EGREP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
-else
+     if test -z "$EGREP"; then
   ac_path_EGREP_found=false
-# Loop through the user's path and test for each of PROGNAME-LIST
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+  # Loop through the user's path and test for each of PROGNAME-LIST
+  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
 for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
 do
   IFS=$as_save_IFS
   test -z "$as_dir" && as_dir=.
   for ac_prog in egrep; do
-  for ac_exec_ext in '' $ac_executable_extensions; do
-    ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-    { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-    # Check for GNU ac_path_EGREP and select it if it is found.
+    for ac_exec_ext in '' $ac_executable_extensions; do
+      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
+      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
+# Check for GNU ac_path_EGREP and select it if it is found.
   # Check for GNU $ac_path_EGREP
 case `"$ac_path_EGREP" --version 2>&1` in
 *GNU*)
   ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
 *)
   ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"
+  $as_echo_n 0123456789 >"conftest.in"
   while :
   do
     cat "conftest.in" "conftest.in" >"conftest.tmp"
     mv "conftest.tmp" "conftest.in"
     cp "conftest.in" "conftest.nl"
-    echo 'EGREP' >> "conftest.nl"
+    $as_echo 'EGREP' >> "conftest.nl"
     "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
     diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
     ac_count=`expr $ac_count + 1`
@@ -4375,33 +4488,24 @@ case `"$ac_path_EGREP" --version 2>&1` in
   rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
 esac
 
-
-    $ac_path_EGREP_found && break 3
+      $ac_path_EGREP_found && break 3
+    done
   done
 done
-
-done
 IFS=$as_save_IFS
-
-
-fi
-
-EGREP="$ac_cv_path_EGREP"
-if test -z "$EGREP"; then
-  { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
+  if test -z "$ac_cv_path_EGREP"; then
+    { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5
+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}
    { (exit 1); exit 1; }; }
-fi
-
+  fi
 else
   ac_cv_path_EGREP=$EGREP
 fi
 
-
    fi
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
-echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5
+$as_echo "$ac_cv_path_EGREP" >&6; }
  EGREP="$ac_cv_path_EGREP"
 
 
@@ -4416,8 +4520,8 @@ fi
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$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
@@ -4446,14 +4550,14 @@ echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
 else
-  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
 fi
 if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
   lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
@@ -4483,19 +4587,19 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  { echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $LD" >&5
+$as_echo "$LD" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
    { (exit 1); exit 1; }; }
-{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
 if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
 case `$LD -v 2>&1 </dev/null` in
@@ -4507,20 +4611,20 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
-{ echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
-echo $ECHO_N "checking for $LD option to reload object files... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $LD option to reload object files" >&5
+$as_echo_n "checking for $LD option to reload object files... " >&6; }
 if test "${lt_cv_ld_reload_flag+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_ld_reload_flag='-r'
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
-echo "${ECHO_T}$lt_cv_ld_reload_flag" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_reload_flag" >&5
+$as_echo "$lt_cv_ld_reload_flag" >&6; }
 reload_flag=$lt_cv_ld_reload_flag
 case $reload_flag in
 "" | " "*) ;;
@@ -4537,10 +4641,10 @@ case $host_os in
     ;;
 esac
 
-{ echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
-echo $ECHO_N "checking for BSD-compatible nm... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for BSD-compatible nm" >&5
+$as_echo_n "checking for BSD-compatible nm... " >&6; }
 if test "${lt_cv_path_NM+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$NM"; then
   # Let the user override the test.
@@ -4586,25 +4690,25 @@ else
   test -z "$lt_cv_path_NM" && lt_cv_path_NM=nm
 fi
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
-echo "${ECHO_T}$lt_cv_path_NM" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_path_NM" >&5
+$as_echo "$lt_cv_path_NM" >&6; }
 NM="$lt_cv_path_NM"
 
-{ echo "$as_me:$LINENO: checking whether ln -s works" >&5
-echo $ECHO_N "checking whether ln -s works... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether ln -s works" >&5
+$as_echo_n "checking whether ln -s works... " >&6; }
 LN_S=$as_ln_s
 if test "$LN_S" = "ln -s"; then
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no, using $LN_S" >&5
-echo "${ECHO_T}no, using $LN_S" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no, using $LN_S" >&5
+$as_echo "no, using $LN_S" >&6; }
 fi
 
-{ echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
-echo $ECHO_N "checking how to recognize dependent libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to recognize dependent libraries" >&5
+$as_echo_n "checking how to recognize dependent libraries... " >&6; }
 if test "${lt_cv_deplibs_check_method+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_file_magic_cmd='$MAGIC_CMD'
 lt_cv_file_magic_test_file=
@@ -4621,7 +4725,7 @@ lt_cv_deplibs_check_method='unknown'
 # whether `pass_all' will *always* work, you probably want this one.
 
 case $host_os in
-aix4* | aix5*)
+aix[4-9]*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -4787,8 +4891,8 @@ sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
 esac
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
-echo "${ECHO_T}$lt_cv_deplibs_check_method" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_deplibs_check_method" >&5
+$as_echo "$lt_cv_deplibs_check_method" >&6; }
 file_magic_cmd=$lt_cv_file_magic_cmd
 deplibs_check_method=$lt_cv_deplibs_check_method
 test -z "$deplibs_check_method" && deplibs_check_method=unknown
@@ -4821,7 +4925,7 @@ ia64-*-hpux*)
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
     case `/usr/bin/file conftest.$ac_objext` in
     *ELF-32*)
@@ -4836,11 +4940,11 @@ ia64-*-hpux*)
   ;;
 *-*-irix6*)
   # Find out which ABI we are using.
-  echo '#line 4839 "configure"' > conftest.$ac_ext
+  echo '#line 4943 "configure"' > conftest.$ac_ext
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
    if test "$lt_cv_prog_gnu_ld" = yes; then
     case `/usr/bin/file conftest.$ac_objext` in
@@ -4878,7 +4982,7 @@ s390*-*linux*|sparc*-*linux*)
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
     case `/usr/bin/file conftest.o` in
     *32-bit*)
@@ -4929,10 +5033,10 @@ s390*-*linux*|sparc*-*linux*)
   # On SCO OpenServer 5, we need -belf to get full-featured binaries.
   SAVE_CFLAGS="$CFLAGS"
   CFLAGS="$CFLAGS -belf"
-  { echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
-echo $ECHO_N "checking whether the C compiler needs -belf... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether the C compiler needs -belf" >&5
+$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
 if test "${lt_cv_cc_needs_belf+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
@@ -4961,26 +5065,30 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   lt_cv_cc_needs_belf=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	lt_cv_cc_needs_belf=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
      ac_ext=c
@@ -4990,8 +5098,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
 ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
-echo "${ECHO_T}$lt_cv_cc_needs_belf" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_cc_needs_belf" >&5
+$as_echo "$lt_cv_cc_needs_belf" >&6; }
   if test x"$lt_cv_cc_needs_belf" != x"yes"; then
     # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
     CFLAGS="$SAVE_CFLAGS"
@@ -5003,13 +5111,17 @@ sparc*-*solaris*)
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
     case `/usr/bin/file conftest.o` in
     *64-bit*)
       case $lt_cv_prog_gnu_ld in
       yes*) LD="${LD-ld} -m elf64_sparc" ;;
-      *)    LD="${LD-ld} -64" ;;
+      *)
+        if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
+	  LD="${LD-ld} -64"
+	fi
+	;;
       esac
       ;;
     esac
@@ -5021,10 +5133,10 @@ sparc*-*solaris*)
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
 set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_DLLTOOL+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$DLLTOOL"; then
   ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
@@ -5037,7 +5149,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5048,11 +5160,11 @@ fi
 fi
 DLLTOOL=$ac_cv_prog_DLLTOOL
 if test -n "$DLLTOOL"; then
-  { echo "$as_me:$LINENO: result: $DLLTOOL" >&5
-echo "${ECHO_T}$DLLTOOL" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $DLLTOOL" >&5
+$as_echo "$DLLTOOL" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5061,10 +5173,10 @@ if test -z "$ac_cv_prog_DLLTOOL"; then
   ac_ct_DLLTOOL=$DLLTOOL
   # Extract the first word of "dlltool", so it can be a program name with args.
 set dummy dlltool; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_DLLTOOL"; then
   ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
@@ -5077,7 +5189,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5088,11 +5200,11 @@ fi
 fi
 ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
 if test -n "$ac_ct_DLLTOOL"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5
-echo "${ECHO_T}$ac_ct_DLLTOOL" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_DLLTOOL" >&5
+$as_echo "$ac_ct_DLLTOOL" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_DLLTOOL" = x; then
@@ -5100,12 +5212,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     DLLTOOL=$ac_ct_DLLTOOL
@@ -5117,10 +5225,10 @@ fi
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args.
 set dummy ${ac_tool_prefix}as; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_AS+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$AS"; then
   ac_cv_prog_AS="$AS" # Let the user override the test.
@@ -5133,7 +5241,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AS="${ac_tool_prefix}as"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5144,11 +5252,11 @@ fi
 fi
 AS=$ac_cv_prog_AS
 if test -n "$AS"; then
-  { echo "$as_me:$LINENO: result: $AS" >&5
-echo "${ECHO_T}$AS" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $AS" >&5
+$as_echo "$AS" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5157,10 +5265,10 @@ if test -z "$ac_cv_prog_AS"; then
   ac_ct_AS=$AS
   # Extract the first word of "as", so it can be a program name with args.
 set dummy as; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_AS+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AS"; then
   ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test.
@@ -5173,7 +5281,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AS="as"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5184,11 +5292,11 @@ fi
 fi
 ac_ct_AS=$ac_cv_prog_ac_ct_AS
 if test -n "$ac_ct_AS"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
-echo "${ECHO_T}$ac_ct_AS" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_AS" >&5
+$as_echo "$ac_ct_AS" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_AS" = x; then
@@ -5196,12 +5304,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     AS=$ac_ct_AS
@@ -5213,10 +5317,10 @@ fi
   if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
 set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_OBJDUMP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$OBJDUMP"; then
   ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
@@ -5229,7 +5333,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5240,11 +5344,11 @@ fi
 fi
 OBJDUMP=$ac_cv_prog_OBJDUMP
 if test -n "$OBJDUMP"; then
-  { echo "$as_me:$LINENO: result: $OBJDUMP" >&5
-echo "${ECHO_T}$OBJDUMP" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $OBJDUMP" >&5
+$as_echo "$OBJDUMP" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5253,10 +5357,10 @@ if test -z "$ac_cv_prog_OBJDUMP"; then
   ac_ct_OBJDUMP=$OBJDUMP
   # Extract the first word of "objdump", so it can be a program name with args.
 set dummy objdump; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_OBJDUMP"; then
   ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
@@ -5269,7 +5373,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5280,11 +5384,11 @@ fi
 fi
 ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
 if test -n "$ac_ct_OBJDUMP"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
-echo "${ECHO_T}$ac_ct_OBJDUMP" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_OBJDUMP" >&5
+$as_echo "$ac_ct_OBJDUMP" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_OBJDUMP" = x; then
@@ -5292,12 +5396,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     OBJDUMP=$ac_ct_OBJDUMP
@@ -5314,10 +5414,10 @@ need_locks="$enable_libtool_lock"
 
 
 
-{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5
-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5
+$as_echo_n "checking for ANSI C header files... " >&6; }
 if test "${ac_cv_header_stdc+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5344,20 +5444,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_header_stdc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_header_stdc=no
@@ -5449,37 +5550,40 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && { ac_try='./conftest$ac_exeext'
   { (case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_try") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; }; then
   :
 else
-  echo "$as_me: program exited with status $ac_status" >&5
-echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: program exited with status $ac_status" >&5
+$as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 ( exit $ac_status )
 ac_cv_header_stdc=no
 fi
+rm -rf conftest.dSYM
 rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext
 fi
 
 
 fi
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5
+$as_echo "$ac_cv_header_stdc" >&6; }
 if test $ac_cv_header_stdc = yes; then
 
 cat >>confdefs.h <<\_ACEOF
@@ -5501,11 +5605,11 @@ fi
 for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
 		  inttypes.h stdint.h unistd.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5523,20 +5627,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   eval "$as_ac_Header=yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	eval "$as_ac_Header=no"
@@ -5544,12 +5649,15 @@ fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -5560,20 +5668,21 @@ done
 
 for ac_header in dlfcn.h
 do
-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  { echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 else
   # Is the header compilable?
-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5
-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5
+$as_echo_n "checking $ac_header usability... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -5589,32 +5698,33 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_header_compiler=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_header_compiler=no
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
-echo "${ECHO_T}$ac_header_compiler" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5
+$as_echo "$ac_header_compiler" >&6; }
 
 # Is the header present?
-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5
-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5
+$as_echo_n "checking $ac_header presence... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -5628,51 +5738,52 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   ac_header_preproc=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   ac_header_preproc=no
 fi
 
 rm -f conftest.err conftest.$ac_ext
-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
-echo "${ECHO_T}$ac_header_preproc" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5
+$as_echo "$ac_header_preproc" >&6; }
 
 # So?  What about this header?
 case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in
   yes:no: )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5
+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}
     ac_header_preproc=yes
     ;;
   no:yes:* )
-    { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
-echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
-echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
-    { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5
+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     check for missing prerequisite headers?" >&5
+$as_echo "$as_me: WARNING: $ac_header:     check for missing prerequisite headers?" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5
+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&5
+$as_echo "$as_me: WARNING: $ac_header:     section \"Present But Cannot Be Compiled\"" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5
+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5
+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}
     ( cat <<\_ASBOX
 ## ------------------------------------- ##
 ## Report this to libsigc-list at gnome.org ##
@@ -5681,21 +5792,24 @@ _ASBOX
      ) | sed "s/^/$as_me: WARNING:     /" >&2
     ;;
 esac
-{ echo "$as_me:$LINENO: checking for $ac_header" >&5
-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5
+$as_echo_n "checking for $ac_header... " >&6; }
 if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   eval "$as_ac_Header=\$ac_header_preproc"
 fi
-ac_res=`eval echo '${'$as_ac_Header'}'`
-	       { echo "$as_me:$LINENO: result: $ac_res" >&5
-echo "${ECHO_T}$ac_res" >&6; }
+ac_res=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+	       { $as_echo "$as_me:$LINENO: result: $ac_res" >&5
+$as_echo "$ac_res" >&6; }
 
 fi
-if test `eval echo '${'$as_ac_Header'}'` = yes; then
+as_val=`eval 'as_val=${'$as_ac_Header'}
+		 $as_echo "$as_val"'`
+   if test "x$as_val" = x""yes; then
   cat >>confdefs.h <<_ACEOF
-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1
+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
 _ACEOF
 
 fi
@@ -5716,10 +5830,10 @@ if test -z "$CXX"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CXX"; then
   ac_cv_prog_CXX="$CXX" # Let the user override the test.
@@ -5732,7 +5846,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5743,11 +5857,11 @@ fi
 fi
 CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
-  { echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5760,10 +5874,10 @@ if test -z "$CXX"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CXX"; then
   ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
@@ -5776,7 +5890,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CXX="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -5787,11 +5901,11 @@ fi
 fi
 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
 if test -n "$ac_ct_CXX"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -5803,12 +5917,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CXX=$ac_ct_CXX
@@ -5818,43 +5928,47 @@ fi
   fi
 fi
 # Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
+$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
 { (ac_try="$ac_compiler --version >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -v >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -V >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -5880,20 +5994,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_compiler_gnu=no
@@ -5903,15 +6018,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; }
-GXX=`test $ac_compiler_gnu = yes && echo yes`
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
+else
+  GXX=
+fi
 ac_test_CXXFLAGS=${CXXFLAGS+set}
 ac_save_CXXFLAGS=$CXXFLAGS
-{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
 if test "${ac_cv_prog_cxx_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_save_cxx_werror_flag=$ac_cxx_werror_flag
    ac_cxx_werror_flag=yes
@@ -5938,20 +6057,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cxx_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	CXXFLAGS=""
@@ -5976,20 +6096,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cxx_werror_flag=$ac_save_cxx_werror_flag
@@ -6015,20 +6136,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cxx_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -6043,8 +6165,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_cxx_werror_flag=$ac_save_cxx_werror_flag
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
 if test "$ac_test_CXXFLAGS" = set; then
   CXXFLAGS=$ac_save_CXXFLAGS
 elif test $ac_cv_prog_cxx_g = yes; then
@@ -6068,10 +6190,10 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 depcc="$CXX"  am_compiler_list=
 
-{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
   # We make a subdir and do the tests there.  Otherwise we can end up
@@ -6159,8 +6281,8 @@ else
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
 
  if
@@ -6184,11 +6306,11 @@ ac_cpp='$CXXCPP $CPPFLAGS'
 ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5'
 ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
 ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
-{ echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
-echo $ECHO_N "checking how to run the C++ preprocessor... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to run the C++ preprocessor" >&5
+$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
 if test -z "$CXXCPP"; then
   if test "${ac_cv_prog_CXXCPP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
       # Double quotes because CXXCPP needs to be expanded
     for CXXCPP in "$CXX -E" "/lib/cpp"
@@ -6220,20 +6342,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Broken: fails on valid input.
@@ -6257,13 +6380,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
@@ -6271,7 +6395,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   # Broken: success on invalid input.
 continue
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Passes both tests.
@@ -6296,8 +6420,8 @@ fi
 else
   ac_cv_prog_CXXCPP=$CXXCPP
 fi
-{ echo "$as_me:$LINENO: result: $CXXCPP" >&5
-echo "${ECHO_T}$CXXCPP" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $CXXCPP" >&5
+$as_echo "$CXXCPP" >&6; }
 ac_preproc_ok=false
 for ac_cxx_preproc_warn_flag in '' yes
 do
@@ -6325,20 +6449,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        }; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Broken: fails on valid input.
@@ -6362,13 +6487,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } >/dev/null && {
 	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
@@ -6376,7 +6502,7 @@ eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
   # Broken: success on invalid input.
 continue
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
   # Passes both tests.
@@ -6392,11 +6518,13 @@ rm -f conftest.err conftest.$ac_ext
 if $ac_preproc_ok; then
   :
 else
-  { { echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+  { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5
+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
+{ { $as_echo "$as_me:$LINENO: error: C++ preprocessor \"$CXXCPP\" fails sanity check
 See \`config.log' for more details." >&5
-echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
+$as_echo "$as_me: error: C++ preprocessor \"$CXXCPP\" fails sanity check
 See \`config.log' for more details." >&2;}
-   { (exit 1); exit 1; }; }
+   { (exit 1); exit 1; }; }; }
 fi
 
 ac_ext=cpp
@@ -6417,10 +6545,10 @@ if test -n "$ac_tool_prefix"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$F77"; then
   ac_cv_prog_F77="$F77" # Let the user override the test.
@@ -6433,7 +6561,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_F77="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6444,11 +6572,11 @@ fi
 fi
 F77=$ac_cv_prog_F77
 if test -n "$F77"; then
-  { echo "$as_me:$LINENO: result: $F77" >&5
-echo "${ECHO_T}$F77" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $F77" >&5
+$as_echo "$F77" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -6461,10 +6589,10 @@ if test -z "$F77"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_F77"; then
   ac_cv_prog_ac_ct_F77="$ac_ct_F77" # Let the user override the test.
@@ -6477,7 +6605,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_F77="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -6488,11 +6616,11 @@ fi
 fi
 ac_ct_F77=$ac_cv_prog_ac_ct_F77
 if test -n "$ac_ct_F77"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
-echo "${ECHO_T}$ac_ct_F77" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_F77" >&5
+$as_echo "$ac_ct_F77" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -6504,12 +6632,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     F77=$ac_ct_F77
@@ -6518,37 +6642,41 @@ fi
 
 
 # Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
+$as_echo "$as_me:$LINENO: checking for Fortran 77 compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
 { (ac_try="$ac_compiler --version >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -v >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -V >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 rm -f a.out
 
@@ -6556,10 +6684,10 @@ rm -f a.out
 # input file.  (Note that this only needs to work for GNU compilers.)
 ac_save_ext=$ac_ext
 ac_ext=F
-{ echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU Fortran 77 compiler... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU Fortran 77 compiler" >&5
+$as_echo_n "checking whether we are using the GNU Fortran 77 compiler... " >&6; }
 if test "${ac_cv_f77_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
       program main
@@ -6575,20 +6703,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_f77_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_compiler_gnu=no
@@ -6598,16 +6727,16 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_f77_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_f77_compiler_gnu" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_f77_compiler_gnu" >&5
+$as_echo "$ac_cv_f77_compiler_gnu" >&6; }
 ac_ext=$ac_save_ext
 ac_test_FFLAGS=${FFLAGS+set}
 ac_save_FFLAGS=$FFLAGS
 FFLAGS=
-{ echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
-echo $ECHO_N "checking whether $F77 accepts -g... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether $F77 accepts -g" >&5
+$as_echo_n "checking whether $F77 accepts -g... " >&6; }
 if test "${ac_cv_prog_f77_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   FFLAGS=-g
 cat >conftest.$ac_ext <<_ACEOF
@@ -6621,20 +6750,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_f77_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_f77_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_prog_f77_g=no
@@ -6643,8 +6773,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
-echo "${ECHO_T}$ac_cv_prog_f77_g" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_f77_g" >&5
+$as_echo "$ac_cv_prog_f77_g" >&6; }
 if test "$ac_test_FFLAGS" = set; then
   FFLAGS=$ac_save_FFLAGS
 elif test $ac_cv_prog_f77_g = yes; then
@@ -6661,7 +6791,11 @@ else
   fi
 fi
 
-G77=`test $ac_compiler_gnu = yes && echo yes`
+if test $ac_compiler_gnu = yes; then
+  G77=yes
+else
+  G77=
+fi
 ac_ext=c
 ac_cpp='$CPP $CPPFLAGS'
 ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
@@ -6671,12 +6805,11 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 
 # Autoconf 2.13's AC_OBJEXT and AC_EXEEXT macros only works for C compilers!
-
 # find the maximum length of command line arguments
-{ echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
-echo $ECHO_N "checking the maximum length of command line arguments... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking the maximum length of command line arguments" >&5
+$as_echo_n "checking the maximum length of command line arguments... " >&6; }
 if test "${lt_cv_sys_max_cmd_len+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
     i=0
   teststring="ABCD"
@@ -6785,11 +6918,11 @@ else
 fi
 
 if test -n $lt_cv_sys_max_cmd_len ; then
-  { echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
-echo "${ECHO_T}$lt_cv_sys_max_cmd_len" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $lt_cv_sys_max_cmd_len" >&5
+$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
 else
-  { echo "$as_me:$LINENO: result: none" >&5
-echo "${ECHO_T}none" >&6; }
+  { $as_echo "$as_me:$LINENO: result: none" >&5
+$as_echo "none" >&6; }
 fi
 
 
@@ -6797,10 +6930,10 @@ fi
 
 
 # Check for command to grab the raw symbol name followed by C symbol from nm.
-{ echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
-echo $ECHO_N "checking command to parse $NM output from $compiler object... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking command to parse $NM output from $compiler object" >&5
+$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
 if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
 # These are sane defaults that work on at least a few old systems.
@@ -6905,14 +7038,14 @@ EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
     # Now try to grab the symbols.
     nlist=conftest.nm
     if { (eval echo "$as_me:$LINENO: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\"") >&5
   (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && test -s "$nlist"; then
       # Try sorting and uniquifying the output.
       if sort "$nlist" | uniq > "$nlist"T; then
@@ -6967,7 +7100,7 @@ EOF
 	  if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && test -s conftest${ac_exeext}; then
 	    pipe_works=yes
 	  fi
@@ -6986,7 +7119,7 @@ EOF
     echo "$progname: failed program was:" >&5
     cat conftest.$ac_ext >&5
   fi
-  rm -f conftest* conftst*
+  rm -rf conftest* conftst*
 
   # Do not use the global_symbol_pipe unless it works.
   if test "$pipe_works" = yes; then
@@ -7002,17 +7135,17 @@ 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
-  { echo "$as_me:$LINENO: result: failed" >&5
-echo "${ECHO_T}failed" >&6; }
+  { $as_echo "$as_me:$LINENO: result: failed" >&5
+$as_echo "failed" >&6; }
 else
-  { echo "$as_me:$LINENO: result: ok" >&5
-echo "${ECHO_T}ok" >&6; }
+  { $as_echo "$as_me:$LINENO: result: ok" >&5
+$as_echo "ok" >&6; }
 fi
 
-{ echo "$as_me:$LINENO: checking for objdir" >&5
-echo $ECHO_N "checking for objdir... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for objdir" >&5
+$as_echo_n "checking for objdir... " >&6; }
 if test "${lt_cv_objdir+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   rm -f .libs 2>/dev/null
 mkdir .libs 2>/dev/null
@@ -7024,8 +7157,8 @@ else
 fi
 rmdir .libs 2>/dev/null
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
-echo "${ECHO_T}$lt_cv_objdir" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_objdir" >&5
+$as_echo "$lt_cv_objdir" >&6; }
 objdir=$lt_cv_objdir
 
 
@@ -7076,10 +7209,10 @@ with_gnu_ld="$lt_cv_prog_gnu_ld"
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$AR"; then
   ac_cv_prog_AR="$AR" # Let the user override the test.
@@ -7092,7 +7225,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_AR="${ac_tool_prefix}ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7103,11 +7236,11 @@ fi
 fi
 AR=$ac_cv_prog_AR
 if test -n "$AR"; then
-  { echo "$as_me:$LINENO: result: $AR" >&5
-echo "${ECHO_T}$AR" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $AR" >&5
+$as_echo "$AR" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -7116,10 +7249,10 @@ if test -z "$ac_cv_prog_AR"; then
   ac_ct_AR=$AR
   # Extract the first word of "ar", so it can be a program name with args.
 set dummy ar; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_AR+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_AR"; then
   ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
@@ -7132,7 +7265,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_AR="ar"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7143,11 +7276,11 @@ fi
 fi
 ac_ct_AR=$ac_cv_prog_ac_ct_AR
 if test -n "$ac_ct_AR"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
-echo "${ECHO_T}$ac_ct_AR" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_AR" >&5
+$as_echo "$ac_ct_AR" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_AR" = x; then
@@ -7155,12 +7288,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     AR=$ac_ct_AR
@@ -7172,10 +7301,10 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
 set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$RANLIB"; then
   ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
@@ -7188,7 +7317,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7199,11 +7328,11 @@ fi
 fi
 RANLIB=$ac_cv_prog_RANLIB
 if test -n "$RANLIB"; then
-  { echo "$as_me:$LINENO: result: $RANLIB" >&5
-echo "${ECHO_T}$RANLIB" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $RANLIB" >&5
+$as_echo "$RANLIB" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -7212,10 +7341,10 @@ if test -z "$ac_cv_prog_RANLIB"; then
   ac_ct_RANLIB=$RANLIB
   # Extract the first word of "ranlib", so it can be a program name with args.
 set dummy ranlib; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_RANLIB"; then
   ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
@@ -7228,7 +7357,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_RANLIB="ranlib"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7239,11 +7368,11 @@ fi
 fi
 ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
 if test -n "$ac_ct_RANLIB"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
-echo "${ECHO_T}$ac_ct_RANLIB" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_RANLIB" >&5
+$as_echo "$ac_ct_RANLIB" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_RANLIB" = x; then
@@ -7251,12 +7380,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     RANLIB=$ac_ct_RANLIB
@@ -7268,10 +7393,10 @@ fi
 if test -n "$ac_tool_prefix"; then
   # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
 set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$STRIP"; then
   ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
@@ -7284,7 +7409,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7295,11 +7420,11 @@ fi
 fi
 STRIP=$ac_cv_prog_STRIP
 if test -n "$STRIP"; then
-  { echo "$as_me:$LINENO: result: $STRIP" >&5
-echo "${ECHO_T}$STRIP" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $STRIP" >&5
+$as_echo "$STRIP" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -7308,10 +7433,10 @@ if test -z "$ac_cv_prog_STRIP"; then
   ac_ct_STRIP=$STRIP
   # Extract the first word of "strip", so it can be a program name with args.
 set dummy strip; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_STRIP"; then
   ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
@@ -7324,7 +7449,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_STRIP="strip"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -7335,11 +7460,11 @@ fi
 fi
 ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
 if test -n "$ac_ct_STRIP"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
-echo "${ECHO_T}$ac_ct_STRIP" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5
+$as_echo "$ac_ct_STRIP" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   if test "x$ac_ct_STRIP" = x; then
@@ -7347,12 +7472,8 @@ fi
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     STRIP=$ac_ct_STRIP
@@ -7415,10 +7536,10 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 case $deplibs_check_method in
 file_magic*)
   if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
-echo $ECHO_N "checking for ${ac_tool_prefix}file... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for ${ac_tool_prefix}file" >&5
+$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
@@ -7468,19 +7589,19 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 if test -z "$lt_cv_path_MAGIC_CMD"; then
   if test -n "$ac_tool_prefix"; then
-    { echo "$as_me:$LINENO: checking for file" >&5
-echo $ECHO_N "checking for file... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for file" >&5
+$as_echo_n "checking for file... " >&6; }
 if test "${lt_cv_path_MAGIC_CMD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   case $MAGIC_CMD in
 [\\/*] |  ?:[\\/]*)
@@ -7530,11 +7651,11 @@ fi
 
 MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
 if test -n "$MAGIC_CMD"; then
-  { echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
-echo "${ECHO_T}$MAGIC_CMD" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $MAGIC_CMD" >&5
+$as_echo "$MAGIC_CMD" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
   else
@@ -7546,6 +7667,314 @@ fi
   ;;
 esac
 
+
+  case $host_os in
+    rhapsody* | darwin*)
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
+set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_DSYMUTIL+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$DSYMUTIL"; then
+  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+DSYMUTIL=$ac_cv_prog_DSYMUTIL
+if test -n "$DSYMUTIL"; then
+  { $as_echo "$as_me:$LINENO: result: $DSYMUTIL" >&5
+$as_echo "$DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_DSYMUTIL"; then
+  ac_ct_DSYMUTIL=$DSYMUTIL
+  # Extract the first word of "dsymutil", so it can be a program name with args.
+set dummy dsymutil; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_DSYMUTIL"; then
+  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
+if test -n "$ac_ct_DSYMUTIL"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_DSYMUTIL" >&5
+$as_echo "$ac_ct_DSYMUTIL" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_DSYMUTIL" = x; then
+    DSYMUTIL=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    DSYMUTIL=$ac_ct_DSYMUTIL
+  fi
+else
+  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
+fi
+
+    if test -n "$ac_tool_prefix"; then
+  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
+set dummy ${ac_tool_prefix}nmedit; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_NMEDIT+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$NMEDIT"; then
+  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+NMEDIT=$ac_cv_prog_NMEDIT
+if test -n "$NMEDIT"; then
+  { $as_echo "$as_me:$LINENO: result: $NMEDIT" >&5
+$as_echo "$NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+
+fi
+if test -z "$ac_cv_prog_NMEDIT"; then
+  ac_ct_NMEDIT=$NMEDIT
+  # Extract the first word of "nmedit", so it can be a program name with args.
+set dummy nmedit; ac_word=$2
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
+if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  if test -n "$ac_ct_NMEDIT"; then
+  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
+else
+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
+for as_dir in $PATH
+do
+  IFS=$as_save_IFS
+  test -z "$as_dir" && as_dir=.
+  for ac_exec_ext in '' $ac_executable_extensions; do
+  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
+    ac_cv_prog_ac_ct_NMEDIT="nmedit"
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    break 2
+  fi
+done
+done
+IFS=$as_save_IFS
+
+fi
+fi
+ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
+if test -n "$ac_ct_NMEDIT"; then
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_NMEDIT" >&5
+$as_echo "$ac_ct_NMEDIT" >&6; }
+else
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
+fi
+
+  if test "x$ac_ct_NMEDIT" = x; then
+    NMEDIT=":"
+  else
+    case $cross_compiling:$ac_tool_warned in
+yes:)
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
+ac_tool_warned=yes ;;
+esac
+    NMEDIT=$ac_ct_NMEDIT
+  fi
+else
+  NMEDIT="$ac_cv_prog_NMEDIT"
+fi
+
+
+    { $as_echo "$as_me:$LINENO: checking for -single_module linker flag" >&5
+$as_echo_n "checking for -single_module linker flag... " >&6; }
+if test "${lt_cv_apple_cc_single_mod+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_apple_cc_single_mod=no
+      if test -z "${LT_MULTI_MODULE}"; then
+   # By default we will add the -single_module flag. You can override
+   # by either setting the environment variable LT_MULTI_MODULE
+   # non-empty at configure time, or by adding -multi_module to the
+   # link flags.
+   echo "int foo(void){return 1;}" > conftest.c
+   $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
+     -dynamiclib ${wl}-single_module conftest.c
+   if test -f libconftest.dylib; then
+     lt_cv_apple_cc_single_mod=yes
+     rm -rf libconftest.dylib*
+   fi
+   rm conftest.c
+      fi
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_apple_cc_single_mod" >&5
+$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for -exported_symbols_list linker flag" >&5
+$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
+if test "${lt_cv_ld_exported_symbols_list+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_ld_exported_symbols_list=no
+      save_LDFLAGS=$LDFLAGS
+      echo "_main" > conftest.sym
+      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
+      cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h.  */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h.  */
+
+int
+main ()
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (ac_try="$ac_link"
+case "(($ac_try" in
+  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
+  *) ac_try_echo=$ac_try;;
+esac
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
+  (eval "$ac_link") 2>conftest.er1
+  ac_status=$?
+  grep -v '^ *+' conftest.er1 >conftest.err
+  rm -f conftest.er1
+  cat conftest.err >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  (exit $ac_status); } && {
+	 test -z "$ac_c_werror_flag" ||
+	 test ! -s conftest.err
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
+  lt_cv_ld_exported_symbols_list=yes
+else
+  $as_echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+	lt_cv_ld_exported_symbols_list=no
+fi
+
+rm -rf conftest.dSYM
+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
+      conftest$ac_exeext conftest.$ac_ext
+   LDFLAGS="$save_LDFLAGS"
+
+fi
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_ld_exported_symbols_list" >&5
+$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
+    case $host_os in
+    rhapsody* | darwin1.[0123])
+      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
+    darwin1.*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+    darwin*)
+      # if running on 10.5 or later, the deployment target defaults
+      # to the OS version, if on x86, and 10.4, the deployment
+      # target defaults to 10.4. Don't you love it?
+      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
+   10.0,*86*-darwin8*|10.0,*-darwin[91]*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+   10.[012]*)
+     _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
+   10.*)
+     _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
+      esac
+    ;;
+  esac
+    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
+      _lt_dar_single_mod='$single_module'
+    fi
+    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
+      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
+    else
+      _lt_dar_export_syms="~$NMEDIT -s \$output_objdir/\${libname}-symbols.expsym \${lib}"
+    fi
+    if test "$DSYMUTIL" != ":"; then
+      _lt_dsymutil="~$DSYMUTIL \$lib || :"
+    else
+      _lt_dsymutil=
+    fi
+    ;;
+  esac
+
+
 enable_dlopen=no
 enable_win32_dll=yes
 
@@ -7611,7 +8040,7 @@ 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 conftest*
+$rm -r conftest*
 
 
 
@@ -7621,10 +8050,10 @@ if test "$GCC" = yes; then
   lt_prog_compiler_no_builtin_flag=' -fno-builtin'
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
   ac_outfile=conftest.$ac_objext
@@ -7639,11 +8068,11 @@ else
    -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:7642: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8071: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7646: \$? = $ac_status" >&5
+   echo "$as_me:8075: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -7656,8 +8085,8 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
     lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
@@ -7671,8 +8100,8 @@ lt_prog_compiler_wl=
 lt_prog_compiler_pic=
 lt_prog_compiler_static=
 
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl='-Wl,'
@@ -7903,20 +8332,20 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic" >&5
+$as_echo "$lt_prog_compiler_pic" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic"; then
 
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_pic_works=no
+  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"
@@ -7929,27 +8358,27 @@ else
    -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:7932: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8361: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:7936: \$? = $ac_status" >&5
+   echo "$as_me:8365: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works=yes
+       lt_cv_prog_compiler_pic_works=yes
      fi
    fi
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
 
-if test x"$lt_prog_compiler_pic_works" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
     case $lt_prog_compiler_pic in
      "" | " "*) ;;
      *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
@@ -7974,12 +8403,12 @@ esac
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_static_works=no
+  lt_cv_prog_compiler_static_works=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -7992,30 +8421,30 @@ else
        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works=yes
+         lt_cv_prog_compiler_static_works=yes
        fi
      else
-       lt_prog_compiler_static_works=yes
+       lt_cv_prog_compiler_static_works=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works" >&5
+$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
 
-if test x"$lt_prog_compiler_static_works" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works" = xyes; then
     :
 else
     lt_prog_compiler_static=
 fi
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
 if test "${lt_cv_prog_compiler_c_o+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o=no
    $rm -r conftest 2>/dev/null
@@ -8033,11 +8462,11 @@ else
    -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:8036: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:8465: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:8040: \$? = $ac_status" >&5
+   echo "$as_me:8469: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -8059,34 +8488,34 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o" >&5
+$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
   need_locks=no
 fi
 
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
   allow_undefined_flag=
@@ -8117,12 +8546,13 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
   # 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_"
+  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
   # the symbol is explicitly referenced.  Since portable code cannot
   # rely on this symbol name, it's probably fine to never include it in
   # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
   extract_expsyms_cmds=
   # Just being paranoid about ensuring that cc_basename is set.
   for cc_temp in $compiler""; do
@@ -8181,7 +8611,7 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
     # See if GNU ld supports shared libraries.
     case $host_os in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
 	ld_shlibs=no
@@ -8400,7 +8830,7 @@ _LT_EOF
       fi
       ;;
 
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
@@ -8420,7 +8850,7 @@ _LT_EOF
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
 	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	  for ld_flag in $LDFLAGS; do
   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
   	    aix_use_runtimelinking=yes
@@ -8515,18 +8945,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -8541,12 +8974,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -8581,18 +9015,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -8607,12 +9044,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -8692,11 +9130,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       link_all_deplibs=yes
     if test "$GCC" = yes ; then
     	output_verbose_link_cmd='echo'
-        archive_cmds='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      archive_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        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
       case $cc_basename in
         xlc*)
@@ -9065,8 +9502,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $ld_shlibs" >&5
-echo "${ECHO_T}$ld_shlibs" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs" >&5
+$as_echo "$ld_shlibs" >&6; }
 test "$ld_shlibs" = no && can_build_shared=no
 
 #
@@ -9086,15 +9523,15 @@ x|xyes)
       # 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $rm conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } 2>conftest.err; then
         soname=conftest
         lib=conftest
@@ -9112,7 +9549,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         if { (eval echo "$as_me:$LINENO: \"$archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
   (eval $archive_cmds 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
         then
 	  archive_cmds_need_lc=no
@@ -9124,16 +9561,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
-echo "${ECHO_T}$archive_cmds_need_lc" >&6; }
+      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc" >&5
+$as_echo "$archive_cmds_need_lc" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -9216,7 +9653,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -9736,17 +10173,32 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action=
 if test -n "$hardcode_libdir_flag_spec" || \
    test -n "$runpath_var" || \
@@ -9770,8 +10222,8 @@ else
   # directories.
   hardcode_action=unsupported
 fi
-{ echo "$as_me:$LINENO: result: $hardcode_action" >&5
-echo "${ECHO_T}$hardcode_action" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action" >&5
+$as_echo "$hardcode_action" >&6; }
 
 if test "$hardcode_action" = relink; then
   # Fast installation is not supported
@@ -9784,13 +10236,13 @@ fi
 
 striplib=
 old_striplib=
-{ echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
-echo $ECHO_N "checking whether stripping libraries is possible... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether stripping libraries is possible" >&5
+$as_echo_n "checking whether stripping libraries is possible... " >&6; }
 if test -n "$STRIP" && $STRIP -V 2>&1 | grep "GNU strip" >/dev/null; then
   test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
   test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+  { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
 else
 # FIXME - insert some real tests, host_os isn't really good enough
   case $host_os in
@@ -9798,16 +10250,16 @@ else
        if test -n "$STRIP" ; then
          striplib="$STRIP -x"
          old_striplib="$STRIP -S"
-         { echo "$as_me:$LINENO: result: yes" >&5
-echo "${ECHO_T}yes" >&6; }
+         { $as_echo "$as_me:$LINENO: result: yes" >&5
+$as_echo "yes" >&6; }
        else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
        ;;
    *)
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
     ;;
   esac
 fi
@@ -9839,10 +10291,10 @@ else
 
   darwin*)
   # if libdl is installed we need to link against it
-    { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
 if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
@@ -9874,33 +10326,37 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_dl_dlopen=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_dl_dlopen=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
 
@@ -9913,10 +10369,10 @@ fi
    ;;
 
   *)
-    { echo "$as_me:$LINENO: checking for shl_load" >&5
-echo $ECHO_N "checking for shl_load... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking for shl_load" >&5
+$as_echo_n "checking for shl_load... " >&6; }
 if test "${ac_cv_func_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -9969,38 +10425,42 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_func_shl_load=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_func_shl_load=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
-echo "${ECHO_T}$ac_cv_func_shl_load" >&6; }
-if test $ac_cv_func_shl_load = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_shl_load" >&5
+$as_echo "$ac_cv_func_shl_load" >&6; }
+if test "x$ac_cv_func_shl_load" = x""yes; then
   lt_cv_dlopen="shl_load"
 else
-  { echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
-echo $ECHO_N "checking for shl_load in -ldld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for shl_load in -ldld" >&5
+$as_echo_n "checking for shl_load in -ldld... " >&6; }
 if test "${ac_cv_lib_dld_shl_load+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
@@ -10032,39 +10492,43 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_dld_shl_load=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_dld_shl_load=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_shl_load" >&6; }
-if test $ac_cv_lib_dld_shl_load = yes; then
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-dld"
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_shl_load" >&5
+$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
+if test "x$ac_cv_lib_dld_shl_load" = x""yes; then
+  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
 else
-  { echo "$as_me:$LINENO: checking for dlopen" >&5
-echo $ECHO_N "checking for dlopen... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for dlopen" >&5
+$as_echo_n "checking for dlopen... " >&6; }
 if test "${ac_cv_func_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -10117,38 +10581,42 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_func_dlopen=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_func_dlopen=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
-echo "${ECHO_T}$ac_cv_func_dlopen" >&6; }
-if test $ac_cv_func_dlopen = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_dlopen" >&5
+$as_echo "$ac_cv_func_dlopen" >&6; }
+if test "x$ac_cv_func_dlopen" = x""yes; then
   lt_cv_dlopen="dlopen"
 else
-  { echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
-echo $ECHO_N "checking for dlopen in -ldl... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for dlopen in -ldl" >&5
+$as_echo_n "checking for dlopen in -ldl... " >&6; }
 if test "${ac_cv_lib_dl_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldl  $LIBS"
@@ -10180,39 +10648,43 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_dl_dlopen=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_dl_dlopen=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_dl_dlopen" >&6; }
-if test $ac_cv_lib_dl_dlopen = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dl_dlopen" >&5
+$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
+if test "x$ac_cv_lib_dl_dlopen" = x""yes; then
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
 else
-  { echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
-echo $ECHO_N "checking for dlopen in -lsvld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for dlopen in -lsvld" >&5
+$as_echo_n "checking for dlopen in -lsvld... " >&6; }
 if test "${ac_cv_lib_svld_dlopen+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-lsvld  $LIBS"
@@ -10244,39 +10716,43 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_svld_dlopen=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_svld_dlopen=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
-echo "${ECHO_T}$ac_cv_lib_svld_dlopen" >&6; }
-if test $ac_cv_lib_svld_dlopen = yes; then
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_svld_dlopen" >&5
+$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
+if test "x$ac_cv_lib_svld_dlopen" = x""yes; then
   lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
 else
-  { echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
-echo $ECHO_N "checking for dld_link in -ldld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for dld_link in -ldld" >&5
+$as_echo_n "checking for dld_link in -ldld... " >&6; }
 if test "${ac_cv_lib_dld_dld_link+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_check_lib_save_LIBS=$LIBS
 LIBS="-ldld  $LIBS"
@@ -10308,34 +10784,38 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
   ac_cv_lib_dld_dld_link=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cv_lib_dld_dld_link=no
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 LIBS=$ac_check_lib_save_LIBS
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
-echo "${ECHO_T}$ac_cv_lib_dld_dld_link" >&6; }
-if test $ac_cv_lib_dld_dld_link = yes; then
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-dld"
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_lib_dld_dld_link" >&5
+$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
+if test "x$ac_cv_lib_dld_dld_link" = x""yes; then
+  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
 fi
 
 
@@ -10373,10 +10853,10 @@ fi
     save_LIBS="$LIBS"
     LIBS="$lt_cv_dlopen_libs $LIBS"
 
-    { echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
-echo $ECHO_N "checking whether a program can dlopen itself... $ECHO_C" >&6; }
+    { $as_echo "$as_me:$LINENO: checking whether a program can dlopen itself" >&5
+$as_echo_n "checking whether a program can dlopen itself... " >&6; }
 if test "${lt_cv_dlopen_self+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   	  if test "$cross_compiling" = yes; then :
   lt_cv_dlopen_self=cross
@@ -10384,7 +10864,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 10387 "configure"
+#line 10867 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -10450,7 +10930,7 @@ EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
@@ -10468,15 +10948,15 @@ rm -fr conftest*
 
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self" >&5
+$as_echo "$lt_cv_dlopen_self" >&6; }
 
     if test "x$lt_cv_dlopen_self" = xyes; then
       wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
-echo $ECHO_N "checking whether a statically linked program can dlopen itself... $ECHO_C" >&6; }
+      { $as_echo "$as_me:$LINENO: checking whether a statically linked program can dlopen itself" >&5
+$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
 if test "${lt_cv_dlopen_self_static+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   	  if test "$cross_compiling" = yes; then :
   lt_cv_dlopen_self_static=cross
@@ -10484,7 +10964,7 @@ else
   lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
   lt_status=$lt_dlunknown
   cat > conftest.$ac_ext <<EOF
-#line 10487 "configure"
+#line 10967 "configure"
 #include "confdefs.h"
 
 #if HAVE_DLFCN_H
@@ -10550,7 +11030,7 @@ EOF
   if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&5
   (eval $ac_link) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && test -s conftest${ac_exeext} 2>/dev/null; then
     (./conftest; exit; ) >&5 2>/dev/null
     lt_status=$?
@@ -10568,8 +11048,8 @@ rm -fr conftest*
 
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
-echo "${ECHO_T}$lt_cv_dlopen_self_static" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_dlopen_self_static" >&5
+$as_echo "$lt_cv_dlopen_self_static" >&6; }
     fi
 
     CPPFLAGS="$save_CPPFLAGS"
@@ -10591,13 +11071,13 @@ fi
 
 
 # Report which library types will actually be built
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
 
-{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
 test "$can_build_shared" = "no" && enable_shared=no
 
 # On AIX, shared libraries and static libraries use the same namespace, and
@@ -10611,21 +11091,21 @@ aix3*)
   fi
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
     test "$enable_shared" = yes && enable_static=no
   fi
     ;;
 esac
-{ echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
 
-{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$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
-{ echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
 
 # The else clause should only fire when bootstrapping the
 # libtool distribution, otherwise you forgot to ship ltmain.sh
@@ -10667,6 +11147,7 @@ if test -f "$ltmain"; then
     predeps \
     postdeps \
     compiler_lib_search_path \
+    compiler_lib_search_dirs \
     archive_cmds \
     archive_expsym_cmds \
     postinstall_cmds \
@@ -10717,8 +11198,8 @@ if test -f "$ltmain"; then
 cfgfile="${ofile}T"
   trap "$rm \"$cfgfile\"; exit 1" 1 2 15
   $rm -f "$cfgfile"
-  { echo "$as_me:$LINENO: creating $ofile" >&5
-echo "$as_me: creating $ofile" >&6;}
+  { $as_echo "$as_me:$LINENO: creating $ofile" >&5
+$as_echo "$as_me: creating $ofile" >&6;}
 
   cat <<__EOF__ >> "$cfgfile"
 #! $SHELL
@@ -10727,7 +11208,7 @@ echo "$as_me: creating $ofile" >&6;}
 # Generated automatically by $PROGRAM (GNU $PACKAGE $VERSION$TIMESTAMP)
 # NOTE: Changes made to this file will be lost: look at ltmain.sh.
 #
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 # Free Software Foundation, Inc.
 #
 # This file is part of GNU Libtool:
@@ -10963,6 +11444,10 @@ predeps=$lt_predeps
 # shared library.
 postdeps=$lt_postdeps
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path
@@ -11126,18 +11611,18 @@ fi
 
 if test -f "$ltmain" && test -n "$tagnames"; then
   if test ! -f "${ofile}"; then
-    { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not exist" >&5
+$as_echo "$as_me: WARNING: output file \`$ofile' does not exist" >&2;}
   fi
 
   if test -z "$LTCC"; then
     eval "`$SHELL ${ofile} --config | grep '^LTCC='`"
     if test -z "$LTCC"; then
-      { echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
-echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
+      { $as_echo "$as_me:$LINENO: WARNING: output file \`$ofile' does not look like a libtool script" >&5
+$as_echo "$as_me: WARNING: output file \`$ofile' does not look like a libtool script" >&2;}
     else
-      { echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
-echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
+      { $as_echo "$as_me:$LINENO: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&5
+$as_echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
     fi
   fi
   if test -z "$LTCFLAGS"; then
@@ -11154,16 +11639,16 @@ echo "$as_me: WARNING: using \`LTCC=$LTCC', extracted from \`$ofile'" >&2;}
     # Check whether tagname contains only valid characters
     case `$echo "X$tagname" | $Xsed -e 's:[-_ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890,/]::g'` in
     "") ;;
-    *)  { { echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
-echo "$as_me: error: invalid tag name: $tagname" >&2;}
+    *)  { { $as_echo "$as_me:$LINENO: error: invalid tag name: $tagname" >&5
+$as_echo "$as_me: error: invalid tag name: $tagname" >&2;}
    { (exit 1); exit 1; }; }
 	;;
     esac
 
     if grep "^# ### BEGIN LIBTOOL TAG CONFIG: $tagname$" < "${ofile}" > /dev/null
     then
-      { { echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
-echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
+      { { $as_echo "$as_me:$LINENO: error: tag name \"$tagname\" already exists" >&5
+$as_echo "$as_me: error: tag name \"$tagname\" already exists" >&2;}
    { (exit 1); exit 1; }; }
     fi
 
@@ -11211,6 +11696,7 @@ postdep_objects_CXX=
 predeps_CXX=
 postdeps_CXX=
 compiler_lib_search_path_CXX=
+compiler_lib_search_dirs_CXX=
 
 # Source file extension for C++ test sources.
 ac_ext=cpp
@@ -11248,7 +11734,7 @@ 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 conftest*
+$rm -r conftest*
 
 
 # Allow CC to be a program name with arguments.
@@ -11305,8 +11791,8 @@ fi
 ac_prog=ld
 if test "$GCC" = yes; then
   # Check if gcc -print-prog-name=ld gives a path.
-  { echo "$as_me:$LINENO: checking for ld used by $CC" >&5
-echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$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
@@ -11335,14 +11821,14 @@ echo $ECHO_N "checking for ld used by $CC... $ECHO_C" >&6; }
     ;;
   esac
 elif test "$with_gnu_ld" = yes; then
-  { echo "$as_me:$LINENO: checking for GNU ld" >&5
-echo $ECHO_N "checking for GNU ld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for GNU ld" >&5
+$as_echo_n "checking for GNU ld... " >&6; }
 else
-  { echo "$as_me:$LINENO: checking for non-GNU ld" >&5
-echo $ECHO_N "checking for non-GNU ld... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for non-GNU ld" >&5
+$as_echo_n "checking for non-GNU ld... " >&6; }
 fi
 if test "${lt_cv_path_LD+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -z "$LD"; then
   lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
@@ -11372,19 +11858,19 @@ fi
 
 LD="$lt_cv_path_LD"
 if test -n "$LD"; then
-  { echo "$as_me:$LINENO: result: $LD" >&5
-echo "${ECHO_T}$LD" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $LD" >&5
+$as_echo "$LD" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
-test -z "$LD" && { { echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
-echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
+test -z "$LD" && { { $as_echo "$as_me:$LINENO: error: no acceptable ld found in \$PATH" >&5
+$as_echo "$as_me: error: no acceptable ld found in \$PATH" >&2;}
    { (exit 1); exit 1; }; }
-{ echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
-echo $ECHO_N "checking if the linker ($LD) is GNU ld... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if the linker ($LD) is GNU ld" >&5
+$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
 if test "${lt_cv_prog_gnu_ld+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   # I'd rather use --version here, but apparently some GNU lds only accept -v.
 case `$LD -v 2>&1 </dev/null` in
@@ -11396,8 +11882,8 @@ case `$LD -v 2>&1 </dev/null` in
   ;;
 esac
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
-echo "${ECHO_T}$lt_cv_prog_gnu_ld" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_gnu_ld" >&5
+$as_echo "$lt_cv_prog_gnu_ld" >&6; }
 with_gnu_ld=$lt_cv_prog_gnu_ld
 
 
@@ -11447,15 +11933,15 @@ else
 fi
 
 # PORTME: fill in a description of your system's C++ link characteristics
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 ld_shlibs_CXX=yes
 case $host_os in
   aix3*)
     # FIXME: insert proper C++ library support
     ld_shlibs_CXX=no
     ;;
-  aix4* | aix5*)
+  aix[4-9]*)
     if test "$host_cpu" = ia64; then
       # On IA64, the linker does run time linking by default, so we don't
       # have to do anything special.
@@ -11468,7 +11954,7 @@ case $host_os in
       # Test if we are trying to use run time linking or normal
       # AIX style linking. If -brtl is somewhere in LDFLAGS, we
       # need to do runtime linking.
-      case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+      case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	for ld_flag in $LDFLAGS; do
 	  case $ld_flag in
 	  *-brtl*)
@@ -11565,18 +12051,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -11591,12 +12080,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -11632,18 +12122,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -11658,12 +12151,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -11726,51 +12220,23 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     fi
   ;;
       darwin* | rhapsody*)
-        case $host_os in
-        rhapsody* | darwin1.[012])
-         allow_undefined_flag_CXX='${wl}-undefined ${wl}suppress'
-         ;;
-       *) # Darwin 1.3 on
-         if test -z ${MACOSX_DEPLOYMENT_TARGET} ; then
-           allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-         else
-           case ${MACOSX_DEPLOYMENT_TARGET} in
-             10.[012])
-               allow_undefined_flag_CXX='${wl}-flat_namespace ${wl}-undefined ${wl}suppress'
-               ;;
-             10.*)
-               allow_undefined_flag_CXX='${wl}-undefined ${wl}dynamic_lookup'
-               ;;
-           esac
-         fi
-         ;;
-        esac
       archive_cmds_need_lc_CXX=no
       hardcode_direct_CXX=no
       hardcode_automatic_CXX=yes
       hardcode_shlibpath_var_CXX=unsupported
       whole_archive_flag_spec_CXX=''
       link_all_deplibs_CXX=yes
-
-    if test "$GXX" = yes ; then
-      lt_int_apple_cc_single_mod=no
+      allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
+      if test "$GXX" = yes ; then
       output_verbose_link_cmd='echo'
-      if $CC -dumpspecs 2>&1 | $EGREP 'single_module' >/dev/null ; then
-       lt_int_apple_cc_single_mod=yes
+      archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+      module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+      archive_expsym_cmds_CXX="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_CXX="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}"
+      if test "$lt_cv_apple_cc_single_mod" != "yes"; then
+        archive_cmds_CXX="\$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}"
+        archive_expsym_cmds_CXX="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
-      if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-       archive_cmds_CXX='$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      else
-          archive_cmds_CXX='$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'
-        fi
-        module_cmds_CXX='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-        # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-          if test "X$lt_int_apple_cc_single_mod" = Xyes ; then
-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib -single_module $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          else
-            archive_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "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~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-          fi
-            module_expsym_cmds_CXX='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
       else
       case $cc_basename in
         xlc*)
@@ -12021,7 +12487,7 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
 	export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
 	whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
 	;;
-      pgCC*)
+      pgCC* | pgcpp*)
         # Portland Group C++ compiler
 	archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
   	archive_expsym_cmds_CXX='$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'
@@ -12421,14 +12887,13 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     ld_shlibs_CXX=no
     ;;
 esac
-{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
 test "$ld_shlibs_CXX" = no && can_build_shared=no
 
 GCC_CXX="$GXX"
 LD_CXX="$LD"
 
-
 cat > conftest.$ac_ext <<EOF
 class Foo
 {
@@ -12442,7 +12907,7 @@ EOF
 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }; then
   # Parse the compiler output and extract the necessary
   # objects, libraries and library flags.
@@ -12530,6 +12995,11 @@ fi
 
 $rm -f confest.$objext
 
+compiler_lib_search_dirs_CXX=
+if test -n "$compiler_lib_search_path_CXX"; then
+  compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
+fi
+
 # PORTME: override above test on systems where it is broken
 case $host_os in
 interix[3-9]*)
@@ -12585,7 +13055,6 @@ solaris*)
   ;;
 esac
 
-
 case " $postdeps_CXX " in
 *" -lc "*) archive_cmds_need_lc_CXX=no ;;
 esac
@@ -12594,8 +13063,8 @@ lt_prog_compiler_wl_CXX=
 lt_prog_compiler_pic_CXX=
 lt_prog_compiler_static_CXX=
 
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   # C++ specific cases for pic, static, wl, etc.
   if test "$GXX" = yes; then
@@ -12661,7 +13130,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     esac
   else
     case $host_os in
-      aix4* | aix5*)
+      aix[4-9]*)
 	# All AIX code is PIC.
 	if test "$host_cpu" = ia64; then
 	  # AIX 5 now supports IA64 processor
@@ -12757,7 +13226,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
 	    lt_prog_compiler_pic_CXX='-KPIC'
 	    lt_prog_compiler_static_CXX='-static'
 	    ;;
-	  pgCC*)
+	  pgCC* | pgcpp*)
 	    # Portland Group C++ compiler.
 	    lt_prog_compiler_wl_CXX='-Wl,'
 	    lt_prog_compiler_pic_CXX='-fpic'
@@ -12878,20 +13347,20 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_CXX" >&5
+$as_echo "$lt_prog_compiler_pic_CXX" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic_CXX"; then
 
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_pic_works_CXX=no
+  lt_cv_prog_compiler_pic_works_CXX=no
   ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC"
@@ -12904,27 +13373,27 @@ else
    -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:12907: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13376: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:12911: \$? = $ac_status" >&5
+   echo "$as_me:13380: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works_CXX=yes
+       lt_cv_prog_compiler_pic_works_CXX=yes
      fi
    fi
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
 
-if test x"$lt_prog_compiler_pic_works_CXX" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then
     case $lt_prog_compiler_pic_CXX in
      "" | " "*) ;;
      *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;;
@@ -12949,12 +13418,12 @@ esac
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_static_works_CXX=no
+  lt_cv_prog_compiler_static_works_CXX=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -12967,30 +13436,30 @@ else
        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works_CXX=yes
+         lt_cv_prog_compiler_static_works_CXX=yes
        fi
      else
-       lt_prog_compiler_static_works_CXX=yes
+       lt_cv_prog_compiler_static_works_CXX=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_CXX" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
 
-if test x"$lt_prog_compiler_static_works_CXX" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
     :
 else
     lt_prog_compiler_static_CXX=
 fi
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
 if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_CXX=no
    $rm -r conftest 2>/dev/null
@@ -13008,11 +13477,11 @@ else
    -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:13011: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:13480: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:13015: \$? = $ac_status" >&5
+   echo "$as_me:13484: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -13034,38 +13503,38 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_CXX" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
   need_locks=no
 fi
 
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   case $host_os in
-  aix4* | aix5*)
+  aix[4-9]*)
     # If we're using GNU nm, then we don't want the "-C" option.
     # -C means demangle to AIX nm, but means don't demangle with GNU nm
     if $NM -V 2>&1 | grep 'GNU' > /dev/null; then
@@ -13084,9 +13553,10 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
     export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
   ;;
   esac
+  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
 
-{ echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
-echo "${ECHO_T}$ld_shlibs_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_CXX" >&5
+$as_echo "$ld_shlibs_CXX" >&6; }
 test "$ld_shlibs_CXX" = no && can_build_shared=no
 
 #
@@ -13106,15 +13576,15 @@ x|xyes)
       # 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $rm conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } 2>conftest.err; then
         soname=conftest
         lib=conftest
@@ -13132,7 +13602,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         if { (eval echo "$as_me:$LINENO: \"$archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
   (eval $archive_cmds_CXX 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
         then
 	  archive_cmds_need_lc_CXX=no
@@ -13144,16 +13614,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_CXX" >&6; }
+      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_CXX" >&5
+$as_echo "$archive_cmds_need_lc_CXX" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -13185,7 +13655,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -13704,17 +14174,32 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action_CXX=
 if test -n "$hardcode_libdir_flag_spec_CXX" || \
    test -n "$runpath_var_CXX" || \
@@ -13738,8 +14223,8 @@ else
   # directories.
   hardcode_action_CXX=unsupported
 fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
-echo "${ECHO_T}$hardcode_action_CXX" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action_CXX" >&5
+$as_echo "$hardcode_action_CXX" >&6; }
 
 if test "$hardcode_action_CXX" = relink; then
   # Fast installation is not supported
@@ -13791,6 +14276,7 @@ if test -f "$ltmain"; then
     predeps_CXX \
     postdeps_CXX \
     compiler_lib_search_path_CXX \
+    compiler_lib_search_dirs_CXX \
     archive_cmds_CXX \
     archive_expsym_cmds_CXX \
     postinstall_cmds_CXX \
@@ -14039,6 +14525,10 @@ predeps=$lt_predeps_CXX
 # shared library.
 postdeps=$lt_postdeps_CXX
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path_CXX
@@ -14253,7 +14743,7 @@ 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 conftest*
+$rm -r conftest*
 
 
 # Allow CC to be a program name with arguments.
@@ -14272,13 +14762,13 @@ done
 cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
 
-{ echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
-echo $ECHO_N "checking if libtool supports shared libraries... $ECHO_C" >&6; }
-{ echo "$as_me:$LINENO: result: $can_build_shared" >&5
-echo "${ECHO_T}$can_build_shared" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if libtool supports shared libraries" >&5
+$as_echo_n "checking if libtool supports shared libraries... " >&6; }
+{ $as_echo "$as_me:$LINENO: result: $can_build_shared" >&5
+$as_echo "$can_build_shared" >&6; }
 
-{ echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
-echo $ECHO_N "checking whether to build shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether to build shared libraries" >&5
+$as_echo_n "checking whether to build shared libraries... " >&6; }
 test "$can_build_shared" = "no" && enable_shared=no
 
 # On AIX, shared libraries and static libraries use the same namespace, and
@@ -14291,21 +14781,21 @@ aix3*)
     postinstall_cmds='$RANLIB $lib'
   fi
   ;;
-aix4* | aix5*)
+aix[4-9]*)
   if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
     test "$enable_shared" = yes && enable_static=no
   fi
   ;;
 esac
-{ echo "$as_me:$LINENO: result: $enable_shared" >&5
-echo "${ECHO_T}$enable_shared" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $enable_shared" >&5
+$as_echo "$enable_shared" >&6; }
 
-{ echo "$as_me:$LINENO: checking whether to build static libraries" >&5
-echo $ECHO_N "checking whether to build static libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$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
-{ echo "$as_me:$LINENO: result: $enable_static" >&5
-echo "${ECHO_T}$enable_static" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $enable_static" >&5
+$as_echo "$enable_static" >&6; }
 
 GCC_F77="$G77"
 LD_F77="$LD"
@@ -14314,8 +14804,8 @@ lt_prog_compiler_wl_F77=
 lt_prog_compiler_pic_F77=
 lt_prog_compiler_static_F77=
 
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl_F77='-Wl,'
@@ -14546,20 +15036,20 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_F77" >&5
+$as_echo "$lt_prog_compiler_pic_F77" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic_F77"; then
 
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_F77 works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_F77+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_pic_works_F77=no
+  lt_cv_prog_compiler_pic_works_F77=no
   ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic_F77"
@@ -14572,27 +15062,27 @@ else
    -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:14575: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15065: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:14579: \$? = $ac_status" >&5
+   echo "$as_me:15069: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works_F77=yes
+       lt_cv_prog_compiler_pic_works_F77=yes
      fi
    fi
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_F77" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_F77" >&6; }
 
-if test x"$lt_prog_compiler_pic_works_F77" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works_F77" = xyes; then
     case $lt_prog_compiler_pic_F77 in
      "" | " "*) ;;
      *) lt_prog_compiler_pic_F77=" $lt_prog_compiler_pic_F77" ;;
@@ -14617,12 +15107,12 @@ esac
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl_F77 eval lt_tmp_static_flag=\"$lt_prog_compiler_static_F77\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_F77+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_static_works_F77=no
+  lt_cv_prog_compiler_static_works_F77=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -14635,30 +15125,30 @@ else
        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works_F77=yes
+         lt_cv_prog_compiler_static_works_F77=yes
        fi
      else
-       lt_prog_compiler_static_works_F77=yes
+       lt_cv_prog_compiler_static_works_F77=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_F77" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_F77" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_F77" >&6; }
 
-if test x"$lt_prog_compiler_static_works_F77" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_F77" = xyes; then
     :
 else
     lt_prog_compiler_static_F77=
 fi
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
 if test "${lt_cv_prog_compiler_c_o_F77+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_F77=no
    $rm -r conftest 2>/dev/null
@@ -14676,11 +15166,11 @@ else
    -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:14679: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:15169: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:14683: \$? = $ac_status" >&5
+   echo "$as_me:15173: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -14702,34 +15192,34 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_F77" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_F77" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o_F77" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
   need_locks=no
 fi
 
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
   allow_undefined_flag_F77=
@@ -14760,12 +15250,13 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
   # 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_F77="_GLOBAL_OFFSET_TABLE_"
+  exclude_expsyms_F77='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
   # the symbol is explicitly referenced.  Since portable code cannot
   # rely on this symbol name, it's probably fine to never include it in
   # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
   extract_expsyms_cmds=
   # Just being paranoid about ensuring that cc_basename is set.
   for cc_temp in $compiler""; do
@@ -14824,7 +15315,7 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
     # See if GNU ld supports shared libraries.
     case $host_os in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
 	ld_shlibs_F77=no
@@ -15043,7 +15534,7 @@ _LT_EOF
       fi
       ;;
 
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
@@ -15063,7 +15554,7 @@ _LT_EOF
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
 	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	  for ld_flag in $LDFLAGS; do
   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
   	    aix_use_runtimelinking=yes
@@ -15148,18 +15639,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_f77_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -15174,12 +15668,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -15204,18 +15699,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_f77_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -15230,12 +15728,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -15315,11 +15814,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       link_all_deplibs_F77=yes
     if test "$GCC" = yes ; then
     	output_verbose_link_cmd='echo'
-        archive_cmds_F77='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds_F77='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      archive_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds_F77='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        archive_cmds_F77="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+        module_cmds_F77="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+        archive_expsym_cmds_F77="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_F77="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
       case $cc_basename in
         xlc*)
@@ -15688,8 +16186,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
-echo "${ECHO_T}$ld_shlibs_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_F77" >&5
+$as_echo "$ld_shlibs_F77" >&6; }
 test "$ld_shlibs_F77" = no && can_build_shared=no
 
 #
@@ -15709,15 +16207,15 @@ x|xyes)
       # 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $rm conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } 2>conftest.err; then
         soname=conftest
         lib=conftest
@@ -15735,7 +16233,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         if { (eval echo "$as_me:$LINENO: \"$archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
   (eval $archive_cmds_F77 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
         then
 	  archive_cmds_need_lc_F77=no
@@ -15747,16 +16245,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_F77" >&6; }
+      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_F77" >&5
+$as_echo "$archive_cmds_need_lc_F77" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -15788,7 +16286,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -16307,17 +16805,32 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action_F77=
 if test -n "$hardcode_libdir_flag_spec_F77" || \
    test -n "$runpath_var_F77" || \
@@ -16341,8 +16854,8 @@ else
   # directories.
   hardcode_action_F77=unsupported
 fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
-echo "${ECHO_T}$hardcode_action_F77" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action_F77" >&5
+$as_echo "$hardcode_action_F77" >&6; }
 
 if test "$hardcode_action_F77" = relink; then
   # Fast installation is not supported
@@ -16394,6 +16907,7 @@ if test -f "$ltmain"; then
     predeps_F77 \
     postdeps_F77 \
     compiler_lib_search_path_F77 \
+    compiler_lib_search_dirs_F77 \
     archive_cmds_F77 \
     archive_expsym_cmds_F77 \
     postinstall_cmds_F77 \
@@ -16642,6 +17156,10 @@ predeps=$lt_predeps_F77
 # shared library.
 postdeps=$lt_postdeps_F77
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_F77
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path_F77
@@ -16816,7 +17334,7 @@ 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 conftest*
+$rm -r conftest*
 
 
 # Allow CC to be a program name with arguments.
@@ -16847,10 +17365,10 @@ if test "$GCC" = yes; then
   lt_prog_compiler_no_builtin_flag_GCJ=' -fno-builtin'
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-echo $ECHO_N "checking if $compiler supports -fno-rtti -fno-exceptions... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
+$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
 if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_rtti_exceptions=no
   ac_outfile=conftest.$ac_objext
@@ -16865,11 +17383,11 @@ else
    -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:16868: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17386: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:16872: \$? = $ac_status" >&5
+   echo "$as_me:17390: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
@@ -16882,8 +17400,8 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_rtti_exceptions" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
+$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
 
 if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
     lt_prog_compiler_no_builtin_flag_GCJ="$lt_prog_compiler_no_builtin_flag_GCJ -fno-rtti -fno-exceptions"
@@ -16897,8 +17415,8 @@ lt_prog_compiler_wl_GCJ=
 lt_prog_compiler_pic_GCJ=
 lt_prog_compiler_static_GCJ=
 
-{ echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
-echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $compiler option to produce PIC" >&5
+$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
 
   if test "$GCC" = yes; then
     lt_prog_compiler_wl_GCJ='-Wl,'
@@ -16929,7 +17447,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
       # built for inclusion in a dll (and should export symbols for example).
       # Although the cygwin gcc ignores -fPIC, still need this for old-style
       # (--disable-auto-import) libraries
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+
       ;;
 
     darwin* | rhapsody*)
@@ -16999,7 +17517,7 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     mingw* | cygwin* | pw32* | os2*)
       # This hack is so that the source file can tell whether it is being
       # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic_GCJ='-DDLL_EXPORT'
+
       ;;
 
     hpux9* | hpux10* | hpux11*)
@@ -17129,20 +17647,20 @@ echo $ECHO_N "checking for $compiler option to produce PIC... $ECHO_C" >&6; }
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_GCJ" >&5
+$as_echo "$lt_prog_compiler_pic_GCJ" >&6; }
 
 #
 # Check to make sure the PIC flag actually works.
 #
 if test -n "$lt_prog_compiler_pic_GCJ"; then
 
-{ echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
-echo $ECHO_N "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_pic_works_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works" >&5
+$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_GCJ works... " >&6; }
+if test "${lt_cv_prog_compiler_pic_works_GCJ+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_pic_works_GCJ=no
+  lt_cv_prog_compiler_pic_works_GCJ=no
   ac_outfile=conftest.$ac_objext
    echo "$lt_simple_compile_test_code" > conftest.$ac_ext
    lt_compiler_flag="$lt_prog_compiler_pic_GCJ"
@@ -17155,27 +17673,27 @@ else
    -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:17158: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17676: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>conftest.err)
    ac_status=$?
    cat conftest.err >&5
-   echo "$as_me:17162: \$? = $ac_status" >&5
+   echo "$as_me:17680: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
      $echo "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
      if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_prog_compiler_pic_works_GCJ=yes
+       lt_cv_prog_compiler_pic_works_GCJ=yes
      fi
    fi
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_pic_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_pic_works_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_pic_works_GCJ" >&5
+$as_echo "$lt_cv_prog_compiler_pic_works_GCJ" >&6; }
 
-if test x"$lt_prog_compiler_pic_works_GCJ" = xyes; then
+if test x"$lt_cv_prog_compiler_pic_works_GCJ" = xyes; then
     case $lt_prog_compiler_pic_GCJ in
      "" | " "*) ;;
      *) lt_prog_compiler_pic_GCJ=" $lt_prog_compiler_pic_GCJ" ;;
@@ -17200,12 +17718,12 @@ esac
 # Check to make sure the static flag actually works.
 #
 wl=$lt_prog_compiler_wl_GCJ eval lt_tmp_static_flag=\"$lt_prog_compiler_static_GCJ\"
-{ echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-echo $ECHO_N "checking if $compiler static flag $lt_tmp_static_flag works... $ECHO_C" >&6; }
-if test "${lt_prog_compiler_static_works_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+{ $as_echo "$as_me:$LINENO: checking if $compiler static flag $lt_tmp_static_flag works" >&5
+$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
+if test "${lt_cv_prog_compiler_static_works_GCJ+set}" = set; then
+  $as_echo_n "(cached) " >&6
 else
-  lt_prog_compiler_static_works_GCJ=no
+  lt_cv_prog_compiler_static_works_GCJ=no
    save_LDFLAGS="$LDFLAGS"
    LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
    echo "$lt_simple_link_test_code" > conftest.$ac_ext
@@ -17218,30 +17736,30 @@ else
        $echo "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
        if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_prog_compiler_static_works_GCJ=yes
+         lt_cv_prog_compiler_static_works_GCJ=yes
        fi
      else
-       lt_prog_compiler_static_works_GCJ=yes
+       lt_cv_prog_compiler_static_works_GCJ=yes
      fi
    fi
-   $rm conftest*
+   $rm -r conftest*
    LDFLAGS="$save_LDFLAGS"
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_prog_compiler_static_works_GCJ" >&5
-echo "${ECHO_T}$lt_prog_compiler_static_works_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_static_works_GCJ" >&5
+$as_echo "$lt_cv_prog_compiler_static_works_GCJ" >&6; }
 
-if test x"$lt_prog_compiler_static_works_GCJ" = xyes; then
+if test x"$lt_cv_prog_compiler_static_works_GCJ" = xyes; then
     :
 else
     lt_prog_compiler_static_GCJ=
 fi
 
 
-{ echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
-echo $ECHO_N "checking if $compiler supports -c -o file.$ac_objext... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if $compiler supports -c -o file.$ac_objext" >&5
+$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
 if test "${lt_cv_prog_compiler_c_o_GCJ+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   lt_cv_prog_compiler_c_o_GCJ=no
    $rm -r conftest 2>/dev/null
@@ -17259,11 +17777,11 @@ else
    -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:17262: $lt_compile\"" >&5)
+   (eval echo "\"\$as_me:17780: $lt_compile\"" >&5)
    (eval "$lt_compile" 2>out/conftest.err)
    ac_status=$?
    cat out/conftest.err >&5
-   echo "$as_me:17266: \$? = $ac_status" >&5
+   echo "$as_me:17784: \$? = $ac_status" >&5
    if (exit $ac_status) && test -s out/conftest2.$ac_objext
    then
      # The compiler can only warn and ignore the option if not recognized
@@ -17285,34 +17803,34 @@ else
    $rm conftest*
 
 fi
-{ echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
-echo "${ECHO_T}$lt_cv_prog_compiler_c_o_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $lt_cv_prog_compiler_c_o_GCJ" >&5
+$as_echo "$lt_cv_prog_compiler_c_o_GCJ" >&6; }
 
 
 hard_links="nottested"
 if test "$lt_cv_prog_compiler_c_o_GCJ" = no && test "$need_locks" != no; then
   # do not overwrite the value of need_locks provided by the user
-  { echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
-echo $ECHO_N "checking if we can lock with hard links... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking if we can lock with hard links" >&5
+$as_echo_n "checking if we can lock with hard links... " >&6; }
   hard_links=yes
   $rm conftest*
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
   touch conftest.a
   ln conftest.a conftest.b 2>&5 || hard_links=no
   ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { echo "$as_me:$LINENO: result: $hard_links" >&5
-echo "${ECHO_T}$hard_links" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $hard_links" >&5
+$as_echo "$hard_links" >&6; }
   if test "$hard_links" = no; then
-    { echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
+    { $as_echo "$as_me:$LINENO: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
+$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
     need_locks=warn
   fi
 else
   need_locks=no
 fi
 
-{ echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared libraries... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether the $compiler linker ($LD) supports shared libraries" >&5
+$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
 
   runpath_var=
   allow_undefined_flag_GCJ=
@@ -17343,12 +17861,13 @@ echo $ECHO_N "checking whether the $compiler linker ($LD) supports shared librar
   # 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_GCJ="_GLOBAL_OFFSET_TABLE_"
+  exclude_expsyms_GCJ='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
   # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
   # platforms (ab)use it in PIC code, but their linkers get confused if
   # the symbol is explicitly referenced.  Since portable code cannot
   # rely on this symbol name, it's probably fine to never include it in
   # preloaded symbol tables.
+  # Exclude shared library initialization/finalization symbols.
   extract_expsyms_cmds=
   # Just being paranoid about ensuring that cc_basename is set.
   for cc_temp in $compiler""; do
@@ -17407,7 +17926,7 @@ cc_basename=`$echo "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"`
 
     # See if GNU ld supports shared libraries.
     case $host_os in
-    aix3* | aix4* | aix5*)
+    aix[3-9]*)
       # On AIX/PPC, the GNU linker is very broken
       if test "$host_cpu" != ia64; then
 	ld_shlibs_GCJ=no
@@ -17626,7 +18145,7 @@ _LT_EOF
       fi
       ;;
 
-    aix4* | aix5*)
+    aix[4-9]*)
       if test "$host_cpu" = ia64; then
 	# On IA64, the linker does run time linking by default, so we don't
 	# have to do anything special.
@@ -17646,7 +18165,7 @@ _LT_EOF
 	# Test if we are trying to use run time linking or normal
 	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
 	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix5*)
+	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
 	  for ld_flag in $LDFLAGS; do
   	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
   	    aix_use_runtimelinking=yes
@@ -17741,18 +18260,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -17767,12 +18289,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -17807,18 +18330,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_link") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_c_werror_flag" ||
 	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext &&
-       $as_test_x conftest$ac_exeext; then
+       } && test -s conftest$ac_exeext && {
+	 test "$cross_compiling" = yes ||
+	 $as_test_x conftest$ac_exeext
+       }; then
 
 lt_aix_libpath_sed='
     /Import File Strings/,/^$/ {
@@ -17833,12 +18359,13 @@ if test -z "$aix_libpath"; then
   aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
 fi
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
 fi
 
+rm -rf conftest.dSYM
 rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \
       conftest$ac_exeext conftest.$ac_ext
 if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
@@ -17918,11 +18445,10 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
       link_all_deplibs_GCJ=yes
     if test "$GCC" = yes ; then
     	output_verbose_link_cmd='echo'
-        archive_cmds_GCJ='$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring'
-      module_cmds_GCJ='$CC $allow_undefined_flag -o $lib -bundle $libobjs $deplibs$compiler_flags'
-      # Don't fix this by using the ld -exported_symbols_list flag, it doesn't exist in older darwin lds
-      archive_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC -dynamiclib $allow_undefined_flag -o $lib $libobjs $deplibs $compiler_flags -install_name $rpath/$soname $verstring~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
-      module_expsym_cmds_GCJ='sed -e "s,#.*,," -e "s,^[    ]*,," -e "s,^\(..*\),_&," < $export_symbols > $output_objdir/${libname}-symbols.expsym~$CC $allow_undefined_flag  -o $lib -bundle $libobjs $deplibs$compiler_flags~nmedit -s $output_objdir/${libname}-symbols.expsym ${lib}'
+        archive_cmds_GCJ="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
+        module_cmds_GCJ="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
+        archive_expsym_cmds_GCJ="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_GCJ="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
       case $cc_basename in
         xlc*)
@@ -18291,8 +18817,8 @@ if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi
     esac
   fi
 
-{ echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
-echo "${ECHO_T}$ld_shlibs_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ld_shlibs_GCJ" >&5
+$as_echo "$ld_shlibs_GCJ" >&6; }
 test "$ld_shlibs_GCJ" = no && can_build_shared=no
 
 #
@@ -18312,15 +18838,15 @@ x|xyes)
       # 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.
-      { echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
-echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&6; }
+      { $as_echo "$as_me:$LINENO: checking whether -lc should be explicitly linked in" >&5
+$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
       $rm conftest*
       echo "$lt_simple_compile_test_code" > conftest.$ac_ext
 
       if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
   (eval $ac_compile) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } 2>conftest.err; then
         soname=conftest
         lib=conftest
@@ -18338,7 +18864,7 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         if { (eval echo "$as_me:$LINENO: \"$archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1\"") >&5
   (eval $archive_cmds_GCJ 2\>\&1 \| grep \" -lc \" \>/dev/null 2\>\&1) 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
         then
 	  archive_cmds_need_lc_GCJ=no
@@ -18350,16 +18876,16 @@ echo $ECHO_N "checking whether -lc should be explicitly linked in... $ECHO_C" >&
         cat conftest.err 1>&5
       fi
       $rm conftest*
-      { echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
-echo "${ECHO_T}$archive_cmds_need_lc_GCJ" >&6; }
+      { $as_echo "$as_me:$LINENO: result: $archive_cmds_need_lc_GCJ" >&5
+$as_echo "$archive_cmds_need_lc_GCJ" >&6; }
       ;;
     esac
   fi
   ;;
 esac
 
-{ echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
-echo $ECHO_N "checking dynamic linker characteristics... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dynamic linker characteristics" >&5
+$as_echo_n "checking dynamic linker characteristics... " >&6; }
 library_names_spec=
 libname_spec='lib$name'
 soname_spec=
@@ -18391,7 +18917,7 @@ aix3*)
   soname_spec='${libname}${release}${shared_ext}$major'
   ;;
 
-aix4* | aix5*)
+aix[4-9]*)
   version_type=linux
   need_lib_prefix=no
   need_version=no
@@ -18910,17 +19436,32 @@ uts4*)
   dynamic_linker=no
   ;;
 esac
-{ echo "$as_me:$LINENO: result: $dynamic_linker" >&5
-echo "${ECHO_T}$dynamic_linker" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $dynamic_linker" >&5
+$as_echo "$dynamic_linker" >&6; }
 test "$dynamic_linker" = no && can_build_shared=no
 
+if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_search_path_spec="$sys_lib_search_path_spec"
+fi
+
+sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
+if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
+  $as_echo_n "(cached) " >&6
+else
+  lt_cv_sys_lib_dlsearch_path_spec="$sys_lib_dlsearch_path_spec"
+fi
+
+sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
+
 variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
 if test "$GCC" = yes; then
   variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
 fi
 
-{ echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
-echo $ECHO_N "checking how to hardcode library paths into programs... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking how to hardcode library paths into programs" >&5
+$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
 hardcode_action_GCJ=
 if test -n "$hardcode_libdir_flag_spec_GCJ" || \
    test -n "$runpath_var_GCJ" || \
@@ -18944,8 +19485,8 @@ else
   # directories.
   hardcode_action_GCJ=unsupported
 fi
-{ echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
-echo "${ECHO_T}$hardcode_action_GCJ" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $hardcode_action_GCJ" >&5
+$as_echo "$hardcode_action_GCJ" >&6; }
 
 if test "$hardcode_action_GCJ" = relink; then
   # Fast installation is not supported
@@ -18997,6 +19538,7 @@ if test -f "$ltmain"; then
     predeps_GCJ \
     postdeps_GCJ \
     compiler_lib_search_path_GCJ \
+    compiler_lib_search_dirs_GCJ \
     archive_cmds_GCJ \
     archive_expsym_cmds_GCJ \
     postinstall_cmds_GCJ \
@@ -19245,6 +19787,10 @@ predeps=$lt_predeps_GCJ
 # shared library.
 postdeps=$lt_postdeps_GCJ
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_GCJ
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path_GCJ
@@ -19418,7 +19964,7 @@ 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 conftest*
+$rm -r conftest*
 
 
 # Allow CC to be a program name with arguments.
@@ -19478,6 +20024,7 @@ if test -f "$ltmain"; then
     predeps_RC \
     postdeps_RC \
     compiler_lib_search_path_RC \
+    compiler_lib_search_dirs_RC \
     archive_cmds_RC \
     archive_expsym_cmds_RC \
     postinstall_cmds_RC \
@@ -19726,6 +20273,10 @@ predeps=$lt_predeps_RC
 # shared library.
 postdeps=$lt_postdeps_RC
 
+# The directories searched by this compiler when creating a shared
+# library
+compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_RC
+
 # The library search path used internally by the compiler when linking
 # a shared library.
 compiler_lib_search_path=$lt_compiler_lib_search_path_RC
@@ -19858,8 +20409,8 @@ CC="$lt_save_CC"
 	;;
 
       *)
-	{ { echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
-echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
+	{ { $as_echo "$as_me:$LINENO: error: Unsupported tag name: $tagname" >&5
+$as_echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
    { (exit 1); exit 1; }; }
 	;;
       esac
@@ -19878,8 +20429,8 @@ echo "$as_me: error: Unsupported tag name: $tagname" >&2;}
     chmod +x "$ofile"
   else
     rm -f "${ofile}T"
-    { { echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
-echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
+    { { $as_echo "$as_me:$LINENO: error: unable to update list of available tagged configurations." >&5
+$as_echo "$as_me: error: unable to update list of available tagged configurations." >&2;}
    { (exit 1); exit 1; }; }
   fi
 fi
@@ -19928,10 +20479,10 @@ if test -z "$CXX"; then
   do
     # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$CXX"; then
   ac_cv_prog_CXX="$CXX" # Let the user override the test.
@@ -19944,7 +20495,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_CXX="$ac_tool_prefix$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -19955,11 +20506,11 @@ fi
 fi
 CXX=$ac_cv_prog_CXX
 if test -n "$CXX"; then
-  { echo "$as_me:$LINENO: result: $CXX" >&5
-echo "${ECHO_T}$CXX" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $CXX" >&5
+$as_echo "$CXX" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -19972,10 +20523,10 @@ if test -z "$CXX"; then
 do
   # Extract the first word of "$ac_prog", so it can be a program name with args.
 set dummy $ac_prog; ac_word=$2
-{ echo "$as_me:$LINENO: checking for $ac_word" >&5
-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5
+$as_echo_n "checking for $ac_word... " >&6; }
 if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CXX"; then
   ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test.
@@ -19988,7 +20539,7 @@ do
   for ac_exec_ext in '' $ac_executable_extensions; do
   if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
     ac_cv_prog_ac_ct_CXX="$ac_prog"
-    echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+    $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
     break 2
   fi
 done
@@ -19999,11 +20550,11 @@ fi
 fi
 ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
 if test -n "$ac_ct_CXX"; then
-  { echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
-echo "${ECHO_T}$ac_ct_CXX" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $ac_ct_CXX" >&5
+$as_echo "$ac_ct_CXX" >&6; }
 else
-  { echo "$as_me:$LINENO: result: no" >&5
-echo "${ECHO_T}no" >&6; }
+  { $as_echo "$as_me:$LINENO: result: no" >&5
+$as_echo "no" >&6; }
 fi
 
 
@@ -20015,12 +20566,8 @@ done
   else
     case $cross_compiling:$ac_tool_warned in
 yes:)
-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&5
-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools
-whose name does not start with the host triplet.  If you think this
-configuration is useful to you, please write to autoconf at gnu.org." >&2;}
+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5
+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
 ac_tool_warned=yes ;;
 esac
     CXX=$ac_ct_CXX
@@ -20030,43 +20577,47 @@ fi
   fi
 fi
 # Provide some information about the compiler.
-echo "$as_me:$LINENO: checking for C++ compiler version" >&5
-ac_compiler=`set X $ac_compile; echo $2`
+$as_echo "$as_me:$LINENO: checking for C++ compiler version" >&5
+set X $ac_compile
+ac_compiler=$2
 { (ac_try="$ac_compiler --version >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler --version >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -v >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -v >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 { (ac_try="$ac_compiler -V >&5"
 case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compiler -V >&5") 2>&5
   ac_status=$?
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); }
 
-{ echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
-echo $ECHO_N "checking whether we are using the GNU C++ compiler... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C++ compiler" >&5
+$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
 if test "${ac_cv_cxx_compiler_gnu+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
@@ -20092,20 +20643,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_compiler_gnu=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_compiler_gnu=no
@@ -20115,15 +20667,19 @@ rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
 
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
-echo "${ECHO_T}$ac_cv_cxx_compiler_gnu" >&6; }
-GXX=`test $ac_compiler_gnu = yes && echo yes`
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_cxx_compiler_gnu" >&5
+$as_echo "$ac_cv_cxx_compiler_gnu" >&6; }
+if test $ac_compiler_gnu = yes; then
+  GXX=yes
+else
+  GXX=
+fi
 ac_test_CXXFLAGS=${CXXFLAGS+set}
 ac_save_CXXFLAGS=$CXXFLAGS
-{ echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
-echo $ECHO_N "checking whether $CXX accepts -g... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking whether $CXX accepts -g" >&5
+$as_echo_n "checking whether $CXX accepts -g... " >&6; }
 if test "${ac_cv_prog_cxx_g+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   ac_save_cxx_werror_flag=$ac_cxx_werror_flag
    ac_cxx_werror_flag=yes
@@ -20150,20 +20706,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cxx_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	CXXFLAGS=""
@@ -20188,20 +20745,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   :
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	ac_cxx_werror_flag=$ac_save_cxx_werror_flag
@@ -20227,20 +20785,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   ac_cv_prog_cxx_g=yes
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
@@ -20255,8 +20814,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
    ac_cxx_werror_flag=$ac_save_cxx_werror_flag
 fi
-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
-echo "${ECHO_T}$ac_cv_prog_cxx_g" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cxx_g" >&5
+$as_echo "$ac_cv_prog_cxx_g" >&6; }
 if test "$ac_test_CXXFLAGS" = set; then
   CXXFLAGS=$ac_save_CXXFLAGS
 elif test $ac_cv_prog_cxx_g = yes; then
@@ -20280,10 +20839,10 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
 
 depcc="$CXX"  am_compiler_list=
 
-{ echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
-echo $ECHO_N "checking dependency style of $depcc... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5
+$as_echo_n "checking dependency style of $depcc... " >&6; }
 if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
   if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
   # We make a subdir and do the tests there.  Otherwise we can end up
@@ -20371,8 +20930,8 @@ else
 fi
 
 fi
-{ echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
-echo "${ECHO_T}$am_cv_CXX_dependencies_compiler_type" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $am_cv_CXX_dependencies_compiler_type" >&5
+$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; }
 CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type
 
  if
@@ -20394,8 +20953,8 @@ ac_compiler_gnu=$ac_cv_cxx_compiler_gnu
 
 
 
-{ echo "$as_me:$LINENO: checking if C++ compiler supports the use of a particular specialization when calling operator() template methods." >&5
-echo $ECHO_N "checking if C++ compiler supports the use of a particular specialization when calling operator() template methods.... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if C++ compiler supports the use of a particular specialization when calling operator() template methods." >&5
+$as_echo_n "checking if C++ compiler supports the use of a particular specialization when calling operator() template methods.... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -20448,13 +21007,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
@@ -20466,25 +21026,25 @@ cat >>confdefs.h <<\_ACEOF
 #define SIGC_GCC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD 1
 _ACEOF
 
-  { echo "$as_me:$LINENO: result: $sigcm_cxx_gcc_template_specialization_operator_overload" >&5
-echo "${ECHO_T}$sigcm_cxx_gcc_template_specialization_operator_overload" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $sigcm_cxx_gcc_template_specialization_operator_overload" >&5
+$as_echo "$sigcm_cxx_gcc_template_specialization_operator_overload" >&6; }
 
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
   sigcm_cxx_gcc_template_specialization_operator_overload=no
-  { echo "$as_me:$LINENO: result: $sigcm_cxx_gcc_template_specialization_operator_overload" >&5
-echo "${ECHO_T}$sigcm_cxx_gcc_template_specialization_operator_overload" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $sigcm_cxx_gcc_template_specialization_operator_overload" >&5
+$as_echo "$sigcm_cxx_gcc_template_specialization_operator_overload" >&6; }
 
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
-{ echo "$as_me:$LINENO: checking if C++ compiler supports the use of a particular specialization when calling operator() template methods omitting the template keyword." >&5
-echo $ECHO_N "checking if C++ compiler supports the use of a particular specialization when calling operator() template methods omitting the template keyword.... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if C++ compiler supports the use of a particular specialization when calling operator() template methods omitting the template keyword." >&5
+$as_echo_n "checking if C++ compiler supports the use of a particular specialization when calling operator() template methods omitting the template keyword.... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -20537,13 +21097,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
@@ -20555,25 +21116,25 @@ cat >>confdefs.h <<\_ACEOF
 #define SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD 1
 _ACEOF
 
-  { echo "$as_me:$LINENO: result: $sigcm_cxx_msvc_template_specialization_operator_overload" >&5
-echo "${ECHO_T}$sigcm_cxx_msvc_template_specialization_operator_overload" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $sigcm_cxx_msvc_template_specialization_operator_overload" >&5
+$as_echo "$sigcm_cxx_msvc_template_specialization_operator_overload" >&6; }
 
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
   sigcm_cxx_msvc_template_specialization_operator_overload=no
-  { echo "$as_me:$LINENO: result: $sigcm_cxx_msvc_template_specialization_operator_overload" >&5
-echo "${ECHO_T}$sigcm_cxx_msvc_template_specialization_operator_overload" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $sigcm_cxx_msvc_template_specialization_operator_overload" >&5
+$as_echo "$sigcm_cxx_msvc_template_specialization_operator_overload" >&6; }
 
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
-{ echo "$as_me:$LINENO: checking if C++ compiler allows usage of member function in initialization of static member field." >&5
-echo $ECHO_N "checking if C++ compiler allows usage of member function in initialization of static member field.... $ECHO_C" >&6; }
+{ $as_echo "$as_me:$LINENO: checking if C++ compiler allows usage of member function in initialization of static member field." >&5
+$as_echo_n "checking if C++ compiler allows usage of member function in initialization of static member field.... " >&6; }
 cat >conftest.$ac_ext <<_ACEOF
 /* confdefs.h.  */
 _ACEOF
@@ -20605,13 +21166,14 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
@@ -20623,27 +21185,27 @@ cat >>confdefs.h <<\_ACEOF
 #define SIGC_SELF_REFERENCE_IN_MEMBER_INITIALIZATION 1
 _ACEOF
 
-  { echo "$as_me:$LINENO: result: $sigcm_cxx_self_reference_in_member_initialization" >&5
-echo "${ECHO_T}$sigcm_cxx_self_reference_in_member_initialization" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $sigcm_cxx_self_reference_in_member_initialization" >&5
+$as_echo "$sigcm_cxx_self_reference_in_member_initialization" >&6; }
 
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 
   sigcm_cxx_self_reference_in_member_initialization=no
-  { echo "$as_me:$LINENO: result: $sigcm_cxx_self_reference_in_member_initialization" >&5
-echo "${ECHO_T}$sigcm_cxx_self_reference_in_member_initialization" >&6; }
+  { $as_echo "$as_me:$LINENO: result: $sigcm_cxx_self_reference_in_member_initialization" >&5
+$as_echo "$sigcm_cxx_self_reference_in_member_initialization" >&6; }
 
 fi
 
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 
-  { echo "$as_me:$LINENO: checking whether C++ library symbols are declared in namespace std" >&5
-echo $ECHO_N "checking whether C++ library symbols are declared in namespace std... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking whether C++ library symbols are declared in namespace std" >&5
+$as_echo_n "checking whether C++ library symbols are declared in namespace std... " >&6; }
 if test "${sigc_cv_cxx_has_namespace_std+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
@@ -20680,20 +21242,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   sigc_cv_cxx_has_namespace_std="yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	sigc_cv_cxx_has_namespace_std="no"
@@ -20703,8 +21266,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $sigc_cv_cxx_has_namespace_std" >&5
-echo "${ECHO_T}$sigc_cv_cxx_has_namespace_std" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $sigc_cv_cxx_has_namespace_std" >&5
+$as_echo "$sigc_cv_cxx_has_namespace_std" >&6; }
 
   if test "x${sigc_cv_cxx_has_namespace_std}" = "xyes"; then
   {
@@ -20719,10 +21282,10 @@ _ACEOF
 
 
 
-  { echo "$as_me:$LINENO: checking for non-standard Sun libCstd reverse_iterator" >&5
-echo $ECHO_N "checking for non-standard Sun libCstd reverse_iterator... $ECHO_C" >&6; }
+  { $as_echo "$as_me:$LINENO: checking for non-standard Sun libCstd reverse_iterator" >&5
+$as_echo_n "checking for non-standard Sun libCstd reverse_iterator... " >&6; }
 if test "${sigc_cv_cxx_has_sun_reverse_iterator+set}" = set; then
-  echo $ECHO_N "(cached) $ECHO_C" >&6
+  $as_echo_n "(cached) " >&6
 else
 
     cat >conftest.$ac_ext <<_ACEOF
@@ -20753,20 +21316,21 @@ case "(($ac_try" in
   *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
   *) ac_try_echo=$ac_try;;
 esac
-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5
+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""
+$as_echo "$ac_try_echo") >&5
   (eval "$ac_compile") 2>conftest.er1
   ac_status=$?
   grep -v '^ *+' conftest.er1 >conftest.err
   rm -f conftest.er1
   cat conftest.err >&5
-  echo "$as_me:$LINENO: \$? = $ac_status" >&5
+  $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
   (exit $ac_status); } && {
 	 test -z "$ac_cxx_werror_flag" ||
 	 test ! -s conftest.err
        } && test -s conftest.$ac_objext; then
   sigc_cv_cxx_has_sun_reverse_iterator="yes"
 else
-  echo "$as_me: failed program was:" >&5
+  $as_echo "$as_me: failed program was:" >&5
 sed 's/^/| /' conftest.$ac_ext >&5
 
 	sigc_cv_cxx_has_sun_reverse_iterator="no"
@@ -20776,8 +21340,8 @@ fi
 rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
 
 fi
-{ echo "$as_me:$LINENO: result: $sigc_cv_cxx_has_sun_reverse_iterator" >&5
-echo "${ECHO_T}$sigc_cv_cxx_has_sun_reverse_iterator" >&6; }
+{ $as_echo "$as_me:$LINENO: result: $sigc_cv_cxx_has_sun_reverse_iterator" >&5
+$as_echo "$sigc_cv_cxx_has_sun_reverse_iterator" >&6; }
 
   if test "x${sigc_cv_cxx_has_sun_reverse_iterator}" = "xyes"; then
   {
@@ -20790,11 +21354,11 @@ _ACEOF
 
 
 if test "X$config_error" = "Xyes" ; then
-  { { echo "$as_me:$LINENO: error: One or more of the required compiler features is missing.
+  { { $as_echo "$as_me:$LINENO: error: One or more of the required compiler features is missing.
 If you believe this is in error, please consult the config.log file
 for further details.
 " >&5
-echo "$as_me: error: One or more of the required compiler features is missing.
+$as_echo "$as_me: error: One or more of the required compiler features is missing.
 If you believe this is in error, please consult the config.log file
 for further details.
 " >&2;}
@@ -20832,11 +21396,12 @@ _ACEOF
     case $ac_val in #(
     *${as_nl}*)
       case $ac_var in #(
-      *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5
-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
+      *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5
+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
       esac
       case $ac_var in #(
       _ | IFS | as_nl) ;; #(
+      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
       *) $as_unset $ac_var ;;
       esac ;;
     esac
@@ -20869,12 +21434,12 @@ echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
     test "x$cache_file" != "x/dev/null" &&
-      { echo "$as_me:$LINENO: updating cache $cache_file" >&5
-echo "$as_me: updating cache $cache_file" >&6;}
+      { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5
+$as_echo "$as_me: updating cache $cache_file" >&6;}
     cat confcache >$cache_file
   else
-    { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
-echo "$as_me: not updating unwritable cache $cache_file" >&6;}
+    { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5
+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
   fi
 fi
 rm -f confcache
@@ -20890,7 +21455,7 @@ ac_ltlibobjs=
 for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
   # 1. Remove the extension, and $U if already installed.
   ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`echo "$ac_i" | sed "$ac_script"`
+  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
   # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
   #    will be set to the directory where LIBOBJS objects are built.
   ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"
@@ -20902,54 +21467,55 @@ LTLIBOBJS=$ac_ltlibobjs
 
 
 if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
+$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"AMDEP\" was never defined.
+$as_echo "$as_me: error: conditional \"AMDEP\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
+$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 if test -z "${PLATFORM_WIN32_TRUE}" && test -z "${PLATFORM_WIN32_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"PLATFORM_WIN32\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"PLATFORM_WIN32\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"PLATFORM_WIN32\" was never defined.
+$as_echo "$as_me: error: conditional \"PLATFORM_WIN32\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+$as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then
-  { { echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
+  { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." >&5
-echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
+$as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
 Usually this means the macro was only invoked conditionally." >&2;}
    { (exit 1); exit 1; }; }
 fi
 
 : ${CONFIG_STATUS=./config.status}
+ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
-echo "$as_me: creating $CONFIG_STATUS" >&6;}
-cat >$CONFIG_STATUS <<_ACEOF
+{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
+cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 #! $SHELL
 # Generated by $as_me.
 # Run this file to recreate the current configuration.
@@ -20962,7 +21528,7 @@ ac_cs_silent=false
 SHELL=\${CONFIG_SHELL-$SHELL}
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ## --------------------- ##
 ## M4sh Initialization.  ##
 ## --------------------- ##
@@ -20972,7 +21538,7 @@ 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
@@ -20994,17 +21560,45 @@ as_cr_Letters=$as_cr_letters$as_cr_LETTERS
 as_cr_digits='0123456789'
 as_cr_alnum=$as_cr_Letters$as_cr_digits
 
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  echo "#! /bin/sh" >conf$$.sh
-  echo  "exit 0"   >>conf$$.sh
-  chmod +x conf$$.sh
-  if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then
-    PATH_SEPARATOR=';'
+as_nl='
+'
+export as_nl
+# Printing a long string crashes Solaris 7 /usr/bin/printf.
+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
+  as_echo='printf %s\n'
+  as_echo_n='printf %s'
+else
+  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
+    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
+    as_echo_n='/usr/ucb/echo -n'
   else
-    PATH_SEPARATOR=:
+    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
+    as_echo_n_body='eval
+      arg=$1;
+      case $arg in
+      *"$as_nl"*)
+	expr "X$arg" : "X\\(.*\\)$as_nl";
+	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
+      esac;
+      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
+    '
+    export as_echo_n_body
+    as_echo_n='sh -c $as_echo_n_body as_echo'
   fi
-  rm -f conf$$.sh
+  export as_echo_body
+  as_echo='sh -c $as_echo_body as_echo'
+fi
+
+# The user is always right.
+if test "${PATH_SEPARATOR+set}" != set; then
+  PATH_SEPARATOR=:
+  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
+    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
+      PATH_SEPARATOR=';'
+  }
 fi
 
 # Support unset when possible.
@@ -21020,8 +21614,6 @@ fi
 # there to prevent editors from complaining about space-tab.
 # (If _AS_PATH_WALK were called with IFS unset, it would disable word
 # splitting by setting IFS to empty value.)
-as_nl='
-'
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
@@ -21044,7 +21636,7 @@ if test "x$as_myself" = x; then
   as_myself=$0
 fi
 if test ! -f "$as_myself"; then
-  echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
+  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
   { (exit 1); exit 1; }
 fi
 
@@ -21057,17 +21649,10 @@ PS2='> '
 PS4='+ '
 
 # NLS nuisances.
-for as_var in \
-  LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \
-  LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \
-  LC_TELEPHONE LC_TIME
-do
-  if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then
-    eval $as_var=C; export $as_var
-  else
-    ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var
-  fi
-done
+LC_ALL=C
+export LC_ALL
+LANGUAGE=C
+export LANGUAGE
 
 # Required to use basename.
 if expr a : '\(a\)' >/dev/null 2>&1 &&
@@ -21089,7 +21674,7 @@ as_me=`$as_basename -- "$0" ||
 $as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
 	 X"$0" : 'X\(//\)$' \| \
 	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-echo X/"$0" |
+$as_echo X/"$0" |
     sed '/^.*\/\([^/][^/]*\)\/*$/{
 	    s//\1/
 	    q
@@ -21140,7 +21725,7 @@ $as_unset CDPATH
       s/-\n.*//
     ' >$as_me.lineno &&
   chmod +x "$as_me.lineno" ||
-    { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
+    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2
    { (exit 1); exit 1; }; }
 
   # Don't try to exec as it changes $[0], causing all sort of problems
@@ -21168,7 +21753,6 @@ case `echo -n x` in
 *)
   ECHO_N='-n';;
 esac
-
 if expr a : '\(a\)' >/dev/null 2>&1 &&
    test "X`expr 00001 : '.*\(...\)'`" = X001; then
   as_expr=expr
@@ -21181,19 +21765,22 @@ if test -d conf$$.dir; then
   rm -f conf$$.dir/conf$$.file
 else
   rm -f conf$$.dir
-  mkdir conf$$.dir
-fi
-echo >conf$$.file
-if ln -s conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s='ln -s'
-  # ... but there are two gotchas:
-  # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-  # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-  # In both cases, we have to default to `cp -p'.
-  ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+  mkdir conf$$.dir 2>/dev/null
+fi
+if (echo >conf$$.file) 2>/dev/null; then
+  if ln -s conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s='ln -s'
+    # ... but there are two gotchas:
+    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
+    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
+    # In both cases, we have to default to `cp -p'.
+    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
+      as_ln_s='cp -p'
+  elif ln conf$$.file conf$$ 2>/dev/null; then
+    as_ln_s=ln
+  else
     as_ln_s='cp -p'
-elif ln conf$$.file conf$$ 2>/dev/null; then
-  as_ln_s=ln
+  fi
 else
   as_ln_s='cp -p'
 fi
@@ -21218,10 +21805,10 @@ else
   as_test_x='
     eval sh -c '\''
       if test -d "$1"; then
-        test -d "$1/.";
+	test -d "$1/.";
       else
 	case $1 in
-        -*)set "./$1";;
+	-*)set "./$1";;
 	esac;
 	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in
 	???[sx]*):;;*)false;;esac;fi
@@ -21244,7 +21831,7 @@ exec 6>&1
 # values after options handling.
 ac_log="
 This file was extended by libsigc++ $as_me 2.2.2, which was
-generated by GNU Autoconf 2.61.  Invocation command line was
+generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -21257,7 +21844,16 @@ on `(hostname || uname -n) 2>/dev/null | sed 1q`
 
 _ACEOF
 
-cat >>$CONFIG_STATUS <<_ACEOF
+case $ac_config_files in *"
+"*) set x $ac_config_files; shift; ac_config_files=$*;;
+esac
+
+case $ac_config_headers in *"
+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;
+esac
+
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 # Files that config.status was made for.
 config_files="$ac_config_files"
 config_headers="$ac_config_headers"
@@ -21265,22 +21861,23 @@ config_commands="$ac_config_commands"
 
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 ac_cs_usage="\
 \`$as_me' instantiates files from templates according to the
 current configuration.
 
-Usage: $0 [OPTIONS] [FILE]...
+Usage: $0 [OPTION]... [FILE]...
 
   -h, --help       print this help, then exit
   -V, --version    print version number and configuration settings, then exit
-  -q, --quiet      do not print progress messages
+  -q, --quiet, --silent
+                   do not print progress messages
   -d, --debug      don't remove temporary files
       --recheck    update $as_me by reconfiguring in the same conditions
-  --file=FILE[:TEMPLATE]
-		   instantiate the configuration file FILE
-  --header=FILE[:TEMPLATE]
-		   instantiate the configuration header FILE
+      --file=FILE[:TEMPLATE]
+                   instantiate the configuration file FILE
+      --header=FILE[:TEMPLATE]
+                   instantiate the configuration header FILE
 
 Configuration files:
 $config_files
@@ -21294,13 +21891,13 @@ $config_commands
 Report bugs to <bug-autoconf at gnu.org>."
 
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
 libsigc++ config.status 2.2.2
-configured by $0, generated by GNU Autoconf 2.61,
-  with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
+configured by $0, generated by GNU Autoconf 2.63,
+  with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
-Copyright (C) 2006 Free Software Foundation, Inc.
+Copyright (C) 2008 Free Software Foundation, Inc.
 This config.status script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it."
 
@@ -21308,11 +21905,12 @@ ac_pwd='$ac_pwd'
 srcdir='$srcdir'
 INSTALL='$INSTALL'
 MKDIR_P='$MKDIR_P'
+AWK='$AWK'
+test -n "\$AWK" || AWK=awk
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
-# If no file are specified by the user, then we need to provide default
-# value.  By we need to know if files were specified by the user.
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+# The default lists apply if the user does not specify any file.
 ac_need_defaults=:
 while test $# != 0
 do
@@ -21334,30 +21932,36 @@ do
   -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
     ac_cs_recheck=: ;;
   --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    echo "$ac_cs_version"; exit ;;
+    $as_echo "$ac_cs_version"; exit ;;
   --debug | --debu | --deb | --de | --d | -d )
     debug=: ;;
   --file | --fil | --fi | --f )
     $ac_shift
-    CONFIG_FILES="$CONFIG_FILES $ac_optarg"
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"
     ac_need_defaults=false;;
   --header | --heade | --head | --hea )
     $ac_shift
-    CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"
+    case $ac_optarg in
+    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
+    esac
+    CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"
     ac_need_defaults=false;;
   --he | --h)
     # Conflict between --help and --header
-    { echo "$as_me: error: ambiguous option: $1
+    { $as_echo "$as_me: error: ambiguous option: $1
 Try \`$0 --help' for more information." >&2
    { (exit 1); exit 1; }; };;
   --help | --hel | -h )
-    echo "$ac_cs_usage"; exit ;;
+    $as_echo "$ac_cs_usage"; exit ;;
   -q | -quiet | --quiet | --quie | --qui | --qu | --q \
   | -silent | --silent | --silen | --sile | --sil | --si | --s)
     ac_cs_silent=: ;;
 
   # This is an error.
-  -*) { echo "$as_me: error: unrecognized option: $1
+  -*) { $as_echo "$as_me: error: unrecognized option: $1
 Try \`$0 --help' for more information." >&2
    { (exit 1); exit 1; }; } ;;
 
@@ -21376,27 +21980,29 @@ if $ac_cs_silent; then
 fi
 
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 if \$ac_cs_recheck; then
-  echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6
-  CONFIG_SHELL=$SHELL
+  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  shift
+  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
+  CONFIG_SHELL='$SHELL'
   export CONFIG_SHELL
-  exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
+  exec "\$@"
 fi
 
 _ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 exec 5>>config.log
 {
   echo
   sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
 ## Running $as_me. ##
 _ASBOX
-  echo "$ac_log"
+  $as_echo "$ac_log"
 } >&5
 
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 #
 # INIT-COMMANDS
 #
@@ -21404,7 +22010,7 @@ AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"
 
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 
 # Handling of arguments.
 for ac_config_target in $ac_config_targets
@@ -21418,8 +22024,8 @@ do
     "scripts/Makefile") CONFIG_FILES="$CONFIG_FILES scripts/Makefile" ;;
     "libsigc++-2.0.spec") CONFIG_FILES="$CONFIG_FILES libsigc++-2.0.spec" ;;
 
-  *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
+  *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
+$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
    { (exit 1); exit 1; }; };;
   esac
 done
@@ -21460,225 +22066,144 @@ $debug ||
   (umask 077 && mkdir "$tmp")
 } ||
 {
-   echo "$me: cannot create a temporary directory in ." >&2
+   $as_echo "$as_me: cannot create a temporary directory in ." >&2
    { (exit 1); exit 1; }
 }
 
-#
-# Set up the sed scripts for CONFIG_FILES section.
-#
-
-# No need to generate the scripts if there are no CONFIG_FILES.
-# This happens for instance when ./config.status config.h
+# Set up the scripts for CONFIG_FILES section.
+# No need to generate them if there are no CONFIG_FILES.
+# This happens for instance with `./config.status config.h'.
 if test -n "$CONFIG_FILES"; then
 
-_ACEOF
-
-
-
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-SHELL!$SHELL$ac_delim
-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim
-PACKAGE_NAME!$PACKAGE_NAME$ac_delim
-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim
-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim
-PACKAGE_STRING!$PACKAGE_STRING$ac_delim
-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim
-exec_prefix!$exec_prefix$ac_delim
-prefix!$prefix$ac_delim
-program_transform_name!$program_transform_name$ac_delim
-bindir!$bindir$ac_delim
-sbindir!$sbindir$ac_delim
-libexecdir!$libexecdir$ac_delim
-datarootdir!$datarootdir$ac_delim
-datadir!$datadir$ac_delim
-sysconfdir!$sysconfdir$ac_delim
-sharedstatedir!$sharedstatedir$ac_delim
-localstatedir!$localstatedir$ac_delim
-includedir!$includedir$ac_delim
-oldincludedir!$oldincludedir$ac_delim
-docdir!$docdir$ac_delim
-infodir!$infodir$ac_delim
-htmldir!$htmldir$ac_delim
-dvidir!$dvidir$ac_delim
-pdfdir!$pdfdir$ac_delim
-psdir!$psdir$ac_delim
-libdir!$libdir$ac_delim
-localedir!$localedir$ac_delim
-mandir!$mandir$ac_delim
-DEFS!$DEFS$ac_delim
-ECHO_C!$ECHO_C$ac_delim
-ECHO_N!$ECHO_N$ac_delim
-ECHO_T!$ECHO_T$ac_delim
-LIBS!$LIBS$ac_delim
-build_alias!$build_alias$ac_delim
-host_alias!$host_alias$ac_delim
-target_alias!$target_alias$ac_delim
-FP_VERSION!$FP_VERSION$ac_delim
-FP_RELEASE!$FP_RELEASE$ac_delim
-FP_MAJOR_VERSION!$FP_MAJOR_VERSION$ac_delim
-FP_MINOR_VERSION!$FP_MINOR_VERSION$ac_delim
-FP_MICRO_VERSION!$FP_MICRO_VERSION$ac_delim
-INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim
-INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim
-INSTALL_DATA!$INSTALL_DATA$ac_delim
-am__isrc!$am__isrc$ac_delim
-CYGPATH_W!$CYGPATH_W$ac_delim
-PACKAGE!$PACKAGE$ac_delim
-VERSION!$VERSION$ac_delim
-ACLOCAL!$ACLOCAL$ac_delim
-AUTOCONF!$AUTOCONF$ac_delim
-AUTOMAKE!$AUTOMAKE$ac_delim
-AUTOHEADER!$AUTOHEADER$ac_delim
-MAKEINFO!$MAKEINFO$ac_delim
-install_sh!$install_sh$ac_delim
-STRIP!$STRIP$ac_delim
-INSTALL_STRIP_PROGRAM!$INSTALL_STRIP_PROGRAM$ac_delim
-mkdir_p!$mkdir_p$ac_delim
-AWK!$AWK$ac_delim
-SET_MAKE!$SET_MAKE$ac_delim
-am__leading_dot!$am__leading_dot$ac_delim
-AMTAR!$AMTAR$ac_delim
-am__tar!$am__tar$ac_delim
-am__untar!$am__untar$ac_delim
-build!$build$ac_delim
-build_cpu!$build_cpu$ac_delim
-build_vendor!$build_vendor$ac_delim
-build_os!$build_os$ac_delim
-host!$host$ac_delim
-host_cpu!$host_cpu$ac_delim
-host_vendor!$host_vendor$ac_delim
-host_os!$host_os$ac_delim
-M4!$M4$ac_delim
-PERL_PATH!$PERL_PATH$ac_delim
-MAINTAINER_MODE_TRUE!$MAINTAINER_MODE_TRUE$ac_delim
-MAINTAINER_MODE_FALSE!$MAINTAINER_MODE_FALSE$ac_delim
-MAINT!$MAINT$ac_delim
-CC!$CC$ac_delim
-CFLAGS!$CFLAGS$ac_delim
-LDFLAGS!$LDFLAGS$ac_delim
-CPPFLAGS!$CPPFLAGS$ac_delim
-ac_ct_CC!$ac_ct_CC$ac_delim
-EXEEXT!$EXEEXT$ac_delim
-OBJEXT!$OBJEXT$ac_delim
-DEPDIR!$DEPDIR$ac_delim
-am__include!$am__include$ac_delim
-am__quote!$am__quote$ac_delim
-AMDEP_TRUE!$AMDEP_TRUE$ac_delim
-AMDEP_FALSE!$AMDEP_FALSE$ac_delim
-AMDEPBACKSLASH!$AMDEPBACKSLASH$ac_delim
-CCDEPMODE!$CCDEPMODE$ac_delim
-am__fastdepCC_TRUE!$am__fastdepCC_TRUE$ac_delim
-am__fastdepCC_FALSE!$am__fastdepCC_FALSE$ac_delim
-CPP!$CPP$ac_delim
-PLATFORM_WIN32_TRUE!$PLATFORM_WIN32_TRUE$ac_delim
-PLATFORM_WIN32_FALSE!$PLATFORM_WIN32_FALSE$ac_delim
-SED!$SED$ac_delim
-_ACEOF
-
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then
-    break
-  elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
-   { (exit 1); exit 1; }; }
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
 
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
+ac_cr='
'
+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`
+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then
+  ac_cs_awk_cr='\\r'
+else
+  ac_cs_awk_cr=$ac_cr
 fi
 
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-_ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-CEOF$ac_eof
+echo 'BEGIN {' >"$tmp/subs1.awk" &&
 _ACEOF
 
 
+{
+  echo "cat >conf$$subs.awk <<_ACEOF" &&
+  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
+  echo "_ACEOF"
+} >conf$$subs.sh ||
+  { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`
 ac_delim='%!_!# '
 for ac_last_try in false false false false false :; do
-  cat >conf$$subs.sed <<_ACEOF
-GREP!$GREP$ac_delim
-EGREP!$EGREP$ac_delim
-LN_S!$LN_S$ac_delim
-ECHO!$ECHO$ac_delim
-AR!$AR$ac_delim
-RANLIB!$RANLIB$ac_delim
-DLLTOOL!$DLLTOOL$ac_delim
-AS!$AS$ac_delim
-OBJDUMP!$OBJDUMP$ac_delim
-CXX!$CXX$ac_delim
-CXXFLAGS!$CXXFLAGS$ac_delim
-ac_ct_CXX!$ac_ct_CXX$ac_delim
-CXXDEPMODE!$CXXDEPMODE$ac_delim
-am__fastdepCXX_TRUE!$am__fastdepCXX_TRUE$ac_delim
-am__fastdepCXX_FALSE!$am__fastdepCXX_FALSE$ac_delim
-CXXCPP!$CXXCPP$ac_delim
-F77!$F77$ac_delim
-FFLAGS!$FFLAGS$ac_delim
-ac_ct_F77!$ac_ct_F77$ac_delim
-LIBTOOL!$LIBTOOL$ac_delim
-LIBOBJS!$LIBOBJS$ac_delim
-LTLIBOBJS!$LTLIBOBJS$ac_delim
-_ACEOF
+  . ./conf$$subs.sh ||
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
 
-  if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 22; then
+  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
+  if test $ac_delim_n = $ac_delim_num; then
     break
   elif $ac_last_try; then
-    { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}
    { (exit 1); exit 1; }; }
   else
     ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
   fi
 done
+rm -f conf$$subs.sh
 
-ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`
-if test -n "$ac_eof"; then
-  ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`
-  ac_eof=`expr $ac_eof + 1`
-fi
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+_ACEOF
+sed -n '
+h
+s/^/S["/; s/!.*/"]=/
+p
+g
+s/^[^!]*!//
+:repl
+t repl
+s/'"$ac_delim"'$//
+t delim
+:nl
+h
+s/\(.\{148\}\).*/\1/
+t more1
+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
+p
+n
+b repl
+:more1
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t nl
+:delim
+h
+s/\(.\{148\}\).*/\1/
+t more2
+s/["\\]/\\&/g; s/^/"/; s/$/"/
+p
+b
+:more2
+s/["\\]/\\&/g; s/^/"/; s/$/"\\/
+p
+g
+s/.\{148\}//
+t delim
+' <conf$$subs.awk | sed '
+/^[^""]/{
+  N
+  s/\n//
+}
+' >>$CONFIG_STATUS || ac_write_fail=1
+rm -f conf$$subs.awk
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+_ACAWK
+cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+  for (key in S) S_is_set[key] = 1
+  FS = ""
 
-cat >>$CONFIG_STATUS <<_ACEOF
-cat >"\$tmp/subs-2.sed" <<\CEOF$ac_eof
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end
+}
+{
+  line = $ 0
+  nfields = split(line, field, "@")
+  substed = 0
+  len = length(field[1])
+  for (i = 2; i < nfields; i++) {
+    key = field[i]
+    keylen = length(key)
+    if (S_is_set[key]) {
+      value = S[key]
+      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
+      len += length(value) + length(field[++i])
+      substed = 1
+    } else
+      len += 1 + keylen
+  }
+
+  print line
+}
+
+_ACAWK
 _ACEOF
-sed '
-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g
-s/^/s,@/; s/!/@,|#_!!_#|/
-:n
-t n
-s/'"$ac_delim"'$/,g/; t
-s/$/\\/; p
-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n
-' >>$CONFIG_STATUS <conf$$subs.sed
-rm -f conf$$subs.sed
-cat >>$CONFIG_STATUS <<_ACEOF
-:end
-s/|#_!!_#|//g
-CEOF$ac_eof
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
+  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
+else
+  cat
+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+  || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5
+$as_echo "$as_me: error: could not setup config files machinery" >&2;}
+   { (exit 1); exit 1; }; }
 _ACEOF
 
-
 # VPATH may cause trouble with some makes, so we remove $(srcdir),
 # ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and
 # trailing colons and then remove the whole line if VPATH becomes empty
@@ -21694,19 +22219,133 @@ s/^[^=]*=[	 ]*$//
 }'
 fi
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 fi # test -n "$CONFIG_FILES"
 
+# Set up the scripts for CONFIG_HEADERS section.
+# No need to generate them if there are no CONFIG_HEADERS.
+# This happens for instance with `./config.status Makefile'.
+if test -n "$CONFIG_HEADERS"; then
+cat >"$tmp/defines.awk" <<\_ACAWK ||
+BEGIN {
+_ACEOF
+
+# Transform confdefs.h into an awk script `defines.awk', embedded as
+# here-document in config.status, that substitutes the proper values into
+# config.h.in to produce config.h.
+
+# Create a delimiter string that does not exist in confdefs.h, to ease
+# handling of long lines.
+ac_delim='%!_!# '
+for ac_last_try in false false :; do
+  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_t"; then
+    break
+  elif $ac_last_try; then
+    { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5
+$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}
+   { (exit 1); exit 1; }; }
+  else
+    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
+  fi
+done
+
+# For the awk script, D is an array of macro values keyed by name,
+# likewise P contains macro parameters if any.  Preserve backslash
+# newline sequences.
+
+ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
+sed -n '
+s/.\{148\}/&'"$ac_delim"'/g
+t rset
+:rset
+s/^[	 ]*#[	 ]*define[	 ][	 ]*/ /
+t def
+d
+:def
+s/\\$//
+t bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3"/p
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2"/p
+d
+:bsnl
+s/["\\]/\\&/g
+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/P["\1"]="\2"\
+D["\1"]=" \3\\\\\\n"\\/p
+t cont
+s/^ \('"$ac_word_re"'\)[	 ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p
+t cont
+d
+:cont
+n
+s/.\{148\}/&'"$ac_delim"'/g
+t clear
+:clear
+s/\\$//
+t bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/"/p
+d
+:bsnlc
+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p
+b cont
+' <confdefs.h | sed '
+s/'"$ac_delim"'/"\\\
+"/g' >>$CONFIG_STATUS || ac_write_fail=1
+
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+  for (key in D) D_is_set[key] = 1
+  FS = ""
+}
+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {
+  line = \$ 0
+  split(line, arg, " ")
+  if (arg[1] == "#") {
+    defundef = arg[2]
+    mac1 = arg[3]
+  } else {
+    defundef = substr(arg[1], 2)
+    mac1 = arg[2]
+  }
+  split(mac1, mac2, "(") #)
+  macro = mac2[1]
+  prefix = substr(line, 1, index(line, defundef) - 1)
+  if (D_is_set[macro]) {
+    # Preserve the white space surrounding the "#".
+    print prefix "define", macro P[macro] D[macro]
+    next
+  } else {
+    # Replace #undef with comments.  This is necessary, for example,
+    # in the case of _POSIX_SOURCE, which is predefined and required
+    # on some systems where configure will not decide to define it.
+    if (defundef == "undef") {
+      print "/*", prefix defundef, macro, "*/"
+      next
+    }
+  }
+}
+{ print }
+_ACAWK
+_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
+  { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5
+$as_echo "$as_me: error: could not setup config headers machinery" >&2;}
+   { (exit 1); exit 1; }; }
+fi # test -n "$CONFIG_HEADERS"
+
 
-for ac_tag in  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS
+eval set X "  :F $CONFIG_FILES  :H $CONFIG_HEADERS    :C $CONFIG_COMMANDS"
+shift
+for ac_tag
 do
   case $ac_tag in
   :[FHLC]) ac_mode=$ac_tag; continue;;
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5
-echo "$as_me: error: Invalid tag $ac_tag." >&2;}
+  :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5
+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}
    { (exit 1); exit 1; }; };;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
@@ -21735,26 +22374,38 @@ echo "$as_me: error: Invalid tag $ac_tag." >&2;}
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
-echo "$as_me: error: cannot find input file: $ac_f" >&2;}
+	   { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5
+$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}
    { (exit 1); exit 1; }; };;
       esac
-      ac_file_inputs="$ac_file_inputs $ac_f"
+      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
+      ac_file_inputs="$ac_file_inputs '$ac_f'"
     done
 
     # Let's still pretend it is `configure' which instantiates (i.e., don't
     # use $as_me), people would be surprised to read:
     #    /* config.h.  Generated by config.status.  */
-    configure_input="Generated from "`IFS=:
-	  echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."
+    configure_input='Generated from '`
+	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
+	`' by configure.'
     if test x"$ac_file" != x-; then
       configure_input="$ac_file.  $configure_input"
-      { echo "$as_me:$LINENO: creating $ac_file" >&5
-echo "$as_me: creating $ac_file" >&6;}
+      { $as_echo "$as_me:$LINENO: creating $ac_file" >&5
+$as_echo "$as_me: creating $ac_file" >&6;}
     fi
+    # Neutralize special characters interpreted by sed in replacement strings.
+    case $configure_input in #(
+    *\&* | *\|* | *\\* )
+       ac_sed_conf_input=`$as_echo "$configure_input" |
+       sed 's/[\\\\&|]/\\\\&/g'`;; #(
+    *) ac_sed_conf_input=$configure_input;;
+    esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin";;
+    *:-:* | *:-) cat >"$tmp/stdin" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; } ;;
     esac
     ;;
   esac
@@ -21764,7 +22415,7 @@ $as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$ac_file" : 'X\(//\)[^/]' \| \
 	 X"$ac_file" : 'X\(//\)$' \| \
 	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$ac_file" |
+$as_echo X"$ac_file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -21790,7 +22441,7 @@ echo X"$ac_file" |
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -21799,7 +22450,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$as_dir" |
+$as_echo X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -21820,17 +22471,17 @@ echo X"$as_dir" |
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
+  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
    { (exit 1); exit 1; }; }; }
   ac_builddir=.
 
 case "$ac_dir" in
 .) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
 *)
-  ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`
+  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
   # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`
+  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
   case $ac_top_builddir_sub in
   "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
   *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
@@ -21875,12 +22526,13 @@ ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
   esac
 _ACEOF
 
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # If the template does not know about datarootdir, expand it.
 # FIXME: This hack should be removed a few years after 2.60.
 ac_datarootdir_hack=; ac_datarootdir_seen=
 
-case `sed -n '/datarootdir/ {
+ac_sed_dataroot='
+/datarootdir/ {
   p
   q
 }
@@ -21889,13 +22541,14 @@ case `sed -n '/datarootdir/ {
 /@infodir@/p
 /@localedir@/p
 /@mandir@/p
-' $ac_file_inputs` in
+'
+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
 *datarootdir*) ac_datarootdir_seen=yes;;
 *@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
 _ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
   ac_datarootdir_hack='
   s&@datadir@&$datadir&g
   s&@docdir@&$docdir&g
@@ -21909,15 +22562,16 @@ _ACEOF
 # Neutralize VPATH when `$srcdir' = `.'.
 # Shell code in configure.ac might set extrasub.
 # FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF
-  sed "$ac_vpsub
+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
+ac_sed_extra="$ac_vpsub
 $extrasub
 _ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF
+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 :t
 /@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s&@configure_input@&$configure_input&;t t
+s|@configure_input@|$ac_sed_conf_input|;t t
 s&@top_builddir@&$ac_top_builddir_sub&;t t
+s&@top_build_prefix@&$ac_top_build_prefix&;t t
 s&@srcdir@&$ac_srcdir&;t t
 s&@abs_srcdir@&$ac_abs_srcdir&;t t
 s&@top_srcdir@&$ac_top_srcdir&;t t
@@ -21928,121 +22582,60 @@ s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 s&@INSTALL@&$ac_INSTALL&;t t
 s&@MKDIR_P@&$ac_MKDIR_P&;t t
 $ac_datarootdir_hack
-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" | sed -f "$tmp/subs-2.sed" >$tmp/out
+"
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
   { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
   { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
-  { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+  { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&5
-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined." >&2;}
 
   rm -f "$tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out"; rm -f "$tmp/out";;
-  *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;
-  esac
+  -) cat "$tmp/out" && rm -f "$tmp/out";;
+  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  esac \
+  || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
  ;;
   :H)
   #
   # CONFIG_HEADER
   #
-_ACEOF
-
-# Transform confdefs.h into a sed script `conftest.defines', that
-# substitutes the proper values into config.h.in to produce config.h.
-rm -f conftest.defines conftest.tail
-# First, append a space to every undef/define line, to ease matching.
-echo 's/$/ /' >conftest.defines
-# Then, protect against being on the right side of a sed subst, or in
-# an unquoted here document, in config.status.  If some macros were
-# called several times there might be several #defines for the same
-# symbol, which is useless.  But do not sort them, since the last
-# AC_DEFINE must be honored.
-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*
-# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where
-# NAME is the cpp macro being defined, VALUE is the value it is being given.
-# PARAMS is the parameter list in the macro definition--in most cases, it's
-# just an empty string.
-ac_dA='s,^\\([	 #]*\\)[^	 ]*\\([	 ]*'
-ac_dB='\\)[	 (].*,\\1define\\2'
-ac_dC=' '
-ac_dD=' ,'
-
-uniq confdefs.h |
-  sed -n '
-	t rset
-	:rset
-	s/^[	 ]*#[	 ]*define[	 ][	 ]*//
-	t ok
-	d
-	:ok
-	s/[\\&,]/\\&/g
-	s/^\('"$ac_word_re"'\)\(([^()]*)\)[	 ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p
-	s/^\('"$ac_word_re"'\)[	 ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p
-  ' >>conftest.defines
-
-# Remove the space that was appended to ease matching.
-# Then replace #undef with comments.  This is necessary, for
-# example, in the case of _POSIX_SOURCE, which is predefined and required
-# on some systems where configure will not decide to define it.
-# (The regexp can be short, since the line contains either #define or #undef.)
-echo 's/ $//
-s,^[	 #]*u.*,/* & */,' >>conftest.defines
-
-# Break up conftest.defines:
-ac_max_sed_lines=50
-
-# First sed command is:	 sed -f defines.sed $ac_file_inputs >"$tmp/out1"
-# Second one is:	 sed -f defines.sed "$tmp/out1" >"$tmp/out2"
-# Third one will be:	 sed -f defines.sed "$tmp/out2" >"$tmp/out1"
-# et cetera.
-ac_in='$ac_file_inputs'
-ac_out='"$tmp/out1"'
-ac_nxt='"$tmp/out2"'
-
-while :
-do
-  # Write a here document:
-    cat >>$CONFIG_STATUS <<_ACEOF
-    # First, check the format of the line:
-    cat >"\$tmp/defines.sed" <<\\CEOF
-/^[	 ]*#[	 ]*undef[	 ][	 ]*$ac_word_re[	 ]*\$/b def
-/^[	 ]*#[	 ]*define[	 ][	 ]*$ac_word_re[(	 ]/b def
-b
-:def
-_ACEOF
-  sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS
-  echo 'CEOF
-    sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS
-  ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in
-  sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail
-  grep . conftest.tail >/dev/null || break
-  rm -f conftest.defines
-  mv conftest.tail conftest.defines
-done
-rm -f conftest.defines conftest.tail
-
-echo "ac_result=$ac_in" >>$CONFIG_STATUS
-cat >>$CONFIG_STATUS <<\_ACEOF
   if test x"$ac_file" != x-; then
-    echo "/* $configure_input  */" >"$tmp/config.h"
-    cat "$ac_result" >>"$tmp/config.h"
-    if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then
-      { echo "$as_me:$LINENO: $ac_file is unchanged" >&5
-echo "$as_me: $ac_file is unchanged" >&6;}
+    {
+      $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
+    } >"$tmp/config.h" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
+    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+      { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5
+$as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
-      rm -f $ac_file
-      mv "$tmp/config.h" $ac_file
+      rm -f "$ac_file"
+      mv "$tmp/config.h" "$ac_file" \
+	|| { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5
+$as_echo "$as_me: error: could not create $ac_file" >&2;}
+   { (exit 1); exit 1; }; }
     fi
   else
-    echo "/* $configure_input  */"
-    cat "$ac_result"
+    $as_echo "/* $configure_input  */" \
+      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+      || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5
+$as_echo "$as_me: error: could not create -" >&2;}
+   { (exit 1); exit 1; }; }
   fi
-  rm -f "$tmp/out12"
-# Compute $ac_file's index in $config_headers.
-_am_arg=$ac_file
+# Compute "$ac_file"'s index in $config_headers.
+_am_arg="$ac_file"
 _am_stamp_count=1
 for _am_header in $config_headers :; do
   case $_am_header in
@@ -22057,7 +22650,7 @@ $as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$_am_arg" : 'X\(//\)[^/]' \| \
 	 X"$_am_arg" : 'X\(//\)$' \| \
 	 X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$_am_arg" |
+$as_echo X"$_am_arg" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -22077,8 +22670,8 @@ echo X"$_am_arg" |
 	  s/.*/./; q'`/stamp-h$_am_stamp_count
  ;;
 
-  :C)  { echo "$as_me:$LINENO: executing $ac_file commands" >&5
-echo "$as_me: executing $ac_file commands" >&6;}
+  :C)  { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5
+$as_echo "$as_me: executing $ac_file commands" >&6;}
  ;;
   esac
 
@@ -22100,7 +22693,7 @@ $as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$mf" : 'X\(//\)[^/]' \| \
 	 X"$mf" : 'X\(//\)$' \| \
 	 X"$mf" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$mf" |
+$as_echo X"$mf" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -22144,7 +22737,7 @@ $as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$file" : 'X\(//\)[^/]' \| \
 	 X"$file" : 'X\(//\)$' \| \
 	 X"$file" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$file" |
+$as_echo X"$file" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -22170,7 +22763,7 @@ echo X"$file" |
     as_dirs=
     while :; do
       case $as_dir in #(
-      *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(
+      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
       *) as_qdir=$as_dir;;
       esac
       as_dirs="'$as_qdir' $as_dirs"
@@ -22179,7 +22772,7 @@ $as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
 	 X"$as_dir" : 'X\(//\)[^/]' \| \
 	 X"$as_dir" : 'X\(//\)$' \| \
 	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-echo X"$as_dir" |
+$as_echo X"$as_dir" |
     sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
 	    s//\1/
 	    q
@@ -22200,8 +22793,8 @@ echo X"$as_dir" |
       test -d "$as_dir" && break
     done
     test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
-echo "$as_me: error: cannot create directory $as_dir" >&2;}
+  } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5
+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}
    { (exit 1); exit 1; }; }; }
     # echo "creating $dirpart/$file"
     echo '# dummy' > "$dirpart/$file"
@@ -22218,6 +22811,11 @@ _ACEOF
 chmod +x $CONFIG_STATUS
 ac_clean_files=$ac_clean_files_save
 
+test $ac_write_fail = 0 ||
+  { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5
+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}
+   { (exit 1); exit 1; }; }
+
 
 # configure is writing to config.log, and then calls config.status.
 # config.status does its own redirection, appending to config.log.
@@ -22239,4 +22837,8 @@ if test "$no_create" != yes; then
   # would make configure fail if this is the last instruction.
   $ac_cs_success || { (exit 1); exit 1; }
 fi
+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
+  { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
+fi
 
diff --git a/libs/sigc++2/scripts/Makefile b/libs/sigc++2/scripts/Makefile
index 9c18df5..fc54018 100644
--- a/libs/sigc++2/scripts/Makefile
+++ b/libs/sigc++2/scripts/Makefile
@@ -29,8 +29,8 @@ POST_INSTALL = :
 NORMAL_UNINSTALL = :
 PRE_UNINSTALL = :
 POST_UNINSTALL = :
-build_triplet = i686-pc-linux-gnu
-host_triplet = i686-pc-linux-gnu
+build_triplet = x86_64-unknown-linux-gnu
+host_triplet = x86_64-unknown-linux-gnu
 subdir = scripts
 DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
 ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
@@ -65,6 +65,7 @@ CYGPATH_W = echo
 DEFS = -DHAVE_CONFIG_H
 DEPDIR = .deps
 DLLTOOL = dlltool
+DSYMUTIL = 
 ECHO = echo
 ECHO_C = 
 ECHO_N = -n
@@ -94,6 +95,7 @@ M4 = m4
 MAINT = #
 MAKEINFO = ${SHELL} /usr/local/music/src/ardour/2.0-ongoing/libs/sigc++2/missing --run makeinfo
 MKDIR_P = /bin/mkdir -p
+NMEDIT = 
 OBJDUMP = objdump
 OBJEXT = o
 PACKAGE = libsigc++
@@ -123,22 +125,22 @@ am__quote =
 am__tar = tar --format=ustar -chf - "$$tardir"
 am__untar = tar -xf -
 bindir = ${exec_prefix}/bin
-build = i686-pc-linux-gnu
+build = x86_64-unknown-linux-gnu
 build_alias = 
-build_cpu = i686
+build_cpu = x86_64
 build_os = linux-gnu
-build_vendor = pc
+build_vendor = unknown
 builddir = .
 datadir = ${datarootdir}
 datarootdir = ${prefix}/share
 docdir = ${datarootdir}/doc/${PACKAGE_TARNAME}
 dvidir = ${docdir}
 exec_prefix = ${prefix}
-host = i686-pc-linux-gnu
+host = x86_64-unknown-linux-gnu
 host_alias = 
-host_cpu = i686
+host_cpu = x86_64
 host_os = linux-gnu
-host_vendor = pc
+host_vendor = unknown
 htmldir = ${docdir}
 includedir = ${prefix}/include
 infodir = ${datarootdir}/info
@@ -159,6 +161,7 @@ sharedstatedir = ${prefix}/com
 srcdir = .
 sysconfdir = ${prefix}/etc
 target_alias = 
+top_build_prefix = ../
 top_builddir = ..
 top_srcdir = ..
 EXTRA_DIST = cxx.m4 cxx_std.m4
diff --git a/libs/sigc++2/scripts/Makefile.in b/libs/sigc++2/scripts/Makefile.in
index 582596a..92f155e 100644
--- a/libs/sigc++2/scripts/Makefile.in
+++ b/libs/sigc++2/scripts/Makefile.in
@@ -65,6 +65,7 @@ CYGPATH_W = @CYGPATH_W@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -94,6 +95,7 @@ M4 = @M4@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -159,6 +161,7 @@ sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 EXTRA_DIST = cxx.m4 cxx_std.m4
diff --git a/libs/sigc++2/sigc++/Makefile.in b/libs/sigc++2/sigc++/Makefile.in
index e8a8993..2c59490 100644
--- a/libs/sigc++2/sigc++/Makefile.in
+++ b/libs/sigc++2/sigc++/Makefile.in
@@ -100,6 +100,7 @@ CYGPATH_W = @CYGPATH_W@
 DEFS = @DEFS@
 DEPDIR = @DEPDIR@
 DLLTOOL = @DLLTOOL@
+DSYMUTIL = @DSYMUTIL@
 ECHO = @ECHO@
 ECHO_C = @ECHO_C@
 ECHO_N = @ECHO_N@
@@ -129,6 +130,7 @@ M4 = @M4@
 MAINT = @MAINT@
 MAKEINFO = @MAKEINFO@
 MKDIR_P = @MKDIR_P@
+NMEDIT = @NMEDIT@
 OBJDUMP = @OBJDUMP@
 OBJEXT = @OBJEXT@
 PACKAGE = @PACKAGE@
@@ -194,6 +196,7 @@ sharedstatedir = @sharedstatedir@
 srcdir = @srcdir@
 sysconfdir = @sysconfdir@
 target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
 top_builddir = @top_builddir@
 top_srcdir = @top_srcdir@
 
diff --git a/libs/sigc++2/sigc++config.h b/libs/sigc++2/sigc++config.h
index 48c97b3..7a20561 100644
--- a/libs/sigc++2/sigc++config.h
+++ b/libs/sigc++2/sigc++config.h
@@ -53,7 +53,7 @@
   //
   #pragma warning(disable:4251)
 
-  #define SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD
+  #define SIGC_MSVC_TEMPLATE_SPECIALIZATION_OPERATOR_OVERLOAD 1
   #define SIGC_NEW_DELETE_IN_LIBRARY_ONLY // To keep ABI compatibility
   #define SIGC_HAVE_NAMESPACE_STD 1
 
diff --git a/libs/soundtouch/AAFilter.cpp b/libs/soundtouch/AAFilter.cpp
index 4f7f033..f08caf9 100644
--- a/libs/soundtouch/AAFilter.cpp
+++ b/libs/soundtouch/AAFilter.cpp
@@ -12,7 +12,7 @@
 ///
 ////////////////////////////////////////////////////////////////////////////////
 //
-// Last changed  : $Date: 2008-07-10 20:37:26 +0200 (Thu, 10 Jul 2008) $
+// Last changed  : $Date: 2008-07-10 14:37:26 -0400 (Thu, 10 Jul 2008) $
 // File revision : $Revision: 3584 $
 //
 // $Id: AAFilter.cpp 3584 2008-07-10 18:37:26Z nostar $
diff --git a/libs/soundtouch/FIFOSampleBuffer.cpp b/libs/soundtouch/FIFOSampleBuffer.cpp
index be8fa5f..52ede84 100644
--- a/libs/soundtouch/FIFOSampleBuffer.cpp
+++ b/libs/soundtouch/FIFOSampleBuffer.cpp
@@ -15,7 +15,7 @@
 ///
 ////////////////////////////////////////////////////////////////////////////////
 //
-// Last changed  : $Date: 2008-07-10 20:37:26 +0200 (Thu, 10 Jul 2008) $
+// Last changed  : $Date: 2008-07-10 14:37:26 -0400 (Thu, 10 Jul 2008) $
 // File revision : $Revision: 3584 $
 //
 // $Id: FIFOSampleBuffer.cpp 3584 2008-07-10 18:37:26Z nostar $
diff --git a/libs/soundtouch/FIFOSamplePipe.h b/libs/soundtouch/FIFOSamplePipe.h
index 489d15b..9772d7b 100644
--- a/libs/soundtouch/FIFOSamplePipe.h
+++ b/libs/soundtouch/FIFOSamplePipe.h
@@ -17,7 +17,7 @@
 ///
 ////////////////////////////////////////////////////////////////////////////////
 //
-// Last changed  : $Date: 2008-07-10 20:37:26 +0200 (Thu, 10 Jul 2008) $
+// Last changed  : $Date: 2008-07-10 14:37:26 -0400 (Thu, 10 Jul 2008) $
 // File revision : $Revision: 3584 $
 //
 // $Id: FIFOSamplePipe.h 3584 2008-07-10 18:37:26Z nostar $
diff --git a/libs/soundtouch/FIRFilter.cpp b/libs/soundtouch/FIRFilter.cpp
index b4dc7fb..55d5e55 100644
--- a/libs/soundtouch/FIRFilter.cpp
+++ b/libs/soundtouch/FIRFilter.cpp
@@ -11,7 +11,7 @@
 ///
 ////////////////////////////////////////////////////////////////////////////////
 //
-// Last changed  : $Date: 2008-07-10 20:37:26 +0200 (Thu, 10 Jul 2008) $
+// Last changed  : $Date: 2008-07-10 14:37:26 -0400 (Thu, 10 Jul 2008) $
 // File revision : $Revision: 3584 $
 //
 // $Id: FIRFilter.cpp 3584 2008-07-10 18:37:26Z nostar $
diff --git a/libs/soundtouch/RateTransposer.cpp b/libs/soundtouch/RateTransposer.cpp
index 3adb760..69044dc 100644
--- a/libs/soundtouch/RateTransposer.cpp
+++ b/libs/soundtouch/RateTransposer.cpp
@@ -10,7 +10,7 @@
 ///
 ////////////////////////////////////////////////////////////////////////////////
 //
-// Last changed  : $Date: 2008-07-10 20:37:26 +0200 (Thu, 10 Jul 2008) $
+// Last changed  : $Date: 2008-07-10 14:37:26 -0400 (Thu, 10 Jul 2008) $
 // File revision : $Revision: 3584 $
 //
 // $Id: RateTransposer.cpp 3584 2008-07-10 18:37:26Z nostar $
diff --git a/libs/soundtouch/TDStretch.cpp b/libs/soundtouch/TDStretch.cpp
index aedcd96..1132acf 100644
--- a/libs/soundtouch/TDStretch.cpp
+++ b/libs/soundtouch/TDStretch.cpp
@@ -13,7 +13,7 @@
 ///
 ////////////////////////////////////////////////////////////////////////////////
 //
-// Last changed  : $Date: 2008-07-10 20:37:26 +0200 (Thu, 10 Jul 2008) $
+// Last changed  : $Date: 2008-07-10 14:37:26 -0400 (Thu, 10 Jul 2008) $
 // File revision : $Revision: 3584 $
 //
 // $Id: TDStretch.cpp 3584 2008-07-10 18:37:26Z nostar $
diff --git a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
index 90b6b4b..ba72819 100644
--- a/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
+++ b/libs/surfaces/generic_midi/generic_midi_control_protocol.cc
@@ -17,6 +17,9 @@
 
 */
 
+#define __STDC_FORMAT_MACROS 1
+#include <stdint.h>
+
 #include <algorithm>
 
 #include <pbd/error.h>
@@ -121,7 +124,7 @@ GenericMidiControlProtocol::_send_feedback ()
 	if (end == buf) {
 		return;
 	} 
-	
+
 	_port->write (buf, (int32_t) (end - buf));
 }
 
@@ -228,9 +231,7 @@ GenericMidiControlProtocol::stop_learning (Controllable* c)
 		}
 	}
 	
-	if (dptr) {
-		delete dptr;
-	}
+	delete dptr;
 }
 
 void
diff --git a/libs/surfaces/mackie/mackie_control_protocol.cc b/libs/surfaces/mackie/mackie_control_protocol.cc
index de6623c..caf0172 100644
--- a/libs/surfaces/mackie/mackie_control_protocol.cc
+++ b/libs/surfaces/mackie/mackie_control_protocol.cc
@@ -293,7 +293,7 @@ void MackieControlProtocol::switch_banks( int initial )
 			cout << "remote id " << route->remote_control_id() << " connecting " << route->name() << " to " << strip.name() << " with port " << port_for_id(i) << endl;
 #endif
 			route_table[i] = route;
-			RouteSignal * rs = new RouteSignal( *route, *this, strip, port_for_id(i) );
+			RouteSignal * rs = new RouteSignal (route, *this, strip, port_for_id(i) );
 			route_signals.push_back( rs );
 			// update strip from route
 			rs->notify_all();
@@ -543,11 +543,13 @@ void MackieControlProtocol::update_surface()
 		switch_banks( _current_initial_bank );
 		
 		// create a RouteSignal for the master route
-		// but only the first time around
-		master_route_signal = shared_ptr<RouteSignal>( new RouteSignal( *master_route(), *this, master_strip(), mcu_port() ) );
-		// update strip from route
-		master_route_signal->notify_all();
-		
+		boost::shared_ptr<Route> mr = master_route ();
+		if (mr) {
+			master_route_signal = shared_ptr<RouteSignal> (new RouteSignal (mr, *this, master_strip(), mcu_port()) );
+			// update strip from route
+			master_route_signal->notify_all();
+		}
+
 		// sometimes the jog wheel is a pot
 		surface().blank_jog_ring( mcu_port(), builder );
 		
@@ -656,13 +658,8 @@ void MackieControlProtocol::create_ports()
 
 shared_ptr<Route> MackieControlProtocol::master_route()
 {
-	shared_ptr<Route> retval;
-	retval = session->route_by_name( "master" );
-	if ( retval == 0 )
-	{
-		// TODO search through all routes for one with the master attribute set
-	}
-	return retval;
+	boost::shared_ptr<IO> mo = session->master_out ();
+	return boost::dynamic_pointer_cast<Route>(mo);
 }
 
 Strip & MackieControlProtocol::master_strip()
@@ -966,7 +963,7 @@ void MackieControlProtocol::notify_solo_changed( RouteSignal * route_signal )
 	try
 	{
 		Button & button = route_signal->strip().solo();
-		route_signal->port().write( builder.build_led( button, route_signal->route().soloed() ) );
+		route_signal->port().write( builder.build_led( button, route_signal->route()->soloed() ) );
 	}
 	catch( exception & e )
 	{
@@ -979,7 +976,7 @@ void MackieControlProtocol::notify_mute_changed( RouteSignal * route_signal )
 	try
 	{
 		Button & button = route_signal->strip().mute();
-		route_signal->port().write( builder.build_led( button, route_signal->route().muted() ) );
+		route_signal->port().write( builder.build_led( button, route_signal->route()->muted() ) );
 	}
 	catch( exception & e )
 	{
@@ -992,7 +989,7 @@ void MackieControlProtocol::notify_record_enable_changed( RouteSignal * route_si
 	try
 	{
 		Button & button = route_signal->strip().recenable();
-		route_signal->port().write( builder.build_led( button, route_signal->route().record_enabled() ) );
+		route_signal->port().write( builder.build_led( button, route_signal->route()->record_enabled() ) );
 	}
 	catch( exception & e )
 	{
@@ -1022,7 +1019,7 @@ void MackieControlProtocol::notify_gain_changed( RouteSignal * route_signal, boo
 		Fader & fader = route_signal->strip().gain();
 		if ( !fader.in_use() )
 		{
-			float gain_value = route_signal->route().gain_control().get_value();
+			float gain_value = route_signal->route()->gain_control().get_value();
 			// check that something has actually changed
 			if ( force_update || gain_value != route_signal->last_gain_written() )
 			{
@@ -1045,7 +1042,7 @@ void MackieControlProtocol::notify_name_changed( void *, RouteSignal * route_sig
 		if ( !strip.is_master() )
 		{
 			string line1;
-			string fullname = route_signal->route().name();
+			string fullname = route_signal->route()->name();
 			
 			if ( fullname.length() <= 6 )
 			{
@@ -1072,11 +1069,11 @@ void MackieControlProtocol::notify_panner_changed( RouteSignal * route_signal, b
 	try
 	{
 		Pot & pot = route_signal->strip().vpot();
-		const Panner & panner = route_signal->route().panner();
+		const Panner & panner = route_signal->route()->panner();
 		if ( panner.size() == 1 || ( panner.size() == 2 && panner.linked() ) )
 		{
 			float pos;
-			route_signal->route().panner()[0]->get_effective_position( pos );
+			route_signal->route()->panner()[0]->get_effective_position( pos );
 			
 			// cache the MidiByteArray here, because the mackie led control is much lower
 			// resolution than the panner control. So we save lots of byte
@@ -1103,13 +1100,13 @@ void MackieControlProtocol::notify_panner_changed( RouteSignal * route_signal, b
 // TODO handle plugin automation polling
 void MackieControlProtocol::update_automation( RouteSignal & rs )
 {
-	ARDOUR::AutoState gain_state = rs.route().gain_automation_state();
+	ARDOUR::AutoState gain_state = rs.route()->gain_automation_state();
 	if ( gain_state == Touch || gain_state == Play )
 	{
 		notify_gain_changed( &rs, false );
 	}
 	
-	ARDOUR::AutoState panner_state = rs.route().panner().automation_state();
+	ARDOUR::AutoState panner_state = rs.route()->panner().automation_state();
 	if ( panner_state == Touch || panner_state == Play )
 	{
 		notify_panner_changed( &rs, false );
diff --git a/libs/surfaces/mackie/route_signal.cc b/libs/surfaces/mackie/route_signal.cc
index 7822c7c..efe6054 100644
--- a/libs/surfaces/mackie/route_signal.cc
+++ b/libs/surfaces/mackie/route_signal.cc
@@ -25,6 +25,7 @@
 
 #include <stdexcept>
 
+using namespace ARDOUR;
 using namespace Mackie;
 using namespace std;
 
@@ -33,39 +34,30 @@ void RouteSignal::connect()
 	back_insert_iterator<Connections> cins = back_inserter( _connections );
 	
 	if ( _strip.has_solo() )
-		cins = _route.solo_control().Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_solo_changed ), this ) );
+		cins = _route->solo_control().Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_solo_changed ), this ) );
 	
 	if ( _strip.has_mute() )
-		cins = _route.mute_control().Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_mute_changed ), this ) );
+		cins = _route->mute_control().Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_mute_changed ), this ) );
 	
 	if ( _strip.has_gain() )
-		cins = _route.gain_control().Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_gain_changed ), this, true ) );
+		cins = _route->gain_control().Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_gain_changed ), this, true ) );
 		
-	cins = _route.name_changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_name_changed ), this ) );
+	cins = _route->name_changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_name_changed ), this ) );
 	
-	cins = _route.panner().Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_panner_changed ), this, true ) );
-	for ( unsigned int i = 0; i < _route.panner().size(); ++i )
+	cins = _route->panner().Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_panner_changed ), this, true ) );
+	for ( unsigned int i = 0; i < _route->panner().size(); ++i )
 	{
-		cins = _route.panner()[i]->Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_panner_changed ), this, true ) );
+		cins = _route->panner()[i]->Changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_panner_changed ), this, true ) );
 	}
 	
-	try
-	{
-		cins = dynamic_cast<ARDOUR::Track&>( _route )
-			.rec_enable_control()
-			.Changed
-			.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_record_enable_changed ), this ) )
-		;
-	}
-	catch ( std::bad_cast & )
-	{
-		// this should catch the dynamic_cast to Track, if what we're working
-		// with can't be record-enabled
+	boost::shared_ptr<Track> trk = boost::dynamic_pointer_cast<ARDOUR::Track>(_route);
+	if (trk) {
+		cins = trk->rec_enable_control() .Changed .connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_record_enable_changed ), this));
 	}
-
+	
 	// TODO this works when a currently-banked route is made inactive, but not
 	// when a route is activated which should be currently banked.
-	cins = _route.active_changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_active_changed ), this ) );
+	cins = _route->active_changed.connect( sigc::bind ( mem_fun ( _mcp, &MackieControlProtocol::notify_active_changed ), this ) );
 	
 	// TODO
 	// SelectedChanged
diff --git a/libs/surfaces/mackie/route_signal.h b/libs/surfaces/mackie/route_signal.h
index 01b3c97..a272449 100644
--- a/libs/surfaces/mackie/route_signal.h
+++ b/libs/surfaces/mackie/route_signal.h
@@ -19,6 +19,7 @@
 #define route_signal_h
 
 #include <sigc++/sigc++.h>
+#include <boost/shared_ptr.hpp>
 
 #include <vector>
 
@@ -45,7 +46,7 @@ class SurfacePort;
 class RouteSignal
 {
 public:
-	RouteSignal( ARDOUR::Route & route, MackieControlProtocol & mcp, Strip & strip, SurfacePort & port )
+        RouteSignal(boost::shared_ptr<ARDOUR::Route> route, MackieControlProtocol & mcp, Strip & strip, SurfacePort & port )
 	: _route( route ), _mcp( mcp ), _strip( strip ), _port( port ), _last_gain_written(0.0)
 	{
 		connect();
@@ -62,7 +63,7 @@ public:
 	// call all signal handlers manually
 	void notify_all();
 	
-	const ARDOUR::Route & route() const { return _route; }
+	boost::shared_ptr<const ARDOUR::Route> route() const { return _route; }
 	Strip & strip() { return _strip; }
 	SurfacePort & port() { return _port; }
 	
@@ -73,7 +74,7 @@ public:
 	void last_pan_written( const MidiByteArray & other ) { _last_pan_written = other; }
 	
 private:
-	ARDOUR::Route & _route;
+	boost::shared_ptr<ARDOUR::Route> _route;
 	MackieControlProtocol & _mcp;
 	Strip & _strip;
 	SurfacePort & _port;
diff --git a/libs/vamp-sdk/SConscript b/libs/vamp-sdk/SConscript
index e2d602e..f49705d 100644
--- a/libs/vamp-sdk/SConscript
+++ b/libs/vamp-sdk/SConscript
@@ -5,18 +5,18 @@ import os.path
 import glob
 
 vampsdk_files = Split ("""
-vamp-sdk/PluginAdapter.cpp
-vamp-sdk/RealTime.cpp
+src/vamp-sdk/PluginAdapter.cpp
+src/vamp-sdk/RealTime.cpp
 """)
 
 vamphostsdk_files = Split ("""
-vamp-sdk/PluginHostAdapter.cpp
-vamp-sdk/hostext/PluginBufferingAdapter.cpp
-vamp-sdk/hostext/PluginChannelAdapter.cpp
-vamp-sdk/hostext/PluginInputDomainAdapter.cpp
-vamp-sdk/hostext/PluginLoader.cpp
-vamp-sdk/hostext/PluginWrapper.cpp
-vamp-sdk/RealTime.cpp
+src/vamp-hostsdk/PluginHostAdapter.cpp
+src/vamp-hostsdk/PluginBufferingAdapter.cpp
+src/vamp-hostsdk/PluginChannelAdapter.cpp
+src/vamp-hostsdk/PluginInputDomainAdapter.cpp
+src/vamp-hostsdk/PluginLoader.cpp
+src/vamp-hostsdk/PluginWrapper.cpp
+src/vamp-hostsdk/RealTime.cpp
 """)
 
 Import('env install_prefix libraries')
@@ -43,4 +43,4 @@ env.Alias('tarball', env.Distribute (env['DISTTREE'],
                                      vamphostsdk_files +
                                      glob.glob('vamp/*.h') + 
                                      glob.glob('vamp-sdk/*.h') + 
-                                     glob.glob('vamp-sdk/hostext/*.h')))
+                                     glob.glob('vamp-hostsdk/*.h')))
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginBufferingAdapter.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginBufferingAdapter.cpp
new file mode 100644
index 0000000..0aa92d9
--- /dev/null
+++ b/libs/vamp-sdk/src/vamp-hostsdk/PluginBufferingAdapter.cpp
@@ -0,0 +1,712 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006-2007 Chris Cannam and QMUL.
+    This file by Mark Levy and Chris Cannam, Copyright 2007-2008 QMUL.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#include <vector>
+#include <map>
+
+#include <vamp-hostsdk/PluginBufferingAdapter.h>
+
+using std::vector;
+using std::map;
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginBufferingAdapter.cpp)
+
+namespace Vamp {
+	
+namespace HostExt {
+		
+class PluginBufferingAdapter::Impl
+{
+public:
+    Impl(Plugin *plugin, float inputSampleRate);
+    ~Impl();
+	
+    void setPluginStepSize(size_t stepSize);	
+    void setPluginBlockSize(size_t blockSize);
+
+    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
+
+    void getActualStepAndBlockSizes(size_t &stepSize, size_t &blockSize);
+
+    OutputList getOutputDescriptors() const;
+
+    void setParameter(std::string, float);
+    void selectProgram(std::string);
+
+    void reset();
+
+    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
+		
+    FeatureSet getRemainingFeatures();
+		
+protected:
+    class RingBuffer
+    {
+    public:
+        RingBuffer(int n) :
+            m_buffer(new float[n+1]), m_writer(0), m_reader(0), m_size(n+1) { }
+        virtual ~RingBuffer() { delete[] m_buffer; }
+
+        int getSize() const { return m_size-1; }
+        void reset() { m_writer = 0; m_reader = 0; }
+
+        int getReadSpace() const {
+            int writer = m_writer, reader = m_reader, space;
+            if (writer > reader) space = writer - reader;
+            else if (writer < reader) space = (writer + m_size) - reader;
+            else space = 0;
+            return space;
+        }
+
+        int getWriteSpace() const {
+            int writer = m_writer;
+            int reader = m_reader;
+            int space = (reader + m_size - writer - 1);
+            if (space >= m_size) space -= m_size;
+            return space;
+        }
+        
+        int peek(float *destination, int n) const {
+
+            int available = getReadSpace();
+
+            if (n > available) {
+                for (int i = available; i < n; ++i) {
+                    destination[i] = 0.f;
+                }
+                n = available;
+            }
+            if (n == 0) return n;
+
+            int reader = m_reader;
+            int here = m_size - reader;
+            const float *const bufbase = m_buffer + reader;
+
+            if (here >= n) {
+                for (int i = 0; i < n; ++i) {
+                    destination[i] = bufbase[i];
+                }
+            } else {
+                for (int i = 0; i < here; ++i) {
+                    destination[i] = bufbase[i];
+                }
+                float *const destbase = destination + here;
+                const int nh = n - here;
+                for (int i = 0; i < nh; ++i) {
+                    destbase[i] = m_buffer[i];
+                }
+            }
+
+            return n;
+        }
+
+        int skip(int n) {
+            
+            int available = getReadSpace();
+            if (n > available) {
+                n = available;
+            }
+            if (n == 0) return n;
+
+            int reader = m_reader;
+            reader += n;
+            while (reader >= m_size) reader -= m_size;
+            m_reader = reader;
+            return n;
+        }
+        
+        int write(const float *source, int n) {
+
+            int available = getWriteSpace();
+            if (n > available) {
+                n = available;
+            }
+            if (n == 0) return n;
+
+            int writer = m_writer;
+            int here = m_size - writer;
+            float *const bufbase = m_buffer + writer;
+            
+            if (here >= n) {
+                for (int i = 0; i < n; ++i) {
+                    bufbase[i] = source[i];
+                }
+            } else {
+                for (int i = 0; i < here; ++i) {
+                    bufbase[i] = source[i];
+                }
+                const int nh = n - here;
+                const float *const srcbase = source + here;
+                float *const buf = m_buffer;
+                for (int i = 0; i < nh; ++i) {
+                    buf[i] = srcbase[i];
+                }
+            }
+
+            writer += n;
+            while (writer >= m_size) writer -= m_size;
+            m_writer = writer;
+
+            return n;
+        }
+
+        int zero(int n) {
+            
+            int available = getWriteSpace();
+            if (n > available) {
+                n = available;
+            }
+            if (n == 0) return n;
+
+            int writer = m_writer;
+            int here = m_size - writer;
+            float *const bufbase = m_buffer + writer;
+
+            if (here >= n) {
+                for (int i = 0; i < n; ++i) {
+                    bufbase[i] = 0.f;
+                }
+            } else {
+                for (int i = 0; i < here; ++i) {
+                    bufbase[i] = 0.f;
+                }
+                const int nh = n - here;
+                for (int i = 0; i < nh; ++i) {
+                    m_buffer[i] = 0.f;
+                }
+            }
+            
+            writer += n;
+            while (writer >= m_size) writer -= m_size;
+            m_writer = writer;
+
+            return n;
+        }
+
+    protected:
+        float *m_buffer;
+        int    m_writer;
+        int    m_reader;
+        int    m_size;
+
+    private:
+        RingBuffer(const RingBuffer &); // not provided
+        RingBuffer &operator=(const RingBuffer &); // not provided
+    };
+
+    Plugin *m_plugin;
+    size_t m_inputStepSize;  // value passed to wrapper initialise()
+    size_t m_inputBlockSize; // value passed to wrapper initialise()
+    size_t m_setStepSize;    // value passed to setPluginStepSize()
+    size_t m_setBlockSize;   // value passed to setPluginBlockSize()
+    size_t m_stepSize;       // value actually used to initialise plugin
+    size_t m_blockSize;      // value actually used to initialise plugin
+    size_t m_channels;
+    vector<RingBuffer *> m_queue;
+    float **m_buffers;
+    float m_inputSampleRate;
+    long m_frame;
+    bool m_unrun;
+    mutable OutputList m_outputs;
+    mutable std::map<int, bool> m_rewriteOutputTimes;
+		
+    void processBlock(FeatureSet& allFeatureSets);
+};
+		
+PluginBufferingAdapter::PluginBufferingAdapter(Plugin *plugin) :
+    PluginWrapper(plugin)
+{
+    m_impl = new Impl(plugin, m_inputSampleRate);
+}
+		
+PluginBufferingAdapter::~PluginBufferingAdapter()
+{
+    delete m_impl;
+}
+
+size_t
+PluginBufferingAdapter::getPreferredStepSize() const
+{
+    return getPreferredBlockSize();
+}
+
+size_t
+PluginBufferingAdapter::getPreferredBlockSize() const
+{
+    return PluginWrapper::getPreferredBlockSize();
+}
+
+size_t
+PluginBufferingAdapter::getPluginPreferredStepSize() const
+{
+    return PluginWrapper::getPreferredStepSize();
+}
+
+size_t
+PluginBufferingAdapter::getPluginPreferredBlockSize() const
+{
+    return PluginWrapper::getPreferredBlockSize();
+}
+
+void
+PluginBufferingAdapter::setPluginStepSize(size_t stepSize)
+{
+    m_impl->setPluginStepSize(stepSize);
+}
+
+void
+PluginBufferingAdapter::setPluginBlockSize(size_t blockSize)
+{
+    m_impl->setPluginBlockSize(blockSize);
+}
+
+void
+PluginBufferingAdapter::getActualStepAndBlockSizes(size_t &stepSize,
+                                                   size_t &blockSize)
+{
+    m_impl->getActualStepAndBlockSizes(stepSize, blockSize);
+}
+		
+bool
+PluginBufferingAdapter::initialise(size_t channels, size_t stepSize, size_t blockSize)
+{
+    return m_impl->initialise(channels, stepSize, blockSize);
+}
+
+PluginBufferingAdapter::OutputList
+PluginBufferingAdapter::getOutputDescriptors() const
+{
+    return m_impl->getOutputDescriptors();
+}
+
+void
+PluginBufferingAdapter::setParameter(std::string name, float value)
+{
+    m_impl->setParameter(name, value);
+}
+
+void
+PluginBufferingAdapter::selectProgram(std::string name)
+{
+    m_impl->selectProgram(name);
+}
+
+void
+PluginBufferingAdapter::reset()
+{
+    m_impl->reset();
+}
+		
+PluginBufferingAdapter::FeatureSet
+PluginBufferingAdapter::process(const float *const *inputBuffers,
+                                RealTime timestamp)
+{
+    return m_impl->process(inputBuffers, timestamp);
+}
+		
+PluginBufferingAdapter::FeatureSet
+PluginBufferingAdapter::getRemainingFeatures()
+{
+    return m_impl->getRemainingFeatures();
+}
+		
+PluginBufferingAdapter::Impl::Impl(Plugin *plugin, float inputSampleRate) :
+    m_plugin(plugin),
+    m_inputStepSize(0),
+    m_inputBlockSize(0),
+    m_setStepSize(0),
+    m_setBlockSize(0),
+    m_stepSize(0),
+    m_blockSize(0),
+    m_channels(0), 
+    m_queue(0),
+    m_buffers(0),
+    m_inputSampleRate(inputSampleRate),
+    m_frame(0),
+    m_unrun(true)
+{
+    (void)getOutputDescriptors(); // set up m_outputs and m_rewriteOutputTimes
+}
+		
+PluginBufferingAdapter::Impl::~Impl()
+{
+    // the adapter will delete the plugin
+
+    for (size_t i = 0; i < m_channels; ++i) {
+        delete m_queue[i];
+        delete[] m_buffers[i];
+    }
+    delete[] m_buffers;
+}
+		
+void
+PluginBufferingAdapter::Impl::setPluginStepSize(size_t stepSize)
+{
+    if (m_inputStepSize != 0) {
+        std::cerr << "PluginBufferingAdapter::setPluginStepSize: ERROR: Cannot be called after initialise()" << std::endl;
+        return;
+    }
+    m_setStepSize = stepSize;
+}
+		
+void
+PluginBufferingAdapter::Impl::setPluginBlockSize(size_t blockSize)
+{
+    if (m_inputBlockSize != 0) {
+        std::cerr << "PluginBufferingAdapter::setPluginBlockSize: ERROR: Cannot be called after initialise()" << std::endl;
+        return;
+    }
+    m_setBlockSize = blockSize;
+}
+
+void
+PluginBufferingAdapter::Impl::getActualStepAndBlockSizes(size_t &stepSize,
+                                                         size_t &blockSize)
+{
+    stepSize = m_stepSize;
+    blockSize = m_blockSize;
+}
+
+bool
+PluginBufferingAdapter::Impl::initialise(size_t channels, size_t stepSize, size_t blockSize)
+{
+    if (stepSize != blockSize) {
+        std::cerr << "PluginBufferingAdapter::initialise: input stepSize must be equal to blockSize for this adapter (stepSize = " << stepSize << ", blockSize = " << blockSize << ")" << std::endl;
+        return false;
+    }
+
+    m_channels = channels;	
+    m_inputStepSize = stepSize;
+    m_inputBlockSize = blockSize;
+
+    // if the user has requested particular step or block sizes, use
+    // those; otherwise use the step and block sizes which the plugin
+    // prefers
+
+    m_stepSize = 0;
+    m_blockSize = 0;
+
+    if (m_setStepSize > 0) {
+        m_stepSize = m_setStepSize;
+    }
+    if (m_setBlockSize > 0) {
+        m_blockSize = m_setBlockSize;
+    }
+
+    if (m_stepSize == 0 && m_blockSize == 0) {
+        m_stepSize = m_plugin->getPreferredStepSize();
+        m_blockSize = m_plugin->getPreferredBlockSize();
+    }
+    
+    bool freq = (m_plugin->getInputDomain() == Vamp::Plugin::FrequencyDomain);
+    
+    // or sensible defaults if it has no preference
+    if (m_blockSize == 0) {
+        if (m_stepSize == 0) {
+            m_blockSize = 1024;
+            if (freq) {
+                m_stepSize = m_blockSize / 2;
+            } else {
+                m_stepSize = m_blockSize;
+            }
+        } else if (freq) {
+            m_blockSize = m_stepSize * 2;
+        } else {
+            m_blockSize = m_stepSize;
+        }
+    } else if (m_stepSize == 0) { // m_blockSize != 0 (that was handled above)
+        if (freq) {
+            m_stepSize = m_blockSize/2;
+        } else {
+            m_stepSize = m_blockSize;
+        }
+    }
+    
+    // current implementation breaks if step is greater than block
+    if (m_stepSize > m_blockSize) {
+        size_t newBlockSize;
+        if (freq) {
+            newBlockSize = m_stepSize * 2;
+        } else {
+            newBlockSize = m_stepSize;
+        }
+        std::cerr << "PluginBufferingAdapter::initialise: WARNING: step size " << m_stepSize << " is greater than block size " << m_blockSize << ": cannot handle this in adapter; adjusting block size to " << newBlockSize << std::endl;
+        m_blockSize = newBlockSize;
+    }
+    
+//    std::cerr << "PluginBufferingAdapter::initialise: NOTE: stepSize " << m_inputStepSize << " -> " << m_stepSize 
+//              << ", blockSize " << m_inputBlockSize << " -> " << m_blockSize << std::endl;			
+
+    m_buffers = new float *[m_channels];
+
+    for (size_t i = 0; i < m_channels; ++i) {
+        m_queue.push_back(new RingBuffer(m_blockSize + m_inputBlockSize));
+        m_buffers[i] = new float[m_blockSize];
+    }
+    
+    bool success = m_plugin->initialise(m_channels, m_stepSize, m_blockSize);
+
+//    std::cerr << "PluginBufferingAdapter::initialise: success = " << success << std::endl;
+
+    if (success) {
+        // Re-query outputs; properties such as bin count may have
+        // changed on initialise
+        m_outputs.clear();
+        (void)getOutputDescriptors();
+    }
+
+    return success;
+}
+		
+PluginBufferingAdapter::OutputList
+PluginBufferingAdapter::Impl::getOutputDescriptors() const
+{
+    if (m_outputs.empty()) {
+//    std::cerr << "PluginBufferingAdapter::getOutputDescriptors: querying anew" << std::endl;
+
+        m_outputs = m_plugin->getOutputDescriptors();
+    }
+
+    PluginBufferingAdapter::OutputList outs = m_outputs;
+
+    for (size_t i = 0; i < outs.size(); ++i) {
+
+        switch (outs[i].sampleType) {
+
+        case OutputDescriptor::OneSamplePerStep:
+            outs[i].sampleType = OutputDescriptor::FixedSampleRate;
+            outs[i].sampleRate = (1.f / m_inputSampleRate) * m_stepSize;
+            m_rewriteOutputTimes[i] = true;
+            break;
+            
+        case OutputDescriptor::FixedSampleRate:
+            if (outs[i].sampleRate == 0.f) {
+                outs[i].sampleRate = (1.f / m_inputSampleRate) * m_stepSize;
+            }
+            // We actually only need to rewrite output times for
+            // features that don't have timestamps already, but we
+            // can't tell from here whether our features will have
+            // timestamps or not
+            m_rewriteOutputTimes[i] = true;
+            break;
+
+        case OutputDescriptor::VariableSampleRate:
+            m_rewriteOutputTimes[i] = false;
+            break;
+        }
+    }
+
+    return outs;
+}
+
+void
+PluginBufferingAdapter::Impl::setParameter(std::string name, float value)
+{
+    m_plugin->setParameter(name, value);
+
+    // Re-query outputs; properties such as bin count may have changed
+    m_outputs.clear();
+    (void)getOutputDescriptors();
+}
+
+void
+PluginBufferingAdapter::Impl::selectProgram(std::string name)
+{
+    m_plugin->selectProgram(name);
+
+    // Re-query outputs; properties such as bin count may have changed
+    m_outputs.clear();
+    (void)getOutputDescriptors();
+}
+
+void
+PluginBufferingAdapter::Impl::reset()
+{
+    m_frame = 0;
+    m_unrun = true;
+
+    for (size_t i = 0; i < m_queue.size(); ++i) {
+        m_queue[i]->reset();
+    }
+
+    m_plugin->reset();
+}
+
+PluginBufferingAdapter::FeatureSet
+PluginBufferingAdapter::Impl::process(const float *const *inputBuffers,
+                                      RealTime timestamp)
+{
+    if (m_inputStepSize == 0) {
+        std::cerr << "PluginBufferingAdapter::process: ERROR: Plugin has not been initialised" << std::endl;
+        return FeatureSet();
+    }
+
+    FeatureSet allFeatureSets;
+
+    if (m_unrun) {
+        m_frame = RealTime::realTime2Frame(timestamp,
+                                           int(m_inputSampleRate + 0.5));
+        m_unrun = false;
+    }
+			
+    // queue the new input
+    
+    for (size_t i = 0; i < m_channels; ++i) {
+        int written = m_queue[i]->write(inputBuffers[i], m_inputBlockSize);
+        if (written < int(m_inputBlockSize) && i == 0) {
+            std::cerr << "WARNING: PluginBufferingAdapter::Impl::process: "
+                      << "Buffer overflow: wrote " << written 
+                      << " of " << m_inputBlockSize 
+                      << " input samples (for plugin step size "
+                      << m_stepSize << ", block size " << m_blockSize << ")"
+                      << std::endl;
+        }
+    }    
+    
+    // process as much as we can
+
+    while (m_queue[0]->getReadSpace() >= int(m_blockSize)) {
+        processBlock(allFeatureSets);
+    }	
+    
+    return allFeatureSets;
+}
+    
+PluginBufferingAdapter::FeatureSet
+PluginBufferingAdapter::Impl::getRemainingFeatures() 
+{
+    FeatureSet allFeatureSets;
+    
+    // process remaining samples in queue
+    while (m_queue[0]->getReadSpace() >= int(m_blockSize)) {
+        processBlock(allFeatureSets);
+    }
+    
+    // pad any last samples remaining and process
+    if (m_queue[0]->getReadSpace() > 0) {
+        for (size_t i = 0; i < m_channels; ++i) {
+            m_queue[i]->zero(m_blockSize - m_queue[i]->getReadSpace());
+        }
+        processBlock(allFeatureSets);
+    }			
+    
+    // get remaining features			
+
+    FeatureSet featureSet = m_plugin->getRemainingFeatures();
+
+    for (map<int, FeatureList>::iterator iter = featureSet.begin();
+         iter != featureSet.end(); ++iter) {
+        FeatureList featureList = iter->second;
+        for (size_t i = 0; i < featureList.size(); ++i) {
+            allFeatureSets[iter->first].push_back(featureList[i]);
+        }
+    }
+    
+    return allFeatureSets;
+}
+    
+void
+PluginBufferingAdapter::Impl::processBlock(FeatureSet& allFeatureSets)
+{
+    for (size_t i = 0; i < m_channels; ++i) {
+        m_queue[i]->peek(m_buffers[i], m_blockSize);
+    }
+
+    long frame = m_frame;
+    RealTime timestamp = RealTime::frame2RealTime
+        (frame, int(m_inputSampleRate + 0.5));
+
+    FeatureSet featureSet = m_plugin->process(m_buffers, timestamp);
+    
+    for (FeatureSet::iterator iter = featureSet.begin();
+         iter != featureSet.end(); ++iter) {
+
+        int outputNo = iter->first;
+
+        if (m_rewriteOutputTimes[outputNo]) {
+            
+            FeatureList featureList = iter->second;
+	
+            for (size_t i = 0; i < featureList.size(); ++i) {
+
+                switch (m_outputs[outputNo].sampleType) {
+
+                case OutputDescriptor::OneSamplePerStep:
+                    // use our internal timestamp, always
+                    featureList[i].timestamp = timestamp;
+                    featureList[i].hasTimestamp = true;
+                    break;
+
+                case OutputDescriptor::FixedSampleRate:
+                    // use our internal timestamp if feature lacks one
+                    if (!featureList[i].hasTimestamp) {
+                        featureList[i].timestamp = timestamp;
+                        featureList[i].hasTimestamp = true;
+                    }
+                    break;
+
+                case OutputDescriptor::VariableSampleRate:
+                    break;		// plugin must set timestamp
+
+                default:
+                    break;
+                }
+            
+                allFeatureSets[outputNo].push_back(featureList[i]);
+            }
+        } else {
+            for (size_t i = 0; i < iter->second.size(); ++i) {
+                allFeatureSets[outputNo].push_back(iter->second[i]);
+            }
+        }
+    }
+    
+    // step forward
+
+    for (size_t i = 0; i < m_channels; ++i) {
+        m_queue[i]->skip(m_stepSize);
+    }
+    
+    // increment internal frame counter each time we step forward
+    m_frame += m_stepSize;
+}
+
+}
+	
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginBufferingAdapter.cpp)
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginChannelAdapter.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginChannelAdapter.cpp
new file mode 100644
index 0000000..92a35bb
--- /dev/null
+++ b/libs/vamp-sdk/src/vamp-hostsdk/PluginChannelAdapter.cpp
@@ -0,0 +1,270 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006-2007 Chris Cannam and QMUL.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#include <vamp-hostsdk/PluginChannelAdapter.h>
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginChannelAdapter.cpp)
+
+namespace Vamp {
+
+namespace HostExt {
+
+class PluginChannelAdapter::Impl
+{
+public:
+    Impl(Plugin *plugin);
+    ~Impl();
+
+    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
+
+    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
+    FeatureSet processInterleaved(const float *inputBuffers, RealTime timestamp);
+
+protected:
+    Plugin *m_plugin;
+    size_t m_blockSize;
+    size_t m_inputChannels;
+    size_t m_pluginChannels;
+    float **m_buffer;
+    float **m_deinterleave;
+    const float **m_forwardPtrs;
+};
+
+PluginChannelAdapter::PluginChannelAdapter(Plugin *plugin) :
+    PluginWrapper(plugin)
+{
+    m_impl = new Impl(plugin);
+}
+
+PluginChannelAdapter::~PluginChannelAdapter()
+{
+    delete m_impl;
+}
+
+bool
+PluginChannelAdapter::initialise(size_t channels, size_t stepSize, size_t blockSize)
+{
+    return m_impl->initialise(channels, stepSize, blockSize);
+}
+
+PluginChannelAdapter::FeatureSet
+PluginChannelAdapter::process(const float *const *inputBuffers,
+                              RealTime timestamp)
+{
+    return m_impl->process(inputBuffers, timestamp);
+}
+
+PluginChannelAdapter::FeatureSet
+PluginChannelAdapter::processInterleaved(const float *inputBuffers,
+                                         RealTime timestamp)
+{
+    return m_impl->processInterleaved(inputBuffers, timestamp);
+}
+
+PluginChannelAdapter::Impl::Impl(Plugin *plugin) :
+    m_plugin(plugin),
+    m_blockSize(0),
+    m_inputChannels(0),
+    m_pluginChannels(0),
+    m_buffer(0),
+    m_deinterleave(0),
+    m_forwardPtrs(0)
+{
+}
+
+PluginChannelAdapter::Impl::~Impl()
+{
+    // the adapter will delete the plugin
+
+    if (m_buffer) {
+        if (m_inputChannels > m_pluginChannels) {
+            delete[] m_buffer[0];
+        } else {
+            for (size_t i = 0; i < m_pluginChannels - m_inputChannels; ++i) {
+                delete[] m_buffer[i];
+            }
+        }
+        delete[] m_buffer;
+        m_buffer = 0;
+    }
+
+    if (m_deinterleave) {
+        for (size_t i = 0; i < m_inputChannels; ++i) {
+            delete[] m_deinterleave[i];
+        }
+        delete[] m_deinterleave;
+        m_deinterleave = 0;
+    }
+
+    if (m_forwardPtrs) {
+        delete[] m_forwardPtrs;
+        m_forwardPtrs = 0;
+    }
+}
+
+bool
+PluginChannelAdapter::Impl::initialise(size_t channels, size_t stepSize, size_t blockSize)
+{
+    m_blockSize = blockSize;
+
+    size_t minch = m_plugin->getMinChannelCount();
+    size_t maxch = m_plugin->getMaxChannelCount();
+
+    m_inputChannels = channels;
+
+    if (m_inputChannels < minch) {
+
+        m_forwardPtrs = new const float *[minch];
+
+        if (m_inputChannels > 1) {
+            // We need a set of zero-valued buffers to add to the
+            // forwarded pointers
+            m_buffer = new float*[minch - channels];
+            for (size_t i = 0; i < minch; ++i) {
+                m_buffer[i] = new float[blockSize];
+                for (size_t j = 0; j < blockSize; ++j) {
+                    m_buffer[i][j] = 0.f;
+                }
+            }
+        }
+
+        m_pluginChannels = minch;
+
+//        std::cerr << "PluginChannelAdapter::initialise: expanding " << m_inputChannels << " to " << m_pluginChannels << " for plugin" << std::endl;
+
+    } else if (m_inputChannels > maxch) {
+
+        // We only need m_buffer if we are mixing down to a single
+        // channel -- otherwise we can just forward the same float* as
+        // passed in to process(), expecting the excess to be ignored
+
+        if (maxch == 1) {
+            m_buffer = new float *[1];
+            m_buffer[0] = new float[blockSize];
+
+//            std::cerr << "PluginChannelAdapter::initialise: mixing " << m_inputChannels << " to mono for plugin" << std::endl;
+
+        } else {
+            
+//            std::cerr << "PluginChannelAdapter::initialise: reducing " << m_inputChannels << " to " << m_pluginChannels << " for plugin" << std::endl;
+        }
+
+        m_pluginChannels = maxch;
+
+    } else {
+ 
+//        std::cerr << "PluginChannelAdapter::initialise: accepting given number of channels (" << m_inputChannels << ")" << std::endl;
+        m_pluginChannels = m_inputChannels;
+    }
+
+    return m_plugin->initialise(m_pluginChannels, stepSize, blockSize);
+}
+
+PluginChannelAdapter::FeatureSet
+PluginChannelAdapter::Impl::processInterleaved(const float *inputBuffers,
+                                               RealTime timestamp)
+{
+    if (!m_deinterleave) {
+        m_deinterleave = new float *[m_inputChannels];
+        for (size_t i = 0; i < m_inputChannels; ++i) {
+            m_deinterleave[i] = new float[m_blockSize];
+        }
+    }
+
+    for (size_t i = 0; i < m_inputChannels; ++i) {
+        for (size_t j = 0; j < m_blockSize; ++j) {
+            m_deinterleave[i][j] = inputBuffers[j * m_inputChannels + i];
+        }
+    }
+
+    return process(m_deinterleave, timestamp);
+}
+
+PluginChannelAdapter::FeatureSet
+PluginChannelAdapter::Impl::process(const float *const *inputBuffers,
+                                    RealTime timestamp)
+{
+//    std::cerr << "PluginChannelAdapter::process: " << m_inputChannels << " -> " << m_pluginChannels << " channels" << std::endl;
+
+    if (m_inputChannels < m_pluginChannels) {
+
+        if (m_inputChannels == 1) {
+            for (size_t i = 0; i < m_pluginChannels; ++i) {
+                m_forwardPtrs[i] = inputBuffers[0];
+            }
+        } else {
+            for (size_t i = 0; i < m_inputChannels; ++i) {
+                m_forwardPtrs[i] = inputBuffers[i];
+            }
+            for (size_t i = m_inputChannels; i < m_pluginChannels; ++i) {
+                m_forwardPtrs[i] = m_buffer[i - m_inputChannels];
+            }
+        }
+
+        return m_plugin->process(m_forwardPtrs, timestamp);
+
+    } else if (m_inputChannels > m_pluginChannels) {
+
+        if (m_pluginChannels == 1) {
+            for (size_t j = 0; j < m_blockSize; ++j) {
+                m_buffer[0][j] = inputBuffers[0][j];
+            }
+            for (size_t i = 1; i < m_inputChannels; ++i) {
+                for (size_t j = 0; j < m_blockSize; ++j) {
+                    m_buffer[0][j] += inputBuffers[i][j];
+                }
+            }
+            for (size_t j = 0; j < m_blockSize; ++j) {
+                m_buffer[0][j] /= m_inputChannels;
+            }
+            return m_plugin->process(m_buffer, timestamp);
+        } else {
+            return m_plugin->process(inputBuffers, timestamp);
+        }
+
+    } else {
+
+        return m_plugin->process(inputBuffers, timestamp);
+    }
+}
+
+}
+
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginChannelAdapter.cpp)
+
+
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginHostAdapter.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginHostAdapter.cpp
new file mode 100644
index 0000000..5bf323b
--- /dev/null
+++ b/libs/vamp-sdk/src/vamp-hostsdk/PluginHostAdapter.cpp
@@ -0,0 +1,456 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#include <vamp-hostsdk/PluginHostAdapter.h>
+#include <cstdlib>
+
+#if ( VAMP_SDK_MAJOR_VERSION != 2 || VAMP_SDK_MINOR_VERSION != 0 )
+#error Incorrect Vamp SDK header included (not the expected 2.0 SDK)
+#endif
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginHostAdapter.cpp)
+
+namespace Vamp
+{
+
+PluginHostAdapter::PluginHostAdapter(const VampPluginDescriptor *descriptor,
+                                     float inputSampleRate) :
+    Plugin(inputSampleRate),
+    m_descriptor(descriptor)
+{
+//    std::cerr << "PluginHostAdapter::PluginHostAdapter (plugin = " << descriptor->name << ")" << std::endl;
+    m_handle = m_descriptor->instantiate(m_descriptor, inputSampleRate);
+    if (!m_handle) {
+//        std::cerr << "WARNING: PluginHostAdapter: Plugin instantiation failed for plugin " << m_descriptor->name << std::endl;
+    }
+}
+
+PluginHostAdapter::~PluginHostAdapter()
+{
+//    std::cerr << "PluginHostAdapter::~PluginHostAdapter (plugin = " << m_descriptor->name << ")" << std::endl;
+    if (m_handle) m_descriptor->cleanup(m_handle);
+}
+
+std::vector<std::string>
+PluginHostAdapter::getPluginPath()
+{
+    std::vector<std::string> path;
+    std::string envPath;
+
+    char *cpath = getenv("VAMP_PATH");
+    if (cpath) envPath = cpath;
+
+#ifdef _WIN32
+#define PATH_SEPARATOR ';'
+#define DEFAULT_VAMP_PATH "%ProgramFiles%\\Vamp Plugins"
+#else
+#define PATH_SEPARATOR ':'
+#ifdef __APPLE__
+#define DEFAULT_VAMP_PATH "$HOME/Library/Audio/Plug-Ins/Vamp:/Library/Audio/Plug-Ins/Vamp"
+#else
+#define DEFAULT_VAMP_PATH "$HOME/vamp:$HOME/.vamp:/usr/local/lib/vamp:/usr/lib/vamp"
+#endif
+#endif
+
+    if (envPath == "") {
+        envPath = DEFAULT_VAMP_PATH;
+        char *chome = getenv("HOME");
+        if (chome) {
+            std::string home(chome);
+            std::string::size_type f;
+            while ((f = envPath.find("$HOME")) != std::string::npos &&
+                    f < envPath.length()) {
+                envPath.replace(f, 5, home);
+            }
+        }
+#ifdef _WIN32
+        char *cpfiles = getenv("ProgramFiles");
+        if (!cpfiles) cpfiles = (char *)"C:\\Program Files";
+        std::string pfiles(cpfiles);
+        std::string::size_type f;
+        while ((f = envPath.find("%ProgramFiles%")) != std::string::npos &&
+               f < envPath.length()) {
+            envPath.replace(f, 14, pfiles);
+        }
+#endif
+    }
+
+    std::string::size_type index = 0, newindex = 0;
+
+    while ((newindex = envPath.find(PATH_SEPARATOR, index)) < envPath.size()) {
+	path.push_back(envPath.substr(index, newindex - index));
+	index = newindex + 1;
+    }
+    
+    path.push_back(envPath.substr(index));
+
+    return path;
+}
+
+bool
+PluginHostAdapter::initialise(size_t channels,
+                              size_t stepSize,
+                              size_t blockSize)
+{
+    if (!m_handle) return false;
+    return m_descriptor->initialise(m_handle, channels, stepSize, blockSize) ?
+        true : false;
+}
+
+void
+PluginHostAdapter::reset()
+{
+    if (!m_handle) {
+//        std::cerr << "PluginHostAdapter::reset: no handle" << std::endl;
+        return;
+    }
+//    std::cerr << "PluginHostAdapter::reset(" << m_handle << ")" << std::endl;
+    m_descriptor->reset(m_handle);
+}
+
+PluginHostAdapter::InputDomain
+PluginHostAdapter::getInputDomain() const
+{
+    if (m_descriptor->inputDomain == vampFrequencyDomain) {
+        return FrequencyDomain;
+    } else {
+        return TimeDomain;
+    }
+}
+
+unsigned int
+PluginHostAdapter::getVampApiVersion() const
+{
+    return m_descriptor->vampApiVersion;
+}
+
+std::string
+PluginHostAdapter::getIdentifier() const
+{
+    return m_descriptor->identifier;
+}
+
+std::string
+PluginHostAdapter::getName() const
+{
+    return m_descriptor->name;
+}
+
+std::string
+PluginHostAdapter::getDescription() const
+{
+    return m_descriptor->description;
+}
+
+std::string
+PluginHostAdapter::getMaker() const
+{
+    return m_descriptor->maker;
+}
+
+int
+PluginHostAdapter::getPluginVersion() const
+{
+    return m_descriptor->pluginVersion;
+}
+
+std::string
+PluginHostAdapter::getCopyright() const
+{
+    return m_descriptor->copyright;
+}
+
+PluginHostAdapter::ParameterList
+PluginHostAdapter::getParameterDescriptors() const
+{
+    ParameterList list;
+    for (unsigned int i = 0; i < m_descriptor->parameterCount; ++i) {
+        const VampParameterDescriptor *spd = m_descriptor->parameters[i];
+        ParameterDescriptor pd;
+        pd.identifier = spd->identifier;
+        pd.name = spd->name;
+        pd.description = spd->description;
+        pd.unit = spd->unit;
+        pd.minValue = spd->minValue;
+        pd.maxValue = spd->maxValue;
+        pd.defaultValue = spd->defaultValue;
+        pd.isQuantized = spd->isQuantized;
+        pd.quantizeStep = spd->quantizeStep;
+        if (pd.isQuantized && spd->valueNames) {
+            for (unsigned int j = 0; spd->valueNames[j]; ++j) {
+                pd.valueNames.push_back(spd->valueNames[j]);
+            }
+        }
+        list.push_back(pd);
+    }
+    return list;
+}
+
+float
+PluginHostAdapter::getParameter(std::string param) const
+{
+    if (!m_handle) return 0.0;
+
+    for (unsigned int i = 0; i < m_descriptor->parameterCount; ++i) {
+        if (param == m_descriptor->parameters[i]->identifier) {
+            return m_descriptor->getParameter(m_handle, i);
+        }
+    }
+
+    return 0.0;
+}
+
+void
+PluginHostAdapter::setParameter(std::string param, 
+                                float value)
+{
+    if (!m_handle) return;
+
+    for (unsigned int i = 0; i < m_descriptor->parameterCount; ++i) {
+        if (param == m_descriptor->parameters[i]->identifier) {
+            m_descriptor->setParameter(m_handle, i, value);
+            return;
+        }
+    }
+}
+
+PluginHostAdapter::ProgramList
+PluginHostAdapter::getPrograms() const
+{
+    ProgramList list;
+    
+    for (unsigned int i = 0; i < m_descriptor->programCount; ++i) {
+        list.push_back(m_descriptor->programs[i]);
+    }
+    
+    return list;
+}
+
+std::string
+PluginHostAdapter::getCurrentProgram() const
+{
+    if (!m_handle) return "";
+
+    int pn = m_descriptor->getCurrentProgram(m_handle);
+    return m_descriptor->programs[pn];
+}
+
+void
+PluginHostAdapter::selectProgram(std::string program)
+{
+    if (!m_handle) return;
+
+    for (unsigned int i = 0; i < m_descriptor->programCount; ++i) {
+        if (program == m_descriptor->programs[i]) {
+            m_descriptor->selectProgram(m_handle, i);
+            return;
+        }
+    }
+}
+
+size_t
+PluginHostAdapter::getPreferredStepSize() const
+{
+    if (!m_handle) return 0;
+    return m_descriptor->getPreferredStepSize(m_handle);
+}
+
+size_t
+PluginHostAdapter::getPreferredBlockSize() const
+{
+    if (!m_handle) return 0;
+    return m_descriptor->getPreferredBlockSize(m_handle);
+}
+
+size_t
+PluginHostAdapter::getMinChannelCount() const
+{
+    if (!m_handle) return 0;
+    return m_descriptor->getMinChannelCount(m_handle);
+}
+
+size_t
+PluginHostAdapter::getMaxChannelCount() const
+{
+    if (!m_handle) return 0;
+    return m_descriptor->getMaxChannelCount(m_handle);
+}
+
+PluginHostAdapter::OutputList
+PluginHostAdapter::getOutputDescriptors() const
+{
+    OutputList list;
+    if (!m_handle) {
+//        std::cerr << "PluginHostAdapter::getOutputDescriptors: no handle " << std::endl;
+        return list;
+    }
+
+    unsigned int count = m_descriptor->getOutputCount(m_handle);
+
+    for (unsigned int i = 0; i < count; ++i) {
+        VampOutputDescriptor *sd = m_descriptor->getOutputDescriptor(m_handle, i);
+        OutputDescriptor d;
+        d.identifier = sd->identifier;
+        d.name = sd->name;
+        d.description = sd->description;
+        d.unit = sd->unit;
+        d.hasFixedBinCount = sd->hasFixedBinCount;
+        d.binCount = sd->binCount;
+        if (d.hasFixedBinCount && sd->binNames) {
+            for (unsigned int j = 0; j < sd->binCount; ++j) {
+                d.binNames.push_back(sd->binNames[j] ? sd->binNames[j] : "");
+            }
+        }
+        d.hasKnownExtents = sd->hasKnownExtents;
+        d.minValue = sd->minValue;
+        d.maxValue = sd->maxValue;
+        d.isQuantized = sd->isQuantized;
+        d.quantizeStep = sd->quantizeStep;
+
+        switch (sd->sampleType) {
+        case vampOneSamplePerStep:
+            d.sampleType = OutputDescriptor::OneSamplePerStep; break;
+        case vampFixedSampleRate:
+            d.sampleType = OutputDescriptor::FixedSampleRate; break;
+        case vampVariableSampleRate:
+            d.sampleType = OutputDescriptor::VariableSampleRate; break;
+        }
+
+        d.sampleRate = sd->sampleRate;
+
+        if (m_descriptor->vampApiVersion >= 2) {
+            d.hasDuration = sd->hasDuration;
+        } else {
+            d.hasDuration = false;
+        }
+
+        list.push_back(d);
+
+        m_descriptor->releaseOutputDescriptor(sd);
+    }
+
+    return list;
+}
+
+PluginHostAdapter::FeatureSet
+PluginHostAdapter::process(const float *const *inputBuffers,
+                           RealTime timestamp)
+{
+    FeatureSet fs;
+    if (!m_handle) return fs;
+
+    int sec = timestamp.sec;
+    int nsec = timestamp.nsec;
+    
+    VampFeatureList *features = m_descriptor->process(m_handle,
+                                                      inputBuffers,
+                                                      sec, nsec);
+    
+    convertFeatures(features, fs);
+    m_descriptor->releaseFeatureSet(features);
+    return fs;
+}
+
+PluginHostAdapter::FeatureSet
+PluginHostAdapter::getRemainingFeatures()
+{
+    FeatureSet fs;
+    if (!m_handle) return fs;
+    
+    VampFeatureList *features = m_descriptor->getRemainingFeatures(m_handle); 
+
+    convertFeatures(features, fs);
+    m_descriptor->releaseFeatureSet(features);
+    return fs;
+}
+
+void
+PluginHostAdapter::convertFeatures(VampFeatureList *features,
+                                   FeatureSet &fs)
+{
+    if (!features) return;
+
+    unsigned int outputs = m_descriptor->getOutputCount(m_handle);
+
+    for (unsigned int i = 0; i < outputs; ++i) {
+        
+        VampFeatureList &list = features[i];
+
+        if (list.featureCount > 0) {
+
+            Feature feature;
+            feature.values.reserve(list.features[0].v1.valueCount);
+
+            for (unsigned int j = 0; j < list.featureCount; ++j) {
+
+                feature.hasTimestamp = list.features[j].v1.hasTimestamp;
+                feature.timestamp = RealTime(list.features[j].v1.sec,
+                                             list.features[j].v1.nsec);
+                feature.hasDuration = false;
+
+                if (m_descriptor->vampApiVersion >= 2) {
+                    unsigned int j2 = j + list.featureCount;
+                    feature.hasDuration = list.features[j2].v2.hasDuration;
+                    feature.duration = RealTime(list.features[j2].v2.durationSec,
+                                                list.features[j2].v2.durationNsec);
+                }
+
+                for (unsigned int k = 0; k < list.features[j].v1.valueCount; ++k) {
+                    feature.values.push_back(list.features[j].v1.values[k]);
+                }
+
+                if (list.features[j].v1.label) {
+                    feature.label = list.features[j].v1.label;
+                }
+
+                fs[i].push_back(feature);
+
+                if (list.features[j].v1.valueCount > 0) {
+                    feature.values.clear();
+                }
+
+                if (list.features[j].v1.label) {
+                    feature.label = "";
+                }
+            }
+        }
+    }
+}
+
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginHostAdapter.cpp)
+
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginInputDomainAdapter.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginInputDomainAdapter.cpp
new file mode 100644
index 0000000..967d5cf
--- /dev/null
+++ b/libs/vamp-sdk/src/vamp-hostsdk/PluginInputDomainAdapter.cpp
@@ -0,0 +1,582 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006-2007 Chris Cannam and QMUL.
+  
+    This file is based in part on Don Cross's public domain FFT
+    implementation.
+
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#include <vamp-hostsdk/PluginInputDomainAdapter.h>
+
+#include <cmath>
+
+
+/**
+ * If you want to compile using FFTW instead of the built-in FFT
+ * implementation for the PluginInputDomainAdapter, define HAVE_FFTW3
+ * in the Makefile.
+ *
+ * Be aware that FFTW is licensed under the GPL -- unlike this SDK,
+ * which is provided under a more liberal BSD license in order to
+ * permit use in closed source applications.  The use of FFTW would
+ * mean that your code would need to be licensed under the GPL as
+ * well.  Do not define this symbol unless you understand and accept
+ * the implications of this.
+ *
+ * Parties such as Linux distribution packagers who redistribute this
+ * SDK for use in other programs should _not_ define this symbol, as
+ * it would change the effective licensing terms under which the SDK
+ * was available to third party developers.
+ *
+ * The default is not to use FFTW, and to use the built-in FFT instead.
+ * 
+ * Note: The FFTW code uses FFTW_MEASURE, and so will perform badly on
+ * its first invocation unless the host has saved and restored FFTW
+ * wisdom (see the FFTW documentation).
+ */
+#ifdef HAVE_FFTW3
+#include <fftw3.h>
+#endif
+
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginInputDomainAdapter.cpp)
+
+namespace Vamp {
+
+namespace HostExt {
+
+class PluginInputDomainAdapter::Impl
+{
+public:
+    Impl(Plugin *plugin, float inputSampleRate);
+    ~Impl();
+    
+    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
+
+    size_t getPreferredStepSize() const;
+    size_t getPreferredBlockSize() const;
+
+    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
+    
+    RealTime getTimestampAdjustment() const;
+
+protected:
+    Plugin *m_plugin;
+    float m_inputSampleRate;
+    int m_channels;
+    int m_blockSize;
+    float **m_freqbuf;
+
+    double *m_ri;
+    double *m_window;
+
+#ifdef HAVE_FFTW3
+    fftw_plan m_plan;
+    fftw_complex *m_cbuf;
+#else
+    double *m_ro;
+    double *m_io;
+    void fft(unsigned int n, bool inverse,
+             double *ri, double *ii, double *ro, double *io);
+#endif
+
+    size_t makeBlockSizeAcceptable(size_t) const;
+};
+
+PluginInputDomainAdapter::PluginInputDomainAdapter(Plugin *plugin) :
+    PluginWrapper(plugin)
+{
+    m_impl = new Impl(plugin, m_inputSampleRate);
+}
+
+PluginInputDomainAdapter::~PluginInputDomainAdapter()
+{
+    delete m_impl;
+}
+  
+bool
+PluginInputDomainAdapter::initialise(size_t channels, size_t stepSize, size_t blockSize)
+{
+    return m_impl->initialise(channels, stepSize, blockSize);
+}
+
+Plugin::InputDomain
+PluginInputDomainAdapter::getInputDomain() const
+{
+    return TimeDomain;
+}
+
+size_t
+PluginInputDomainAdapter::getPreferredStepSize() const
+{
+    return m_impl->getPreferredStepSize();
+}
+
+size_t
+PluginInputDomainAdapter::getPreferredBlockSize() const
+{
+    return m_impl->getPreferredBlockSize();
+}
+
+Plugin::FeatureSet
+PluginInputDomainAdapter::process(const float *const *inputBuffers, RealTime timestamp)
+{
+    return m_impl->process(inputBuffers, timestamp);
+}
+
+RealTime
+PluginInputDomainAdapter::getTimestampAdjustment() const
+{
+    return m_impl->getTimestampAdjustment();
+}
+
+
+PluginInputDomainAdapter::Impl::Impl(Plugin *plugin, float inputSampleRate) :
+    m_plugin(plugin),
+    m_inputSampleRate(inputSampleRate),
+    m_channels(0),
+    m_blockSize(0),
+    m_freqbuf(0),
+    m_ri(0),
+    m_window(0),
+#ifdef HAVE_FFTW3
+    m_plan(0),
+    m_cbuf(0)
+#else
+    m_ro(0),
+    m_io(0)
+#endif
+{
+}
+
+PluginInputDomainAdapter::Impl::~Impl()
+{
+    // the adapter will delete the plugin
+
+    if (m_channels > 0) {
+        for (int c = 0; c < m_channels; ++c) {
+            delete[] m_freqbuf[c];
+        }
+        delete[] m_freqbuf;
+#ifdef HAVE_FFTW3
+        if (m_plan) {
+            fftw_destroy_plan(m_plan);
+            fftw_free(m_ri);
+            fftw_free(m_cbuf);
+            m_plan = 0;
+        }
+#else
+        delete[] m_ri;
+        delete[] m_ro;
+        delete[] m_io;
+#endif
+        delete[] m_window;
+    }
+}
+
+// for some visual studii apparently
+#ifndef M_PI
+#define M_PI 3.14159265358979232846
+#endif
+    
+bool
+PluginInputDomainAdapter::Impl::initialise(size_t channels, size_t stepSize, size_t blockSize)
+{
+    if (m_plugin->getInputDomain() == TimeDomain) {
+
+        m_blockSize = int(blockSize);
+        m_channels = int(channels);
+
+        return m_plugin->initialise(channels, stepSize, blockSize);
+    }
+
+    if (blockSize < 2) {
+        std::cerr << "ERROR: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: blocksize < 2 not supported" << std::endl;
+        return false;
+    }                
+        
+    if (blockSize & (blockSize-1)) {
+        std::cerr << "ERROR: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: non-power-of-two\nblocksize " << blockSize << " not supported" << std::endl;
+        return false;
+    }
+
+    if (m_channels > 0) {
+        for (int c = 0; c < m_channels; ++c) {
+            delete[] m_freqbuf[c];
+        }
+        delete[] m_freqbuf;
+#ifdef HAVE_FFTW3
+        if (m_plan) {
+            fftw_destroy_plan(m_plan);
+            fftw_free(m_ri);
+            fftw_free(m_cbuf);
+            m_plan = 0;
+        }
+#else
+        delete[] m_ri;
+        delete[] m_ro;
+        delete[] m_io;
+#endif
+        delete[] m_window;
+    }
+
+    m_blockSize = int(blockSize);
+    m_channels = int(channels);
+
+    m_freqbuf = new float *[m_channels];
+    for (int c = 0; c < m_channels; ++c) {
+        m_freqbuf[c] = new float[m_blockSize + 2];
+    }
+    m_window = new double[m_blockSize];
+
+    for (int i = 0; i < m_blockSize; ++i) {
+        // Hanning window
+        m_window[i] = (0.50 - 0.50 * cos((2.0 * M_PI * i) / m_blockSize));
+    }
+
+#ifdef HAVE_FFTW3
+    m_ri = (double *)fftw_malloc(blockSize * sizeof(double));
+    m_cbuf = (fftw_complex *)fftw_malloc((blockSize/2 + 1) * sizeof(fftw_complex));
+    m_plan = fftw_plan_dft_r2c_1d(blockSize, m_ri, m_cbuf, FFTW_MEASURE);
+#else
+    m_ri = new double[m_blockSize];
+    m_ro = new double[m_blockSize];
+    m_io = new double[m_blockSize];
+#endif
+
+    return m_plugin->initialise(channels, stepSize, blockSize);
+}
+
+size_t
+PluginInputDomainAdapter::Impl::getPreferredStepSize() const
+{
+    size_t step = m_plugin->getPreferredStepSize();
+
+    if (step == 0 && (m_plugin->getInputDomain() == FrequencyDomain)) {
+        step = getPreferredBlockSize() / 2;
+    }
+
+    return step;
+}
+
+size_t
+PluginInputDomainAdapter::Impl::getPreferredBlockSize() const
+{
+    size_t block = m_plugin->getPreferredBlockSize();
+
+    if (m_plugin->getInputDomain() == FrequencyDomain) {
+        if (block == 0) {
+            block = 1024;
+        } else {
+            block = makeBlockSizeAcceptable(block);
+        }
+    }
+
+    return block;
+}
+
+size_t
+PluginInputDomainAdapter::Impl::makeBlockSizeAcceptable(size_t blockSize) const
+{
+    if (blockSize < 2) {
+
+        std::cerr << "WARNING: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: blocksize < 2 not" << std::endl
+                  << "supported, increasing from " << blockSize << " to 2" << std::endl;
+        blockSize = 2;
+        
+    } else if (blockSize & (blockSize-1)) {
+            
+#ifdef HAVE_FFTW3
+        // not an issue with FFTW
+#else
+
+        // not a power of two, can't handle that with our built-in FFT
+        // implementation
+
+        size_t nearest = blockSize;
+        size_t power = 0;
+        while (nearest > 1) {
+            nearest >>= 1;
+            ++power;
+        }
+        nearest = 1;
+        while (power) {
+            nearest <<= 1;
+            --power;
+        }
+        
+        if (blockSize - nearest > (nearest*2) - blockSize) {
+            nearest = nearest*2;
+        }
+        
+        std::cerr << "WARNING: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: non-power-of-two\nblocksize " << blockSize << " not supported, using blocksize " << nearest << " instead" << std::endl;
+        blockSize = nearest;
+
+#endif
+    }
+
+    return blockSize;
+}
+
+RealTime
+PluginInputDomainAdapter::Impl::getTimestampAdjustment() const
+{
+    if (m_plugin->getInputDomain() == TimeDomain) {
+        return RealTime::zeroTime;
+    } else {
+        return RealTime::frame2RealTime
+            (m_blockSize/2, int(m_inputSampleRate + 0.5));
+    }
+}
+
+Plugin::FeatureSet
+PluginInputDomainAdapter::Impl::process(const float *const *inputBuffers,
+                                        RealTime timestamp)
+{
+    if (m_plugin->getInputDomain() == TimeDomain) {
+        return m_plugin->process(inputBuffers, timestamp);
+    }
+
+    // The timestamp supplied should be (according to the Vamp::Plugin
+    // spec) the time of the start of the time-domain input block.
+    // However, we want to pass to the plugin an FFT output calculated
+    // from the block of samples _centred_ on that timestamp.
+    // 
+    // We have two options:
+    // 
+    // 1. Buffer the input, calculating the fft of the values at the
+    // passed-in block minus blockSize/2 rather than starting at the
+    // passed-in block.  So each time we call process on the plugin,
+    // we are passing in the same timestamp as was passed to our own
+    // process plugin, but not (the frequency domain representation
+    // of) the same set of samples.  Advantages: avoids confusion in
+    // the host by ensuring the returned values have timestamps
+    // comparable with that passed in to this function (in fact this
+    // is pretty much essential for one-value-per-block outputs);
+    // consistent with hosts such as SV that deal with the
+    // frequency-domain transform themselves.  Disadvantages: means
+    // making the not necessarily correct assumption that the samples
+    // preceding the first official block are all zero (or some other
+    // known value).
+    //
+    // 2. Increase the passed-in timestamps by half the blocksize.  So
+    // when we call process, we are passing in the frequency domain
+    // representation of the same set of samples as passed to us, but
+    // with a different timestamp.  Advantages: simplicity; avoids
+    // iffy assumption mentioned above.  Disadvantages: inconsistency
+    // with SV in cases where stepSize != blockSize/2; potential
+    // confusion arising from returned timestamps being calculated
+    // from the adjusted input timestamps rather than the original
+    // ones (and inaccuracy where the returned timestamp is implied,
+    // as in one-value-per-block).
+    //
+    // Neither way is ideal, but I don't think either is strictly
+    // incorrect either.  I think this is just a case where the same
+    // plugin can legitimately produce differing results from the same
+    // input data, depending on how that data is packaged.
+    // 
+    // We'll go for option 2, adjusting the timestamps.  Note in
+    // particular that this means some results can differ from those
+    // produced by SV.
+
+//    std::cerr << "PluginInputDomainAdapter: sampleRate " << m_inputSampleRate << ", blocksize " << m_blockSize << ", adjusting time from " << timestamp;
+
+    timestamp = timestamp + getTimestampAdjustment();
+
+//    std::cerr << " to " << timestamp << std::endl;
+
+    for (int c = 0; c < m_channels; ++c) {
+
+        for (int i = 0; i < m_blockSize; ++i) {
+            m_ri[i] = double(inputBuffers[c][i]) * m_window[i];
+        }
+
+        for (int i = 0; i < m_blockSize/2; ++i) {
+            // FFT shift
+            double value = m_ri[i];
+            m_ri[i] = m_ri[i + m_blockSize/2];
+            m_ri[i + m_blockSize/2] = value;
+        }
+
+#ifdef HAVE_FFTW3
+
+        fftw_execute(m_plan);
+
+        for (int i = 0; i <= m_blockSize/2; ++i) {
+            m_freqbuf[c][i * 2] = float(m_cbuf[i][0]);
+            m_freqbuf[c][i * 2 + 1] = float(m_cbuf[i][1]);
+        }
+
+#else
+
+        fft(m_blockSize, false, m_ri, 0, m_ro, m_io);
+
+        for (int i = 0; i <= m_blockSize/2; ++i) {
+            m_freqbuf[c][i * 2] = float(m_ro[i]);
+            m_freqbuf[c][i * 2 + 1] = float(m_io[i]);
+        }
+
+#endif
+    }
+
+    return m_plugin->process(m_freqbuf, timestamp);
+}
+
+#ifndef HAVE_FFTW3
+
+void
+PluginInputDomainAdapter::Impl::fft(unsigned int n, bool inverse,
+                                    double *ri, double *ii, double *ro, double *io)
+{
+    if (!ri || !ro || !io) return;
+
+    unsigned int bits;
+    unsigned int i, j, k, m;
+    unsigned int blockSize, blockEnd;
+
+    double tr, ti;
+
+    if (n < 2) return;
+    if (n & (n-1)) return;
+
+    double angle = 2.0 * M_PI;
+    if (inverse) angle = -angle;
+
+    for (i = 0; ; ++i) {
+	if (n & (1 << i)) {
+	    bits = i;
+	    break;
+	}
+    }
+
+    static unsigned int tableSize = 0;
+    static int *table = 0;
+
+    if (tableSize != n) {
+
+	delete[] table;
+
+	table = new int[n];
+
+	for (i = 0; i < n; ++i) {
+	
+	    m = i;
+
+	    for (j = k = 0; j < bits; ++j) {
+		k = (k << 1) | (m & 1);
+		m >>= 1;
+	    }
+
+	    table[i] = k;
+	}
+
+	tableSize = n;
+    }
+
+    if (ii) {
+	for (i = 0; i < n; ++i) {
+	    ro[table[i]] = ri[i];
+	    io[table[i]] = ii[i];
+	}
+    } else {
+	for (i = 0; i < n; ++i) {
+	    ro[table[i]] = ri[i];
+	    io[table[i]] = 0.0;
+	}
+    }
+
+    blockEnd = 1;
+
+    for (blockSize = 2; blockSize <= n; blockSize <<= 1) {
+
+	double delta = angle / (double)blockSize;
+	double sm2 = -sin(-2 * delta);
+	double sm1 = -sin(-delta);
+	double cm2 = cos(-2 * delta);
+	double cm1 = cos(-delta);
+	double w = 2 * cm1;
+	double ar[3], ai[3];
+
+	for (i = 0; i < n; i += blockSize) {
+
+	    ar[2] = cm2;
+	    ar[1] = cm1;
+
+	    ai[2] = sm2;
+	    ai[1] = sm1;
+
+	    for (j = i, m = 0; m < blockEnd; j++, m++) {
+
+		ar[0] = w * ar[1] - ar[2];
+		ar[2] = ar[1];
+		ar[1] = ar[0];
+
+		ai[0] = w * ai[1] - ai[2];
+		ai[2] = ai[1];
+		ai[1] = ai[0];
+
+		k = j + blockEnd;
+		tr = ar[0] * ro[k] - ai[0] * io[k];
+		ti = ar[0] * io[k] + ai[0] * ro[k];
+
+		ro[k] = ro[j] - tr;
+		io[k] = io[j] - ti;
+
+		ro[j] += tr;
+		io[j] += ti;
+	    }
+	}
+
+	blockEnd = blockSize;
+    }
+
+    if (inverse) {
+
+	double denom = (double)n;
+
+	for (i = 0; i < n; i++) {
+	    ro[i] /= denom;
+	    io[i] /= denom;
+	}
+    }
+}
+
+#endif
+
+}
+        
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginInputDomainAdapter.cpp)
+
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginLoader.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginLoader.cpp
new file mode 100644
index 0000000..3bf23bb
--- /dev/null
+++ b/libs/vamp-sdk/src/vamp-hostsdk/PluginLoader.cpp
@@ -0,0 +1,641 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006-2007 Chris Cannam and QMUL.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#include <vamp-hostsdk/PluginHostAdapter.h>
+#include <vamp-hostsdk/PluginLoader.h>
+#include <vamp-hostsdk/PluginInputDomainAdapter.h>
+#include <vamp-hostsdk/PluginChannelAdapter.h>
+#include <vamp-hostsdk/PluginBufferingAdapter.h>
+
+#include <fstream>
+#include <cctype> // tolower
+
+#include <cstring>
+
+#ifdef _WIN32
+
+#include <windows.h>
+#include <tchar.h>
+#define PLUGIN_SUFFIX "dll"
+
+#else /* ! _WIN32 */
+
+#include <dirent.h>
+#include <dlfcn.h>
+
+#ifdef __APPLE__
+#define PLUGIN_SUFFIX "dylib"
+#else /* ! __APPLE__ */
+#define PLUGIN_SUFFIX "so"
+#endif /* ! __APPLE__ */
+
+#endif /* ! _WIN32 */
+
+using namespace std;
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginLoader.cpp)
+
+namespace Vamp {
+	
+namespace HostExt {
+
+class PluginLoader::Impl
+{
+public:
+    Impl();
+    virtual ~Impl();
+
+    PluginKeyList listPlugins();
+
+    Plugin *loadPlugin(PluginKey key,
+                       float inputSampleRate,
+                       int adapterFlags);
+
+    PluginKey composePluginKey(string libraryName, string identifier);
+
+    PluginCategoryHierarchy getPluginCategory(PluginKey key);
+
+    string getLibraryPathForPlugin(PluginKey key);
+
+    static void setInstanceToClean(PluginLoader *instance);
+
+protected:
+    class PluginDeletionNotifyAdapter : public PluginWrapper {
+    public:
+        PluginDeletionNotifyAdapter(Plugin *plugin, Impl *loader);
+        virtual ~PluginDeletionNotifyAdapter();
+    protected:
+        Impl *m_loader;
+    };
+
+    class InstanceCleaner {
+    public:
+        InstanceCleaner() : m_instance(0) { }
+        ~InstanceCleaner() { delete m_instance; }
+        void setInstance(PluginLoader *instance) { m_instance = instance; }
+    protected:
+        PluginLoader *m_instance;
+    };
+
+    virtual void pluginDeleted(PluginDeletionNotifyAdapter *adapter);
+
+    map<PluginKey, string> m_pluginLibraryNameMap;
+    bool m_allPluginsEnumerated;
+    void enumeratePlugins(PluginKey forPlugin = "");
+
+    map<PluginKey, PluginCategoryHierarchy> m_taxonomy;
+    void generateTaxonomy();
+
+    map<Plugin *, void *> m_pluginLibraryHandleMap;
+
+    bool decomposePluginKey(PluginKey key,
+                            string &libraryName, string &identifier);
+
+    void *loadLibrary(string path);
+    void unloadLibrary(void *handle);
+    void *lookupInLibrary(void *handle, const char *symbol);
+
+    string splicePath(string a, string b);
+    vector<string> listFiles(string dir, string ext);
+    
+    static InstanceCleaner m_cleaner;
+};
+
+PluginLoader *
+PluginLoader::m_instance = 0;
+
+PluginLoader::Impl::InstanceCleaner
+PluginLoader::Impl::m_cleaner;
+
+PluginLoader::PluginLoader()
+{
+    m_impl = new Impl();
+}
+
+PluginLoader::~PluginLoader()
+{
+    delete m_impl;
+}
+
+PluginLoader *
+PluginLoader::getInstance()
+{
+    if (!m_instance) {
+        // The cleaner doesn't own the instance, because we leave the
+        // instance pointer in the base class for binary backwards
+        // compatibility reasons and to avoid waste
+        m_instance = new PluginLoader();
+        Impl::setInstanceToClean(m_instance);
+    }
+    return m_instance;
+}
+
+vector<PluginLoader::PluginKey>
+PluginLoader::listPlugins() 
+{
+    return m_impl->listPlugins();
+}
+
+Plugin *
+PluginLoader::loadPlugin(PluginKey key,
+                         float inputSampleRate,
+                         int adapterFlags)
+{
+    return m_impl->loadPlugin(key, inputSampleRate, adapterFlags);
+}
+
+PluginLoader::PluginKey
+PluginLoader::composePluginKey(string libraryName, string identifier) 
+{
+    return m_impl->composePluginKey(libraryName, identifier);
+}
+
+PluginLoader::PluginCategoryHierarchy
+PluginLoader::getPluginCategory(PluginKey key)
+{
+    return m_impl->getPluginCategory(key);
+}
+
+string
+PluginLoader::getLibraryPathForPlugin(PluginKey key)
+{
+    return m_impl->getLibraryPathForPlugin(key);
+}
+ 
+PluginLoader::Impl::Impl() :
+    m_allPluginsEnumerated(false)
+{
+}
+
+PluginLoader::Impl::~Impl()
+{
+}
+
+void
+PluginLoader::Impl::setInstanceToClean(PluginLoader *instance)
+{
+    m_cleaner.setInstance(instance);
+}
+
+vector<PluginLoader::PluginKey>
+PluginLoader::Impl::listPlugins() 
+{
+    if (!m_allPluginsEnumerated) enumeratePlugins();
+
+    vector<PluginKey> plugins;
+    for (map<PluginKey, string>::iterator mi = m_pluginLibraryNameMap.begin();
+         mi != m_pluginLibraryNameMap.end(); ++mi) {
+        plugins.push_back(mi->first);
+    }
+
+    return plugins;
+}
+
+void
+PluginLoader::Impl::enumeratePlugins(PluginKey forPlugin)
+{
+    vector<string> path = PluginHostAdapter::getPluginPath();
+
+    string libraryName, identifier;
+    if (forPlugin != "") {
+        if (!decomposePluginKey(forPlugin, libraryName, identifier)) {
+            std::cerr << "WARNING: Vamp::HostExt::PluginLoader: Invalid plugin key \""
+                      << forPlugin << "\" in enumerate" << std::endl;
+            return;
+        }
+    }
+
+    for (size_t i = 0; i < path.size(); ++i) {
+        
+        vector<string> files = listFiles(path[i], PLUGIN_SUFFIX);
+
+        for (vector<string>::iterator fi = files.begin();
+             fi != files.end(); ++fi) {
+            
+            if (libraryName != "") {
+                // libraryName is lowercased and lacking an extension,
+                // as it came from the plugin key
+                string temp = *fi;
+                for (size_t i = 0; i < temp.length(); ++i) {
+                    temp[i] = tolower(temp[i]);
+                }
+                string::size_type pi = temp.find('.');
+                if (pi == string::npos) {
+                    if (libraryName != temp) continue;
+                } else {
+                    if (libraryName != temp.substr(0, pi)) continue;
+                }
+            }
+
+            string fullPath = path[i];
+            fullPath = splicePath(fullPath, *fi);
+            void *handle = loadLibrary(fullPath);
+            if (!handle) continue;
+            
+            VampGetPluginDescriptorFunction fn =
+                (VampGetPluginDescriptorFunction)lookupInLibrary
+                (handle, "vampGetPluginDescriptor");
+            
+            if (!fn) {
+                unloadLibrary(handle);
+                continue;
+            }
+            
+            int index = 0;
+            const VampPluginDescriptor *descriptor = 0;
+            
+            while ((descriptor = fn(VAMP_API_VERSION, index))) {
+                ++index;
+                if (identifier != "") {
+                    if (descriptor->identifier != identifier) continue;
+                }
+                PluginKey key = composePluginKey(*fi, descriptor->identifier);
+//                std::cerr << "enumerate: " << key << " (path: " << fullPath << ")" << std::endl;
+                if (m_pluginLibraryNameMap.find(key) ==
+                    m_pluginLibraryNameMap.end()) {
+                    m_pluginLibraryNameMap[key] = fullPath;
+                }
+            }
+            
+            unloadLibrary(handle);
+        }
+    }
+
+    if (forPlugin == "") m_allPluginsEnumerated = true;
+}
+
+PluginLoader::PluginKey
+PluginLoader::Impl::composePluginKey(string libraryName, string identifier)
+{
+    string basename = libraryName;
+
+    string::size_type li = basename.rfind('/');
+    if (li != string::npos) basename = basename.substr(li + 1);
+
+    li = basename.find('.');
+    if (li != string::npos) basename = basename.substr(0, li);
+
+    for (size_t i = 0; i < basename.length(); ++i) {
+        basename[i] = tolower(basename[i]);
+    }
+
+    return basename + ":" + identifier;
+}
+
+bool
+PluginLoader::Impl::decomposePluginKey(PluginKey key,
+                                       string &libraryName,
+                                       string &identifier)
+{
+    string::size_type ki = key.find(':');
+    if (ki == string::npos) {
+        return false;
+    }
+
+    libraryName = key.substr(0, ki);
+    identifier = key.substr(ki + 1);
+    return true;
+}
+
+PluginLoader::PluginCategoryHierarchy
+PluginLoader::Impl::getPluginCategory(PluginKey plugin)
+{
+    if (m_taxonomy.empty()) generateTaxonomy();
+    if (m_taxonomy.find(plugin) == m_taxonomy.end()) {
+        return PluginCategoryHierarchy();
+    }
+    return m_taxonomy[plugin];
+}
+
+string
+PluginLoader::Impl::getLibraryPathForPlugin(PluginKey plugin)
+{
+    if (m_pluginLibraryNameMap.find(plugin) == m_pluginLibraryNameMap.end()) {
+        if (m_allPluginsEnumerated) return "";
+        enumeratePlugins(plugin);
+    }
+    if (m_pluginLibraryNameMap.find(plugin) == m_pluginLibraryNameMap.end()) {
+        return "";
+    }
+    return m_pluginLibraryNameMap[plugin];
+}    
+
+Plugin *
+PluginLoader::Impl::loadPlugin(PluginKey key,
+                               float inputSampleRate, int adapterFlags)
+{
+    string libname, identifier;
+    if (!decomposePluginKey(key, libname, identifier)) {
+        std::cerr << "Vamp::HostExt::PluginLoader: Invalid plugin key \""
+                  << key << "\" in loadPlugin" << std::endl;
+        return 0;
+    }
+        
+    string fullPath = getLibraryPathForPlugin(key);
+    if (fullPath == "") return 0;
+    
+    void *handle = loadLibrary(fullPath);
+    if (!handle) return 0;
+    
+    VampGetPluginDescriptorFunction fn =
+        (VampGetPluginDescriptorFunction)lookupInLibrary
+        (handle, "vampGetPluginDescriptor");
+
+    if (!fn) {
+        unloadLibrary(handle);
+        return 0;
+    }
+
+    int index = 0;
+    const VampPluginDescriptor *descriptor = 0;
+
+    while ((descriptor = fn(VAMP_API_VERSION, index))) {
+
+        if (string(descriptor->identifier) == identifier) {
+
+            Vamp::PluginHostAdapter *plugin =
+                new Vamp::PluginHostAdapter(descriptor, inputSampleRate);
+
+            Plugin *adapter = new PluginDeletionNotifyAdapter(plugin, this);
+
+            m_pluginLibraryHandleMap[adapter] = handle;
+
+            if (adapterFlags & ADAPT_INPUT_DOMAIN) {
+                if (adapter->getInputDomain() == Plugin::FrequencyDomain) {
+                    adapter = new PluginInputDomainAdapter(adapter);
+                }
+            }
+
+            if (adapterFlags & ADAPT_BUFFER_SIZE) {
+                adapter = new PluginBufferingAdapter(adapter);
+            }
+
+            if (adapterFlags & ADAPT_CHANNEL_COUNT) {
+                adapter = new PluginChannelAdapter(adapter);
+            }
+
+            return adapter;
+        }
+
+        ++index;
+    }
+
+    cerr << "Vamp::HostExt::PluginLoader: Plugin \""
+         << identifier << "\" not found in library \""
+         << fullPath << "\"" << endl;
+
+    return 0;
+}
+
+void
+PluginLoader::Impl::generateTaxonomy()
+{
+//    cerr << "PluginLoader::Impl::generateTaxonomy" << endl;
+
+    vector<string> path = PluginHostAdapter::getPluginPath();
+    string libfragment = "/lib/";
+    vector<string> catpath;
+
+    string suffix = "cat";
+
+    for (vector<string>::iterator i = path.begin();
+         i != path.end(); ++i) {
+
+        // It doesn't matter that we're using literal forward-slash in
+        // this bit, as it's only relevant if the path contains
+        // "/lib/", which is only meaningful and only plausible on
+        // systems with forward-slash delimiters
+        
+        string dir = *i;
+        string::size_type li = dir.find(libfragment);
+
+        if (li != string::npos) {
+            catpath.push_back
+                (dir.substr(0, li)
+                 + "/share/"
+                 + dir.substr(li + libfragment.length()));
+        }
+
+        catpath.push_back(dir);
+    }
+
+    char buffer[1024];
+
+    for (vector<string>::iterator i = catpath.begin();
+         i != catpath.end(); ++i) {
+        
+        vector<string> files = listFiles(*i, suffix);
+
+        for (vector<string>::iterator fi = files.begin();
+             fi != files.end(); ++fi) {
+
+            string filepath = splicePath(*i, *fi);
+            ifstream is(filepath.c_str(), ifstream::in | ifstream::binary);
+
+            if (is.fail()) {
+//                cerr << "failed to open: " << filepath << endl;
+                continue;
+            }
+
+//            cerr << "opened: " << filepath << endl;
+
+            while (!!is.getline(buffer, 1024)) {
+
+                string line(buffer);
+
+//                cerr << "line = " << line << endl;
+
+                string::size_type di = line.find("::");
+                if (di == string::npos) continue;
+
+                string id = line.substr(0, di);
+                string encodedCat = line.substr(di + 2);
+
+                if (id.substr(0, 5) != "vamp:") continue;
+                id = id.substr(5);
+
+                while (encodedCat.length() >= 1 &&
+                       encodedCat[encodedCat.length()-1] == '\r') {
+                    encodedCat = encodedCat.substr(0, encodedCat.length()-1);
+                }
+
+//                cerr << "id = " << id << ", cat = " << encodedCat << endl;
+
+                PluginCategoryHierarchy category;
+                string::size_type ai;
+                while ((ai = encodedCat.find(" > ")) != string::npos) {
+                    category.push_back(encodedCat.substr(0, ai));
+                    encodedCat = encodedCat.substr(ai + 3);
+                }
+                if (encodedCat != "") category.push_back(encodedCat);
+
+                m_taxonomy[id] = category;
+            }
+        }
+    }
+}    
+
+void *
+PluginLoader::Impl::loadLibrary(string path)
+{
+    void *handle = 0;
+#ifdef _WIN32
+    handle = LoadLibrary(path.c_str());
+    if (!handle) {
+        cerr << "Vamp::HostExt::PluginLoader: Unable to load library \""
+             << path << "\"" << endl;
+    }
+#else
+    handle = dlopen(path.c_str(), RTLD_LAZY | RTLD_LOCAL);
+    if (!handle) {
+        cerr << "Vamp::HostExt::PluginLoader: Unable to load library \""
+             << path << "\": " << dlerror() << endl;
+    }
+#endif
+    return handle;
+}
+
+void
+PluginLoader::Impl::unloadLibrary(void *handle)
+{
+#ifdef _WIN32
+    FreeLibrary((HINSTANCE)handle);
+#else
+    dlclose(handle);
+#endif
+}
+
+void *
+PluginLoader::Impl::lookupInLibrary(void *handle, const char *symbol)
+{
+#ifdef _WIN32
+    return (void *)GetProcAddress((HINSTANCE)handle, symbol);
+#else
+    return (void *)dlsym(handle, symbol);
+#endif
+}
+
+string
+PluginLoader::Impl::splicePath(string a, string b)
+{
+#ifdef _WIN32
+    return a + "\\" + b;
+#else
+    return a + "/" + b;
+#endif
+}
+
+vector<string>
+PluginLoader::Impl::listFiles(string dir, string extension)
+{
+    vector<string> files;
+
+#ifdef _WIN32
+
+    string expression = dir + "\\*." + extension;
+    WIN32_FIND_DATA data;
+    HANDLE fh = FindFirstFile(expression.c_str(), &data);
+    if (fh == INVALID_HANDLE_VALUE) return files;
+
+    bool ok = true;
+    while (ok) {
+        files.push_back(data.cFileName);
+        ok = FindNextFile(fh, &data);
+    }
+
+    FindClose(fh);
+
+#else
+
+    size_t extlen = extension.length();
+    DIR *d = opendir(dir.c_str());
+    if (!d) return files;
+            
+    struct dirent *e = 0;
+    while ((e = readdir(d))) {
+ 
+        if (!e->d_name) continue;
+       
+        size_t len = strlen(e->d_name);
+        if (len < extlen + 2 ||
+            e->d_name + len - extlen - 1 != "." + extension) {
+            continue;
+        }
+
+        files.push_back(e->d_name);
+    }
+
+    closedir(d);
+#endif
+
+    return files;
+}
+
+void
+PluginLoader::Impl::pluginDeleted(PluginDeletionNotifyAdapter *adapter)
+{
+    void *handle = m_pluginLibraryHandleMap[adapter];
+    if (handle) unloadLibrary(handle);
+    m_pluginLibraryHandleMap.erase(adapter);
+}
+
+PluginLoader::Impl::PluginDeletionNotifyAdapter::PluginDeletionNotifyAdapter(Plugin *plugin,
+                                                                             Impl *loader) :
+    PluginWrapper(plugin),
+    m_loader(loader)
+{
+}
+
+PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter()
+{
+    // We need to delete the plugin before calling pluginDeleted, as
+    // the delete call may require calling through to the descriptor
+    // (for e.g. cleanup) but pluginDeleted may unload the required
+    // library for the call.  To prevent a double deletion when our
+    // parent's destructor runs (after this one), be sure to set
+    // m_plugin to 0 after deletion.
+    delete m_plugin;
+    m_plugin = 0;
+
+    if (m_loader) m_loader->pluginDeleted(this);
+}
+
+}
+
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginLoader.cpp)
+
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/PluginWrapper.cpp b/libs/vamp-sdk/src/vamp-hostsdk/PluginWrapper.cpp
new file mode 100644
index 0000000..02bdc28
--- /dev/null
+++ b/libs/vamp-sdk/src/vamp-hostsdk/PluginWrapper.cpp
@@ -0,0 +1,204 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006-2007 Chris Cannam and QMUL.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#include <vamp-hostsdk/PluginWrapper.h>
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginWrapper.cpp)
+
+namespace Vamp {
+
+namespace HostExt {
+
+class PluginRateExtractor : public Plugin
+{
+public:
+    PluginRateExtractor() : Plugin(0) { }
+    float getRate() const { return m_inputSampleRate; }
+};
+
+PluginWrapper::PluginWrapper(Plugin *plugin) :
+    Plugin(((PluginRateExtractor *)plugin)->getRate()),
+    m_plugin(plugin)
+{
+}
+
+PluginWrapper::~PluginWrapper()
+{
+    delete m_plugin;
+}
+
+bool
+PluginWrapper::initialise(size_t channels, size_t stepSize, size_t blockSize)
+{
+    return m_plugin->initialise(channels, stepSize, blockSize);
+}
+
+void
+PluginWrapper::reset()
+{
+    m_plugin->reset();
+}
+
+Plugin::InputDomain
+PluginWrapper::getInputDomain() const
+{
+    return m_plugin->getInputDomain();
+}
+
+unsigned int
+PluginWrapper::getVampApiVersion() const
+{
+    return m_plugin->getVampApiVersion();
+}
+
+std::string
+PluginWrapper::getIdentifier() const
+{
+    return m_plugin->getIdentifier();
+}
+
+std::string
+PluginWrapper::getName() const
+{
+    return m_plugin->getName();
+}
+
+std::string
+PluginWrapper::getDescription() const
+{
+    return m_plugin->getDescription();
+}
+
+std::string
+PluginWrapper::getMaker() const
+{
+    return m_plugin->getMaker();
+}
+
+int
+PluginWrapper::getPluginVersion() const
+{
+    return m_plugin->getPluginVersion();
+}
+
+std::string
+PluginWrapper::getCopyright() const
+{
+    return m_plugin->getCopyright();
+}
+
+PluginBase::ParameterList
+PluginWrapper::getParameterDescriptors() const
+{
+    return m_plugin->getParameterDescriptors();
+}
+
+float
+PluginWrapper::getParameter(std::string parameter) const
+{
+    return m_plugin->getParameter(parameter);
+}
+
+void
+PluginWrapper::setParameter(std::string parameter, float value)
+{
+    m_plugin->setParameter(parameter, value);
+}
+
+PluginBase::ProgramList
+PluginWrapper::getPrograms() const
+{
+    return m_plugin->getPrograms();
+}
+
+std::string
+PluginWrapper::getCurrentProgram() const
+{
+    return m_plugin->getCurrentProgram();
+}
+
+void
+PluginWrapper::selectProgram(std::string program)
+{
+    m_plugin->selectProgram(program);
+}
+
+size_t
+PluginWrapper::getPreferredStepSize() const
+{
+    return m_plugin->getPreferredStepSize();
+}
+
+size_t
+PluginWrapper::getPreferredBlockSize() const
+{
+    return m_plugin->getPreferredBlockSize();
+}
+
+size_t
+PluginWrapper::getMinChannelCount() const
+{
+    return m_plugin->getMinChannelCount();
+}
+
+size_t PluginWrapper::getMaxChannelCount() const
+{
+    return m_plugin->getMaxChannelCount();
+}
+
+Plugin::OutputList
+PluginWrapper::getOutputDescriptors() const
+{
+    return m_plugin->getOutputDescriptors();
+}
+
+Plugin::FeatureSet
+PluginWrapper::process(const float *const *inputBuffers, RealTime timestamp)
+{
+    return m_plugin->process(inputBuffers, timestamp);
+}
+
+Plugin::FeatureSet
+PluginWrapper::getRemainingFeatures()
+{
+    return m_plugin->getRemainingFeatures();
+}
+
+}
+
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginWrapper.cpp)
diff --git a/libs/vamp-sdk/src/vamp-hostsdk/RealTime.cpp b/libs/vamp-sdk/src/vamp-hostsdk/RealTime.cpp
new file mode 100644
index 0000000..537ccbd
--- /dev/null
+++ b/libs/vamp-sdk/src/vamp-hostsdk/RealTime.cpp
@@ -0,0 +1,39 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#include <vamp-hostsdk/RealTime.h>
+#include "../vamp-sdk/RealTime.cpp"
+
diff --git a/libs/vamp-sdk/src/vamp-sdk/PluginAdapter.cpp b/libs/vamp-sdk/src/vamp-sdk/PluginAdapter.cpp
new file mode 100644
index 0000000..fc195d7
--- /dev/null
+++ b/libs/vamp-sdk/src/vamp-sdk/PluginAdapter.cpp
@@ -0,0 +1,914 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#include <vamp-sdk/PluginAdapter.h>
+
+#include <cstring>
+#include <cstdlib>
+
+#if ( VAMP_SDK_MAJOR_VERSION != 2 || VAMP_SDK_MINOR_VERSION != 0 )
+#error Incorrect Vamp SDK header included (not the expected 2.0 SDK)
+#endif
+
+
+//#define DEBUG_PLUGIN_ADAPTER 1
+
+_VAMP_SDK_PLUGSPACE_BEGIN(PluginAdapter.cpp)
+
+namespace Vamp {
+
+class PluginAdapterBase::Impl
+{
+public:
+    Impl(PluginAdapterBase *);
+    ~Impl();
+
+    const VampPluginDescriptor *getDescriptor();
+
+protected:
+    PluginAdapterBase *m_base;
+
+    static VampPluginHandle vampInstantiate(const VampPluginDescriptor *desc,
+                                            float inputSampleRate);
+
+    static void vampCleanup(VampPluginHandle handle);
+
+    static int vampInitialise(VampPluginHandle handle, unsigned int channels,
+                             unsigned int stepSize, unsigned int blockSize);
+
+    static void vampReset(VampPluginHandle handle);
+
+    static float vampGetParameter(VampPluginHandle handle, int param);
+    static void vampSetParameter(VampPluginHandle handle, int param, float value);
+
+    static unsigned int vampGetCurrentProgram(VampPluginHandle handle);
+    static void vampSelectProgram(VampPluginHandle handle, unsigned int program);
+
+    static unsigned int vampGetPreferredStepSize(VampPluginHandle handle);
+    static unsigned int vampGetPreferredBlockSize(VampPluginHandle handle);
+    static unsigned int vampGetMinChannelCount(VampPluginHandle handle);
+    static unsigned int vampGetMaxChannelCount(VampPluginHandle handle);
+
+    static unsigned int vampGetOutputCount(VampPluginHandle handle);
+
+    static VampOutputDescriptor *vampGetOutputDescriptor(VampPluginHandle handle,
+                                                       unsigned int i);
+
+    static void vampReleaseOutputDescriptor(VampOutputDescriptor *desc);
+
+    static VampFeatureList *vampProcess(VampPluginHandle handle,
+                                        const float *const *inputBuffers,
+                                        int sec,
+                                        int nsec);
+
+    static VampFeatureList *vampGetRemainingFeatures(VampPluginHandle handle);
+
+    static void vampReleaseFeatureSet(VampFeatureList *fs);
+
+    void checkOutputMap(Plugin *plugin);
+    void markOutputsChanged(Plugin *plugin);
+
+    void cleanup(Plugin *plugin);
+    unsigned int getOutputCount(Plugin *plugin);
+    VampOutputDescriptor *getOutputDescriptor(Plugin *plugin,
+                                             unsigned int i);
+    VampFeatureList *process(Plugin *plugin,
+                             const float *const *inputBuffers,
+                             int sec, int nsec);
+    VampFeatureList *getRemainingFeatures(Plugin *plugin);
+    VampFeatureList *convertFeatures(Plugin *plugin,
+                                     const Plugin::FeatureSet &features);
+    
+    // maps both plugins and descriptors to adapters
+    typedef std::map<const void *, Impl *> AdapterMap;
+    static AdapterMap *m_adapterMap;
+    static Impl *lookupAdapter(VampPluginHandle);
+
+    bool m_populated;
+    VampPluginDescriptor m_descriptor;
+    Plugin::ParameterList m_parameters;
+    Plugin::ProgramList m_programs;
+    
+    typedef std::map<Plugin *, Plugin::OutputList *> OutputMap;
+    OutputMap m_pluginOutputs;
+
+    std::map<Plugin *, VampFeatureList *> m_fs;
+    std::map<Plugin *, std::vector<size_t> > m_fsizes;
+    std::map<Plugin *, std::vector<std::vector<size_t> > > m_fvsizes;
+    void resizeFS(Plugin *plugin, int n);
+    void resizeFL(Plugin *plugin, int n, size_t sz);
+    void resizeFV(Plugin *plugin, int n, int j, size_t sz);
+};
+
+PluginAdapterBase::PluginAdapterBase()
+{
+    m_impl = new Impl(this);
+}
+
+PluginAdapterBase::~PluginAdapterBase()
+{
+    delete m_impl;
+}
+
+const VampPluginDescriptor *
+PluginAdapterBase::getDescriptor()
+{
+    return m_impl->getDescriptor();
+}
+
+PluginAdapterBase::Impl::Impl(PluginAdapterBase *base) :
+    m_base(base),
+    m_populated(false)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl[" << this << "]::Impl" << std::endl;
+#endif
+}
+
+const VampPluginDescriptor *
+PluginAdapterBase::Impl::getDescriptor()
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl[" << this << "]::getDescriptor" << std::endl;
+#endif
+
+    if (m_populated) return &m_descriptor;
+
+    Plugin *plugin = m_base->createPlugin(48000);
+
+    if (plugin->getVampApiVersion() != VAMP_API_VERSION) {
+        std::cerr << "Vamp::PluginAdapterBase::Impl::getDescriptor: ERROR: "
+                  << "API version " << plugin->getVampApiVersion()
+                  << " for\nplugin \"" << plugin->getIdentifier() << "\" "
+                  << "differs from version "
+                  << VAMP_API_VERSION << " for adapter.\n"
+                  << "This plugin is probably linked against a different version of the Vamp SDK\n"
+                  << "from the version it was compiled with.  It will need to be re-linked correctly\n"
+                  << "before it can be used." << std::endl;
+        delete plugin;
+        return 0;
+    }
+
+    m_parameters = plugin->getParameterDescriptors();
+    m_programs = plugin->getPrograms();
+
+    m_descriptor.vampApiVersion = plugin->getVampApiVersion();
+    m_descriptor.identifier = strdup(plugin->getIdentifier().c_str());
+    m_descriptor.name = strdup(plugin->getName().c_str());
+    m_descriptor.description = strdup(plugin->getDescription().c_str());
+    m_descriptor.maker = strdup(plugin->getMaker().c_str());
+    m_descriptor.pluginVersion = plugin->getPluginVersion();
+    m_descriptor.copyright = strdup(plugin->getCopyright().c_str());
+    
+    m_descriptor.parameterCount = m_parameters.size();
+    m_descriptor.parameters = (const VampParameterDescriptor **)
+        malloc(m_parameters.size() * sizeof(VampParameterDescriptor));
+
+    unsigned int i;
+    
+    for (i = 0; i < m_parameters.size(); ++i) {
+        VampParameterDescriptor *desc = (VampParameterDescriptor *)
+            malloc(sizeof(VampParameterDescriptor));
+        desc->identifier = strdup(m_parameters[i].identifier.c_str());
+        desc->name = strdup(m_parameters[i].name.c_str());
+        desc->description = strdup(m_parameters[i].description.c_str());
+        desc->unit = strdup(m_parameters[i].unit.c_str());
+        desc->minValue = m_parameters[i].minValue;
+        desc->maxValue = m_parameters[i].maxValue;
+        desc->defaultValue = m_parameters[i].defaultValue;
+        desc->isQuantized = m_parameters[i].isQuantized;
+        desc->quantizeStep = m_parameters[i].quantizeStep;
+        desc->valueNames = 0;
+        if (desc->isQuantized && !m_parameters[i].valueNames.empty()) {
+            desc->valueNames = (const char **)
+                malloc((m_parameters[i].valueNames.size()+1) * sizeof(char *));
+            for (unsigned int j = 0; j < m_parameters[i].valueNames.size(); ++j) {
+                desc->valueNames[j] = strdup(m_parameters[i].valueNames[j].c_str());
+            }
+            desc->valueNames[m_parameters[i].valueNames.size()] = 0;
+        }
+        m_descriptor.parameters[i] = desc;
+    }
+    
+    m_descriptor.programCount = m_programs.size();
+    m_descriptor.programs = (const char **)
+        malloc(m_programs.size() * sizeof(const char *));
+    
+    for (i = 0; i < m_programs.size(); ++i) {
+        m_descriptor.programs[i] = strdup(m_programs[i].c_str());
+    }
+    
+    if (plugin->getInputDomain() == Plugin::FrequencyDomain) {
+        m_descriptor.inputDomain = vampFrequencyDomain;
+    } else {
+        m_descriptor.inputDomain = vampTimeDomain;
+    }
+
+    m_descriptor.instantiate = vampInstantiate;
+    m_descriptor.cleanup = vampCleanup;
+    m_descriptor.initialise = vampInitialise;
+    m_descriptor.reset = vampReset;
+    m_descriptor.getParameter = vampGetParameter;
+    m_descriptor.setParameter = vampSetParameter;
+    m_descriptor.getCurrentProgram = vampGetCurrentProgram;
+    m_descriptor.selectProgram = vampSelectProgram;
+    m_descriptor.getPreferredStepSize = vampGetPreferredStepSize;
+    m_descriptor.getPreferredBlockSize = vampGetPreferredBlockSize;
+    m_descriptor.getMinChannelCount = vampGetMinChannelCount;
+    m_descriptor.getMaxChannelCount = vampGetMaxChannelCount;
+    m_descriptor.getOutputCount = vampGetOutputCount;
+    m_descriptor.getOutputDescriptor = vampGetOutputDescriptor;
+    m_descriptor.releaseOutputDescriptor = vampReleaseOutputDescriptor;
+    m_descriptor.process = vampProcess;
+    m_descriptor.getRemainingFeatures = vampGetRemainingFeatures;
+    m_descriptor.releaseFeatureSet = vampReleaseFeatureSet;
+    
+    if (!m_adapterMap) {
+        m_adapterMap = new AdapterMap;
+    }
+    (*m_adapterMap)[&m_descriptor] = this;
+
+    delete plugin;
+
+    m_populated = true;
+    return &m_descriptor;
+}
+
+PluginAdapterBase::Impl::~Impl()
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl[" << this << "]::~Impl" << std::endl;
+#endif
+
+    if (!m_populated) return;
+
+    free((void *)m_descriptor.identifier);
+    free((void *)m_descriptor.name);
+    free((void *)m_descriptor.description);
+    free((void *)m_descriptor.maker);
+    free((void *)m_descriptor.copyright);
+        
+    for (unsigned int i = 0; i < m_descriptor.parameterCount; ++i) {
+        const VampParameterDescriptor *desc = m_descriptor.parameters[i];
+        free((void *)desc->identifier);
+        free((void *)desc->name);
+        free((void *)desc->description);
+        free((void *)desc->unit);
+        if (desc->valueNames) {
+            for (unsigned int j = 0; desc->valueNames[j]; ++j) {
+                free((void *)desc->valueNames[j]);
+            }
+            free((void *)desc->valueNames);
+        }
+    }
+    free((void *)m_descriptor.parameters);
+
+    for (unsigned int i = 0; i < m_descriptor.programCount; ++i) {
+        free((void *)m_descriptor.programs[i]);
+    }
+    free((void *)m_descriptor.programs);
+
+    if (m_adapterMap) {
+        
+        m_adapterMap->erase(&m_descriptor);
+
+        if (m_adapterMap->empty()) {
+            delete m_adapterMap;
+            m_adapterMap = 0;
+        }
+    }
+}
+
+PluginAdapterBase::Impl *
+PluginAdapterBase::Impl::lookupAdapter(VampPluginHandle handle)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::lookupAdapter(" << handle << ")" << std::endl;
+#endif
+
+    if (!m_adapterMap) return 0;
+    AdapterMap::const_iterator i = m_adapterMap->find(handle);
+    if (i == m_adapterMap->end()) return 0;
+    return i->second;
+}
+
+VampPluginHandle
+PluginAdapterBase::Impl::vampInstantiate(const VampPluginDescriptor *desc,
+                                         float inputSampleRate)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampInstantiate(" << desc << ")" << std::endl;
+#endif
+
+    if (!m_adapterMap) {
+        m_adapterMap = new AdapterMap();
+    }
+
+    if (m_adapterMap->find(desc) == m_adapterMap->end()) {
+        std::cerr << "WARNING: PluginAdapterBase::Impl::vampInstantiate: Descriptor " << desc << " not in adapter map" << std::endl;
+        return 0;
+    }
+
+    Impl *adapter = (*m_adapterMap)[desc];
+    if (desc != &adapter->m_descriptor) return 0;
+
+    Plugin *plugin = adapter->m_base->createPlugin(inputSampleRate);
+    if (plugin) {
+        (*m_adapterMap)[plugin] = adapter;
+    }
+
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampInstantiate(" << desc << "): returning handle " << plugin << std::endl;
+#endif
+
+    return plugin;
+}
+
+void
+PluginAdapterBase::Impl::vampCleanup(VampPluginHandle handle)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampCleanup(" << handle << ")" << std::endl;
+#endif
+
+    Impl *adapter = lookupAdapter(handle);
+    if (!adapter) {
+        delete ((Plugin *)handle);
+        return;
+    }
+    adapter->cleanup(((Plugin *)handle));
+}
+
+int
+PluginAdapterBase::Impl::vampInitialise(VampPluginHandle handle,
+                                        unsigned int channels,
+                                        unsigned int stepSize,
+                                        unsigned int blockSize)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampInitialise(" << handle << ", " << channels << ", " << stepSize << ", " << blockSize << ")" << std::endl;
+#endif
+
+    Impl *adapter = lookupAdapter(handle);
+    if (!adapter) return 0;
+    bool result = ((Plugin *)handle)->initialise(channels, stepSize, blockSize);
+    adapter->markOutputsChanged((Plugin *)handle);
+    return result ? 1 : 0;
+}
+
+void
+PluginAdapterBase::Impl::vampReset(VampPluginHandle handle) 
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampReset(" << handle << ")" << std::endl;
+#endif
+
+    ((Plugin *)handle)->reset();
+}
+
+float
+PluginAdapterBase::Impl::vampGetParameter(VampPluginHandle handle,
+                                    int param) 
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampGetParameter(" << handle << ", " << param << ")" << std::endl;
+#endif
+
+    Impl *adapter = lookupAdapter(handle);
+    if (!adapter) return 0.0;
+    Plugin::ParameterList &list = adapter->m_parameters;
+    return ((Plugin *)handle)->getParameter(list[param].identifier);
+}
+
+void
+PluginAdapterBase::Impl::vampSetParameter(VampPluginHandle handle,
+                                    int param, float value)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampSetParameter(" << handle << ", " << param << ", " << value << ")" << std::endl;
+#endif
+
+    Impl *adapter = lookupAdapter(handle);
+    if (!adapter) return;
+    Plugin::ParameterList &list = adapter->m_parameters;
+    ((Plugin *)handle)->setParameter(list[param].identifier, value);
+    adapter->markOutputsChanged((Plugin *)handle);
+}
+
+unsigned int
+PluginAdapterBase::Impl::vampGetCurrentProgram(VampPluginHandle handle)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampGetCurrentProgram(" << handle << ")" << std::endl;
+#endif
+
+    Impl *adapter = lookupAdapter(handle);
+    if (!adapter) return 0;
+    Plugin::ProgramList &list = adapter->m_programs;
+    std::string program = ((Plugin *)handle)->getCurrentProgram();
+    for (unsigned int i = 0; i < list.size(); ++i) {
+        if (list[i] == program) return i;
+    }
+    return 0;
+}
+
+void
+PluginAdapterBase::Impl::vampSelectProgram(VampPluginHandle handle,
+                                           unsigned int program)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampSelectProgram(" << handle << ", " << program << ")" << std::endl;
+#endif
+
+    Impl *adapter = lookupAdapter(handle);
+    if (!adapter) return;
+
+    Plugin::ProgramList &list = adapter->m_programs;
+    ((Plugin *)handle)->selectProgram(list[program]);
+
+    adapter->markOutputsChanged((Plugin *)handle);
+}
+
+unsigned int
+PluginAdapterBase::Impl::vampGetPreferredStepSize(VampPluginHandle handle)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampGetPreferredStepSize(" << handle << ")" << std::endl;
+#endif
+
+    return ((Plugin *)handle)->getPreferredStepSize();
+}
+
+unsigned int
+PluginAdapterBase::Impl::vampGetPreferredBlockSize(VampPluginHandle handle) 
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampGetPreferredBlockSize(" << handle << ")" << std::endl;
+#endif
+
+    return ((Plugin *)handle)->getPreferredBlockSize();
+}
+
+unsigned int
+PluginAdapterBase::Impl::vampGetMinChannelCount(VampPluginHandle handle)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampGetMinChannelCount(" << handle << ")" << std::endl;
+#endif
+
+    return ((Plugin *)handle)->getMinChannelCount();
+}
+
+unsigned int
+PluginAdapterBase::Impl::vampGetMaxChannelCount(VampPluginHandle handle)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampGetMaxChannelCount(" << handle << ")" << std::endl;
+#endif
+
+    return ((Plugin *)handle)->getMaxChannelCount();
+}
+
+unsigned int
+PluginAdapterBase::Impl::vampGetOutputCount(VampPluginHandle handle)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampGetOutputCount(" << handle << ")" << std::endl;
+#endif
+
+    Impl *adapter = lookupAdapter(handle);
+
+//    std::cerr << "vampGetOutputCount: handle " << handle << " -> adapter "<< adapter << std::endl;
+
+    if (!adapter) return 0;
+    return adapter->getOutputCount((Plugin *)handle);
+}
+
+VampOutputDescriptor *
+PluginAdapterBase::Impl::vampGetOutputDescriptor(VampPluginHandle handle,
+                                                 unsigned int i)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampGetOutputDescriptor(" << handle << ", " << i << ")" << std::endl;
+#endif
+
+    Impl *adapter = lookupAdapter(handle);
+
+//    std::cerr << "vampGetOutputDescriptor: handle " << handle << " -> adapter "<< adapter << std::endl;
+
+    if (!adapter) return 0;
+    return adapter->getOutputDescriptor((Plugin *)handle, i);
+}
+
+void
+PluginAdapterBase::Impl::vampReleaseOutputDescriptor(VampOutputDescriptor *desc)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampReleaseOutputDescriptor(" << desc << ")" << std::endl;
+#endif
+
+    if (desc->identifier) free((void *)desc->identifier);
+    if (desc->name) free((void *)desc->name);
+    if (desc->description) free((void *)desc->description);
+    if (desc->unit) free((void *)desc->unit);
+    if (desc->hasFixedBinCount && desc->binNames) {
+        for (unsigned int i = 0; i < desc->binCount; ++i) {
+            if (desc->binNames[i]) {
+                free((void *)desc->binNames[i]);
+            }
+        }
+    }
+    if (desc->binNames) free((void *)desc->binNames);
+    free((void *)desc);
+}
+
+VampFeatureList *
+PluginAdapterBase::Impl::vampProcess(VampPluginHandle handle,
+                                     const float *const *inputBuffers,
+                                     int sec,
+                                     int nsec)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampProcess(" << handle << ", " << sec << ", " << nsec << ")" << std::endl;
+#endif
+
+    Impl *adapter = lookupAdapter(handle);
+    if (!adapter) return 0;
+    return adapter->process((Plugin *)handle, inputBuffers, sec, nsec);
+}
+
+VampFeatureList *
+PluginAdapterBase::Impl::vampGetRemainingFeatures(VampPluginHandle handle)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampGetRemainingFeatures(" << handle << ")" << std::endl;
+#endif
+
+    Impl *adapter = lookupAdapter(handle);
+    if (!adapter) return 0;
+    return adapter->getRemainingFeatures((Plugin *)handle);
+}
+
+void
+PluginAdapterBase::Impl::vampReleaseFeatureSet(VampFeatureList *fs)
+{
+#ifdef DEBUG_PLUGIN_ADAPTER
+    std::cerr << "PluginAdapterBase::Impl::vampReleaseFeatureSet" << std::endl;
+#endif
+}
+
+void 
+PluginAdapterBase::Impl::cleanup(Plugin *plugin)
+{
+    if (m_fs.find(plugin) != m_fs.end()) {
+        size_t outputCount = 0;
+        if (m_pluginOutputs[plugin]) {
+            outputCount = m_pluginOutputs[plugin]->size();
+        }
+        VampFeatureList *list = m_fs[plugin];
+        for (unsigned int i = 0; i < outputCount; ++i) {
+            for (unsigned int j = 0; j < m_fsizes[plugin][i]; ++j) {
+                if (list[i].features[j].v1.label) {
+                    free(list[i].features[j].v1.label);
+                }
+                if (list[i].features[j].v1.values) {
+                    free(list[i].features[j].v1.values);
+                }
+            }
+            if (list[i].features) free(list[i].features);
+        }
+        m_fs.erase(plugin);
+        m_fsizes.erase(plugin);
+        m_fvsizes.erase(plugin);
+    }
+
+    if (m_pluginOutputs.find(plugin) != m_pluginOutputs.end()) {
+        delete m_pluginOutputs[plugin];
+        m_pluginOutputs.erase(plugin);
+    }
+
+    if (m_adapterMap) {
+        m_adapterMap->erase(plugin);
+
+        if (m_adapterMap->empty()) {
+            delete m_adapterMap;
+            m_adapterMap = 0;
+        }
+    }
+
+    delete ((Plugin *)plugin);
+}
+
+void 
+PluginAdapterBase::Impl::checkOutputMap(Plugin *plugin)
+{
+    OutputMap::iterator i = m_pluginOutputs.find(plugin);
+
+    if (i == m_pluginOutputs.end() || !i->second) {
+
+        m_pluginOutputs[plugin] = new Plugin::OutputList
+            (plugin->getOutputDescriptors());
+
+//        std::cerr << "PluginAdapterBase::Impl::checkOutputMap: Have " << m_pluginOutputs[plugin]->size() << " outputs for plugin " << plugin->getIdentifier() << std::endl;
+    }
+}
+
+void
+PluginAdapterBase::Impl::markOutputsChanged(Plugin *plugin)
+{
+    OutputMap::iterator i = m_pluginOutputs.find(plugin);
+
+//    std::cerr << "PluginAdapterBase::Impl::markOutputsChanged" << std::endl;
+
+    if (i != m_pluginOutputs.end()) {
+
+        Plugin::OutputList *list = i->second;
+        m_pluginOutputs.erase(i);
+        delete list;
+    }
+}
+
+unsigned int 
+PluginAdapterBase::Impl::getOutputCount(Plugin *plugin)
+{
+    checkOutputMap(plugin);
+
+    return m_pluginOutputs[plugin]->size();
+}
+
+VampOutputDescriptor *
+PluginAdapterBase::Impl::getOutputDescriptor(Plugin *plugin,
+                                             unsigned int i)
+{
+    checkOutputMap(plugin);
+
+    Plugin::OutputDescriptor &od =
+        (*m_pluginOutputs[plugin])[i];
+
+    VampOutputDescriptor *desc = (VampOutputDescriptor *)
+        malloc(sizeof(VampOutputDescriptor));
+
+    desc->identifier = strdup(od.identifier.c_str());
+    desc->name = strdup(od.name.c_str());
+    desc->description = strdup(od.description.c_str());
+    desc->unit = strdup(od.unit.c_str());
+    desc->hasFixedBinCount = od.hasFixedBinCount;
+    desc->binCount = od.binCount;
+
+    if (od.hasFixedBinCount && od.binCount > 0
+        // We would like to do "&& !od.binNames.empty()" here -- but we
+        // can't, because it will crash older versions of the host adapter
+        // which try to copy the names across whenever the bin count is
+        // non-zero, regardless of whether they exist or not
+        ) {
+        desc->binNames = (const char **)
+            malloc(od.binCount * sizeof(const char *));
+        
+        for (unsigned int i = 0; i < od.binCount; ++i) {
+            if (i < od.binNames.size()) {
+                desc->binNames[i] = strdup(od.binNames[i].c_str());
+            } else {
+                desc->binNames[i] = 0;
+            }
+        }
+    } else {
+        desc->binNames = 0;
+    }
+
+    desc->hasKnownExtents = od.hasKnownExtents;
+    desc->minValue = od.minValue;
+    desc->maxValue = od.maxValue;
+    desc->isQuantized = od.isQuantized;
+    desc->quantizeStep = od.quantizeStep;
+
+    switch (od.sampleType) {
+    case Plugin::OutputDescriptor::OneSamplePerStep:
+        desc->sampleType = vampOneSamplePerStep; break;
+    case Plugin::OutputDescriptor::FixedSampleRate:
+        desc->sampleType = vampFixedSampleRate; break;
+    case Plugin::OutputDescriptor::VariableSampleRate:
+        desc->sampleType = vampVariableSampleRate; break;
+    }
+
+    desc->sampleRate = od.sampleRate;
+    desc->hasDuration = od.hasDuration;
+
+    return desc;
+}
+    
+VampFeatureList *
+PluginAdapterBase::Impl::process(Plugin *plugin,
+                                 const float *const *inputBuffers,
+                                 int sec, int nsec)
+{
+//    std::cerr << "PluginAdapterBase::Impl::process" << std::endl;
+    RealTime rt(sec, nsec);
+    checkOutputMap(plugin);
+    return convertFeatures(plugin, plugin->process(inputBuffers, rt));
+}
+    
+VampFeatureList *
+PluginAdapterBase::Impl::getRemainingFeatures(Plugin *plugin)
+{
+//    std::cerr << "PluginAdapterBase::Impl::getRemainingFeatures" << std::endl;
+    checkOutputMap(plugin);
+    return convertFeatures(plugin, plugin->getRemainingFeatures());
+}
+
+VampFeatureList *
+PluginAdapterBase::Impl::convertFeatures(Plugin *plugin,
+                                         const Plugin::FeatureSet &features)
+{
+    int lastN = -1;
+
+    int outputCount = 0;
+    if (m_pluginOutputs[plugin]) outputCount = m_pluginOutputs[plugin]->size();
+    
+    resizeFS(plugin, outputCount);
+    VampFeatureList *fs = m_fs[plugin];
+
+//    std::cerr << "PluginAdapter(v2)::convertFeatures: NOTE: sizeof(Feature) == " << sizeof(Plugin::Feature) << ", sizeof(VampFeature) == " << sizeof(VampFeature) << ", sizeof(VampFeatureList) == " << sizeof(VampFeatureList) << std::endl;
+
+    for (Plugin::FeatureSet::const_iterator fi = features.begin();
+         fi != features.end(); ++fi) {
+
+        int n = fi->first;
+        
+//        std::cerr << "PluginAdapterBase::Impl::convertFeatures: n = " << n << std::endl;
+
+        if (n >= int(outputCount)) {
+            std::cerr << "WARNING: PluginAdapterBase::Impl::convertFeatures: Too many outputs from plugin (" << n+1 << ", only should be " << outputCount << ")" << std::endl;
+            continue;
+        }
+
+        if (n > lastN + 1) {
+            for (int i = lastN + 1; i < n; ++i) {
+                fs[i].featureCount = 0;
+            }
+        }
+
+        const Plugin::FeatureList &fl = fi->second;
+
+        size_t sz = fl.size();
+        if (sz > m_fsizes[plugin][n]) resizeFL(plugin, n, sz);
+        fs[n].featureCount = sz;
+        
+        for (size_t j = 0; j < sz; ++j) {
+
+//            std::cerr << "PluginAdapterBase::Impl::convertFeatures: j = " << j << std::endl;
+
+            VampFeature *feature = &fs[n].features[j].v1;
+
+            feature->hasTimestamp = fl[j].hasTimestamp;
+            feature->sec = fl[j].timestamp.sec;
+            feature->nsec = fl[j].timestamp.nsec;
+            feature->valueCount = fl[j].values.size();
+
+            VampFeatureV2 *v2 = &fs[n].features[j + sz].v2;
+            
+            v2->hasDuration = fl[j].hasDuration;
+            v2->durationSec = fl[j].duration.sec;
+            v2->durationNsec = fl[j].duration.nsec;
+
+            if (feature->label) free(feature->label);
+
+            if (fl[j].label.empty()) {
+                feature->label = 0;
+            } else {
+                feature->label = strdup(fl[j].label.c_str());
+            }
+
+            if (feature->valueCount > m_fvsizes[plugin][n][j]) {
+                resizeFV(plugin, n, j, feature->valueCount);
+            }
+
+            for (unsigned int k = 0; k < feature->valueCount; ++k) {
+//                std::cerr << "PluginAdapterBase::Impl::convertFeatures: k = " << k << std::endl;
+                feature->values[k] = fl[j].values[k];
+            }
+        }
+
+        lastN = n;
+    }
+
+    if (lastN == -1) return 0;
+
+    if (int(outputCount) > lastN + 1) {
+        for (int i = lastN + 1; i < int(outputCount); ++i) {
+            fs[i].featureCount = 0;
+        }
+    }
+
+//    std::cerr << "PluginAdapter(v2)::convertFeatures: NOTE: have " << outputCount << " outputs" << std::endl;
+//    for (int i = 0; i < outputCount; ++i) {
+//        std::cerr << "PluginAdapter(v2)::convertFeatures: NOTE: output " << i << " has " << fs[i].featureCount << " features" << std::endl;
+//    }
+
+
+    return fs;
+}
+
+void
+PluginAdapterBase::Impl::resizeFS(Plugin *plugin, int n)
+{
+//    std::cerr << "PluginAdapterBase::Impl::resizeFS(" << plugin << ", " << n << ")" << std::endl;
+
+    int i = m_fsizes[plugin].size();
+    if (i >= n) return;
+
+//    std::cerr << "resizing from " << i << std::endl;
+
+    m_fs[plugin] = (VampFeatureList *)realloc
+        (m_fs[plugin], n * sizeof(VampFeatureList));
+
+    while (i < n) {
+        m_fs[plugin][i].featureCount = 0;
+        m_fs[plugin][i].features = 0;
+        m_fsizes[plugin].push_back(0);
+        m_fvsizes[plugin].push_back(std::vector<size_t>());
+        i++;
+    }
+}
+
+void
+PluginAdapterBase::Impl::resizeFL(Plugin *plugin, int n, size_t sz)
+{
+//    std::cerr << "PluginAdapterBase::Impl::resizeFL(" << plugin << ", " << n << ", "
+//              << sz << ")" << std::endl;
+
+    size_t i = m_fsizes[plugin][n];
+    if (i >= sz) return;
+
+//    std::cerr << "resizing from " << i << std::endl;
+
+    m_fs[plugin][n].features = (VampFeatureUnion *)realloc
+        (m_fs[plugin][n].features, 2 * sz * sizeof(VampFeatureUnion));
+
+    while (m_fsizes[plugin][n] < sz) {
+        m_fs[plugin][n].features[m_fsizes[plugin][n]].v1.hasTimestamp = 0;
+        m_fs[plugin][n].features[m_fsizes[plugin][n]].v1.valueCount = 0;
+        m_fs[plugin][n].features[m_fsizes[plugin][n]].v1.values = 0;
+        m_fs[plugin][n].features[m_fsizes[plugin][n]].v1.label = 0;
+        m_fs[plugin][n].features[m_fsizes[plugin][n] + sz].v2.hasDuration = 0;
+        m_fvsizes[plugin][n].push_back(0);
+        m_fsizes[plugin][n]++;
+    }
+}
+
+void
+PluginAdapterBase::Impl::resizeFV(Plugin *plugin, int n, int j, size_t sz)
+{
+//    std::cerr << "PluginAdapterBase::Impl::resizeFV(" << plugin << ", " << n << ", "
+//              << j << ", " << sz << ")" << std::endl;
+
+    size_t i = m_fvsizes[plugin][n][j];
+    if (i >= sz) return;
+
+//    std::cerr << "resizing from " << i << std::endl;
+
+    m_fs[plugin][n].features[j].v1.values = (float *)realloc
+        (m_fs[plugin][n].features[j].v1.values, sz * sizeof(float));
+
+    m_fvsizes[plugin][n][j] = sz;
+}
+  
+PluginAdapterBase::Impl::AdapterMap *
+PluginAdapterBase::Impl::m_adapterMap = 0;
+
+}
+
+_VAMP_SDK_PLUGSPACE_END(PluginAdapter.cpp)
+
diff --git a/libs/vamp-sdk/src/vamp-sdk/RealTime.cpp b/libs/vamp-sdk/src/vamp-sdk/RealTime.cpp
new file mode 100644
index 0000000..d3c4364
--- /dev/null
+++ b/libs/vamp-sdk/src/vamp-sdk/RealTime.cpp
@@ -0,0 +1,252 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+/*
+   This is a modified version of a source file from the 
+   Rosegarden MIDI and audio sequencer and notation editor.
+   This file copyright 2000-2006 Chris Cannam.
+   Relicensed by the author as detailed above.
+*/
+
+#include <iostream>
+
+#if (__GNUC__ < 3)
+#include <strstream>
+#define stringstream strstream
+#else
+#include <sstream>
+#endif
+
+using std::cerr;
+using std::endl;
+
+#ifndef _WIN32
+#include <sys/time.h>
+#endif
+
+#include <vamp-sdk/RealTime.h>
+
+_VAMP_SDK_PLUGSPACE_BEGIN(RealTime.cpp)
+
+namespace Vamp {
+
+// A RealTime consists of two ints that must be at least 32 bits each.
+// A signed 32-bit int can store values exceeding +/- 2 billion.  This
+// means we can safely use our lower int for nanoseconds, as there are
+// 1 billion nanoseconds in a second and we need to handle double that
+// because of the implementations of addition etc that we use.
+//
+// The maximum valid RealTime on a 32-bit system is somewhere around
+// 68 years: 999999999 nanoseconds longer than the classic Unix epoch.
+
+#define ONE_BILLION 1000000000
+
+RealTime::RealTime(int s, int n) :
+    sec(s), nsec(n)
+{
+    if (sec == 0) {
+	while (nsec <= -ONE_BILLION) { nsec += ONE_BILLION; --sec; }
+	while (nsec >=  ONE_BILLION) { nsec -= ONE_BILLION; ++sec; }
+    } else if (sec < 0) {
+	while (nsec <= -ONE_BILLION) { nsec += ONE_BILLION; --sec; }
+	while (nsec > 0)             { nsec -= ONE_BILLION; ++sec; }
+    } else { 
+	while (nsec >=  ONE_BILLION) { nsec -= ONE_BILLION; ++sec; }
+	while (nsec < 0)             { nsec += ONE_BILLION; --sec; }
+    }
+}
+
+RealTime
+RealTime::fromSeconds(double sec)
+{
+    return RealTime(int(sec), int((sec - int(sec)) * ONE_BILLION + 0.5));
+}
+
+RealTime
+RealTime::fromMilliseconds(int msec)
+{
+    return RealTime(msec / 1000, (msec % 1000) * 1000000);
+}
+
+#ifndef _WIN32
+RealTime
+RealTime::fromTimeval(const struct timeval &tv)
+{
+    return RealTime(tv.tv_sec, tv.tv_usec * 1000);
+}
+#endif
+
+std::ostream &operator<<(std::ostream &out, const RealTime &rt)
+{
+    if (rt < RealTime::zeroTime) {
+	out << "-";
+    } else {
+	out << " ";
+    }
+
+    int s = (rt.sec < 0 ? -rt.sec : rt.sec);
+    int n = (rt.nsec < 0 ? -rt.nsec : rt.nsec);
+
+    out << s << ".";
+
+    int nn(n);
+    if (nn == 0) out << "00000000";
+    else while (nn < (ONE_BILLION / 10)) {
+	out << "0";
+	nn *= 10;
+    }
+    
+    out << n << "R";
+    return out;
+}
+
+std::string
+RealTime::toString() const
+{
+    std::stringstream out;
+    out << *this;
+    
+#if (__GNUC__ < 3)
+    out << std::ends;
+#endif
+
+    std::string s = out.str();
+
+    // remove trailing R
+    return s.substr(0, s.length() - 1);
+}
+
+std::string
+RealTime::toText(bool fixedDp) const
+{
+    if (*this < RealTime::zeroTime) return "-" + (-*this).toText();
+
+    std::stringstream out;
+
+    if (sec >= 3600) {
+	out << (sec / 3600) << ":";
+    }
+
+    if (sec >= 60) {
+	out << (sec % 3600) / 60 << ":";
+    }
+
+    if (sec >= 10) {
+	out << ((sec % 60) / 10);
+    }
+
+    out << (sec % 10);
+    
+    int ms = msec();
+
+    if (ms != 0) {
+	out << ".";
+	out << (ms / 100);
+	ms = ms % 100;
+	if (ms != 0) {
+	    out << (ms / 10);
+	    ms = ms % 10;
+	} else if (fixedDp) {
+	    out << "0";
+	}
+	if (ms != 0) {
+	    out << ms;
+	} else if (fixedDp) {
+	    out << "0";
+	}
+    } else if (fixedDp) {
+	out << ".000";
+    }
+	
+#if (__GNUC__ < 3)
+    out << std::ends;
+#endif
+
+    std::string s = out.str();
+
+    return s;
+}
+
+
+RealTime
+RealTime::operator/(int d) const
+{
+    int secdiv = sec / d;
+    int secrem = sec % d;
+
+    double nsecdiv = (double(nsec) + ONE_BILLION * double(secrem)) / d;
+    
+    return RealTime(secdiv, int(nsecdiv + 0.5));
+}
+
+double 
+RealTime::operator/(const RealTime &r) const
+{
+    double lTotal = double(sec) * ONE_BILLION + double(nsec);
+    double rTotal = double(r.sec) * ONE_BILLION + double(r.nsec);
+    
+    if (rTotal == 0) return 0.0;
+    else return lTotal/rTotal;
+}
+
+long
+RealTime::realTime2Frame(const RealTime &time, unsigned int sampleRate)
+{
+    if (time < zeroTime) return -realTime2Frame(-time, sampleRate);
+    double s = time.sec + double(time.nsec + 1) / 1000000000.0;
+    return long(s * sampleRate);
+}
+
+RealTime
+RealTime::frame2RealTime(long frame, unsigned int sampleRate)
+{
+    if (frame < 0) return -frame2RealTime(-frame, sampleRate);
+
+    RealTime rt;
+    rt.sec = frame / long(sampleRate);
+    frame -= rt.sec * long(sampleRate);
+    rt.nsec = (int)(((double(frame) * 1000000.0) / sampleRate) * 1000.0);
+    return rt;
+}
+
+const RealTime RealTime::zeroTime(0,0);
+
+}
+
+_VAMP_SDK_PLUGSPACE_END(RealTime.cpp)
+
+
+
diff --git a/libs/vamp-sdk/vamp-hostsdk/Plugin.h b/libs/vamp-sdk/vamp-hostsdk/Plugin.h
new file mode 100644
index 0000000..72a3b64
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/Plugin.h
@@ -0,0 +1,47 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_HOSTSDK_PLUGIN_H_
+#define _VAMP_HOSTSDK_PLUGIN_H_
+
+// Do not include vamp-sdk/Plugin.h directly from host code.  Always
+// use this header instead.
+
+#include "hostguard.h"
+
+#include <vamp-sdk/Plugin.h>
+
+#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginBase.h b/libs/vamp-sdk/vamp-hostsdk/PluginBase.h
new file mode 100644
index 0000000..f12c25a
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/PluginBase.h
@@ -0,0 +1,47 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_HOSTSDK_PLUGIN_BASE_H_
+#define _VAMP_HOSTSDK_PLUGIN_BASE_H_
+
+// Do not include vamp-sdk/PluginBase.h directly from host code.
+// Always use this header instead.
+
+#include "hostguard.h"
+
+#include <vamp-sdk/PluginBase.h>
+
+#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginBufferingAdapter.h b/libs/vamp-sdk/vamp-hostsdk/PluginBufferingAdapter.h
new file mode 100644
index 0000000..21c2b36
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/PluginBufferingAdapter.h
@@ -0,0 +1,194 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006-2007 Chris Cannam and QMUL.
+    This file by Mark Levy and Chris Cannam, Copyright 2007-2008 QMUL.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_PLUGIN_BUFFERING_ADAPTER_H_
+#define _VAMP_PLUGIN_BUFFERING_ADAPTER_H_
+
+#include "hostguard.h"
+#include "PluginWrapper.h"
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginBufferingAdapter.h)
+
+namespace Vamp {
+	
+namespace HostExt {
+		
+/**
+ * \class PluginBufferingAdapter PluginBufferingAdapter.h <vamp-hostsdk/PluginBufferingAdapter.h>
+ *
+ * PluginBufferingAdapter is a Vamp plugin adapter that allows plugins
+ * to be used by a host supplying an audio stream in non-overlapping
+ * buffers of arbitrary size.
+ *
+ * A host using PluginBufferingAdapter may ignore the preferred step
+ * and block size reported by the plugin, and still expect the plugin
+ * to run.  The value of blockSize and stepSize passed to initialise
+ * should be the size of the buffer which the host will supply; the
+ * stepSize should be equal to the blockSize.
+ *
+ * If the internal step size used for the plugin differs from that
+ * supplied by the host, the adapter will modify the sample type and
+ * rate specifications for the plugin outputs appropriately, and set
+ * timestamps on the output features for outputs that formerly used a
+ * different sample rate specification.  This is necessary in order to
+ * obtain correct time stamping.
+ * 
+ * In other respects, the PluginBufferingAdapter behaves identically
+ * to the plugin that it wraps. The wrapped plugin will be deleted
+ * when the wrapper is deleted.
+ */
+		
+class PluginBufferingAdapter : public PluginWrapper
+{
+public:
+    /**
+     * Construct a PluginBufferingAdapter wrapping the given plugin.
+     * The adapter takes ownership of the plugin, which will be
+     * deleted when the adapter is deleted.
+     */
+    PluginBufferingAdapter(Plugin *plugin);
+    virtual ~PluginBufferingAdapter();
+
+    /**
+     * Return the preferred step size for this adapter.
+     * 
+     * Because of the way this adapter works, its preferred step size
+     * will always be the same as its preferred block size.  This may
+     * or may not be the same as the preferred step size of the
+     * underlying plugin, which may be obtained by calling
+     * getPluginPreferredStepSize().
+     */
+    size_t getPreferredStepSize() const;
+
+    /**
+     * Return the preferred block size for this adapter.
+     * 
+     * This may or may not be the same as the preferred block size of
+     * the underlying plugin, which may be obtained by calling
+     * getPluginPreferredBlockSize().
+     *
+     * Note that this adapter may be initialised with any block size,
+     * not just its supposedly preferred one.
+     */
+    size_t getPreferredBlockSize() const;
+
+    /**
+     * Initialise the adapter (and therefore the plugin) for the given
+     * number of channels.  Initialise the adapter for the given step
+     * and block size, which must be equal.
+     *
+     * The step and block size used for the underlying plugin will
+     * depend on its preferences, or any values previously passed to
+     * setPluginStepSize and setPluginBlockSize.
+     */
+    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
+
+    /**
+     * Return the preferred step size of the plugin wrapped by this
+     * adapter.
+     *
+     * This is included mainly for informational purposes.  This value
+     * is not likely to be a valid step size for the adapter itself,
+     * and it is not usually of any use in interpreting the results
+     * (because the adapter re-writes OneSamplePerStep outputs to
+     * FixedSampleRate so that the hop size no longer needs to be
+     * known beforehand in order to interpret them).
+     */
+    size_t getPluginPreferredStepSize() const;
+
+    /** 
+     * Return the preferred block size of the plugin wrapped by this
+     * adapter.
+     *
+     * This is included mainly for informational purposes.
+     */
+    size_t getPluginPreferredBlockSize() const;
+
+    /**
+     * Set the step size that will be used for the underlying plugin
+     * when initialise() is called.  If this is not set, the plugin's
+     * own preferred step size will be used.  You will not usually
+     * need to call this function.  If you do call it, it must be
+     * before the first call to initialise().
+     */
+    void setPluginStepSize(size_t stepSize);
+
+    /**
+     * Set the block size that will be used for the underlying plugin
+     * when initialise() is called.  If this is not set, the plugin's
+     * own preferred block size will be used.  You will not usually
+     * need to call this function.  If you do call it, it must be
+     * before the first call to initialise().
+     */
+    void setPluginBlockSize(size_t blockSize);
+
+    /**
+     * Return the step and block sizes that were actually used when
+     * initialising the underlying plugin.
+     *
+     * This is included mainly for informational purposes.  You will
+     * not usually need to call this function.  If this is called
+     * before initialise(), it will return 0 for both values.  If it
+     * is called after a failed call to initialise(), it will return
+     * the values that were used in the failed call to the plugin's
+     * initialise() function.
+     */
+    void getActualStepAndBlockSizes(size_t &stepSize, size_t &blockSize);
+
+    void setParameter(std::string, float);
+    void selectProgram(std::string);
+
+    OutputList getOutputDescriptors() const;
+
+    void reset();
+
+    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
+    
+    FeatureSet getRemainingFeatures();
+    
+protected:
+    class Impl;
+    Impl *m_impl;
+};
+    
+}
+
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginBufferingAdapter.h)
+
+#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginChannelAdapter.h b/libs/vamp-sdk/vamp-hostsdk/PluginChannelAdapter.h
new file mode 100644
index 0000000..28ee82a
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/PluginChannelAdapter.h
@@ -0,0 +1,149 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006-2007 Chris Cannam and QMUL.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_PLUGIN_CHANNEL_ADAPTER_H_
+#define _VAMP_PLUGIN_CHANNEL_ADAPTER_H_
+
+#include "hostguard.h"
+#include "PluginWrapper.h"
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginChannelAdapter.h)
+
+namespace Vamp {
+
+namespace HostExt {
+
+/**
+ * \class PluginChannelAdapter PluginChannelAdapter.h <vamp-hostsdk/PluginChannelAdapter.h>
+ *
+ * PluginChannelAdapter is a Vamp plugin adapter that implements a
+ * policy for management of plugins that expect a different number of
+ * input channels from the number actually available in the source
+ * audio data.
+ *
+ * A host using PluginChannelAdapter may ignore the getMinChannelCount
+ * and getMaxChannelCount reported by the plugin, and still expect the
+ * plugin to run.
+ *
+ * PluginChannelAdapter implements the following policy:
+ *
+ *  - If the plugin supports the provided number of channels directly,
+ *  PluginChannelAdapter will just run the plugin as normal.
+ *
+ *  - If the plugin only supports exactly one channel but more than
+ *  one channel is provided, PluginChannelAdapter will use the mean of
+ *  the channels.  This ensures that the resulting values remain
+ *  within the same magnitude range as expected for mono data.
+ *
+ *  - If the plugin requires more than one channel but exactly one is
+ *  provided, the provided channel will be duplicated across all the
+ *  plugin input channels.
+ *
+ * If none of the above apply:
+ * 
+ *  - If the plugin requires more channels than are provided, the
+ *  minimum acceptable number of channels will be produced by adding
+ *  empty (zero valued) channels to those provided.
+ *
+ *  - If the plugin requires fewer channels than are provided, the
+ *  maximum acceptable number of channels will be produced by
+ *  discarding the excess channels.
+ *
+ * Hosts requiring a different channel policy from the above will need
+ * to implement it themselves, instead of using PluginChannelAdapter.
+ *
+ * Note that PluginChannelAdapter does not override the minimum and
+ * maximum channel counts returned by the wrapped plugin.  The host
+ * will need to be aware that it is using a PluginChannelAdapter, and
+ * be prepared to ignore these counts as necessary.  (This contrasts
+ * with the approach used in PluginInputDomainAdapter, which aims to
+ * make the host completely unaware of which underlying input domain
+ * is in fact in use.)
+ * 
+ * (The rationale for this is that a host may wish to use the
+ * PluginChannelAdapter but still discriminate in some way on the
+ * basis of the number of channels actually supported.  For example, a
+ * simple stereo audio host may prefer to reject plugins that require
+ * more than two channels on the grounds that doesn't actually
+ * understand what they are for, rather than allow the channel adapter
+ * to make a potentially meaningless channel conversion for them.)
+ *
+ * In every respect other than its management of channels, the
+ * PluginChannelAdapter behaves identically to the plugin that it
+ * wraps.  The wrapped plugin will be deleted when the wrapper is
+ * deleted.
+ *
+ * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
+ */
+
+class PluginChannelAdapter : public PluginWrapper
+{
+public:
+    /**
+     * Construct a PluginChannelAdapter wrapping the given plugin.
+     * The adapter takes ownership of the plugin, which will be
+     * deleted when the adapter is deleted.
+     */
+    PluginChannelAdapter(Plugin *plugin);
+    virtual ~PluginChannelAdapter();
+
+    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
+
+    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
+
+    /**
+     * Call process(), providing interleaved audio data with the
+     * number of channels passed to initialise().  The adapter will
+     * de-interleave into temporary buffers as appropriate before
+     * calling process().
+     *
+     * \note This function was introduced in version 1.4 of the Vamp
+     * plugin SDK.
+     */
+    FeatureSet processInterleaved(const float *inputBuffer, RealTime timestamp);
+
+protected:
+    class Impl;
+    Impl *m_impl;
+};
+
+}
+
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginChannelAdapter.h)
+
+#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginHostAdapter.h b/libs/vamp-sdk/vamp-hostsdk/PluginHostAdapter.h
new file mode 100644
index 0000000..2ca1d69
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/PluginHostAdapter.h
@@ -0,0 +1,123 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_PLUGIN_HOST_ADAPTER_H_
+#define _VAMP_PLUGIN_HOST_ADAPTER_H_
+
+#include "hostguard.h"
+#include "Plugin.h"
+
+#include <vamp/vamp.h>
+
+#include <vector>
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginHostAdapter.h)
+
+namespace Vamp {
+
+/**
+ * \class PluginHostAdapter PluginHostAdapter.h <vamp-hostsdk/PluginHostAdapter.h>
+ * 
+ * PluginHostAdapter is a wrapper class that a Vamp host can use to
+ * make the C-language VampPluginDescriptor object appear as a C++
+ * Vamp::Plugin object.
+ *
+ * The Vamp API is defined in vamp/vamp.h as a C API.  The C++ objects
+ * used for convenience by plugins and hosts actually communicate
+ * using the C low-level API, but the details of this communication
+ * are handled seamlessly by the Vamp SDK implementation provided the
+ * plugin and host use the proper C++ wrapper objects.
+ *
+ * See also PluginAdapter, the plugin-side wrapper that makes a C++
+ * plugin object available using the C query API.
+ */
+
+class PluginHostAdapter : public Plugin
+{
+public:
+    PluginHostAdapter(const VampPluginDescriptor *descriptor,
+                      float inputSampleRate);
+    virtual ~PluginHostAdapter();
+    
+    static std::vector<std::string> getPluginPath();
+
+    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
+    void reset();
+
+    InputDomain getInputDomain() const;
+
+    unsigned int getVampApiVersion() const;
+    std::string getIdentifier() const;
+    std::string getName() const;
+    std::string getDescription() const;
+    std::string getMaker() const;
+    int getPluginVersion() const;
+    std::string getCopyright() const;
+
+    ParameterList getParameterDescriptors() const;
+    float getParameter(std::string) const;
+    void setParameter(std::string, float);
+
+    ProgramList getPrograms() const;
+    std::string getCurrentProgram() const;
+    void selectProgram(std::string);
+
+    size_t getPreferredStepSize() const;
+    size_t getPreferredBlockSize() const;
+
+    size_t getMinChannelCount() const;
+    size_t getMaxChannelCount() const;
+
+    OutputList getOutputDescriptors() const;
+
+    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
+
+    FeatureSet getRemainingFeatures();
+
+protected:
+    void convertFeatures(VampFeatureList *, FeatureSet &);
+
+    const VampPluginDescriptor *m_descriptor;
+    VampPluginHandle m_handle;
+};
+
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginHostAdapter.h)
+
+#endif
+
+
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginInputDomainAdapter.h b/libs/vamp-sdk/vamp-hostsdk/PluginInputDomainAdapter.h
new file mode 100644
index 0000000..7f7c11c
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/PluginInputDomainAdapter.h
@@ -0,0 +1,136 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006-2007 Chris Cannam and QMUL.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_
+#define _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_
+
+#include "hostguard.h"
+#include "PluginWrapper.h"
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginInputDomainAdapter.h)
+
+namespace Vamp {
+
+namespace HostExt {
+
+/**
+ * \class PluginInputDomainAdapter PluginInputDomainAdapter.h <vamp-hostsdk/PluginInputDomainAdapter.h>
+ * 
+ * PluginInputDomainAdapter is a Vamp plugin adapter that converts
+ * time-domain input into frequency-domain input for plugins that need
+ * it.  This permits a host to use time- and frequency-domain plugins
+ * interchangeably without needing to handle the conversion itself.
+ *
+ * This adapter uses a basic Hanning windowed FFT that supports
+ * power-of-two block sizes only.  If a frequency domain plugin
+ * requests a non-power-of-two blocksize, the adapter will adjust it
+ * to a nearby power of two instead.  Thus, getPreferredBlockSize()
+ * will always return a power of two if the wrapped plugin is a
+ * frequency domain one.  If the plugin doesn't accept the adjusted
+ * power of two block size, initialise() will fail.
+ *
+ * The adapter provides no way for the host to discover whether the
+ * underlying plugin is actually a time or frequency domain plugin
+ * (except that if the preferred block size is not a power of two, it
+ * must be a time domain plugin).
+ *
+ * The FFT implementation is simple and self-contained, but unlikely
+ * to be the fastest available: a host can usually do better if it
+ * cares enough.
+ *
+ * In every respect other than its input domain handling, the
+ * PluginInputDomainAdapter behaves identically to the plugin that it
+ * wraps.  The wrapped plugin will be deleted when the wrapper is
+ * deleted.
+ *
+ * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
+ */
+
+class PluginInputDomainAdapter : public PluginWrapper
+{
+public:
+    /**
+     * Construct a PluginInputDomainAdapter wrapping the given plugin.
+     * The adapter takes ownership of the plugin, which will be
+     * deleted when the adapter is deleted.
+     */
+    PluginInputDomainAdapter(Plugin *plugin);
+    virtual ~PluginInputDomainAdapter();
+    
+    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
+
+    InputDomain getInputDomain() const;
+
+    size_t getPreferredStepSize() const;
+    size_t getPreferredBlockSize() const;
+
+    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
+
+    /**
+     * Return the amount by which the timestamps supplied to process()
+     * are being incremented when they are passed to the plugin's own
+     * process() implementation.
+     *
+     * The Vamp API mandates that the timestamp passed to the plugin
+     * for time-domain input should be the time of the first sample in
+     * the block, but the timestamp passed for frequency-domain input
+     * should be the timestamp of the centre of the block.
+     *
+     * The PluginInputDomainAdapter adjusts its timestamps properly so
+     * that the plugin receives correct times, but in some
+     * circumstances (such as for establishing the correct timing of
+     * implicitly-timed features, i.e. features without their own
+     * timestamps) the host may need to be aware that this adjustment
+     * is taking place.
+     *
+     * If the plugin requires time-domain input, this function will
+     * return zero.  The result of calling this function before
+     * initialise() has been called is undefined.
+     */
+    RealTime getTimestampAdjustment() const;
+
+protected:
+    class Impl;
+    Impl *m_impl;
+};
+
+}
+
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginInputDomainAdapter.h)
+
+#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginLoader.h b/libs/vamp-sdk/vamp-hostsdk/PluginLoader.h
new file mode 100644
index 0000000..4d1daff
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/PluginLoader.h
@@ -0,0 +1,243 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006-2007 Chris Cannam and QMUL.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_PLUGIN_LOADER_H_
+#define _VAMP_PLUGIN_LOADER_H_
+
+#include <vector>
+#include <string>
+#include <map>
+
+#include "hostguard.h"
+#include "PluginWrapper.h"
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginLoader.h)
+
+namespace Vamp {
+
+class Plugin;
+
+namespace HostExt {
+
+/**
+ * \class PluginLoader PluginLoader.h <vamp-hostsdk/PluginLoader.h>
+ * 
+ * Vamp::HostExt::PluginLoader is a convenience class for discovering
+ * and loading Vamp plugins using the typical plugin-path, library
+ * naming, and categorisation conventions described in the Vamp SDK
+ * documentation.  This class is intended to greatly simplify the task
+ * of becoming a Vamp plugin host for any C++ application.
+ * 
+ * Hosts are not required by the Vamp specification to use the same
+ * plugin search path and naming conventions as implemented by this
+ * class, and are certainly not required to use this actual class.
+ * But we do strongly recommend it.
+ *
+ * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
+ */
+
+class PluginLoader
+{
+public:
+    /**
+     * Obtain a pointer to the singleton instance of PluginLoader.
+     * Use this to obtain your loader object.
+     */
+    static PluginLoader *getInstance();
+
+    /**
+     * PluginKey is a string type that is used to identify a plugin
+     * uniquely within the scope of "the current system".  It consists
+     * of the lower-cased base name of the plugin library, a colon
+     * separator, and the identifier string for the plugin.  It is
+     * only meaningful in the context of a given plugin path (the one
+     * returned by PluginHostAdapter::getPluginPath()).
+     *
+     * Use composePluginKey() to construct a plugin key from a known
+     * plugin library name and identifier.
+     *
+     * Note: the fact that the library component of the key is
+     * lower-cased implies that library names are matched
+     * case-insensitively by the PluginLoader class, regardless of the
+     * case sensitivity of the underlying filesystem.  (Plugin
+     * identifiers _are_ case sensitive, however.)  Also, it is not
+     * possible to portably extract a working library name from a
+     * plugin key, as the result may fail on case-sensitive
+     * filesystems.  Use getLibraryPathForPlugin() instead.
+     */
+    typedef std::string PluginKey;
+
+    /**
+     * PluginKeyList is a sequence of plugin keys, such as returned by
+     * listPlugins().
+     */
+    typedef std::vector<PluginKey> PluginKeyList;
+
+    /**
+     * PluginCategoryHierarchy is a sequence of general->specific
+     * category names, as may be associated with a single plugin.
+     * This sequence describes the location of a plugin within a
+     * category forest, containing the human-readable names of the
+     * plugin's category tree root, followed by each of the nodes down
+     * to the leaf containing the plugin.
+     *
+     * \see getPluginCategory()
+     */
+    typedef std::vector<std::string> PluginCategoryHierarchy;
+
+    /**
+     * Search for all available Vamp plugins, and return a list of
+     * them in the order in which they were found.
+     */
+    PluginKeyList listPlugins();
+
+    /**
+     * AdapterFlags contains a set of values that may be OR'd together
+     * to indicate in which circumstances PluginLoader should use a
+     * plugin adapter to make a plugin easier to use for a host that
+     * does not want to cater for complex features.
+     *
+     * The available flags are:
+     * 
+     * ADAPT_INPUT_DOMAIN - If the plugin expects frequency domain
+     * input, wrap it in a PluginInputDomainAdapter that automatically
+     * converts the plugin to one that expects time-domain input.
+     * This enables a host to accommodate time- and frequency-domain
+     * plugins without needing to do any conversion itself.
+     *
+     * ADAPT_CHANNEL_COUNT - Wrap the plugin in a PluginChannelAdapter
+     * to handle any mismatch between the number of channels of audio
+     * the plugin can handle and the number available in the host.
+     * This enables a host to use plugins that may require the input
+     * to be mixed down to mono, etc., without having to worry about
+     * doing that itself.
+     *
+     * ADAPT_BUFFER_SIZE - Wrap the plugin in a PluginBufferingAdapter
+     * permitting the host to provide audio input using any block
+     * size, with no overlap, regardless of the plugin's preferred
+     * block size (suitable for hosts that read from non-seekable
+     * streaming media, for example).  This adapter introduces some
+     * run-time overhead and also changes the semantics of the plugin
+     * slightly (see the PluginBufferingAdapter header documentation
+     * for details).
+     *
+     * ADAPT_ALL_SAFE - Perform all available adaptations that are
+     * meaningful for the plugin and "safe".  Currently this means to
+     * ADAPT_INPUT_DOMAIN if the plugin wants FrequencyDomain input;
+     * ADAPT_CHANNEL_COUNT always; and ADAPT_BUFFER_SIZE never.
+     * 
+     * ADAPT_ALL - Perform all available adaptations that are
+     * meaningful for the plugin.
+     * 
+     * See PluginInputDomainAdapter, PluginChannelAdapter and
+     * PluginBufferingAdapter for more details of the classes that the
+     * loader may use if these flags are set.
+     */
+    enum AdapterFlags {
+
+        ADAPT_INPUT_DOMAIN  = 0x01,
+        ADAPT_CHANNEL_COUNT = 0x02,
+        ADAPT_BUFFER_SIZE   = 0x04,
+
+        ADAPT_ALL_SAFE      = 0x03,
+
+        ADAPT_ALL           = 0xff
+    };
+
+    /**
+     * Load a Vamp plugin, given its identifying key.  If the plugin
+     * could not be loaded, returns 0.
+     *
+     * The returned plugin should be deleted (using the standard C++
+     * delete keyword) after use.
+     *
+     * \param adapterFlags a bitwise OR of the values in the AdapterFlags
+     * enumeration, indicating under which circumstances an adapter should be
+     * used to wrap the original plugin.  If adapterFlags is 0, no
+     * optional adapters will be used.  Otherwise, the returned plugin
+     * may be of an adapter class type which will behave identically
+     * to the original plugin, apart from any particular features
+     * implemented by the adapter itself.
+     * 
+     * \see AdapterFlags, PluginInputDomainAdapter, PluginChannelAdapter
+     */
+    Plugin *loadPlugin(PluginKey key,
+                       float inputSampleRate,
+                       int adapterFlags = 0);
+
+    /**
+     * Given a Vamp plugin library name and plugin identifier, return
+     * the corresponding plugin key in a form suitable for passing in to
+     * loadPlugin().
+     */
+    PluginKey composePluginKey(std::string libraryName,
+                               std::string identifier);
+
+    /**
+     * Return the category hierarchy for a Vamp plugin, given its
+     * identifying key.
+     *
+     * If the plugin has no category information, return an empty
+     * hierarchy.
+     *
+     * \see PluginCategoryHierarchy
+     */
+    PluginCategoryHierarchy getPluginCategory(PluginKey plugin);
+
+    /**
+     * Return the file path of the dynamic library from which the
+     * given plugin will be loaded (if available).
+     */
+    std::string getLibraryPathForPlugin(PluginKey plugin);
+
+protected:
+    PluginLoader();
+    virtual ~PluginLoader();
+
+    class Impl;
+    Impl *m_impl;
+
+    static PluginLoader *m_instance;
+};
+
+}
+
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginLoader.h)
+
+#endif
+
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginSummarisingAdapter.h b/libs/vamp-sdk/vamp-hostsdk/PluginSummarisingAdapter.h
new file mode 100644
index 0000000..e9c14f5
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/PluginSummarisingAdapter.h
@@ -0,0 +1,197 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006-2008 Chris Cannam and QMUL.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_PLUGIN_SUMMARISING_ADAPTER_H_
+#define _VAMP_PLUGIN_SUMMARISING_ADAPTER_H_
+
+#include "hostguard.h"
+#include "PluginWrapper.h"
+
+#include <set>
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginSummarisingAdapter.h)
+
+namespace Vamp {
+
+namespace HostExt {
+
+/**
+ * \class PluginSummarisingAdapter PluginSummarisingAdapter.h <vamp-hostsdk/PluginSummarisingAdapter.h>
+ *
+ * PluginSummarisingAdapter is a Vamp plugin adapter that provides
+ * summarisation methods such as mean and median averages of output
+ * features, for use in any context where an available plugin produces
+ * individual values but the result that is actually needed is some
+ * sort of aggregate.
+ *
+ * To make use of PluginSummarisingAdapter, the host should configure,
+ * initialise and run the plugin through the adapter interface just as
+ * normal.  Then, after the process and getRemainingFeatures methods
+ * have been properly called and processing is complete, the host may
+ * call getSummaryForOutput or getSummaryForAllOutputs to obtain
+ * summarised features: averages, maximum values, etc, depending on
+ * the SummaryType passed to the function.
+ *
+ * By default PluginSummarisingAdapter calculates a single summary of
+ * each output's feature across the whole duration of processed audio.
+ * A host needing summaries of sub-segments of the whole audio may
+ * call setSummarySegmentBoundaries before retrieving the summaries,
+ * providing a list of times such that one summary will be provided
+ * for each segment between two consecutive times.
+ *
+ * PluginSummarisingAdapter is straightforward rather than fast.  It
+ * calculates all of the summary types for all outputs always, and
+ * then returns only the ones that are requested.  It is designed on
+ * the basis that, for most features, summarising and storing
+ * summarised results is far cheaper than calculating the results in
+ * the first place.  If this is not true for your particular feature,
+ * PluginSummarisingAdapter may not be the best approach for you.
+ *
+ * \note This class was introduced in version 2.0 of the Vamp plugin SDK.
+ */
+
+class PluginSummarisingAdapter : public PluginWrapper
+{
+public:
+    /**
+     * Construct a PluginSummarisingAdapter wrapping the given plugin.
+     * The adapter takes ownership of the plugin, which will be
+     * deleted when the adapter is deleted.
+     */
+    PluginSummarisingAdapter(Plugin *plugin); 
+    virtual ~PluginSummarisingAdapter();
+
+    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
+
+    void reset();
+
+    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
+    FeatureSet getRemainingFeatures();
+
+    typedef std::set<RealTime> SegmentBoundaries;
+
+    /**
+     * Specify a series of segment boundaries, such that one summary
+     * will be returned for each of the contiguous intra-boundary
+     * segments.  This function must be called before
+     * getSummaryForOutput or getSummaryForAllOutputs.
+     * 
+     * Note that you cannot retrieve results with multiple different
+     * segmentations by repeatedly calling this function followed by
+     * one of the getSummary functions.  The summaries are all
+     * calculated at the first call to any getSummary function, and
+     * once the summaries have been calculated, they remain
+     * calculated.
+     */
+    void setSummarySegmentBoundaries(const SegmentBoundaries &);
+
+    enum SummaryType {
+        Minimum            = 0,
+        Maximum            = 1,
+        Mean               = 2,
+        Median             = 3,
+        Mode               = 4,
+        Sum                = 5,
+        Variance           = 6,
+        StandardDeviation  = 7,
+        Count              = 8,
+
+        UnknownSummaryType = 999
+    };
+
+    /**
+     * AveragingMethod indicates how the adapter should handle
+     * average-based summaries of features whose results are not
+     * equally spaced in time.
+     *
+     * If SampleAverage is specified, summary types based on averages
+     * will be calculated by treating each result individually without
+     * regard to its time: for example, the mean will be the sum of
+     * all values divided by the number of values.
+     *
+     * If ContinuousTimeAverage is specified, each feature will be
+     * considered to have a duration, either as specified in the
+     * feature's duration field, or until the following feature: thus,
+     * for example, the mean will be the sum of the products of values
+     * and durations, divided by the total duration.
+     *
+     * Although SampleAverage is useful for many types of feature,
+     * ContinuousTimeAverage is essential for some situations, for
+     * example finding the result that spans the largest proportion of
+     * the input given a feature that emits a new result only when the
+     * value changes (the modal value integrated over time).
+     */
+    enum AveragingMethod {
+        SampleAverage         = 0,
+        ContinuousTimeAverage = 1,
+    };
+
+    /**
+     * Return summaries of the features that were returned on the
+     * given output, using the given SummaryType and AveragingMethod.
+     *
+     * The plugin must have been fully run (process() and
+     * getRemainingFeatures() calls all made as appropriate) before
+     * this function is called.
+     */
+    FeatureList getSummaryForOutput(int output,
+                                    SummaryType type,
+                                    AveragingMethod method = SampleAverage);
+
+    /**
+     * Return summaries of the features that were returned on all of
+     * the plugin's outputs, using the given SummaryType and
+     * AveragingMethod.
+     *
+     * The plugin must have been fully run (process() and
+     * getRemainingFeatures() calls all made as appropriate) before
+     * this function is called.
+     */
+    FeatureSet getSummaryForAllOutputs(SummaryType type,
+                                       AveragingMethod method = SampleAverage);
+
+protected:
+    class Impl;
+    Impl *m_impl;
+};
+
+}
+
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginSummarisingAdapter.h)
+
+#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h b/libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h
new file mode 100644
index 0000000..357050d
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/PluginWrapper.h
@@ -0,0 +1,135 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006-2007 Chris Cannam and QMUL.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_PLUGIN_WRAPPER_H_
+#define _VAMP_PLUGIN_WRAPPER_H_
+
+#include "hostguard.h"
+#include <vamp-hostsdk/Plugin.h>
+
+_VAMP_SDK_HOSTSPACE_BEGIN(PluginWrapper.h)
+
+namespace Vamp {
+
+namespace HostExt {
+
+/**
+ * \class PluginWrapper PluginWrapper.h <vamp-hostsdk/PluginWrapper.h>
+ * 
+ * PluginWrapper is a simple base class for adapter plugins.  It takes
+ * a pointer to a "to be wrapped" Vamp plugin on construction, and
+ * provides implementations of all the Vamp plugin methods that simply
+ * delegate through to the wrapped plugin.  A subclass can therefore
+ * override only the methods that are meaningful for the particular
+ * adapter.
+ *
+ * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
+ */
+
+class PluginWrapper : public Plugin
+{
+public:
+    virtual ~PluginWrapper();
+    
+    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
+    void reset();
+
+    InputDomain getInputDomain() const;
+
+    unsigned int getVampApiVersion() const;
+    std::string getIdentifier() const;
+    std::string getName() const;
+    std::string getDescription() const;
+    std::string getMaker() const;
+    int getPluginVersion() const;
+    std::string getCopyright() const;
+
+    ParameterList getParameterDescriptors() const;
+    float getParameter(std::string) const;
+    void setParameter(std::string, float);
+
+    ProgramList getPrograms() const;
+    std::string getCurrentProgram() const;
+    void selectProgram(std::string);
+
+    size_t getPreferredStepSize() const;
+    size_t getPreferredBlockSize() const;
+
+    size_t getMinChannelCount() const;
+    size_t getMaxChannelCount() const;
+
+    OutputList getOutputDescriptors() const;
+
+    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
+
+    FeatureSet getRemainingFeatures();
+
+    /**
+     * Return a pointer to the plugin wrapper of type WrapperType
+     * surrounding this wrapper's plugin, if present.
+     *
+     * This is useful in situations where a plugin is wrapped by
+     * multiple different wrappers (one inside another) and the host
+     * wants to call some wrapper-specific function on one of the
+     * layers without having to care about the order in which they are
+     * wrapped.  For example, the plugin returned by
+     * PluginLoader::loadPlugin may have more than one wrapper; if the
+     * host wanted to query or fine-tune some property of one of them,
+     * it would be hard to do so without knowing the order of the
+     * wrappers.  This function therefore gives direct access to the
+     * wrapper of a particular type.
+     */
+    template <typename WrapperType>
+    WrapperType *getWrapper() {
+        WrapperType *w = dynamic_cast<WrapperType *>(this);
+        if (w) return w;
+        PluginWrapper *pw = dynamic_cast<PluginWrapper *>(m_plugin);
+        if (pw) return pw->getWrapper<WrapperType>();
+        return 0;
+    }
+
+protected:
+    PluginWrapper(Plugin *plugin); // I take ownership of plugin
+    Plugin *m_plugin;
+};
+
+}
+
+}
+
+_VAMP_SDK_HOSTSPACE_END(PluginWrapper.h)
+
+#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/RealTime.h b/libs/vamp-sdk/vamp-hostsdk/RealTime.h
new file mode 100644
index 0000000..d789b6a
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/RealTime.h
@@ -0,0 +1,46 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_HOSTSDK_REALTIME_H_
+#define _VAMP_HOSTSDK_REALTIME_H_
+
+// Do not include vamp-sdk/RealTime.h directly from host code.  Always
+// use this header instead.
+
+#include "hostguard.h"
+#include <vamp-sdk/RealTime.h>
+
+#endif
diff --git a/libs/vamp-sdk/vamp-hostsdk/hostguard.h b/libs/vamp-sdk/vamp-hostsdk/hostguard.h
new file mode 100644
index 0000000..3698d84
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/hostguard.h
@@ -0,0 +1,69 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_HOSTSDK_HOSTGUARD_H_
+#define _VAMP_HOSTSDK_HOSTGUARD_H_
+
+#ifdef _VAMP_IN_PLUGINSDK
+#error You have included headers from both vamp-sdk and vamp-hostsdk in the same source file. Please include only vamp-sdk headers in plugin code, and only vamp-hostsdk headers in host code.
+#else
+
+#define _VAMP_IN_HOSTSDK
+
+#ifdef _VAMP_NO_HOST_NAMESPACE
+#define _VAMP_SDK_HOSTSPACE_BEGIN(h)
+#define _VAMP_SDK_HOSTSPACE_END(h)
+#define _VAMP_SDK_PLUGSPACE_BEGIN(h)
+#define _VAMP_SDK_PLUGSPACE_END(h)
+#else
+#define _VAMP_SDK_HOSTSPACE_BEGIN(h) \
+	namespace _VampHost {
+
+#define _VAMP_SDK_HOSTSPACE_END(h) \
+	} \
+	using namespace _VampHost;
+#define _VAMP_SDK_PLUGSPACE_BEGIN(h) \
+	namespace _VampHost {
+
+#define _VAMP_SDK_PLUGSPACE_END(h) \
+	} \
+	using namespace _VampHost;
+#endif
+
+#endif
+
+#endif
+
diff --git a/libs/vamp-sdk/vamp-hostsdk/vamp-hostsdk.h b/libs/vamp-sdk/vamp-hostsdk/vamp-hostsdk.h
new file mode 100644
index 0000000..f32583d
--- /dev/null
+++ b/libs/vamp-sdk/vamp-hostsdk/vamp-hostsdk.h
@@ -0,0 +1,53 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_HOSTSDK_SINGLE_INCLUDE_H_
+#define _VAMP_HOSTSDK_SINGLE_INCLUDE_H_
+
+#include "PluginBase.h"
+#include "PluginBufferingAdapter.h"
+#include "PluginChannelAdapter.h"
+#include "Plugin.h"
+#include "PluginHostAdapter.h"
+#include "PluginInputDomainAdapter.h"
+#include "PluginLoader.h"
+#include "PluginSummarisingAdapter.h"
+#include "PluginWrapper.h"
+#include "RealTime.h"
+
+#endif
+
+
diff --git a/libs/vamp-sdk/vamp-sdk/Plugin.h b/libs/vamp-sdk/vamp-sdk/Plugin.h
index 159bf4f..4709b19 100644
--- a/libs/vamp-sdk/vamp-sdk/Plugin.h
+++ b/libs/vamp-sdk/vamp-sdk/Plugin.h
@@ -34,16 +34,19 @@
     authorization.
 */
 
-#ifndef _VAMP_PLUGIN_H_
-#define _VAMP_PLUGIN_H_
-
-#include "PluginBase.h"
-#include "RealTime.h"
+#ifndef _VAMP_SDK_PLUGIN_H_
+#define _VAMP_SDK_PLUGIN_H_
 
 #include <string>
 #include <vector>
 #include <map>
 
+#include "PluginBase.h"
+#include "RealTime.h"
+
+#include "plugguard.h"
+_VAMP_SDK_PLUGSPACE_BEGIN(Plugin.h)
+
 namespace Vamp {
 
 /**
@@ -200,7 +203,7 @@ public:
 	/**
 	 * The name of the output, in computer-usable form.  Should be
 	 * reasonably short and without whitespace or punctuation, using
-         * the characters [a-zA-Z0-9_] only.
+         * the characters [a-zA-Z0-9_-] only.
          * Example: "zero_crossing_count"
 	 */
 	std::string identifier;
@@ -304,6 +307,16 @@ public:
 	 * this to zero if that behaviour is not desired.
 	 */
 	float sampleRate;
+
+        /**
+         * True if the returned results for this output are known to
+         * have a duration field.
+         */
+        bool hasDuration;
+
+        OutputDescriptor() : // defaults for mandatory non-class-type members
+            hasFixedBinCount(false), hasKnownExtents(false), isQuantized(false),
+            sampleType(OneSamplePerStep), hasDuration(false) { }
     };
 
     typedef std::vector<OutputDescriptor> OutputList;
@@ -319,17 +332,34 @@ public:
     {
 	/**
 	 * True if an output feature has its own timestamp.  This is
-	 * mandatory if the output has VariableSampleRate, and is
-	 * likely to be disregarded otherwise.
+	 * mandatory if the output has VariableSampleRate, optional if
+	 * the output has FixedSampleRate, and unused if the output
+	 * has OneSamplePerStep.
 	 */
 	bool hasTimestamp;
 
 	/**
 	 * Timestamp of the output feature.  This is mandatory if the
-	 * output has VariableSampleRate, and is likely to be
-	 * disregarded otherwise.  Undefined if hasTimestamp is false.
+	 * output has VariableSampleRate or if the output has
+	 * FixedSampleRate and hasTimestamp is true, and unused
+	 * otherwise.
 	 */
 	RealTime timestamp;
+
+        /**
+         * True if an output feature has a specified duration.  This
+         * is optional if the output has VariableSampleRate or
+         * FixedSampleRate, and and unused if the output has
+         * OneSamplePerStep.
+         */
+        bool hasDuration;
+
+        /**
+         * Duration of the output feature.  This is mandatory if the
+         * output has VariableSampleRate or FixedSampleRate and
+         * hasDuration is true, and unused otherwise.
+         */
+        RealTime duration;
 	
 	/**
 	 * Results for a single sample of this feature.  If the output
@@ -342,9 +372,13 @@ public:
 	 * Label for the sample of this feature.
 	 */
 	std::string label;
+
+        Feature() : // defaults for mandatory non-class-type members
+            hasTimestamp(false), hasDuration(false) { }
     };
 
     typedef std::vector<Feature> FeatureList;
+
     typedef std::map<int, FeatureList> FeatureSet; // key is output no
 
     /**
@@ -353,9 +387,9 @@ public:
      * If the plugin's inputDomain is TimeDomain, inputBuffers will
      * point to one array of floats per input channel, and each of
      * these arrays will contain blockSize consecutive audio samples
-     * (the host will zero-pad as necessary).  The timestamp will be
-     * the real time in seconds of the start of the supplied block of
-     * samples.
+     * (the host will zero-pad as necessary).  The timestamp in this
+     * case will be the real time in seconds of the start of the
+     * supplied block of samples.
      *
      * If the plugin's inputDomain is FrequencyDomain, inputBuffers
      * will point to one array of floats per input channel, and each
@@ -399,6 +433,8 @@ protected:
 
 }
 
+_VAMP_SDK_PLUGSPACE_END(Plugin.h)
+
 #endif
 
 
diff --git a/libs/vamp-sdk/vamp-sdk/PluginAdapter.cpp b/libs/vamp-sdk/vamp-sdk/PluginAdapter.cpp
deleted file mode 100644
index ff02b87..0000000
--- a/libs/vamp-sdk/vamp-sdk/PluginAdapter.cpp
+++ /dev/null
@@ -1,856 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006 Chris Cannam.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#include <cstring>
-#include <cstdlib>
-#include "PluginAdapter.h"
-
-#include <cstdlib>
-#include <cstring>
-
-//#define DEBUG_PLUGIN_ADAPTER 1
-
-
-namespace Vamp {
-
-class PluginAdapterBase::Impl
-{
-public:
-    Impl(PluginAdapterBase *);
-    ~Impl();
-
-    const VampPluginDescriptor *getDescriptor();
-
-protected:
-    PluginAdapterBase *m_base;
-
-    static VampPluginHandle vampInstantiate(const VampPluginDescriptor *desc,
-                                          float inputSampleRate);
-
-    static void vampCleanup(VampPluginHandle handle);
-
-    static int vampInitialise(VampPluginHandle handle, unsigned int channels,
-                             unsigned int stepSize, unsigned int blockSize);
-
-    static void vampReset(VampPluginHandle handle);
-
-    static float vampGetParameter(VampPluginHandle handle, int param);
-    static void vampSetParameter(VampPluginHandle handle, int param, float value);
-
-    static unsigned int vampGetCurrentProgram(VampPluginHandle handle);
-    static void vampSelectProgram(VampPluginHandle handle, unsigned int program);
-
-    static unsigned int vampGetPreferredStepSize(VampPluginHandle handle);
-    static unsigned int vampGetPreferredBlockSize(VampPluginHandle handle);
-    static unsigned int vampGetMinChannelCount(VampPluginHandle handle);
-    static unsigned int vampGetMaxChannelCount(VampPluginHandle handle);
-
-    static unsigned int vampGetOutputCount(VampPluginHandle handle);
-
-    static VampOutputDescriptor *vampGetOutputDescriptor(VampPluginHandle handle,
-                                                       unsigned int i);
-
-    static void vampReleaseOutputDescriptor(VampOutputDescriptor *desc);
-
-    static VampFeatureList *vampProcess(VampPluginHandle handle,
-                                        const float *const *inputBuffers,
-                                        int sec,
-                                        int nsec);
-
-    static VampFeatureList *vampGetRemainingFeatures(VampPluginHandle handle);
-
-    static void vampReleaseFeatureSet(VampFeatureList *fs);
-
-    void cleanup(Plugin *plugin);
-    void checkOutputMap(Plugin *plugin);
-    unsigned int getOutputCount(Plugin *plugin);
-    VampOutputDescriptor *getOutputDescriptor(Plugin *plugin,
-                                             unsigned int i);
-    VampFeatureList *process(Plugin *plugin,
-                             const float *const *inputBuffers,
-                             int sec, int nsec);
-    VampFeatureList *getRemainingFeatures(Plugin *plugin);
-    VampFeatureList *convertFeatures(Plugin *plugin,
-                                     const Plugin::FeatureSet &features);
-    
-    // maps both plugins and descriptors to adapters
-    typedef std::map<const void *, Impl *> AdapterMap;
-    static AdapterMap *m_adapterMap;
-    static Impl *lookupAdapter(VampPluginHandle);
-
-    bool m_populated;
-    VampPluginDescriptor m_descriptor;
-    Plugin::ParameterList m_parameters;
-    Plugin::ProgramList m_programs;
-    
-    typedef std::map<Plugin *, Plugin::OutputList *> OutputMap;
-    OutputMap m_pluginOutputs;
-
-    std::map<Plugin *, VampFeatureList *> m_fs;
-    std::map<Plugin *, std::vector<size_t> > m_fsizes;
-    std::map<Plugin *, std::vector<std::vector<size_t> > > m_fvsizes;
-    void resizeFS(Plugin *plugin, int n);
-    void resizeFL(Plugin *plugin, int n, size_t sz);
-    void resizeFV(Plugin *plugin, int n, int j, size_t sz);
-};
-
-PluginAdapterBase::PluginAdapterBase()
-{
-    m_impl = new Impl(this);
-}
-
-PluginAdapterBase::~PluginAdapterBase()
-{
-    delete m_impl;
-}
-
-const VampPluginDescriptor *
-PluginAdapterBase::getDescriptor()
-{
-    return m_impl->getDescriptor();
-}
-
-PluginAdapterBase::Impl::Impl(PluginAdapterBase *base) :
-    m_base(base),
-    m_populated(false)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl[" << this << "]::Impl" << std::endl;
-#endif
-}
-
-const VampPluginDescriptor *
-PluginAdapterBase::Impl::getDescriptor()
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl[" << this << "]::getDescriptor" << std::endl;
-#endif
-
-    if (m_populated) return &m_descriptor;
-
-    Plugin *plugin = m_base->createPlugin(48000);
-
-    if (plugin->getVampApiVersion() != VAMP_API_VERSION) {
-        std::cerr << "Vamp::PluginAdapterBase::Impl::getDescriptor: ERROR: "
-                  << "Plugin object API version "
-                  << plugin->getVampApiVersion()
-                  << " does not match actual API version "
-                  << VAMP_API_VERSION << std::endl;
-        delete plugin;
-        return 0;
-    }
-
-    m_parameters = plugin->getParameterDescriptors();
-    m_programs = plugin->getPrograms();
-
-    m_descriptor.vampApiVersion = plugin->getVampApiVersion();
-    m_descriptor.identifier = strdup(plugin->getIdentifier().c_str());
-    m_descriptor.name = strdup(plugin->getName().c_str());
-    m_descriptor.description = strdup(plugin->getDescription().c_str());
-    m_descriptor.maker = strdup(plugin->getMaker().c_str());
-    m_descriptor.pluginVersion = plugin->getPluginVersion();
-    m_descriptor.copyright = strdup(plugin->getCopyright().c_str());
-    
-    m_descriptor.parameterCount = m_parameters.size();
-    m_descriptor.parameters = (const VampParameterDescriptor **)
-        malloc(m_parameters.size() * sizeof(VampParameterDescriptor));
-
-    unsigned int i;
-    
-    for (i = 0; i < m_parameters.size(); ++i) {
-        VampParameterDescriptor *desc = (VampParameterDescriptor *)
-            malloc(sizeof(VampParameterDescriptor));
-        desc->identifier = strdup(m_parameters[i].identifier.c_str());
-        desc->name = strdup(m_parameters[i].name.c_str());
-        desc->description = strdup(m_parameters[i].description.c_str());
-        desc->unit = strdup(m_parameters[i].unit.c_str());
-        desc->minValue = m_parameters[i].minValue;
-        desc->maxValue = m_parameters[i].maxValue;
-        desc->defaultValue = m_parameters[i].defaultValue;
-        desc->isQuantized = m_parameters[i].isQuantized;
-        desc->quantizeStep = m_parameters[i].quantizeStep;
-        desc->valueNames = 0;
-        if (desc->isQuantized && !m_parameters[i].valueNames.empty()) {
-            desc->valueNames = (const char **)
-                malloc((m_parameters[i].valueNames.size()+1) * sizeof(char *));
-            for (unsigned int j = 0; j < m_parameters[i].valueNames.size(); ++j) {
-                desc->valueNames[j] = strdup(m_parameters[i].valueNames[j].c_str());
-            }
-            desc->valueNames[m_parameters[i].valueNames.size()] = 0;
-        }
-        m_descriptor.parameters[i] = desc;
-    }
-    
-    m_descriptor.programCount = m_programs.size();
-    m_descriptor.programs = (const char **)
-        malloc(m_programs.size() * sizeof(const char *));
-    
-    for (i = 0; i < m_programs.size(); ++i) {
-        m_descriptor.programs[i] = strdup(m_programs[i].c_str());
-    }
-    
-    if (plugin->getInputDomain() == Plugin::FrequencyDomain) {
-        m_descriptor.inputDomain = vampFrequencyDomain;
-    } else {
-        m_descriptor.inputDomain = vampTimeDomain;
-    }
-
-    m_descriptor.instantiate = vampInstantiate;
-    m_descriptor.cleanup = vampCleanup;
-    m_descriptor.initialise = vampInitialise;
-    m_descriptor.reset = vampReset;
-    m_descriptor.getParameter = vampGetParameter;
-    m_descriptor.setParameter = vampSetParameter;
-    m_descriptor.getCurrentProgram = vampGetCurrentProgram;
-    m_descriptor.selectProgram = vampSelectProgram;
-    m_descriptor.getPreferredStepSize = vampGetPreferredStepSize;
-    m_descriptor.getPreferredBlockSize = vampGetPreferredBlockSize;
-    m_descriptor.getMinChannelCount = vampGetMinChannelCount;
-    m_descriptor.getMaxChannelCount = vampGetMaxChannelCount;
-    m_descriptor.getOutputCount = vampGetOutputCount;
-    m_descriptor.getOutputDescriptor = vampGetOutputDescriptor;
-    m_descriptor.releaseOutputDescriptor = vampReleaseOutputDescriptor;
-    m_descriptor.process = vampProcess;
-    m_descriptor.getRemainingFeatures = vampGetRemainingFeatures;
-    m_descriptor.releaseFeatureSet = vampReleaseFeatureSet;
-    
-    if (!m_adapterMap) {
-        m_adapterMap = new AdapterMap;
-    }
-    (*m_adapterMap)[&m_descriptor] = this;
-
-    delete plugin;
-
-    m_populated = true;
-    return &m_descriptor;
-}
-
-PluginAdapterBase::Impl::~Impl()
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl[" << this << "]::~Impl" << std::endl;
-#endif
-
-    if (!m_populated) return;
-
-    free((void *)m_descriptor.identifier);
-    free((void *)m_descriptor.name);
-    free((void *)m_descriptor.description);
-    free((void *)m_descriptor.maker);
-    free((void *)m_descriptor.copyright);
-        
-    for (unsigned int i = 0; i < m_descriptor.parameterCount; ++i) {
-        const VampParameterDescriptor *desc = m_descriptor.parameters[i];
-        free((void *)desc->identifier);
-        free((void *)desc->name);
-        free((void *)desc->description);
-        free((void *)desc->unit);
-        if (desc->valueNames) {
-            for (unsigned int j = 0; desc->valueNames[j]; ++j) {
-                free((void *)desc->valueNames[j]);
-            }
-            free((void *)desc->valueNames);
-        }
-    }
-    free((void *)m_descriptor.parameters);
-
-    for (unsigned int i = 0; i < m_descriptor.programCount; ++i) {
-        free((void *)m_descriptor.programs[i]);
-    }
-    free((void *)m_descriptor.programs);
-
-    if (m_adapterMap) {
-        
-        m_adapterMap->erase(&m_descriptor);
-
-        if (m_adapterMap->empty()) {
-            delete m_adapterMap;
-            m_adapterMap = 0;
-        }
-    }
-}
-
-PluginAdapterBase::Impl *
-PluginAdapterBase::Impl::lookupAdapter(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::lookupAdapter(" << handle << ")" << std::endl;
-#endif
-
-    if (!m_adapterMap) return 0;
-    AdapterMap::const_iterator i = m_adapterMap->find(handle);
-    if (i == m_adapterMap->end()) return 0;
-    return i->second;
-}
-
-VampPluginHandle
-PluginAdapterBase::Impl::vampInstantiate(const VampPluginDescriptor *desc,
-                                   float inputSampleRate)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampInstantiate(" << desc << ")" << std::endl;
-#endif
-
-    if (!m_adapterMap) {
-        m_adapterMap = new AdapterMap();
-    }
-
-    if (m_adapterMap->find(desc) == m_adapterMap->end()) {
-        std::cerr << "WARNING: PluginAdapterBase::Impl::vampInstantiate: Descriptor " << desc << " not in adapter map" << std::endl;
-        return 0;
-    }
-
-    Impl *adapter = (*m_adapterMap)[desc];
-    if (desc != &adapter->m_descriptor) return 0;
-
-    Plugin *plugin = adapter->m_base->createPlugin(inputSampleRate);
-    if (plugin) {
-        (*m_adapterMap)[plugin] = adapter;
-    }
-
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampInstantiate(" << desc << "): returning handle " << plugin << std::endl;
-#endif
-
-    return plugin;
-}
-
-void
-PluginAdapterBase::Impl::vampCleanup(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampCleanup(" << handle << ")" << std::endl;
-#endif
-
-    Impl *adapter = lookupAdapter(handle);
-    if (!adapter) {
-        delete ((Plugin *)handle);
-        return;
-    }
-    adapter->cleanup(((Plugin *)handle));
-}
-
-int
-PluginAdapterBase::Impl::vampInitialise(VampPluginHandle handle,
-                                  unsigned int channels,
-                                  unsigned int stepSize,
-                                  unsigned int blockSize)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampInitialise(" << handle << ", " << channels << ", " << stepSize << ", " << blockSize << ")" << std::endl;
-#endif
-
-    bool result = ((Plugin *)handle)->initialise
-        (channels, stepSize, blockSize);
-    return result ? 1 : 0;
-}
-
-void
-PluginAdapterBase::Impl::vampReset(VampPluginHandle handle) 
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampReset(" << handle << ")" << std::endl;
-#endif
-
-    ((Plugin *)handle)->reset();
-}
-
-float
-PluginAdapterBase::Impl::vampGetParameter(VampPluginHandle handle,
-                                    int param) 
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampGetParameter(" << handle << ", " << param << ")" << std::endl;
-#endif
-
-    Impl *adapter = lookupAdapter(handle);
-    if (!adapter) return 0.0;
-    Plugin::ParameterList &list = adapter->m_parameters;
-    return ((Plugin *)handle)->getParameter(list[param].identifier);
-}
-
-void
-PluginAdapterBase::Impl::vampSetParameter(VampPluginHandle handle,
-                                    int param, float value)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampSetParameter(" << handle << ", " << param << ", " << value << ")" << std::endl;
-#endif
-
-    Impl *adapter = lookupAdapter(handle);
-    if (!adapter) return;
-    Plugin::ParameterList &list = adapter->m_parameters;
-    ((Plugin *)handle)->setParameter(list[param].identifier, value);
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetCurrentProgram(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampGetCurrentProgram(" << handle << ")" << std::endl;
-#endif
-
-    Impl *adapter = lookupAdapter(handle);
-    if (!adapter) return 0;
-    Plugin::ProgramList &list = adapter->m_programs;
-    std::string program = ((Plugin *)handle)->getCurrentProgram();
-    for (unsigned int i = 0; i < list.size(); ++i) {
-        if (list[i] == program) return i;
-    }
-    return 0;
-}
-
-void
-PluginAdapterBase::Impl::vampSelectProgram(VampPluginHandle handle,
-                                     unsigned int program)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampSelectProgram(" << handle << ", " << program << ")" << std::endl;
-#endif
-
-    Impl *adapter = lookupAdapter(handle);
-    if (!adapter) return;
-    Plugin::ProgramList &list = adapter->m_programs;
-    ((Plugin *)handle)->selectProgram(list[program]);
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetPreferredStepSize(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampGetPreferredStepSize(" << handle << ")" << std::endl;
-#endif
-
-    return ((Plugin *)handle)->getPreferredStepSize();
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetPreferredBlockSize(VampPluginHandle handle) 
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampGetPreferredBlockSize(" << handle << ")" << std::endl;
-#endif
-
-    return ((Plugin *)handle)->getPreferredBlockSize();
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetMinChannelCount(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampGetMinChannelCount(" << handle << ")" << std::endl;
-#endif
-
-    return ((Plugin *)handle)->getMinChannelCount();
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetMaxChannelCount(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampGetMaxChannelCount(" << handle << ")" << std::endl;
-#endif
-
-    return ((Plugin *)handle)->getMaxChannelCount();
-}
-
-unsigned int
-PluginAdapterBase::Impl::vampGetOutputCount(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampGetOutputCount(" << handle << ")" << std::endl;
-#endif
-
-    Impl *adapter = lookupAdapter(handle);
-
-//    std::cerr << "vampGetOutputCount: handle " << handle << " -> adapter "<< adapter << std::endl;
-
-    if (!adapter) return 0;
-    return adapter->getOutputCount((Plugin *)handle);
-}
-
-VampOutputDescriptor *
-PluginAdapterBase::Impl::vampGetOutputDescriptor(VampPluginHandle handle,
-                                           unsigned int i)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampGetOutputDescriptor(" << handle << ", " << i << ")" << std::endl;
-#endif
-
-    Impl *adapter = lookupAdapter(handle);
-
-//    std::cerr << "vampGetOutputDescriptor: handle " << handle << " -> adapter "<< adapter << std::endl;
-
-    if (!adapter) return 0;
-    return adapter->getOutputDescriptor((Plugin *)handle, i);
-}
-
-void
-PluginAdapterBase::Impl::vampReleaseOutputDescriptor(VampOutputDescriptor *desc)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampReleaseOutputDescriptor(" << desc << ")" << std::endl;
-#endif
-
-    if (desc->identifier) free((void *)desc->identifier);
-    if (desc->name) free((void *)desc->name);
-    if (desc->description) free((void *)desc->description);
-    if (desc->unit) free((void *)desc->unit);
-    if (desc->hasFixedBinCount && desc->binNames) {
-        for (unsigned int i = 0; i < desc->binCount; ++i) {
-            if (desc->binNames[i]) {
-                free((void *)desc->binNames[i]);
-            }
-        }
-    }
-    if (desc->binNames) free((void *)desc->binNames);
-    free((void *)desc);
-}
-
-VampFeatureList *
-PluginAdapterBase::Impl::vampProcess(VampPluginHandle handle,
-                               const float *const *inputBuffers,
-                               int sec,
-                               int nsec)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampProcess(" << handle << ", " << sec << ", " << nsec << ")" << std::endl;
-#endif
-
-    Impl *adapter = lookupAdapter(handle);
-    if (!adapter) return 0;
-    return adapter->process((Plugin *)handle,
-                            inputBuffers, sec, nsec);
-}
-
-VampFeatureList *
-PluginAdapterBase::Impl::vampGetRemainingFeatures(VampPluginHandle handle)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampGetRemainingFeatures(" << handle << ")" << std::endl;
-#endif
-
-    Impl *adapter = lookupAdapter(handle);
-    if (!adapter) return 0;
-    return adapter->getRemainingFeatures((Plugin *)handle);
-}
-
-void
-PluginAdapterBase::Impl::vampReleaseFeatureSet(VampFeatureList *fs)
-{
-#ifdef DEBUG_PLUGIN_ADAPTER
-    std::cerr << "PluginAdapterBase::Impl::vampReleaseFeatureSet" << std::endl;
-#endif
-}
-
-void 
-PluginAdapterBase::Impl::cleanup(Plugin *plugin)
-{
-    if (m_fs.find(plugin) != m_fs.end()) {
-        size_t outputCount = 0;
-        if (m_pluginOutputs[plugin]) {
-            outputCount = m_pluginOutputs[plugin]->size();
-        }
-        VampFeatureList *list = m_fs[plugin];
-        for (unsigned int i = 0; i < outputCount; ++i) {
-            for (unsigned int j = 0; j < m_fsizes[plugin][i]; ++j) {
-                if (list[i].features[j].label) {
-                    free(list[i].features[j].label);
-                }
-                if (list[i].features[j].values) {
-                    free(list[i].features[j].values);
-                }
-            }
-            if (list[i].features) free(list[i].features);
-        }
-        m_fs.erase(plugin);
-        m_fsizes.erase(plugin);
-        m_fvsizes.erase(plugin);
-    }
-
-    if (m_pluginOutputs.find(plugin) != m_pluginOutputs.end()) {
-        delete m_pluginOutputs[plugin];
-        m_pluginOutputs.erase(plugin);
-    }
-
-    if (m_adapterMap) {
-        m_adapterMap->erase(plugin);
-
-        if (m_adapterMap->empty()) {
-            delete m_adapterMap;
-            m_adapterMap = 0;
-        }
-    }
-
-    delete ((Plugin *)plugin);
-}
-
-void 
-PluginAdapterBase::Impl::checkOutputMap(Plugin *plugin)
-{
-    if (m_pluginOutputs.find(plugin) == m_pluginOutputs.end() ||
-        !m_pluginOutputs[plugin]) {
-        m_pluginOutputs[plugin] = new Plugin::OutputList
-            (plugin->getOutputDescriptors());
-//        std::cerr << "PluginAdapterBase::Impl::checkOutputMap: Have " << m_pluginOutputs[plugin]->size() << " outputs for plugin " << plugin->getIdentifier() << std::endl;
-    }
-}
-
-unsigned int 
-PluginAdapterBase::Impl::getOutputCount(Plugin *plugin)
-{
-    checkOutputMap(plugin);
-    return m_pluginOutputs[plugin]->size();
-}
-
-VampOutputDescriptor *
-PluginAdapterBase::Impl::getOutputDescriptor(Plugin *plugin,
-                                       unsigned int i)
-{
-    checkOutputMap(plugin);
-    Plugin::OutputDescriptor &od =
-        (*m_pluginOutputs[plugin])[i];
-
-    VampOutputDescriptor *desc = (VampOutputDescriptor *)
-        malloc(sizeof(VampOutputDescriptor));
-
-    desc->identifier = strdup(od.identifier.c_str());
-    desc->name = strdup(od.name.c_str());
-    desc->description = strdup(od.description.c_str());
-    desc->unit = strdup(od.unit.c_str());
-    desc->hasFixedBinCount = od.hasFixedBinCount;
-    desc->binCount = od.binCount;
-
-    if (od.hasFixedBinCount && od.binCount > 0) {
-        desc->binNames = (const char **)
-            malloc(od.binCount * sizeof(const char *));
-        
-        for (unsigned int i = 0; i < od.binCount; ++i) {
-            if (i < od.binNames.size()) {
-                desc->binNames[i] = strdup(od.binNames[i].c_str());
-            } else {
-                desc->binNames[i] = 0;
-            }
-        }
-    } else {
-        desc->binNames = 0;
-    }
-
-    desc->hasKnownExtents = od.hasKnownExtents;
-    desc->minValue = od.minValue;
-    desc->maxValue = od.maxValue;
-    desc->isQuantized = od.isQuantized;
-    desc->quantizeStep = od.quantizeStep;
-
-    switch (od.sampleType) {
-    case Plugin::OutputDescriptor::OneSamplePerStep:
-        desc->sampleType = vampOneSamplePerStep; break;
-    case Plugin::OutputDescriptor::FixedSampleRate:
-        desc->sampleType = vampFixedSampleRate; break;
-    case Plugin::OutputDescriptor::VariableSampleRate:
-        desc->sampleType = vampVariableSampleRate; break;
-    }
-
-    desc->sampleRate = od.sampleRate;
-
-    return desc;
-}
-    
-VampFeatureList *
-PluginAdapterBase::Impl::process(Plugin *plugin,
-                           const float *const *inputBuffers,
-                           int sec, int nsec)
-{
-//    std::cerr << "PluginAdapterBase::Impl::process" << std::endl;
-    RealTime rt(sec, nsec);
-    checkOutputMap(plugin);
-    return convertFeatures(plugin, plugin->process(inputBuffers, rt));
-}
-    
-VampFeatureList *
-PluginAdapterBase::Impl::getRemainingFeatures(Plugin *plugin)
-{
-//    std::cerr << "PluginAdapterBase::Impl::getRemainingFeatures" << std::endl;
-    checkOutputMap(plugin);
-    return convertFeatures(plugin, plugin->getRemainingFeatures());
-}
-
-VampFeatureList *
-PluginAdapterBase::Impl::convertFeatures(Plugin *plugin,
-                                   const Plugin::FeatureSet &features)
-{
-    int lastN = -1;
-
-    int outputCount = 0;
-    if (m_pluginOutputs[plugin]) outputCount = m_pluginOutputs[plugin]->size();
-    
-    resizeFS(plugin, outputCount);
-    VampFeatureList *fs = m_fs[plugin];
-
-    for (Plugin::FeatureSet::const_iterator fi = features.begin();
-         fi != features.end(); ++fi) {
-
-        int n = fi->first;
-        
-//        std::cerr << "PluginAdapterBase::Impl::convertFeatures: n = " << n << std::endl;
-
-        if (n >= int(outputCount)) {
-            std::cerr << "WARNING: PluginAdapterBase::Impl::convertFeatures: Too many outputs from plugin (" << n+1 << ", only should be " << outputCount << ")" << std::endl;
-            continue;
-        }
-
-        if (n > lastN + 1) {
-            for (int i = lastN + 1; i < n; ++i) {
-                fs[i].featureCount = 0;
-            }
-        }
-
-        const Plugin::FeatureList &fl = fi->second;
-
-        size_t sz = fl.size();
-        if (sz > m_fsizes[plugin][n]) resizeFL(plugin, n, sz);
-        fs[n].featureCount = sz;
-        
-        for (size_t j = 0; j < sz; ++j) {
-
-//            std::cerr << "PluginAdapterBase::Impl::convertFeatures: j = " << j << std::endl;
-
-            VampFeature *feature = &fs[n].features[j];
-
-            feature->hasTimestamp = fl[j].hasTimestamp;
-            feature->sec = fl[j].timestamp.sec;
-            feature->nsec = fl[j].timestamp.nsec;
-            feature->valueCount = fl[j].values.size();
-
-            if (feature->label) free(feature->label);
-
-            if (fl[j].label.empty()) {
-                feature->label = 0;
-            } else {
-                feature->label = strdup(fl[j].label.c_str());
-            }
-
-            if (feature->valueCount > m_fvsizes[plugin][n][j]) {
-                resizeFV(plugin, n, j, feature->valueCount);
-            }
-
-            for (unsigned int k = 0; k < feature->valueCount; ++k) {
-//                std::cerr << "PluginAdapterBase::Impl::convertFeatures: k = " << k << std::endl;
-                feature->values[k] = fl[j].values[k];
-            }
-        }
-
-        lastN = n;
-    }
-
-    if (lastN == -1) return 0;
-
-    if (int(outputCount) > lastN + 1) {
-        for (int i = lastN + 1; i < int(outputCount); ++i) {
-            fs[i].featureCount = 0;
-        }
-    }
-
-    return fs;
-}
-
-void
-PluginAdapterBase::Impl::resizeFS(Plugin *plugin, int n)
-{
-//    std::cerr << "PluginAdapterBase::Impl::resizeFS(" << plugin << ", " << n << ")" << std::endl;
-
-    int i = m_fsizes[plugin].size();
-    if (i >= n) return;
-
-//    std::cerr << "resizing from " << i << std::endl;
-
-    m_fs[plugin] = (VampFeatureList *)realloc
-        (m_fs[plugin], n * sizeof(VampFeatureList));
-
-    while (i < n) {
-        m_fs[plugin][i].featureCount = 0;
-        m_fs[plugin][i].features = 0;
-        m_fsizes[plugin].push_back(0);
-        m_fvsizes[plugin].push_back(std::vector<size_t>());
-        i++;
-    }
-}
-
-void
-PluginAdapterBase::Impl::resizeFL(Plugin *plugin, int n, size_t sz)
-{
-//    std::cerr << "PluginAdapterBase::Impl::resizeFL(" << plugin << ", " << n << ", "
-//              << sz << ")" << std::endl;
-
-    size_t i = m_fsizes[plugin][n];
-    if (i >= sz) return;
-
-//    std::cerr << "resizing from " << i << std::endl;
-
-    m_fs[plugin][n].features = (VampFeature *)realloc
-        (m_fs[plugin][n].features, sz * sizeof(VampFeature));
-
-    while (m_fsizes[plugin][n] < sz) {
-        m_fs[plugin][n].features[m_fsizes[plugin][n]].valueCount = 0;
-        m_fs[plugin][n].features[m_fsizes[plugin][n]].values = 0;
-        m_fs[plugin][n].features[m_fsizes[plugin][n]].label = 0;
-        m_fvsizes[plugin][n].push_back(0);
-        m_fsizes[plugin][n]++;
-    }
-}
-
-void
-PluginAdapterBase::Impl::resizeFV(Plugin *plugin, int n, int j, size_t sz)
-{
-//    std::cerr << "PluginAdapterBase::Impl::resizeFV(" << plugin << ", " << n << ", "
-//              << j << ", " << sz << ")" << std::endl;
-
-    size_t i = m_fvsizes[plugin][n][j];
-    if (i >= sz) return;
-
-//    std::cerr << "resizing from " << i << std::endl;
-
-    m_fs[plugin][n].features[j].values = (float *)realloc
-        (m_fs[plugin][n].features[j].values, sz * sizeof(float));
-
-    m_fvsizes[plugin][n][j] = sz;
-}
-  
-PluginAdapterBase::Impl::AdapterMap *
-PluginAdapterBase::Impl::m_adapterMap = 0;
-
-}
-
diff --git a/libs/vamp-sdk/vamp-sdk/PluginAdapter.h b/libs/vamp-sdk/vamp-sdk/PluginAdapter.h
index bfc9750..dafd532 100644
--- a/libs/vamp-sdk/vamp-sdk/PluginAdapter.h
+++ b/libs/vamp-sdk/vamp-sdk/PluginAdapter.h
@@ -37,11 +37,13 @@
 #ifndef _VAMP_PLUGIN_ADAPTER_H_
 #define _VAMP_PLUGIN_ADAPTER_H_
 
+#include <map>
 #include <vamp/vamp.h>
 
 #include "Plugin.h"
 
-#include <map>
+#include "plugguard.h"
+_VAMP_SDK_PLUGSPACE_BEGIN(PluginAdapter.h)
 
 namespace Vamp {
 
@@ -113,5 +115,7 @@ protected:
     
 }
 
+_VAMP_SDK_PLUGSPACE_END(PluginAdapter.h)
+
 #endif
 
diff --git a/libs/vamp-sdk/vamp-sdk/PluginBase.h b/libs/vamp-sdk/vamp-sdk/PluginBase.h
index 38d2b49..147ffdc 100644
--- a/libs/vamp-sdk/vamp-sdk/PluginBase.h
+++ b/libs/vamp-sdk/vamp-sdk/PluginBase.h
@@ -34,13 +34,18 @@
     authorization.
 */
 
-#ifndef _VAMP_PLUGIN_BASE_H_
-#define _VAMP_PLUGIN_BASE_H_
+#ifndef _VAMP_SDK_PLUGIN_BASE_H_
+#define _VAMP_SDK_PLUGIN_BASE_H_
 
 #include <string>
 #include <vector>
 
-#define VAMP_SDK_VERSION "1.1"
+#define VAMP_SDK_VERSION "2.0"
+#define VAMP_SDK_MAJOR_VERSION 2
+#define VAMP_SDK_MINOR_VERSION 0
+
+#include "plugguard.h"
+_VAMP_SDK_PLUGSPACE_BEGIN(PluginBase.h)
 
 namespace Vamp {
 
@@ -64,12 +69,12 @@ public:
     /**
      * Get the Vamp API compatibility level of the plugin.
      */
-    virtual unsigned int getVampApiVersion() const { return 1; }
+    virtual unsigned int getVampApiVersion() const { return 2; }
 
     /**
      * Get the computer-usable name of the plugin.  This should be
      * reasonably short and contain no whitespace or punctuation
-     * characters.  It may only contain the characters [a-zA-Z0-9_].
+     * characters.  It may only contain the characters [a-zA-Z0-9_-].
      * This is the authoritative way for a program to identify a
      * plugin within a given library.
      *
@@ -127,7 +132,7 @@ public:
 	/**
 	 * The name of the parameter, in computer-usable form.  Should
 	 * be reasonably short, and may only contain the characters
-	 * [a-zA-Z0-9_].
+	 * [a-zA-Z0-9_-].
 	 */
 	std::string identifier;
 
@@ -190,6 +195,9 @@ public:
          * encoded in the names.
          */
         std::vector<std::string> valueNames;
+
+        ParameterDescriptor() : // the defaults are invalid: you must set them
+            minValue(0), maxValue(0), defaultValue(0), isQuantized(false) { }
     };
 
     typedef std::vector<ParameterDescriptor> ParameterList;
@@ -249,4 +257,6 @@ public:
 
 }
 
+_VAMP_SDK_PLUGSPACE_END(PluginBase.h)
+
 #endif
diff --git a/libs/vamp-sdk/vamp-sdk/PluginHostAdapter.cpp b/libs/vamp-sdk/vamp-sdk/PluginHostAdapter.cpp
deleted file mode 100644
index 4729a62..0000000
--- a/libs/vamp-sdk/vamp-sdk/PluginHostAdapter.cpp
+++ /dev/null
@@ -1,421 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006 Chris Cannam.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#include <cstdlib>
-#include "PluginHostAdapter.h"
-
-#include <cstdlib>
-
-namespace Vamp
-{
-
-PluginHostAdapter::PluginHostAdapter(const VampPluginDescriptor *descriptor,
-                                     float inputSampleRate) :
-    Plugin(inputSampleRate),
-    m_descriptor(descriptor)
-{
-//    std::cerr << "PluginHostAdapter::PluginHostAdapter (plugin = " << descriptor->name << ")" << std::endl;
-    m_handle = m_descriptor->instantiate(m_descriptor, inputSampleRate);
-    if (!m_handle) {
-//        std::cerr << "WARNING: PluginHostAdapter: Plugin instantiation failed for plugin " << m_descriptor->name << std::endl;
-    }
-}
-
-PluginHostAdapter::~PluginHostAdapter()
-{
-//    std::cerr << "PluginHostAdapter::~PluginHostAdapter (plugin = " << m_descriptor->name << ")" << std::endl;
-    if (m_handle) m_descriptor->cleanup(m_handle);
-}
-
-std::vector<std::string>
-PluginHostAdapter::getPluginPath()
-{
-    std::vector<std::string> path;
-    std::string envPath;
-
-    char *cpath = getenv("VAMP_PATH");
-    if (cpath) envPath = cpath;
-
-#ifdef _WIN32
-#define PATH_SEPARATOR ';'
-#define DEFAULT_VAMP_PATH "%ProgramFiles%\\Vamp Plugins"
-#else
-#define PATH_SEPARATOR ':'
-#ifdef __APPLE__
-#define DEFAULT_VAMP_PATH "$HOME/Library/Audio/Plug-Ins/Vamp:/Library/Audio/Plug-Ins/Vamp"
-#else
-#define DEFAULT_VAMP_PATH "$HOME/vamp:$HOME/.vamp:/usr/local/lib/vamp:/usr/lib/vamp"
-#endif
-#endif
-
-    if (envPath == "") {
-        envPath = DEFAULT_VAMP_PATH;
-        char *chome = getenv("HOME");
-        if (chome) {
-            std::string home(chome);
-            std::string::size_type f;
-            while ((f = envPath.find("$HOME")) != std::string::npos &&
-                    f < envPath.length()) {
-                envPath.replace(f, 5, home);
-            }
-        }
-#ifdef _WIN32
-        char *cpfiles = getenv("ProgramFiles");
-        if (!cpfiles) cpfiles = "C:\\Program Files";
-        std::string pfiles(cpfiles);
-        std::string::size_type f;
-        while ((f = envPath.find("%ProgramFiles%")) != std::string::npos &&
-               f < envPath.length()) {
-            envPath.replace(f, 14, pfiles);
-        }
-#endif
-    }
-
-    std::string::size_type index = 0, newindex = 0;
-
-    while ((newindex = envPath.find(PATH_SEPARATOR, index)) < envPath.size()) {
-	path.push_back(envPath.substr(index, newindex - index));
-	index = newindex + 1;
-    }
-    
-    path.push_back(envPath.substr(index));
-
-    return path;
-}
-
-bool
-PluginHostAdapter::initialise(size_t channels,
-                              size_t stepSize,
-                              size_t blockSize)
-{
-    if (!m_handle) return false;
-    return m_descriptor->initialise(m_handle, channels, stepSize, blockSize) ?
-        true : false;
-}
-
-void
-PluginHostAdapter::reset()
-{
-    if (!m_handle) return;
-    m_descriptor->reset(m_handle);
-}
-
-PluginHostAdapter::InputDomain
-PluginHostAdapter::getInputDomain() const
-{
-    if (m_descriptor->inputDomain == vampFrequencyDomain) {
-        return FrequencyDomain;
-    } else {
-        return TimeDomain;
-    }
-}
-
-unsigned int
-PluginHostAdapter::getVampApiVersion() const
-{
-    return m_descriptor->vampApiVersion;
-}
-
-std::string
-PluginHostAdapter::getIdentifier() const
-{
-    return m_descriptor->identifier;
-}
-
-std::string
-PluginHostAdapter::getName() const
-{
-    return m_descriptor->name;
-}
-
-std::string
-PluginHostAdapter::getDescription() const
-{
-    return m_descriptor->description;
-}
-
-std::string
-PluginHostAdapter::getMaker() const
-{
-    return m_descriptor->maker;
-}
-
-int
-PluginHostAdapter::getPluginVersion() const
-{
-    return m_descriptor->pluginVersion;
-}
-
-std::string
-PluginHostAdapter::getCopyright() const
-{
-    return m_descriptor->copyright;
-}
-
-PluginHostAdapter::ParameterList
-PluginHostAdapter::getParameterDescriptors() const
-{
-    ParameterList list;
-    for (unsigned int i = 0; i < m_descriptor->parameterCount; ++i) {
-        const VampParameterDescriptor *spd = m_descriptor->parameters[i];
-        ParameterDescriptor pd;
-        pd.identifier = spd->identifier;
-        pd.name = spd->name;
-        pd.description = spd->description;
-        pd.unit = spd->unit;
-        pd.minValue = spd->minValue;
-        pd.maxValue = spd->maxValue;
-        pd.defaultValue = spd->defaultValue;
-        pd.isQuantized = spd->isQuantized;
-        pd.quantizeStep = spd->quantizeStep;
-        if (pd.isQuantized && spd->valueNames) {
-            for (unsigned int j = 0; spd->valueNames[j]; ++j) {
-                pd.valueNames.push_back(spd->valueNames[j]);
-            }
-        }
-        list.push_back(pd);
-    }
-    return list;
-}
-
-float
-PluginHostAdapter::getParameter(std::string param) const
-{
-    if (!m_handle) return 0.0;
-
-    for (unsigned int i = 0; i < m_descriptor->parameterCount; ++i) {
-        if (param == m_descriptor->parameters[i]->identifier) {
-            return m_descriptor->getParameter(m_handle, i);
-        }
-    }
-
-    return 0.0;
-}
-
-void
-PluginHostAdapter::setParameter(std::string param, 
-                                float value)
-{
-    if (!m_handle) return;
-
-    for (unsigned int i = 0; i < m_descriptor->parameterCount; ++i) {
-        if (param == m_descriptor->parameters[i]->identifier) {
-            m_descriptor->setParameter(m_handle, i, value);
-            return;
-        }
-    }
-}
-
-PluginHostAdapter::ProgramList
-PluginHostAdapter::getPrograms() const
-{
-    ProgramList list;
-    
-    for (unsigned int i = 0; i < m_descriptor->programCount; ++i) {
-        list.push_back(m_descriptor->programs[i]);
-    }
-    
-    return list;
-}
-
-std::string
-PluginHostAdapter::getCurrentProgram() const
-{
-    if (!m_handle) return "";
-
-    int pn = m_descriptor->getCurrentProgram(m_handle);
-    return m_descriptor->programs[pn];
-}
-
-void
-PluginHostAdapter::selectProgram(std::string program)
-{
-    if (!m_handle) return;
-
-    for (unsigned int i = 0; i < m_descriptor->programCount; ++i) {
-        if (program == m_descriptor->programs[i]) {
-            m_descriptor->selectProgram(m_handle, i);
-            return;
-        }
-    }
-}
-
-size_t
-PluginHostAdapter::getPreferredStepSize() const
-{
-    if (!m_handle) return 0;
-    return m_descriptor->getPreferredStepSize(m_handle);
-}
-
-size_t
-PluginHostAdapter::getPreferredBlockSize() const
-{
-    if (!m_handle) return 0;
-    return m_descriptor->getPreferredBlockSize(m_handle);
-}
-
-size_t
-PluginHostAdapter::getMinChannelCount() const
-{
-    if (!m_handle) return 0;
-    return m_descriptor->getMinChannelCount(m_handle);
-}
-
-size_t
-PluginHostAdapter::getMaxChannelCount() const
-{
-    if (!m_handle) return 0;
-    return m_descriptor->getMaxChannelCount(m_handle);
-}
-
-PluginHostAdapter::OutputList
-PluginHostAdapter::getOutputDescriptors() const
-{
-    OutputList list;
-    if (!m_handle) {
-//        std::cerr << "PluginHostAdapter::getOutputDescriptors: no handle " << std::endl;
-        return list;
-    }
-
-    unsigned int count = m_descriptor->getOutputCount(m_handle);
-
-    for (unsigned int i = 0; i < count; ++i) {
-        VampOutputDescriptor *sd = m_descriptor->getOutputDescriptor(m_handle, i);
-        OutputDescriptor d;
-        d.identifier = sd->identifier;
-        d.name = sd->name;
-        d.description = sd->description;
-        d.unit = sd->unit;
-        d.hasFixedBinCount = sd->hasFixedBinCount;
-        d.binCount = sd->binCount;
-        if (d.hasFixedBinCount) {
-            for (unsigned int j = 0; j < sd->binCount; ++j) {
-                d.binNames.push_back(sd->binNames[j] ? sd->binNames[j] : "");
-            }
-        }
-        d.hasKnownExtents = sd->hasKnownExtents;
-        d.minValue = sd->minValue;
-        d.maxValue = sd->maxValue;
-        d.isQuantized = sd->isQuantized;
-        d.quantizeStep = sd->quantizeStep;
-
-        switch (sd->sampleType) {
-        case vampOneSamplePerStep:
-            d.sampleType = OutputDescriptor::OneSamplePerStep; break;
-        case vampFixedSampleRate:
-            d.sampleType = OutputDescriptor::FixedSampleRate; break;
-        case vampVariableSampleRate:
-            d.sampleType = OutputDescriptor::VariableSampleRate; break;
-        }
-
-        d.sampleRate = sd->sampleRate;
-
-        list.push_back(d);
-
-        m_descriptor->releaseOutputDescriptor(sd);
-    }
-
-    return list;
-}
-
-PluginHostAdapter::FeatureSet
-PluginHostAdapter::process(const float *const *inputBuffers,
-                           RealTime timestamp)
-{
-    FeatureSet fs;
-    if (!m_handle) return fs;
-
-    int sec = timestamp.sec;
-    int nsec = timestamp.nsec;
-    
-    VampFeatureList *features = m_descriptor->process(m_handle,
-                                                      inputBuffers,
-                                                      sec, nsec);
-    
-    convertFeatures(features, fs);
-    m_descriptor->releaseFeatureSet(features);
-    return fs;
-}
-
-PluginHostAdapter::FeatureSet
-PluginHostAdapter::getRemainingFeatures()
-{
-    FeatureSet fs;
-    if (!m_handle) return fs;
-    
-    VampFeatureList *features = m_descriptor->getRemainingFeatures(m_handle); 
-
-    convertFeatures(features, fs);
-    m_descriptor->releaseFeatureSet(features);
-    return fs;
-}
-
-void
-PluginHostAdapter::convertFeatures(VampFeatureList *features,
-                                   FeatureSet &fs)
-{
-    if (!features) return;
-
-    unsigned int outputs = m_descriptor->getOutputCount(m_handle);
-
-    for (unsigned int i = 0; i < outputs; ++i) {
-        
-        VampFeatureList &list = features[i];
-
-        if (list.featureCount > 0) {
-
-            for (unsigned int j = 0; j < list.featureCount; ++j) {
-                
-                Feature feature;
-                feature.hasTimestamp = list.features[j].hasTimestamp;
-                feature.timestamp = RealTime(list.features[j].sec,
-                                             list.features[j].nsec);
-
-                for (unsigned int k = 0; k < list.features[j].valueCount; ++k) {
-                    feature.values.push_back(list.features[j].values[k]);
-                }
-
-                if (list.features[j].label) {
-                    feature.label = list.features[j].label;
-                }
-
-                fs[i].push_back(feature);
-            }
-        }
-    }
-}
-
-}
diff --git a/libs/vamp-sdk/vamp-sdk/PluginHostAdapter.h b/libs/vamp-sdk/vamp-sdk/PluginHostAdapter.h
deleted file mode 100644
index 80ae620..0000000
--- a/libs/vamp-sdk/vamp-sdk/PluginHostAdapter.h
+++ /dev/null
@@ -1,117 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006 Chris Cannam.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_HOST_ADAPTER_H_
-#define _VAMP_PLUGIN_HOST_ADAPTER_H_
-
-#include <vamp/vamp.h>
-#include <vamp-sdk/Plugin.h>
-
-#include <vector>
-
-namespace Vamp {
-
-/**
- * \class PluginHostAdapter PluginHostAdapter.h <vamp-sdk/PluginHostAdapter.h>
- * 
- * PluginHostAdapter is a wrapper class that a Vamp host can use to
- * make the C-language VampPluginDescriptor object appear as a C++
- * Vamp::Plugin object.
- *
- * The Vamp API is defined in vamp/vamp.h as a C API.  The C++ objects
- * used for convenience by plugins and hosts actually communicate
- * using the C low-level API, but the details of this communication
- * are handled seamlessly by the Vamp SDK implementation provided the
- * plugin and host use the proper C++ wrapper objects.
- *
- * See also PluginAdapter, the plugin-side wrapper that makes a C++
- * plugin object available using the C query API.
- */
-
-class PluginHostAdapter : public Plugin
-{
-public:
-    PluginHostAdapter(const VampPluginDescriptor *descriptor,
-                      float inputSampleRate);
-    virtual ~PluginHostAdapter();
-    
-    static std::vector<std::string> getPluginPath();
-
-    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-    void reset();
-
-    InputDomain getInputDomain() const;
-
-    unsigned int getVampApiVersion() const;
-    std::string getIdentifier() const;
-    std::string getName() const;
-    std::string getDescription() const;
-    std::string getMaker() const;
-    int getPluginVersion() const;
-    std::string getCopyright() const;
-
-    ParameterList getParameterDescriptors() const;
-    float getParameter(std::string) const;
-    void setParameter(std::string, float);
-
-    ProgramList getPrograms() const;
-    std::string getCurrentProgram() const;
-    void selectProgram(std::string);
-
-    size_t getPreferredStepSize() const;
-    size_t getPreferredBlockSize() const;
-
-    size_t getMinChannelCount() const;
-    size_t getMaxChannelCount() const;
-
-    OutputList getOutputDescriptors() const;
-
-    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
-    FeatureSet getRemainingFeatures();
-
-protected:
-    void convertFeatures(VampFeatureList *, FeatureSet &);
-
-    const VampPluginDescriptor *m_descriptor;
-    VampPluginHandle m_handle;
-};
-
-}
-
-#endif
-
-
diff --git a/libs/vamp-sdk/vamp-sdk/RealTime.cpp b/libs/vamp-sdk/vamp-sdk/RealTime.cpp
deleted file mode 100644
index 0b541cc..0000000
--- a/libs/vamp-sdk/vamp-sdk/RealTime.cpp
+++ /dev/null
@@ -1,254 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006 Chris Cannam.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-/*
-   This is a modified version of a source file from the 
-   Rosegarden MIDI and audio sequencer and notation editor.
-   This file copyright 2000-2006 Chris Cannam.
-   Relicensed by the author as detailed above.
-*/
-
-#include <iostream>
-
-#if (__GNUC__ < 3)
-#include <strstream>
-#define stringstream strstream
-#else
-#include <sstream>
-#endif
-
-using std::cerr;
-using std::endl;
-
-#include "RealTime.h"
-
-#ifndef _WIN32
-#include <sys/time.h>
-#endif
-
-namespace Vamp {
-
-// A RealTime consists of two ints that must be at least 32 bits each.
-// A signed 32-bit int can store values exceeding +/- 2 billion.  This
-// means we can safely use our lower int for nanoseconds, as there are
-// 1 billion nanoseconds in a second and we need to handle double that
-// because of the implementations of addition etc that we use.
-//
-// The maximum valid RealTime on a 32-bit system is somewhere around
-// 68 years: 999999999 nanoseconds longer than the classic Unix epoch.
-
-#define ONE_BILLION 1000000000
-
-RealTime::RealTime(int s, int n) :
-    sec(s), nsec(n)
-{
-    if (sec == 0) {
-	while (nsec <= -ONE_BILLION) { nsec += ONE_BILLION; --sec; }
-	while (nsec >=  ONE_BILLION) { nsec -= ONE_BILLION; ++sec; }
-    } else if (sec < 0) {
-	while (nsec <= -ONE_BILLION) { nsec += ONE_BILLION; --sec; }
-	while (nsec > 0)             { nsec -= ONE_BILLION; ++sec; }
-    } else { 
-	while (nsec >=  ONE_BILLION) { nsec -= ONE_BILLION; ++sec; }
-	while (nsec < 0)             { nsec += ONE_BILLION; --sec; }
-    }
-}
-
-RealTime
-RealTime::fromSeconds(double sec)
-{
-    return RealTime(int(sec), int((sec - int(sec)) * ONE_BILLION + 0.5));
-}
-
-RealTime
-RealTime::fromMilliseconds(int msec)
-{
-    return RealTime(msec / 1000, (msec % 1000) * 1000000);
-}
-
-#ifndef _WIN32
-RealTime
-RealTime::fromTimeval(const struct timeval &tv)
-{
-    return RealTime(tv.tv_sec, tv.tv_usec * 1000);
-}
-#endif
-
-std::ostream &operator<<(std::ostream &out, const RealTime &rt)
-{
-    if (rt < RealTime::zeroTime) {
-	out << "-";
-    } else {
-	out << " ";
-    }
-
-    int s = (rt.sec < 0 ? -rt.sec : rt.sec);
-    int n = (rt.nsec < 0 ? -rt.nsec : rt.nsec);
-
-    out << s << ".";
-
-    int nn(n);
-    if (nn == 0) out << "00000000";
-    else while (nn < (ONE_BILLION / 10)) {
-	out << "0";
-	nn *= 10;
-    }
-    
-    out << n << "R";
-    return out;
-}
-
-std::string
-RealTime::toString() const
-{
-    std::stringstream out;
-    out << *this;
-    
-#if (__GNUC__ < 3)
-    out << std::ends;
-#endif
-
-    std::string s = out.str();
-
-    // remove trailing R
-    return s.substr(0, s.length() - 1);
-}
-
-std::string
-RealTime::toText(bool fixedDp) const
-{
-    if (*this < RealTime::zeroTime) return "-" + (-*this).toText();
-
-    std::stringstream out;
-
-    if (sec >= 3600) {
-	out << (sec / 3600) << ":";
-    }
-
-    if (sec >= 60) {
-	out << (sec % 3600) / 60 << ":";
-    }
-
-    if (sec >= 10) {
-	out << ((sec % 60) / 10);
-    }
-
-    out << (sec % 10);
-    
-    int ms = msec();
-
-    if (ms != 0) {
-	out << ".";
-	out << (ms / 100);
-	ms = ms % 100;
-	if (ms != 0) {
-	    out << (ms / 10);
-	    ms = ms % 10;
-	} else if (fixedDp) {
-	    out << "0";
-	}
-	if (ms != 0) {
-	    out << ms;
-	} else if (fixedDp) {
-	    out << "0";
-	}
-    } else if (fixedDp) {
-	out << ".000";
-    }
-	
-#if (__GNUC__ < 3)
-    out << std::ends;
-#endif
-
-    std::string s = out.str();
-
-    return s;
-}
-
-
-RealTime
-RealTime::operator/(int d) const
-{
-    int secdiv = sec / d;
-    int secrem = sec % d;
-
-    double nsecdiv = (double(nsec) + ONE_BILLION * double(secrem)) / d;
-    
-    return RealTime(secdiv, int(nsecdiv + 0.5));
-}
-
-double 
-RealTime::operator/(const RealTime &r) const
-{
-    double lTotal = double(sec) * ONE_BILLION + double(nsec);
-    double rTotal = double(r.sec) * ONE_BILLION + double(r.nsec);
-    
-    if (rTotal == 0) return 0.0;
-    else return lTotal/rTotal;
-}
-
-long
-RealTime::realTime2Frame(const RealTime &time, unsigned int sampleRate)
-{
-    if (time < zeroTime) return -realTime2Frame(-time, sampleRate);
-
-    // We like integers.  The last term is always zero unless the
-    // sample rate is greater than 1MHz, but hell, you never know...
-
-    long frame =
-	time.sec * sampleRate +
-	(time.msec() * sampleRate) / 1000 +
-	((time.usec() - 1000 * time.msec()) * sampleRate) / 1000000 +
-	((time.nsec - 1000 * time.usec()) * sampleRate) / 1000000000;
-
-    return frame;
-}
-
-RealTime
-RealTime::frame2RealTime(long frame, unsigned int sampleRate)
-{
-    if (frame < 0) return -frame2RealTime(-frame, sampleRate);
-
-    RealTime rt;
-    rt.sec = frame / long(sampleRate);
-    frame -= rt.sec * long(sampleRate);
-    rt.nsec = (int)(((float(frame) * 1000000) / long(sampleRate)) * 1000);
-    return rt;
-}
-
-const RealTime RealTime::zeroTime(0,0);
-
-}
diff --git a/libs/vamp-sdk/vamp-sdk/RealTime.h b/libs/vamp-sdk/vamp-sdk/RealTime.h
index 6b88ed5..297c4ad 100644
--- a/libs/vamp-sdk/vamp-sdk/RealTime.h
+++ b/libs/vamp-sdk/vamp-sdk/RealTime.h
@@ -51,6 +51,9 @@
 struct timeval;
 #endif
 
+#include "plugguard.h"
+_VAMP_SDK_PLUGSPACE_BEGIN(RealTime.h)
+
 namespace Vamp {
 
 /**
@@ -158,5 +161,7 @@ struct RealTime
 std::ostream &operator<<(std::ostream &out, const RealTime &rt);
 
 }
+
+_VAMP_SDK_PLUGSPACE_END(RealTime.h)
     
 #endif
diff --git a/libs/vamp-sdk/vamp-sdk/hostext/PluginBufferingAdapter.cpp b/libs/vamp-sdk/vamp-sdk/hostext/PluginBufferingAdapter.cpp
deleted file mode 100644
index cbe179f..0000000
--- a/libs/vamp-sdk/vamp-sdk/hostext/PluginBufferingAdapter.cpp
+++ /dev/null
@@ -1,516 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006-2007 Chris Cannam and QMUL.
-    This file by Mark Levy and Chris Cannam.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#include <vector>
-#include <map>
-
-#include "PluginBufferingAdapter.h"
-
-using std::vector;
-using std::map;
-
-namespace Vamp {
-	
-namespace HostExt {
-		
-class PluginBufferingAdapter::Impl
-{
-public:
-    Impl(Plugin *plugin, float inputSampleRate);
-    ~Impl();
-		
-    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
-    OutputList getOutputDescriptors() const;
-
-    void reset();
-
-    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-		
-    FeatureSet getRemainingFeatures();
-		
-protected:
-    class RingBuffer
-    {
-    public:
-        RingBuffer(int n) :
-            m_buffer(new float[n+1]), m_writer(0), m_reader(0), m_size(n+1) { }
-        virtual ~RingBuffer() { delete[] m_buffer; }
-
-        int getSize() const { return m_size-1; }
-        void reset() { m_writer = 0; m_reader = 0; }
-
-        int getReadSpace() const {
-            int writer = m_writer, reader = m_reader, space;
-            if (writer > reader) space = writer - reader;
-            else if (writer < reader) space = (writer + m_size) - reader;
-            else space = 0;
-            return space;
-        }
-
-        int getWriteSpace() const {
-            int writer = m_writer;
-            int reader = m_reader;
-            int space = (reader + m_size - writer - 1);
-            if (space >= m_size) space -= m_size;
-            return space;
-        }
-        
-        int peek(float *destination, int n) const {
-
-            int available = getReadSpace();
-
-            if (n > available) {
-                for (int i = available; i < n; ++i) {
-                    destination[i] = 0.f;
-                }
-                n = available;
-            }
-            if (n == 0) return n;
-
-            int reader = m_reader;
-            int here = m_size - reader;
-            const float *const bufbase = m_buffer + reader;
-
-            if (here >= n) {
-                for (int i = 0; i < n; ++i) {
-                    destination[i] = bufbase[i];
-                }
-            } else {
-                for (int i = 0; i < here; ++i) {
-                    destination[i] = bufbase[i];
-                }
-                float *const destbase = destination + here;
-                const int nh = n - here;
-                for (int i = 0; i < nh; ++i) {
-                    destbase[i] = m_buffer[i];
-                }
-            }
-
-            return n;
-        }
-
-        int skip(int n) {
-            
-            int available = getReadSpace();
-            if (n > available) {
-                n = available;
-            }
-            if (n == 0) return n;
-
-            int reader = m_reader;
-            reader += n;
-            while (reader >= m_size) reader -= m_size;
-            m_reader = reader;
-            return n;
-        }
-        
-        int write(const float *source, int n) {
-
-            int available = getWriteSpace();
-            if (n > available) {
-                n = available;
-            }
-            if (n == 0) return n;
-
-            int writer = m_writer;
-            int here = m_size - writer;
-            float *const bufbase = m_buffer + writer;
-            
-            if (here >= n) {
-                for (int i = 0; i < n; ++i) {
-                    bufbase[i] = source[i];
-                }
-            } else {
-                for (int i = 0; i < here; ++i) {
-                    bufbase[i] = source[i];
-                }
-                const int nh = n - here;
-                const float *const srcbase = source + here;
-                float *const buf = m_buffer;
-                for (int i = 0; i < nh; ++i) {
-                    buf[i] = srcbase[i];
-                }
-            }
-
-            writer += n;
-            while (writer >= m_size) writer -= m_size;
-            m_writer = writer;
-
-            return n;
-        }
-
-        int zero(int n) {
-            
-            int available = getWriteSpace();
-            if (n > available) {
-                n = available;
-            }
-            if (n == 0) return n;
-
-            int writer = m_writer;
-            int here = m_size - writer;
-            float *const bufbase = m_buffer + writer;
-
-            if (here >= n) {
-                for (int i = 0; i < n; ++i) {
-                    bufbase[i] = 0.f;
-                }
-            } else {
-                for (int i = 0; i < here; ++i) {
-                    bufbase[i] = 0.f;
-                }
-                const int nh = n - here;
-                for (int i = 0; i < nh; ++i) {
-                    m_buffer[i] = 0.f;
-                }
-            }
-            
-            writer += n;
-            while (writer >= m_size) writer -= m_size;
-            m_writer = writer;
-
-            return n;
-        }
-
-    protected:
-        float *m_buffer;
-        int    m_writer;
-        int    m_reader;
-        int    m_size;
-
-    private:
-        RingBuffer(const RingBuffer &); // not provided
-        RingBuffer &operator=(const RingBuffer &); // not provided
-    };
-
-    Plugin *m_plugin;
-    size_t m_inputStepSize;
-    size_t m_inputBlockSize;
-    size_t m_stepSize;
-    size_t m_blockSize;
-    size_t m_channels;
-    vector<RingBuffer *> m_queue;
-    float **m_buffers;
-    float m_inputSampleRate;
-    RealTime m_timestamp;
-    bool m_unrun;
-    OutputList m_outputs;
-		
-    void processBlock(FeatureSet& allFeatureSets, RealTime timestamp);
-};
-		
-PluginBufferingAdapter::PluginBufferingAdapter(Plugin *plugin) :
-    PluginWrapper(plugin)
-{
-    m_impl = new Impl(plugin, m_inputSampleRate);
-}
-		
-PluginBufferingAdapter::~PluginBufferingAdapter()
-{
-    delete m_impl;
-}
-		
-bool
-PluginBufferingAdapter::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
-    return m_impl->initialise(channels, stepSize, blockSize);
-}
-
-PluginBufferingAdapter::OutputList
-PluginBufferingAdapter::getOutputDescriptors() const
-{
-    return m_impl->getOutputDescriptors();
-}
-
-void
-PluginBufferingAdapter::reset()
-{
-    m_impl->reset();
-}
-		
-PluginBufferingAdapter::FeatureSet
-PluginBufferingAdapter::process(const float *const *inputBuffers,
-                                RealTime timestamp)
-{
-    return m_impl->process(inputBuffers, timestamp);
-}
-		
-PluginBufferingAdapter::FeatureSet
-PluginBufferingAdapter::getRemainingFeatures()
-{
-    return m_impl->getRemainingFeatures();
-}
-		
-PluginBufferingAdapter::Impl::Impl(Plugin *plugin, float inputSampleRate) :
-    m_plugin(plugin),
-    m_inputStepSize(0),
-    m_inputBlockSize(0),
-    m_stepSize(0),
-    m_blockSize(0),
-    m_channels(0), 
-    m_queue(0),
-    m_buffers(0),
-    m_inputSampleRate(inputSampleRate),
-    m_timestamp(RealTime::zeroTime),
-    m_unrun(true)
-{
-    m_outputs = plugin->getOutputDescriptors();
-}
-		
-PluginBufferingAdapter::Impl::~Impl()
-{
-    // the adapter will delete the plugin
-
-    for (size_t i = 0; i < m_channels; ++i) {
-        delete m_queue[i];
-        delete[] m_buffers[i];
-    }
-    delete[] m_buffers;
-}
-
-size_t
-PluginBufferingAdapter::getPreferredStepSize() const
-{
-    return getPreferredBlockSize();
-}
-		
-bool
-PluginBufferingAdapter::Impl::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
-    if (stepSize != blockSize) {
-        std::cerr << "PluginBufferingAdapter::initialise: input stepSize must be equal to blockSize for this adapter (stepSize = " << stepSize << ", blockSize = " << blockSize << ")" << std::endl;
-        return false;
-    }
-
-    m_channels = channels;	
-    m_inputStepSize = stepSize;
-    m_inputBlockSize = blockSize;
-    
-    // use the step and block sizes which the plugin prefers
-    m_stepSize = m_plugin->getPreferredStepSize();
-    m_blockSize = m_plugin->getPreferredBlockSize();
-    
-    // or sensible defaults if it has no preference
-    if (m_blockSize == 0) {
-        m_blockSize = 1024;
-    }
-    if (m_stepSize == 0) {
-        if (m_plugin->getInputDomain() == Vamp::Plugin::FrequencyDomain) {
-            m_stepSize = m_blockSize/2;
-        } else {
-            m_stepSize = m_blockSize;
-        }
-    } else if (m_stepSize > m_blockSize) {
-        if (m_plugin->getInputDomain() == Vamp::Plugin::FrequencyDomain) {
-            m_blockSize = m_stepSize * 2;
-        } else {
-            m_blockSize = m_stepSize;
-        }
-    }
-    
-    // std::cerr << "PluginBufferingAdapter::initialise: stepSize " << m_inputStepSize << " -> " << m_stepSize 
-    // << ", blockSize " << m_inputBlockSize << " -> " << m_blockSize << std::endl;			
-    
-    // current implementation breaks if step is greater than block
-    if (m_stepSize > m_blockSize) {
-        std::cerr << "PluginBufferingAdapter::initialise: plugin's preferred stepSize greater than blockSize, giving up!" << std::endl;
-        return false;
-    }
-
-    m_buffers = new float *[m_channels];
-
-    for (size_t i = 0; i < m_channels; ++i) {
-        m_queue.push_back(new RingBuffer(m_blockSize + m_inputBlockSize));
-        m_buffers[i] = new float[m_blockSize];
-    }
-    
-    return m_plugin->initialise(m_channels, m_stepSize, m_blockSize);
-}
-		
-PluginBufferingAdapter::OutputList
-PluginBufferingAdapter::Impl::getOutputDescriptors() const
-{
-    OutputList outs = m_plugin->getOutputDescriptors();
-    for (size_t i = 0; i < outs.size(); ++i) {
-        if (outs[i].sampleType == OutputDescriptor::OneSamplePerStep) {
-            outs[i].sampleRate = 1.f / m_stepSize;
-        }
-        outs[i].sampleType = OutputDescriptor::VariableSampleRate;
-    }
-    return outs;
-}
-
-void
-PluginBufferingAdapter::Impl::reset()
-{
-    m_timestamp = RealTime::zeroTime;
-    m_unrun = true;
-
-    for (size_t i = 0; i < m_queue.size(); ++i) {
-        m_queue[i]->reset();
-    }
-}
-
-PluginBufferingAdapter::FeatureSet
-PluginBufferingAdapter::Impl::process(const float *const *inputBuffers,
-                                      RealTime timestamp)
-{
-    FeatureSet allFeatureSets;
-
-    if (m_unrun) {
-        m_timestamp = timestamp;
-        m_unrun = false;
-    }
-			
-    // queue the new input
-    
-    for (size_t i = 0; i < m_channels; ++i) {
-        int written = m_queue[i]->write(inputBuffers[i], m_inputBlockSize);
-        if (written < int(m_inputBlockSize) && i == 0) {
-            std::cerr << "WARNING: PluginBufferingAdapter::Impl::process: "
-                      << "Buffer overflow: wrote " << written 
-                      << " of " << m_inputBlockSize 
-                      << " input samples (for plugin step size "
-                      << m_stepSize << ", block size " << m_blockSize << ")"
-                      << std::endl;
-        }
-    }    
-    
-    // process as much as we can
-
-    while (m_queue[0]->getReadSpace() >= int(m_blockSize)) {
-        processBlock(allFeatureSets, timestamp);
-    }	
-    
-    return allFeatureSets;
-}
-    
-PluginBufferingAdapter::FeatureSet
-PluginBufferingAdapter::Impl::getRemainingFeatures() 
-{
-    FeatureSet allFeatureSets;
-    
-    // process remaining samples in queue
-    while (m_queue[0]->getReadSpace() >= int(m_blockSize)) {
-        processBlock(allFeatureSets, m_timestamp);
-    }
-    
-    // pad any last samples remaining and process
-    if (m_queue[0]->getReadSpace() > 0) {
-        for (size_t i = 0; i < m_channels; ++i) {
-            m_queue[i]->zero(m_blockSize - m_queue[i]->getReadSpace());
-        }
-        processBlock(allFeatureSets, m_timestamp);
-    }			
-    
-    // get remaining features			
-
-    FeatureSet featureSet = m_plugin->getRemainingFeatures();
-
-    for (map<int, FeatureList>::iterator iter = featureSet.begin();
-         iter != featureSet.end(); ++iter) {
-        FeatureList featureList = iter->second;
-        for (size_t i = 0; i < featureList.size(); ++i) {
-            allFeatureSets[iter->first].push_back(featureList[i]);
-        }
-    }
-    
-    return allFeatureSets;
-}
-    
-void
-PluginBufferingAdapter::Impl::processBlock(FeatureSet& allFeatureSets,
-                                           RealTime timestamp)
-{
-    for (size_t i = 0; i < m_channels; ++i) {
-        m_queue[i]->peek(m_buffers[i], m_blockSize);
-    }
-
-    FeatureSet featureSet = m_plugin->process(m_buffers, m_timestamp);
-    
-    for (map<int, FeatureList>::iterator iter = featureSet.begin();
-         iter != featureSet.end(); ++iter) {
-	
-        FeatureList featureList = iter->second;
-        int outputNo = iter->first;
-	
-        for (size_t i = 0; i < featureList.size(); ++i) {
-            
-            // make sure the timestamp is set
-            switch (m_outputs[outputNo].sampleType) {
-
-            case OutputDescriptor::OneSamplePerStep:
-		// use our internal timestamp - OK????
-                featureList[i].timestamp = m_timestamp;
-                break;
-
-            case OutputDescriptor::FixedSampleRate:
-		// use our internal timestamp
-                featureList[i].timestamp = m_timestamp;
-                break;
-
-            case OutputDescriptor::VariableSampleRate:
-                break;		// plugin must set timestamp
-
-            default:
-                break;
-            }
-            
-            allFeatureSets[outputNo].push_back(featureList[i]);		
-        }
-    }
-    
-    // step forward
-
-    for (size_t i = 0; i < m_channels; ++i) {
-        m_queue[i]->skip(m_stepSize);
-    }
-    
-    // fake up the timestamp each time we step forward
-
-    long frame = RealTime::realTime2Frame(m_timestamp,
-                                          int(m_inputSampleRate + 0.5));
-    m_timestamp = RealTime::frame2RealTime(frame + m_stepSize,
-                                           int(m_inputSampleRate + 0.5));
-}
-
-}
-	
-}
-
-
diff --git a/libs/vamp-sdk/vamp-sdk/hostext/PluginBufferingAdapter.h b/libs/vamp-sdk/vamp-sdk/hostext/PluginBufferingAdapter.h
deleted file mode 100644
index 24ca6f8..0000000
--- a/libs/vamp-sdk/vamp-sdk/hostext/PluginBufferingAdapter.h
+++ /dev/null
@@ -1,99 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006-2007 Chris Cannam and QMUL.
-    This file by Mark Levy, Copyright 2007 QMUL.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_BUFFERING_ADAPTER_H_
-#define _VAMP_PLUGIN_BUFFERING_ADAPTER_H_
-
-#include "PluginWrapper.h"
-
-namespace Vamp {
-	
-namespace HostExt {
-		
-/**
- * \class PluginBufferingAdapter PluginBufferingAdapter.h <vamp-sdk/hostext/PluginBufferingAdapter.h>
- *
- * PluginBufferingAdapter is a Vamp plugin adapter that allows plugins
- * to be used by a host supplying an audio stream in non-overlapping
- * buffers of arbitrary size.
- *
- * A host using PluginBufferingAdapter may ignore the preferred step
- * and block size reported by the plugin, and still expect the plugin
- * to run.  The value of blockSize and stepSize passed to initialise
- * should be the size of the buffer which the host will supply; the
- * stepSize should be equal to the blockSize.
- *
- * If the internal step size used for the plugin differs from that
- * supplied by the host, the adapter will modify the sample rate
- * specifications for the plugin outputs (setting them all to
- * VariableSampleRate) and set timestamps on the output features for
- * outputs that formerly used a different sample rate specification.
- * This is necessary in order to obtain correct time stamping.
- * 
- * In other respects, the PluginBufferingAdapter behaves identically
- * to the plugin that it wraps. The wrapped plugin will be deleted
- * when the wrapper is deleted.
- */
-		
-class PluginBufferingAdapter : public PluginWrapper
-{
-public:
-    PluginBufferingAdapter(Plugin *plugin); // I take ownership of plugin
-    virtual ~PluginBufferingAdapter();
-    
-    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
-    size_t getPreferredStepSize() const;
-    
-    OutputList getOutputDescriptors() const;
-
-    void reset();
-
-    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-    
-    FeatureSet getRemainingFeatures();
-    
-protected:
-    class Impl;
-    Impl *m_impl;
-};
-    
-}
-
-}
-
-#endif
diff --git a/libs/vamp-sdk/vamp-sdk/hostext/PluginChannelAdapter.cpp b/libs/vamp-sdk/vamp-sdk/hostext/PluginChannelAdapter.cpp
deleted file mode 100644
index fe676bc..0000000
--- a/libs/vamp-sdk/vamp-sdk/hostext/PluginChannelAdapter.cpp
+++ /dev/null
@@ -1,228 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006-2007 Chris Cannam and QMUL.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#include "PluginChannelAdapter.h"
-
-namespace Vamp {
-
-namespace HostExt {
-
-class PluginChannelAdapter::Impl
-{
-public:
-    Impl(Plugin *plugin);
-    ~Impl();
-
-    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
-    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
-protected:
-    Plugin *m_plugin;
-    size_t m_blockSize;
-    size_t m_inputChannels;
-    size_t m_pluginChannels;
-    float **m_buffer;
-    const float **m_forwardPtrs;
-};
-
-PluginChannelAdapter::PluginChannelAdapter(Plugin *plugin) :
-    PluginWrapper(plugin)
-{
-    m_impl = new Impl(plugin);
-}
-
-PluginChannelAdapter::~PluginChannelAdapter()
-{
-    delete m_impl;
-}
-
-bool
-PluginChannelAdapter::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
-    return m_impl->initialise(channels, stepSize, blockSize);
-}
-
-PluginChannelAdapter::FeatureSet
-PluginChannelAdapter::process(const float *const *inputBuffers,
-                              RealTime timestamp)
-{
-    return m_impl->process(inputBuffers, timestamp);
-}
-
-PluginChannelAdapter::Impl::Impl(Plugin *plugin) :
-    m_plugin(plugin),
-    m_blockSize(0),
-    m_inputChannels(0),
-    m_pluginChannels(0),
-    m_buffer(0),
-    m_forwardPtrs(0)
-{
-}
-
-PluginChannelAdapter::Impl::~Impl()
-{
-    // the adapter will delete the plugin
-
-    if (m_buffer) {
-        if (m_inputChannels > m_pluginChannels) {
-            delete[] m_buffer[0];
-        } else {
-            for (size_t i = 0; i < m_pluginChannels - m_inputChannels; ++i) {
-                delete[] m_buffer[i];
-            }
-        }
-        delete[] m_buffer;
-        m_buffer = 0;
-    }
-
-    if (m_forwardPtrs) {
-        delete[] m_forwardPtrs;
-        m_forwardPtrs = 0;
-    }
-}
-
-bool
-PluginChannelAdapter::Impl::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
-    m_blockSize = blockSize;
-
-    size_t minch = m_plugin->getMinChannelCount();
-    size_t maxch = m_plugin->getMaxChannelCount();
-
-    m_inputChannels = channels;
-
-    if (m_inputChannels < minch) {
-
-        m_forwardPtrs = new const float *[minch];
-
-        if (m_inputChannels > 1) {
-            // We need a set of zero-valued buffers to add to the
-            // forwarded pointers
-            m_buffer = new float*[minch - channels];
-            for (size_t i = 0; i < minch; ++i) {
-                m_buffer[i] = new float[blockSize];
-                for (size_t j = 0; j < blockSize; ++j) {
-                    m_buffer[i][j] = 0.f;
-                }
-            }
-        }
-
-        m_pluginChannels = minch;
-
-        // std::cerr << "PluginChannelAdapter::initialise: expanding " << m_inputChannels << " to " << m_pluginChannels << " for plugin" << std::endl;
-
-    } else if (m_inputChannels > maxch) {
-
-        // We only need m_buffer if we are mixing down to a single
-        // channel -- otherwise we can just forward the same float* as
-        // passed in to process(), expecting the excess to be ignored
-
-        if (maxch == 1) {
-            m_buffer = new float *[1];
-            m_buffer[0] = new float[blockSize];
-
-            // std::cerr << "PluginChannelAdapter::initialise: mixing " << m_inputChannels << " to mono for plugin" << std::endl;
-
-        } else {
-            
-            // std::cerr << "PluginChannelAdapter::initialise: reducing " << m_inputChannels << " to " << m_pluginChannels << " for plugin" << std::endl;
-        }
-
-        m_pluginChannels = maxch;
-
-    } else {
- 
-        // std::cerr << "PluginChannelAdapter::initialise: accepting given number of channels (" << m_inputChannels << ")" << std::endl;
-        m_pluginChannels = m_inputChannels;
-    }
-
-    return m_plugin->initialise(m_pluginChannels, stepSize, blockSize);
-}
-
-PluginChannelAdapter::FeatureSet
-PluginChannelAdapter::Impl::process(const float *const *inputBuffers,
-                                    RealTime timestamp)
-{
-//    std::cerr << "PluginChannelAdapter::process: " << m_inputChannels << " -> " << m_pluginChannels << " channels" << std::endl;
-
-    if (m_inputChannels < m_pluginChannels) {
-
-        if (m_inputChannels == 1) {
-            for (size_t i = 0; i < m_pluginChannels; ++i) {
-                m_forwardPtrs[i] = inputBuffers[0];
-            }
-        } else {
-            for (size_t i = 0; i < m_inputChannels; ++i) {
-                m_forwardPtrs[i] = inputBuffers[i];
-            }
-            for (size_t i = m_inputChannels; i < m_pluginChannels; ++i) {
-                m_forwardPtrs[i] = m_buffer[i - m_inputChannels];
-            }
-        }
-
-        return m_plugin->process(m_forwardPtrs, timestamp);
-
-    } else if (m_inputChannels > m_pluginChannels) {
-
-        if (m_pluginChannels == 1) {
-            for (size_t j = 0; j < m_blockSize; ++j) {
-                m_buffer[0][j] = inputBuffers[0][j];
-            }
-            for (size_t i = 1; i < m_inputChannels; ++i) {
-                for (size_t j = 0; j < m_blockSize; ++j) {
-                    m_buffer[0][j] += inputBuffers[i][j];
-                }
-            }
-            for (size_t j = 0; j < m_blockSize; ++j) {
-                m_buffer[0][j] /= m_inputChannels;
-            }
-            return m_plugin->process(m_buffer, timestamp);
-        } else {
-            return m_plugin->process(inputBuffers, timestamp);
-        }
-
-    } else {
-
-        return m_plugin->process(inputBuffers, timestamp);
-    }
-}
-
-}
-
-}
-
-
diff --git a/libs/vamp-sdk/vamp-sdk/hostext/PluginChannelAdapter.h b/libs/vamp-sdk/vamp-sdk/hostext/PluginChannelAdapter.h
deleted file mode 100644
index a2b4d89..0000000
--- a/libs/vamp-sdk/vamp-sdk/hostext/PluginChannelAdapter.h
+++ /dev/null
@@ -1,128 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006-2007 Chris Cannam and QMUL.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_CHANNEL_ADAPTER_H_
-#define _VAMP_PLUGIN_CHANNEL_ADAPTER_H_
-
-#include "PluginWrapper.h"
-
-namespace Vamp {
-
-namespace HostExt {
-
-/**
- * \class PluginChannelAdapter PluginChannelAdapter.h <vamp-sdk/hostext/PluginChannelAdapter.h>
- *
- * PluginChannelAdapter is a Vamp plugin adapter that implements a
- * policy for management of plugins that expect a different number of
- * input channels from the number actually available in the source
- * audio data.
- *
- * A host using PluginChannelAdapter may ignore the getMinChannelCount
- * and getMaxChannelCount reported by the plugin, and still expect the
- * plugin to run.
- *
- * PluginChannelAdapter implements the following policy:
- *
- *  - If the plugin supports the provided number of channels directly,
- *  PluginChannelAdapter will just run the plugin as normal.
- *
- *  - If the plugin only supports exactly one channel but more than
- *  one channel is provided, PluginChannelAdapter will use the mean of
- *  the channels.  This ensures that the resulting values remain
- *  within the same magnitude range as expected for mono data.
- *
- *  - If the plugin requires more than one channel but exactly one is
- *  provided, the provided channel will be duplicated across all the
- *  plugin input channels.
- *
- * If none of the above apply:
- * 
- *  - If the plugin requires more channels than are provided, the
- *  minimum acceptable number of channels will be produced by adding
- *  empty (zero valued) channels to those provided.
- *
- *  - If the plugin requires fewer channels than are provided, the
- *  maximum acceptable number of channels will be produced by
- *  discarding the excess channels.
- *
- * Hosts requiring a different channel policy from the above will need
- * to implement it themselves, instead of using PluginChannelAdapter.
- *
- * Note that PluginChannelAdapter does not override the minimum and
- * maximum channel counts returned by the wrapped plugin.  The host
- * will need to be aware that it is using a PluginChannelAdapter, and
- * be prepared to ignore these counts as necessary.  (This contrasts
- * with the approach used in PluginInputDomainAdapter, which aims to
- * make the host completely unaware of which underlying input domain
- * is in fact in use.)
- * 
- * (The rationale for this is that a host may wish to use the
- * PluginChannelAdapter but still discriminate in some way on the
- * basis of the number of channels actually supported.  For example, a
- * simple stereo audio host may prefer to reject plugins that require
- * more than two channels on the grounds that doesn't actually
- * understand what they are for, rather than allow the channel adapter
- * to make a potentially meaningless channel conversion for them.)
- *
- * In every respect other than its management of channels, the
- * PluginChannelAdapter behaves identically to the plugin that it
- * wraps.  The wrapped plugin will be deleted when the wrapper is
- * deleted.
- *
- * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
- */
-
-class PluginChannelAdapter : public PluginWrapper
-{
-public:
-    PluginChannelAdapter(Plugin *plugin); // I take ownership of plugin
-    virtual ~PluginChannelAdapter();
-
-    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
-    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
-protected:
-    class Impl;
-    Impl *m_impl;
-};
-
-}
-
-}
-
-#endif
diff --git a/libs/vamp-sdk/vamp-sdk/hostext/PluginInputDomainAdapter.cpp b/libs/vamp-sdk/vamp-sdk/hostext/PluginInputDomainAdapter.cpp
deleted file mode 100644
index 273925f..0000000
--- a/libs/vamp-sdk/vamp-sdk/hostext/PluginInputDomainAdapter.cpp
+++ /dev/null
@@ -1,557 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006-2007 Chris Cannam and QMUL.
-  
-    This file is based in part on Don Cross's public domain FFT
-    implementation.
-
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#include "PluginInputDomainAdapter.h"
-
-#include <cmath>
-
-/**
- * If you want to compile using FFTW instead of the built-in FFT
- * implementation for the PluginInputDomainAdapter, define HAVE_FFTW3
- * in the Makefile.
- *
- * Be aware that FFTW is licensed under the GPL -- unlike this SDK,
- * which is provided under a more liberal BSD license in order to
- * permit use in closed source applications.  The use of FFTW would
- * mean that your code would need to be licensed under the GPL as
- * well.  Do not define this symbol unless you understand and accept
- * the implications of this.
- *
- * Parties such as Linux distribution packagers who redistribute this
- * SDK for use in other programs should _not_ define this symbol, as
- * it would change the effective licensing terms under which the SDK
- * was available to third party developers.
- *
- * The default is not to use FFTW, and to use the built-in FFT instead.
- * 
- * Note: The FFTW code uses FFTW_MEASURE, and so will perform badly on
- * its first invocation unless the host has saved and restored FFTW
- * wisdom (see the FFTW documentation).
- */
-#ifdef HAVE_FFTW3
-#include <fftw3.h>
-#endif
-
-namespace Vamp {
-
-namespace HostExt {
-
-class PluginInputDomainAdapter::Impl
-{
-public:
-    Impl(Plugin *plugin, float inputSampleRate);
-    ~Impl();
-    
-    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
-    size_t getPreferredStepSize() const;
-    size_t getPreferredBlockSize() const;
-
-    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
-protected:
-    Plugin *m_plugin;
-    float m_inputSampleRate;
-    int m_channels;
-    int m_blockSize;
-    float **m_freqbuf;
-
-    double *m_ri;
-    double *m_window;
-
-#ifdef HAVE_FFTW3
-    fftw_plan m_plan;
-    fftw_complex *m_cbuf;
-#else
-    double *m_ro;
-    double *m_io;
-    void fft(unsigned int n, bool inverse,
-             double *ri, double *ii, double *ro, double *io);
-#endif
-
-    size_t makeBlockSizeAcceptable(size_t) const;
-};
-
-PluginInputDomainAdapter::PluginInputDomainAdapter(Plugin *plugin) :
-    PluginWrapper(plugin)
-{
-    m_impl = new Impl(plugin, m_inputSampleRate);
-}
-
-PluginInputDomainAdapter::~PluginInputDomainAdapter()
-{
-    delete m_impl;
-}
-  
-bool
-PluginInputDomainAdapter::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
-    return m_impl->initialise(channels, stepSize, blockSize);
-}
-
-Plugin::InputDomain
-PluginInputDomainAdapter::getInputDomain() const
-{
-    return TimeDomain;
-}
-
-size_t
-PluginInputDomainAdapter::getPreferredStepSize() const
-{
-    return m_impl->getPreferredStepSize();
-}
-
-size_t
-PluginInputDomainAdapter::getPreferredBlockSize() const
-{
-    return m_impl->getPreferredBlockSize();
-}
-
-Plugin::FeatureSet
-PluginInputDomainAdapter::process(const float *const *inputBuffers, RealTime timestamp)
-{
-    return m_impl->process(inputBuffers, timestamp);
-}
-
-PluginInputDomainAdapter::Impl::Impl(Plugin *plugin, float inputSampleRate) :
-    m_plugin(plugin),
-    m_inputSampleRate(inputSampleRate),
-    m_channels(0),
-    m_blockSize(0),
-    m_freqbuf(0),
-    m_ri(0),
-    m_window(0),
-#ifdef HAVE_FFTW3
-    m_plan(0),
-    m_cbuf(0)
-#else
-    m_ro(0),
-    m_io(0)
-#endif
-{
-}
-
-PluginInputDomainAdapter::Impl::~Impl()
-{
-    // the adapter will delete the plugin
-
-    if (m_channels > 0) {
-        for (int c = 0; c < m_channels; ++c) {
-            delete[] m_freqbuf[c];
-        }
-        delete[] m_freqbuf;
-#ifdef HAVE_FFTW3
-        if (m_plan) {
-            fftw_destroy_plan(m_plan);
-            fftw_free(m_ri);
-            fftw_free(m_cbuf);
-            m_plan = 0;
-        }
-#else
-        delete[] m_ri;
-        delete[] m_ro;
-        delete[] m_io;
-#endif
-        delete[] m_window;
-    }
-}
-
-// for some visual studii apparently
-#ifndef M_PI
-#define M_PI 3.14159265358979232846
-#endif
-    
-bool
-PluginInputDomainAdapter::Impl::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
-    if (m_plugin->getInputDomain() == TimeDomain) {
-
-        m_blockSize = int(blockSize);
-        m_channels = int(channels);
-
-        return m_plugin->initialise(channels, stepSize, blockSize);
-    }
-
-    if (blockSize < 2) {
-        std::cerr << "ERROR: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: blocksize < 2 not supported" << std::endl;
-        return false;
-    }                
-        
-    if (blockSize & (blockSize-1)) {
-        std::cerr << "ERROR: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: non-power-of-two\nblocksize " << blockSize << " not supported" << std::endl;
-        return false;
-    }
-
-    if (m_channels > 0) {
-        for (int c = 0; c < m_channels; ++c) {
-            delete[] m_freqbuf[c];
-        }
-        delete[] m_freqbuf;
-#ifdef HAVE_FFTW3
-        if (m_plan) {
-            fftw_destroy_plan(m_plan);
-            fftw_free(m_ri);
-            fftw_free(m_cbuf);
-            m_plan = 0;
-        }
-#else
-        delete[] m_ri;
-        delete[] m_ro;
-        delete[] m_io;
-#endif
-        delete[] m_window;
-    }
-
-    m_blockSize = int(blockSize);
-    m_channels = int(channels);
-
-    m_freqbuf = new float *[m_channels];
-    for (int c = 0; c < m_channels; ++c) {
-        m_freqbuf[c] = new float[m_blockSize + 2];
-    }
-    m_window = new double[m_blockSize];
-
-    for (int i = 0; i < m_blockSize; ++i) {
-        // Hanning window
-        m_window[i] = (0.50 - 0.50 * cos((2.0 * M_PI * i) / m_blockSize));
-    }
-
-#ifdef HAVE_FFTW3
-    m_ri = (double *)fftw_malloc(blockSize * sizeof(double));
-    m_cbuf = (fftw_complex *)fftw_malloc((blockSize/2 + 1) * sizeof(fftw_complex));
-    m_plan = fftw_plan_dft_r2c_1d(blockSize, m_ri, m_cbuf, FFTW_MEASURE);
-#else
-    m_ri = new double[m_blockSize];
-    m_ro = new double[m_blockSize];
-    m_io = new double[m_blockSize];
-#endif
-
-    return m_plugin->initialise(channels, stepSize, blockSize);
-}
-
-size_t
-PluginInputDomainAdapter::Impl::getPreferredStepSize() const
-{
-    size_t step = m_plugin->getPreferredStepSize();
-
-    if (step == 0 && (m_plugin->getInputDomain() == FrequencyDomain)) {
-        step = getPreferredBlockSize() / 2;
-    }
-
-    return step;
-}
-
-size_t
-PluginInputDomainAdapter::Impl::getPreferredBlockSize() const
-{
-    size_t block = m_plugin->getPreferredBlockSize();
-
-    if (m_plugin->getInputDomain() == FrequencyDomain) {
-        if (block == 0) {
-            block = 1024;
-        } else {
-            block = makeBlockSizeAcceptable(block);
-        }
-    }
-
-    return block;
-}
-
-size_t
-PluginInputDomainAdapter::Impl::makeBlockSizeAcceptable(size_t blockSize) const
-{
-    if (blockSize < 2) {
-
-        std::cerr << "WARNING: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: blocksize < 2 not" << std::endl
-                  << "supported, increasing from " << blockSize << " to 2" << std::endl;
-        blockSize = 2;
-        
-    } else if (blockSize & (blockSize-1)) {
-            
-#ifdef HAVE_FFTW3
-        // not an issue with FFTW
-#else
-
-        // not a power of two, can't handle that with our built-in FFT
-        // implementation
-
-        size_t nearest = blockSize;
-        size_t power = 0;
-        while (nearest > 1) {
-            nearest >>= 1;
-            ++power;
-        }
-        nearest = 1;
-        while (power) {
-            nearest <<= 1;
-            --power;
-        }
-        
-        if (blockSize - nearest > (nearest*2) - blockSize) {
-            nearest = nearest*2;
-        }
-        
-        std::cerr << "WARNING: Vamp::HostExt::PluginInputDomainAdapter::Impl::initialise: non-power-of-two\nblocksize " << blockSize << " not supported, using blocksize " << nearest << " instead" << std::endl;
-        blockSize = nearest;
-
-#endif
-    }
-
-    return blockSize;
-}
-
-Plugin::FeatureSet
-PluginInputDomainAdapter::Impl::process(const float *const *inputBuffers,
-                                        RealTime timestamp)
-{
-    if (m_plugin->getInputDomain() == TimeDomain) {
-        return m_plugin->process(inputBuffers, timestamp);
-    }
-
-    // The timestamp supplied should be (according to the Vamp::Plugin
-    // spec) the time of the start of the time-domain input block.
-    // However, we want to pass to the plugin an FFT output calculated
-    // from the block of samples _centred_ on that timestamp.
-    // 
-    // We have two options:
-    // 
-    // 1. Buffer the input, calculating the fft of the values at the
-    // passed-in block minus blockSize/2 rather than starting at the
-    // passed-in block.  So each time we call process on the plugin,
-    // we are passing in the same timestamp as was passed to our own
-    // process plugin, but not (the frequency domain representation
-    // of) the same set of samples.  Advantages: avoids confusion in
-    // the host by ensuring the returned values have timestamps
-    // comparable with that passed in to this function (in fact this
-    // is pretty much essential for one-value-per-block outputs);
-    // consistent with hosts such as SV that deal with the
-    // frequency-domain transform themselves.  Disadvantages: means
-    // making the not necessarily correct assumption that the samples
-    // preceding the first official block are all zero (or some other
-    // known value).
-    //
-    // 2. Increase the passed-in timestamps by half the blocksize.  So
-    // when we call process, we are passing in the frequency domain
-    // representation of the same set of samples as passed to us, but
-    // with a different timestamp.  Advantages: simplicity; avoids
-    // iffy assumption mentioned above.  Disadvantages: inconsistency
-    // with SV in cases where stepSize != blockSize/2; potential
-    // confusion arising from returned timestamps being calculated
-    // from the adjusted input timestamps rather than the original
-    // ones (and inaccuracy where the returned timestamp is implied,
-    // as in one-value-per-block).
-    //
-    // Neither way is ideal, but I don't think either is strictly
-    // incorrect either.  I think this is just a case where the same
-    // plugin can legitimately produce differing results from the same
-    // input data, depending on how that data is packaged.
-    // 
-    // We'll go for option 2, adjusting the timestamps.  Note in
-    // particular that this means some results can differ from those
-    // produced by SV.
-
-//    std::cerr << "PluginInputDomainAdapter: sampleRate " << m_inputSampleRate << ", blocksize " << m_blockSize << ", adjusting time from " << timestamp;
-
-    timestamp = timestamp + RealTime::frame2RealTime
-        (m_blockSize/2, int(m_inputSampleRate + 0.5));
-
-//    std::cerr << " to " << timestamp << std::endl;
-
-    for (int c = 0; c < m_channels; ++c) {
-
-        for (int i = 0; i < m_blockSize; ++i) {
-            m_ri[i] = double(inputBuffers[c][i]) * m_window[i];
-        }
-
-        for (int i = 0; i < m_blockSize/2; ++i) {
-            // FFT shift
-            double value = m_ri[i];
-            m_ri[i] = m_ri[i + m_blockSize/2];
-            m_ri[i + m_blockSize/2] = value;
-        }
-
-#ifdef HAVE_FFTW3
-
-        fftw_execute(m_plan);
-
-        for (int i = 0; i <= m_blockSize/2; ++i) {
-            m_freqbuf[c][i * 2] = float(m_cbuf[i][0]);
-            m_freqbuf[c][i * 2 + 1] = float(m_cbuf[i][1]);
-        }
-
-#else
-
-        fft(m_blockSize, false, m_ri, 0, m_ro, m_io);
-
-        for (int i = 0; i <= m_blockSize/2; ++i) {
-            m_freqbuf[c][i * 2] = float(m_ro[i]);
-            m_freqbuf[c][i * 2 + 1] = float(m_io[i]);
-        }
-
-#endif
-    }
-
-    return m_plugin->process(m_freqbuf, timestamp);
-}
-
-#ifndef HAVE_FFTW3
-
-void
-PluginInputDomainAdapter::Impl::fft(unsigned int n, bool inverse,
-                                    double *ri, double *ii, double *ro, double *io)
-{
-    if (!ri || !ro || !io) return;
-
-    unsigned int bits;
-    unsigned int i, j, k, m;
-    unsigned int blockSize, blockEnd;
-
-    double tr, ti;
-
-    if (n < 2) return;
-    if (n & (n-1)) return;
-
-    double angle = 2.0 * M_PI;
-    if (inverse) angle = -angle;
-
-    for (i = 0; ; ++i) {
-	if (n & (1 << i)) {
-	    bits = i;
-	    break;
-	}
-    }
-
-    static unsigned int tableSize = 0;
-    static int *table = 0;
-
-    if (tableSize != n) {
-
-	delete[] table;
-
-	table = new int[n];
-
-	for (i = 0; i < n; ++i) {
-	
-	    m = i;
-
-	    for (j = k = 0; j < bits; ++j) {
-		k = (k << 1) | (m & 1);
-		m >>= 1;
-	    }
-
-	    table[i] = k;
-	}
-
-	tableSize = n;
-    }
-
-    if (ii) {
-	for (i = 0; i < n; ++i) {
-	    ro[table[i]] = ri[i];
-	    io[table[i]] = ii[i];
-	}
-    } else {
-	for (i = 0; i < n; ++i) {
-	    ro[table[i]] = ri[i];
-	    io[table[i]] = 0.0;
-	}
-    }
-
-    blockEnd = 1;
-
-    for (blockSize = 2; blockSize <= n; blockSize <<= 1) {
-
-	double delta = angle / (double)blockSize;
-	double sm2 = -sin(-2 * delta);
-	double sm1 = -sin(-delta);
-	double cm2 = cos(-2 * delta);
-	double cm1 = cos(-delta);
-	double w = 2 * cm1;
-	double ar[3], ai[3];
-
-	for (i = 0; i < n; i += blockSize) {
-
-	    ar[2] = cm2;
-	    ar[1] = cm1;
-
-	    ai[2] = sm2;
-	    ai[1] = sm1;
-
-	    for (j = i, m = 0; m < blockEnd; j++, m++) {
-
-		ar[0] = w * ar[1] - ar[2];
-		ar[2] = ar[1];
-		ar[1] = ar[0];
-
-		ai[0] = w * ai[1] - ai[2];
-		ai[2] = ai[1];
-		ai[1] = ai[0];
-
-		k = j + blockEnd;
-		tr = ar[0] * ro[k] - ai[0] * io[k];
-		ti = ar[0] * io[k] + ai[0] * ro[k];
-
-		ro[k] = ro[j] - tr;
-		io[k] = io[j] - ti;
-
-		ro[j] += tr;
-		io[j] += ti;
-	    }
-	}
-
-	blockEnd = blockSize;
-    }
-
-    if (inverse) {
-
-	double denom = (double)n;
-
-	for (i = 0; i < n; i++) {
-	    ro[i] /= denom;
-	    io[i] /= denom;
-	}
-    }
-}
-
-#endif
-
-}
-        
-}
-
diff --git a/libs/vamp-sdk/vamp-sdk/hostext/PluginInputDomainAdapter.h b/libs/vamp-sdk/vamp-sdk/hostext/PluginInputDomainAdapter.h
deleted file mode 100644
index 73da053..0000000
--- a/libs/vamp-sdk/vamp-sdk/hostext/PluginInputDomainAdapter.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006-2007 Chris Cannam and QMUL.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_
-#define _VAMP_PLUGIN_INPUT_DOMAIN_ADAPTER_H_
-
-#include "PluginWrapper.h"
-
-namespace Vamp {
-
-namespace HostExt {
-
-/**
- * \class PluginInputDomainAdapter PluginInputDomainAdapter.h <vamp-sdk/hostext/PluginInputDomainAdapter.h>
- * 
- * PluginInputDomainAdapter is a Vamp plugin adapter that converts
- * time-domain input into frequency-domain input for plugins that need
- * it.  This permits a host to use time- and frequency-domain plugins
- * interchangeably without needing to handle the conversion itself.
- *
- * This adapter uses a basic Hanning windowed FFT that supports
- * power-of-two block sizes only.  If a frequency domain plugin
- * requests a non-power-of-two blocksize, the adapter will adjust it
- * to a nearby power of two instead.  Thus, getPreferredBlockSize()
- * will always return a power of two if the wrapped plugin is a
- * frequency domain one.  If the plugin doesn't accept the adjusted
- * power of two block size, initialise() will fail.
- *
- * The adapter provides no way for the host to discover whether the
- * underlying plugin is actually a time or frequency domain plugin
- * (except that if the preferred block size is not a power of two, it
- * must be a time domain plugin).
- *
- * The FFT implementation is simple and self-contained, but unlikely
- * to be the fastest available: a host can usually do better if it
- * cares enough.
- *
- * In every respect other than its input domain handling, the
- * PluginInputDomainAdapter behaves identically to the plugin that it
- * wraps.  The wrapped plugin will be deleted when the wrapper is
- * deleted.
- *
- * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
- */
-
-class PluginInputDomainAdapter : public PluginWrapper
-{
-public:
-    PluginInputDomainAdapter(Plugin *plugin); // I take ownership of plugin
-    virtual ~PluginInputDomainAdapter();
-    
-    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-
-    InputDomain getInputDomain() const;
-
-    size_t getPreferredStepSize() const;
-    size_t getPreferredBlockSize() const;
-
-    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
-protected:
-    class Impl;
-    Impl *m_impl;
-};
-
-}
-
-}
-
-#endif
diff --git a/libs/vamp-sdk/vamp-sdk/hostext/PluginLoader.cpp b/libs/vamp-sdk/vamp-sdk/hostext/PluginLoader.cpp
deleted file mode 100644
index e9d75ee..0000000
--- a/libs/vamp-sdk/vamp-sdk/hostext/PluginLoader.cpp
+++ /dev/null
@@ -1,639 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006-2007 Chris Cannam and QMUL.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#include "vamp-sdk/PluginHostAdapter.h"
-#include "PluginLoader.h"
-#include "PluginInputDomainAdapter.h"
-#include "PluginChannelAdapter.h"
-#include "PluginBufferingAdapter.h"
-
-#include <string>
-#include <cstring>
-#include <fstream>
-#include <cctype> // tolower
-#include <cstring>
-
-#ifdef _WIN32
-
-#include <windows.h>
-#include <tchar.h>
-#define PLUGIN_SUFFIX "dll"
-
-#else /* ! _WIN32 */
-
-#include <dirent.h>
-#include <dlfcn.h>
-
-#ifdef __APPLE__
-#define PLUGIN_SUFFIX "dylib"
-#else /* ! __APPLE__ */
-#define PLUGIN_SUFFIX "so"
-#endif /* ! __APPLE__ */
-
-#endif /* ! _WIN32 */
-
-using namespace std;
-
-namespace Vamp {
-	
-namespace HostExt {
-
-class PluginLoader::Impl
-{
-public:
-    Impl();
-    virtual ~Impl();
-
-    PluginKeyList listPlugins();
-
-    Plugin *loadPlugin(PluginKey key,
-                       float inputSampleRate,
-                       int adapterFlags);
-
-    PluginKey composePluginKey(string libraryName, string identifier);
-
-    PluginCategoryHierarchy getPluginCategory(PluginKey key);
-
-    string getLibraryPathForPlugin(PluginKey key);
-
-    static void setInstanceToClean(PluginLoader *instance);
-
-protected:
-    class PluginDeletionNotifyAdapter : public PluginWrapper {
-    public:
-        PluginDeletionNotifyAdapter(Plugin *plugin, Impl *loader);
-        virtual ~PluginDeletionNotifyAdapter();
-    protected:
-        Impl *m_loader;
-    };
-
-    class InstanceCleaner {
-    public:
-        InstanceCleaner() : m_instance(0) { }
-        ~InstanceCleaner() { delete m_instance; }
-        void setInstance(PluginLoader *instance) { m_instance = instance; }
-    protected:
-        PluginLoader *m_instance;
-    };
-
-    virtual void pluginDeleted(PluginDeletionNotifyAdapter *adapter);
-
-    map<PluginKey, string> m_pluginLibraryNameMap;
-    bool m_allPluginsEnumerated;
-    void enumeratePlugins(PluginKey forPlugin = "");
-
-    map<PluginKey, PluginCategoryHierarchy> m_taxonomy;
-    void generateTaxonomy();
-
-    map<Plugin *, void *> m_pluginLibraryHandleMap;
-
-    bool decomposePluginKey(PluginKey key,
-                            string &libraryName, string &identifier);
-
-    void *loadLibrary(string path);
-    void unloadLibrary(void *handle);
-    void *lookupInLibrary(void *handle, const char *symbol);
-
-    string splicePath(string a, string b);
-    vector<string> listFiles(string dir, string ext);
-    
-    static InstanceCleaner m_cleaner;
-};
-
-PluginLoader *
-PluginLoader::m_instance = 0;
-
-PluginLoader::Impl::InstanceCleaner
-PluginLoader::Impl::m_cleaner;
-
-PluginLoader::PluginLoader()
-{
-    m_impl = new Impl();
-}
-
-PluginLoader::~PluginLoader()
-{
-    delete m_impl;
-}
-
-PluginLoader *
-PluginLoader::getInstance()
-{
-    if (!m_instance) {
-        // The cleaner doesn't own the instance, because we leave the
-        // instance pointer in the base class for binary backwards
-        // compatibility reasons and to avoid waste
-        m_instance = new PluginLoader();
-        Impl::setInstanceToClean(m_instance);
-    }
-    return m_instance;
-}
-
-vector<PluginLoader::PluginKey>
-PluginLoader::listPlugins() 
-{
-    return m_impl->listPlugins();
-}
-
-Plugin *
-PluginLoader::loadPlugin(PluginKey key,
-                         float inputSampleRate,
-                         int adapterFlags)
-{
-    return m_impl->loadPlugin(key, inputSampleRate, adapterFlags);
-}
-
-PluginLoader::PluginKey
-PluginLoader::composePluginKey(string libraryName, string identifier) 
-{
-    return m_impl->composePluginKey(libraryName, identifier);
-}
-
-PluginLoader::PluginCategoryHierarchy
-PluginLoader::getPluginCategory(PluginKey key)
-{
-    return m_impl->getPluginCategory(key);
-}
-
-string
-PluginLoader::getLibraryPathForPlugin(PluginKey key)
-{
-    return m_impl->getLibraryPathForPlugin(key);
-}
- 
-PluginLoader::Impl::Impl() :
-    m_allPluginsEnumerated(false)
-{
-}
-
-PluginLoader::Impl::~Impl()
-{
-}
-
-void
-PluginLoader::Impl::setInstanceToClean(PluginLoader *instance)
-{
-    m_cleaner.setInstance(instance);
-}
-
-vector<PluginLoader::PluginKey>
-PluginLoader::Impl::listPlugins() 
-{
-    if (!m_allPluginsEnumerated) enumeratePlugins();
-
-    vector<PluginKey> plugins;
-    for (map<PluginKey, string>::iterator mi = m_pluginLibraryNameMap.begin();
-         mi != m_pluginLibraryNameMap.end(); ++mi) {
-        plugins.push_back(mi->first);
-    }
-
-    return plugins;
-}
-
-void
-PluginLoader::Impl::enumeratePlugins(PluginKey forPlugin)
-{
-    vector<string> path = PluginHostAdapter::getPluginPath();
-
-    string libraryName, identifier;
-    if (forPlugin != "") {
-        if (!decomposePluginKey(forPlugin, libraryName, identifier)) {
-            std::cerr << "WARNING: Vamp::HostExt::PluginLoader: Invalid plugin key \""
-                      << forPlugin << "\" in enumerate" << std::endl;
-            return;
-        }
-    }
-
-    for (size_t i = 0; i < path.size(); ++i) {
-        
-        vector<string> files = listFiles(path[i], PLUGIN_SUFFIX);
-
-        for (vector<string>::iterator fi = files.begin();
-             fi != files.end(); ++fi) {
-            
-            if (libraryName != "") {
-                // libraryName is lowercased and lacking an extension,
-                // as it came from the plugin key
-                string temp = *fi;
-                for (size_t i = 0; i < temp.length(); ++i) {
-                    temp[i] = tolower(temp[i]);
-                }
-                string::size_type pi = temp.find('.');
-                if (pi == string::npos) {
-                    if (libraryName != temp) continue;
-                } else {
-                    if (libraryName != temp.substr(0, pi)) continue;
-                }
-            }
-
-            string fullPath = path[i];
-            fullPath = splicePath(fullPath, *fi);
-            void *handle = loadLibrary(fullPath);
-            if (!handle) continue;
-            
-            VampGetPluginDescriptorFunction fn =
-                (VampGetPluginDescriptorFunction)lookupInLibrary
-                (handle, "vampGetPluginDescriptor");
-            
-            if (!fn) {
-                unloadLibrary(handle);
-                continue;
-            }
-            
-            int index = 0;
-            const VampPluginDescriptor *descriptor = 0;
-            
-            while ((descriptor = fn(VAMP_API_VERSION, index))) {
-                ++index;
-                if (identifier != "") {
-                    if (descriptor->identifier != identifier) continue;
-                }
-                PluginKey key = composePluginKey(*fi, descriptor->identifier);
-//                std::cerr << "enumerate: " << key << " (path: " << fullPath << ")" << std::endl;
-                if (m_pluginLibraryNameMap.find(key) ==
-                    m_pluginLibraryNameMap.end()) {
-                    m_pluginLibraryNameMap[key] = fullPath;
-                }
-            }
-            
-            unloadLibrary(handle);
-        }
-    }
-
-    if (forPlugin == "") m_allPluginsEnumerated = true;
-}
-
-PluginLoader::PluginKey
-PluginLoader::Impl::composePluginKey(string libraryName, string identifier)
-{
-    string basename = libraryName;
-
-    string::size_type li = basename.rfind('/');
-    if (li != string::npos) basename = basename.substr(li + 1);
-
-    li = basename.find('.');
-    if (li != string::npos) basename = basename.substr(0, li);
-
-    for (size_t i = 0; i < basename.length(); ++i) {
-        basename[i] = tolower(basename[i]);
-    }
-
-    return basename + ":" + identifier;
-}
-
-bool
-PluginLoader::Impl::decomposePluginKey(PluginKey key,
-                                       string &libraryName,
-                                       string &identifier)
-{
-    string::size_type ki = key.find(':');
-    if (ki == string::npos) {
-        return false;
-    }
-
-    libraryName = key.substr(0, ki);
-    identifier = key.substr(ki + 1);
-    return true;
-}
-
-PluginLoader::PluginCategoryHierarchy
-PluginLoader::Impl::getPluginCategory(PluginKey plugin)
-{
-    if (m_taxonomy.empty()) generateTaxonomy();
-    if (m_taxonomy.find(plugin) == m_taxonomy.end()) {
-        return PluginCategoryHierarchy();
-    }
-    return m_taxonomy[plugin];
-}
-
-string
-PluginLoader::Impl::getLibraryPathForPlugin(PluginKey plugin)
-{
-    if (m_pluginLibraryNameMap.find(plugin) == m_pluginLibraryNameMap.end()) {
-        if (m_allPluginsEnumerated) return "";
-        enumeratePlugins(plugin);
-    }
-    if (m_pluginLibraryNameMap.find(plugin) == m_pluginLibraryNameMap.end()) {
-        return "";
-    }
-    return m_pluginLibraryNameMap[plugin];
-}    
-
-Plugin *
-PluginLoader::Impl::loadPlugin(PluginKey key,
-                               float inputSampleRate, int adapterFlags)
-{
-    string libname, identifier;
-    if (!decomposePluginKey(key, libname, identifier)) {
-        std::cerr << "Vamp::HostExt::PluginLoader: Invalid plugin key \""
-                  << key << "\" in loadPlugin" << std::endl;
-        return 0;
-    }
-        
-    string fullPath = getLibraryPathForPlugin(key);
-    if (fullPath == "") return 0;
-    
-    void *handle = loadLibrary(fullPath);
-    if (!handle) return 0;
-    
-    VampGetPluginDescriptorFunction fn =
-        (VampGetPluginDescriptorFunction)lookupInLibrary
-        (handle, "vampGetPluginDescriptor");
-
-    if (!fn) {
-        unloadLibrary(handle);
-        return 0;
-    }
-
-    int index = 0;
-    const VampPluginDescriptor *descriptor = 0;
-
-    while ((descriptor = fn(VAMP_API_VERSION, index))) {
-
-        if (string(descriptor->identifier) == identifier) {
-
-            Vamp::PluginHostAdapter *plugin =
-                new Vamp::PluginHostAdapter(descriptor, inputSampleRate);
-
-            Plugin *adapter = new PluginDeletionNotifyAdapter(plugin, this);
-
-            m_pluginLibraryHandleMap[adapter] = handle;
-
-            if (adapterFlags & ADAPT_INPUT_DOMAIN) {
-                if (adapter->getInputDomain() == Plugin::FrequencyDomain) {
-                    adapter = new PluginInputDomainAdapter(adapter);
-                }
-            }
-
-            if (adapterFlags & ADAPT_BUFFER_SIZE) {
-                adapter = new PluginBufferingAdapter(adapter);
-            }
-
-            if (adapterFlags & ADAPT_CHANNEL_COUNT) {
-                adapter = new PluginChannelAdapter(adapter);
-            }
-
-            return adapter;
-        }
-
-        ++index;
-    }
-
-    cerr << "Vamp::HostExt::PluginLoader: Plugin \""
-         << identifier << "\" not found in library \""
-         << fullPath << "\"" << endl;
-
-    return 0;
-}
-
-void
-PluginLoader::Impl::generateTaxonomy()
-{
-//    cerr << "PluginLoader::Impl::generateTaxonomy" << endl;
-
-    vector<string> path = PluginHostAdapter::getPluginPath();
-    string libfragment = "/lib/";
-    vector<string> catpath;
-
-    string suffix = "cat";
-
-    for (vector<string>::iterator i = path.begin();
-         i != path.end(); ++i) {
-
-        // It doesn't matter that we're using literal forward-slash in
-        // this bit, as it's only relevant if the path contains
-        // "/lib/", which is only meaningful and only plausible on
-        // systems with forward-slash delimiters
-        
-        string dir = *i;
-        string::size_type li = dir.find(libfragment);
-
-        if (li != string::npos) {
-            catpath.push_back
-                (dir.substr(0, li)
-                 + "/share/"
-                 + dir.substr(li + libfragment.length()));
-        }
-
-        catpath.push_back(dir);
-    }
-
-    char buffer[1024];
-
-    for (vector<string>::iterator i = catpath.begin();
-         i != catpath.end(); ++i) {
-        
-        vector<string> files = listFiles(*i, suffix);
-
-        for (vector<string>::iterator fi = files.begin();
-             fi != files.end(); ++fi) {
-
-            string filepath = splicePath(*i, *fi);
-            ifstream is(filepath.c_str(), ifstream::in | ifstream::binary);
-
-            if (is.fail()) {
-//                cerr << "failed to open: " << filepath << endl;
-                continue;
-            }
-
-//            cerr << "opened: " << filepath << endl;
-
-            while (!!is.getline(buffer, 1024)) {
-
-                string line(buffer);
-
-//                cerr << "line = " << line << endl;
-
-                string::size_type di = line.find("::");
-                if (di == string::npos) continue;
-
-                string id = line.substr(0, di);
-                string encodedCat = line.substr(di + 2);
-
-                if (id.substr(0, 5) != "vamp:") continue;
-                id = id.substr(5);
-
-                while (encodedCat.length() >= 1 &&
-                       encodedCat[encodedCat.length()-1] == '\r') {
-                    encodedCat = encodedCat.substr(0, encodedCat.length()-1);
-                }
-
-//                cerr << "id = " << id << ", cat = " << encodedCat << endl;
-
-                PluginCategoryHierarchy category;
-                string::size_type ai;
-                while ((ai = encodedCat.find(" > ")) != string::npos) {
-                    category.push_back(encodedCat.substr(0, ai));
-                    encodedCat = encodedCat.substr(ai + 3);
-                }
-                if (encodedCat != "") category.push_back(encodedCat);
-
-                m_taxonomy[id] = category;
-            }
-        }
-    }
-}    
-
-void *
-PluginLoader::Impl::loadLibrary(string path)
-{
-    void *handle = 0;
-#ifdef _WIN32
-    handle = LoadLibrary(path.c_str());
-    if (!handle) {
-        cerr << "Vamp::HostExt::PluginLoader: Unable to load library \""
-             << path << "\"" << endl;
-    }
-#else
-    handle = dlopen(path.c_str(), RTLD_LAZY);
-    if (!handle) {
-        cerr << "Vamp::HostExt::PluginLoader: Unable to load library \""
-             << path << "\": " << dlerror() << endl;
-    }
-#endif
-    return handle;
-}
-
-void
-PluginLoader::Impl::unloadLibrary(void *handle)
-{
-#ifdef _WIN32
-    FreeLibrary((HINSTANCE)handle);
-#else
-    dlclose(handle);
-#endif
-}
-
-void *
-PluginLoader::Impl::lookupInLibrary(void *handle, const char *symbol)
-{
-#ifdef _WIN32
-    return (void *)GetProcAddress((HINSTANCE)handle, symbol);
-#else
-    return (void *)dlsym(handle, symbol);
-#endif
-}
-
-string
-PluginLoader::Impl::splicePath(string a, string b)
-{
-#ifdef _WIN32
-    return a + "\\" + b;
-#else
-    return a + "/" + b;
-#endif
-}
-
-vector<string>
-PluginLoader::Impl::listFiles(string dir, string extension)
-{
-    vector<string> files;
-
-#ifdef _WIN32
-
-    string expression = dir + "\\*." + extension;
-    WIN32_FIND_DATA data;
-    HANDLE fh = FindFirstFile(expression.c_str(), &data);
-    if (fh == INVALID_HANDLE_VALUE) return files;
-
-    bool ok = true;
-    while (ok) {
-        files.push_back(data.cFileName);
-        ok = FindNextFile(fh, &data);
-    }
-
-    FindClose(fh);
-
-#else
-
-    size_t extlen = extension.length();
-    DIR *d = opendir(dir.c_str());
-    if (!d) return files;
-            
-    struct dirent *e = 0;
-    while ((e = readdir(d))) {
- 
-        if (!(e->d_type & DT_REG) && (e->d_type != DT_UNKNOWN)) continue;
-        
-        if (!e->d_name) continue;
-       
-        size_t len = strlen(e->d_name);
-        if (len < extlen + 2 ||
-            e->d_name + len - extlen - 1 != "." + extension) {
-            continue;
-        }
-
-        files.push_back(e->d_name);
-    }
-
-    closedir(d);
-#endif
-
-    return files;
-}
-
-void
-PluginLoader::Impl::pluginDeleted(PluginDeletionNotifyAdapter *adapter)
-{
-    void *handle = m_pluginLibraryHandleMap[adapter];
-    if (handle) unloadLibrary(handle);
-    m_pluginLibraryHandleMap.erase(adapter);
-}
-
-PluginLoader::Impl::PluginDeletionNotifyAdapter::PluginDeletionNotifyAdapter(Plugin *plugin,
-                                                                             Impl *loader) :
-    PluginWrapper(plugin),
-    m_loader(loader)
-{
-}
-
-PluginLoader::Impl::PluginDeletionNotifyAdapter::~PluginDeletionNotifyAdapter()
-{
-    // We need to delete the plugin before calling pluginDeleted, as
-    // the delete call may require calling through to the descriptor
-    // (for e.g. cleanup) but pluginDeleted may unload the required
-    // library for the call.  To prevent a double deletion when our
-    // parent's destructor runs (after this one), be sure to set
-    // m_plugin to 0 after deletion.
-    delete m_plugin;
-    m_plugin = 0;
-
-    if (m_loader) m_loader->pluginDeleted(this);
-}
-
-}
-
-}
diff --git a/libs/vamp-sdk/vamp-sdk/hostext/PluginLoader.h b/libs/vamp-sdk/vamp-sdk/hostext/PluginLoader.h
deleted file mode 100644
index f48143c..0000000
--- a/libs/vamp-sdk/vamp-sdk/hostext/PluginLoader.h
+++ /dev/null
@@ -1,238 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006-2007 Chris Cannam and QMUL.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_LOADER_H_
-#define _VAMP_PLUGIN_LOADER_H_
-
-#include <vector>
-#include <string>
-#include <map>
-
-#include "PluginWrapper.h"
-
-namespace Vamp {
-
-class Plugin;
-
-namespace HostExt {
-
-/**
- * \class PluginLoader PluginLoader.h <vamp-sdk/hostext/PluginLoader.h>
- * 
- * Vamp::HostExt::PluginLoader is a convenience class for discovering
- * and loading Vamp plugins using the typical plugin-path, library
- * naming, and categorisation conventions described in the Vamp SDK
- * documentation.  This class is intended to greatly simplify the task
- * of becoming a Vamp plugin host for any C++ application.
- * 
- * Hosts are not required by the Vamp specification to use the same
- * plugin search path and naming conventions as implemented by this
- * class, and are certainly not required to use this actual class.
- * But we do strongly recommend it.
- *
- * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
- */
-
-class PluginLoader
-{
-public:
-    /**
-     * Obtain a pointer to the singleton instance of PluginLoader.
-     * Use this to obtain your loader object.
-     */
-    static PluginLoader *getInstance();
-
-    /**
-     * PluginKey is a string type that is used to identify a plugin
-     * uniquely within the scope of "the current system".  It consists
-     * of the lower-cased base name of the plugin library, a colon
-     * separator, and the identifier string for the plugin.  It is
-     * only meaningful in the context of a given plugin path (the one
-     * returned by PluginHostAdapter::getPluginPath()).
-     *
-     * Use composePluginKey() to construct a plugin key from a known
-     * plugin library name and identifier.
-     *
-     * Note: the fact that the library component of the key is
-     * lower-cased implies that library names are matched
-     * case-insensitively by the PluginLoader class, regardless of the
-     * case sensitivity of the underlying filesystem.  (Plugin
-     * identifiers _are_ case sensitive, however.)  Also, it is not
-     * possible to portably extract a working library name from a
-     * plugin key, as the result may fail on case-sensitive
-     * filesystems.  Use getLibraryPathForPlugin() instead.
-     */
-    typedef std::string PluginKey;
-
-    /**
-     * PluginKeyList is a sequence of plugin keys, such as returned by
-     * listPlugins().
-     */
-    typedef std::vector<PluginKey> PluginKeyList;
-
-    /**
-     * PluginCategoryHierarchy is a sequence of general->specific
-     * category names, as may be associated with a single plugin.
-     * This sequence describes the location of a plugin within a
-     * category forest, containing the human-readable names of the
-     * plugin's category tree root, followed by each of the nodes down
-     * to the leaf containing the plugin.
-     *
-     * \see getPluginCategory()
-     */
-    typedef std::vector<std::string> PluginCategoryHierarchy;
-
-    /**
-     * Search for all available Vamp plugins, and return a list of
-     * them in the order in which they were found.
-     */
-    PluginKeyList listPlugins();
-
-    /**
-     * AdapterFlags contains a set of values that may be OR'd together
-     * to indicate in which circumstances PluginLoader should use a
-     * plugin adapter to make a plugin easier to use for a host that
-     * does not want to cater for complex features.
-     *
-     * The available flags are:
-     * 
-     * ADAPT_INPUT_DOMAIN - If the plugin expects frequency domain
-     * input, wrap it in a PluginInputDomainAdapter that automatically
-     * converts the plugin to one that expects time-domain input.
-     * This enables a host to accommodate time- and frequency-domain
-     * plugins without needing to do any conversion itself.
-     *
-     * ADAPT_CHANNEL_COUNT - Wrap the plugin in a PluginChannelAdapter
-     * to handle any mismatch between the number of channels of audio
-     * the plugin can handle and the number available in the host.
-     * This enables a host to use plugins that may require the input
-     * to be mixed down to mono, etc., without having to worry about
-     * doing that itself.
-     *
-     * ADAPT_BUFFER_SIZE - Wrap the plugin in a PluginBufferingAdapter
-     * permitting the host to provide audio input using any block
-     * size, with no overlap, regardless of the plugin's preferred
-     * block size (suitable for hosts that read from non-seekable
-     * streaming media, for example).  This adapter introduces some
-     * run-time overhead and also changes the semantics of the plugin
-     * slightly (see the PluginBufferingAdapter header documentation
-     * for details).
-     *
-     * ADAPT_ALL_SAFE - Perform all available adaptations that are
-     * meaningful for the plugin and "safe".  Currently this means to
-     * ADAPT_INPUT_DOMAIN if the plugin wants FrequencyDomain input;
-     * ADAPT_CHANNEL_COUNT always; and ADAPT_BUFFER_SIZE never.
-     * 
-     * ADAPT_ALL - Perform all available adaptations that are
-     * meaningful for the plugin.
-     * 
-     * See PluginInputDomainAdapter, PluginChannelAdapter and
-     * PluginBufferingAdapter for more details of the classes that the
-     * loader may use if these flags are set.
-     */
-    enum AdapterFlags {
-
-        ADAPT_INPUT_DOMAIN  = 0x01,
-        ADAPT_CHANNEL_COUNT = 0x02,
-        ADAPT_BUFFER_SIZE   = 0x04,
-
-        ADAPT_ALL_SAFE      = 0x03,
-
-        ADAPT_ALL           = 0xff
-    };
-
-    /**
-     * Load a Vamp plugin, given its identifying key.  If the plugin
-     * could not be loaded, returns 0.
-     *
-     * The returned plugin should be deleted (using the standard C++
-     * delete keyword) after use.
-     *
-     * \param adapterFlags a bitwise OR of the values in the AdapterFlags
-     * enumeration, indicating under which circumstances an adapter should be
-     * used to wrap the original plugin.  If adapterFlags is 0, no
-     * optional adapters will be used.  Otherwise, the returned plugin
-     * may be of an adapter class type which will behave identically
-     * to the original plugin, apart from any particular features
-     * implemented by the adapter itself.
-     * 
-     * \see AdapterFlags, PluginInputDomainAdapter, PluginChannelAdapter
-     */
-    Plugin *loadPlugin(PluginKey key,
-                       float inputSampleRate,
-                       int adapterFlags = 0);
-
-    /**
-     * Given a Vamp plugin library name and plugin identifier, return
-     * the corresponding plugin key in a form suitable for passing in to
-     * loadPlugin().
-     */
-    PluginKey composePluginKey(std::string libraryName,
-                               std::string identifier);
-
-    /**
-     * Return the category hierarchy for a Vamp plugin, given its
-     * identifying key.
-     *
-     * If the plugin has no category information, return an empty
-     * hierarchy.
-     *
-     * \see PluginCategoryHierarchy
-     */
-    PluginCategoryHierarchy getPluginCategory(PluginKey plugin);
-
-    /**
-     * Return the file path of the dynamic library from which the
-     * given plugin will be loaded (if available).
-     */
-    std::string getLibraryPathForPlugin(PluginKey plugin);
-
-protected:
-    PluginLoader();
-    virtual ~PluginLoader();
-
-    class Impl;
-    Impl *m_impl;
-
-    static PluginLoader *m_instance;
-};
-
-}
-
-}
-
-#endif
-
diff --git a/libs/vamp-sdk/vamp-sdk/hostext/PluginWrapper.cpp b/libs/vamp-sdk/vamp-sdk/hostext/PluginWrapper.cpp
deleted file mode 100644
index dcbdf5b..0000000
--- a/libs/vamp-sdk/vamp-sdk/hostext/PluginWrapper.cpp
+++ /dev/null
@@ -1,201 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006-2007 Chris Cannam and QMUL.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#include "PluginWrapper.h"
-
-namespace Vamp {
-
-namespace HostExt {
-
-class PluginRateExtractor : public Plugin
-{
-public:
-    PluginRateExtractor() : Plugin(0) { }
-    float getRate() const { return m_inputSampleRate; }
-};
-
-PluginWrapper::PluginWrapper(Plugin *plugin) :
-    Plugin(((PluginRateExtractor *)plugin)->getRate()),
-    m_plugin(plugin)
-{
-}
-
-PluginWrapper::~PluginWrapper()
-{
-    delete m_plugin;
-}
-
-bool
-PluginWrapper::initialise(size_t channels, size_t stepSize, size_t blockSize)
-{
-    return m_plugin->initialise(channels, stepSize, blockSize);
-}
-
-void
-PluginWrapper::reset()
-{
-    m_plugin->reset();
-}
-
-Plugin::InputDomain
-PluginWrapper::getInputDomain() const
-{
-    return m_plugin->getInputDomain();
-}
-
-unsigned int
-PluginWrapper::getVampApiVersion() const
-{
-    return m_plugin->getVampApiVersion();
-}
-
-std::string
-PluginWrapper::getIdentifier() const
-{
-    return m_plugin->getIdentifier();
-}
-
-std::string
-PluginWrapper::getName() const
-{
-    return m_plugin->getName();
-}
-
-std::string
-PluginWrapper::getDescription() const
-{
-    return m_plugin->getDescription();
-}
-
-std::string
-PluginWrapper::getMaker() const
-{
-    return m_plugin->getMaker();
-}
-
-int
-PluginWrapper::getPluginVersion() const
-{
-    return m_plugin->getPluginVersion();
-}
-
-std::string
-PluginWrapper::getCopyright() const
-{
-    return m_plugin->getCopyright();
-}
-
-PluginBase::ParameterList
-PluginWrapper::getParameterDescriptors() const
-{
-    return m_plugin->getParameterDescriptors();
-}
-
-float
-PluginWrapper::getParameter(std::string parameter) const
-{
-    return m_plugin->getParameter(parameter);
-}
-
-void
-PluginWrapper::setParameter(std::string parameter, float value)
-{
-    m_plugin->setParameter(parameter, value);
-}
-
-PluginBase::ProgramList
-PluginWrapper::getPrograms() const
-{
-    return m_plugin->getPrograms();
-}
-
-std::string
-PluginWrapper::getCurrentProgram() const
-{
-    return m_plugin->getCurrentProgram();
-}
-
-void
-PluginWrapper::selectProgram(std::string program)
-{
-    m_plugin->selectProgram(program);
-}
-
-size_t
-PluginWrapper::getPreferredStepSize() const
-{
-    return m_plugin->getPreferredStepSize();
-}
-
-size_t
-PluginWrapper::getPreferredBlockSize() const
-{
-    return m_plugin->getPreferredBlockSize();
-}
-
-size_t
-PluginWrapper::getMinChannelCount() const
-{
-    return m_plugin->getMinChannelCount();
-}
-
-size_t PluginWrapper::getMaxChannelCount() const
-{
-    return m_plugin->getMaxChannelCount();
-}
-
-Plugin::OutputList
-PluginWrapper::getOutputDescriptors() const
-{
-    return m_plugin->getOutputDescriptors();
-}
-
-Plugin::FeatureSet
-PluginWrapper::process(const float *const *inputBuffers, RealTime timestamp)
-{
-    return m_plugin->process(inputBuffers, timestamp);
-}
-
-Plugin::FeatureSet
-PluginWrapper::getRemainingFeatures()
-{
-    return m_plugin->getRemainingFeatures();
-}
-
-}
-
-}
-
diff --git a/libs/vamp-sdk/vamp-sdk/hostext/PluginWrapper.h b/libs/vamp-sdk/vamp-sdk/hostext/PluginWrapper.h
deleted file mode 100644
index d5ec1da..0000000
--- a/libs/vamp-sdk/vamp-sdk/hostext/PluginWrapper.h
+++ /dev/null
@@ -1,106 +0,0 @@
-/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
-
-/*
-    Vamp
-
-    An API for audio analysis and feature extraction plugins.
-
-    Centre for Digital Music, Queen Mary, University of London.
-    Copyright 2006-2007 Chris Cannam and QMUL.
-  
-    Permission is hereby granted, free of charge, to any person
-    obtaining a copy of this software and associated documentation
-    files (the "Software"), to deal in the Software without
-    restriction, including without limitation the rights to use, copy,
-    modify, merge, publish, distribute, sublicense, and/or sell copies
-    of the Software, and to permit persons to whom the Software is
-    furnished to do so, subject to the following conditions:
-
-    The above copyright notice and this permission notice shall be
-    included in all copies or substantial portions of the Software.
-
-    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
-    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
-    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-    Except as contained in this notice, the names of the Centre for
-    Digital Music; Queen Mary, University of London; and Chris Cannam
-    shall not be used in advertising or otherwise to promote the sale,
-    use or other dealings in this Software without prior written
-    authorization.
-*/
-
-#ifndef _VAMP_PLUGIN_WRAPPER_H_
-#define _VAMP_PLUGIN_WRAPPER_H_
-
-#include <vamp-sdk/Plugin.h>
-
-namespace Vamp {
-
-namespace HostExt {
-
-/**
- * \class PluginWrapper PluginWrapper.h <vamp-sdk/hostext/PluginWrapper.h>
- * 
- * PluginWrapper is a simple base class for adapter plugins.  It takes
- * a pointer to a "to be wrapped" Vamp plugin on construction, and
- * provides implementations of all the Vamp plugin methods that simply
- * delegate through to the wrapped plugin.  A subclass can therefore
- * override only the methods that are meaningful for the particular
- * adapter.
- *
- * \note This class was introduced in version 1.1 of the Vamp plugin SDK.
- */
-
-class PluginWrapper : public Plugin
-{
-public:
-    virtual ~PluginWrapper();
-    
-    bool initialise(size_t channels, size_t stepSize, size_t blockSize);
-    void reset();
-
-    InputDomain getInputDomain() const;
-
-    unsigned int getVampApiVersion() const;
-    std::string getIdentifier() const;
-    std::string getName() const;
-    std::string getDescription() const;
-    std::string getMaker() const;
-    int getPluginVersion() const;
-    std::string getCopyright() const;
-
-    ParameterList getParameterDescriptors() const;
-    float getParameter(std::string) const;
-    void setParameter(std::string, float);
-
-    ProgramList getPrograms() const;
-    std::string getCurrentProgram() const;
-    void selectProgram(std::string);
-
-    size_t getPreferredStepSize() const;
-    size_t getPreferredBlockSize() const;
-
-    size_t getMinChannelCount() const;
-    size_t getMaxChannelCount() const;
-
-    OutputList getOutputDescriptors() const;
-
-    FeatureSet process(const float *const *inputBuffers, RealTime timestamp);
-
-    FeatureSet getRemainingFeatures();
-
-protected:
-    PluginWrapper(Plugin *plugin); // I take ownership of plugin
-    Plugin *m_plugin;
-};
-
-}
-
-}
-
-#endif
diff --git a/libs/vamp-sdk/vamp-sdk/plugguard.h b/libs/vamp-sdk/vamp-sdk/plugguard.h
new file mode 100644
index 0000000..311dd48
--- /dev/null
+++ b/libs/vamp-sdk/vamp-sdk/plugguard.h
@@ -0,0 +1,98 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_SDK_PLUGGUARD_H_
+#define _VAMP_SDK_PLUGGUARD_H_
+
+/**
+ * Normal usage should be:
+ *
+ * - Plugins include vamp-sdk/Plugin.h or vamp-sdk/PluginBase.h.
+ *   These files include this header, which specifies an appropriate
+ *   namespace for the plugin classes to avoid any risk of conflict
+ *   with non-plugin class implementations in the host on load.
+ *
+ * - Hosts include vamp-hostsdk/Plugin.h, vamp-hostsdk/PluginBase.h,
+ *   vamp-hostsdk/PluginHostAdapter, vamp-hostsdk/PluginLoader.h etc.
+ *   These files include vamp-hostsdk/hostguard.h, which makes a note
+ *   that we are in a host.  A file such as vamp-hostsdk/Plugin.h
+ *   then simply includes vamp-sdk/Plugin.h, and this guard header
+ *   takes notice of the fact that it has been included from a host
+ *   and leaves the plugin namespace unset.
+ *
+ * Problems will occur when a host includes files directly from the
+ * vamp-sdk directory.  There are two reasons this might happen:
+ * mistake, perhaps owing to ignorance of the fact that this isn't
+ * allowed (particularly since it was the normal mechanism in v1 of
+ * the SDK); and a wish to incorporate plugin code directly into the
+ * host rather than having to load it.
+ *
+ * What if the host does include a vamp-sdk header by mistake?  We can
+ * catch it if it's included before something from vamp-hostsdk.  If
+ * it's included after something from vamp-hostsdk, it will work OK
+ * anyway.  The remaining problem case is where nothing from
+ * vamp-hostsdk is included in the same file.  We can't catch that.
+ */
+
+#ifndef _VAMP_IN_HOSTSDK
+
+#define _VAMP_IN_PLUGINSDK 1
+
+#ifdef _VAMP_NO_PLUGIN_NAMESPACE
+#define _VAMP_SDK_PLUGSPACE_BEGIN(h)
+#define _VAMP_SDK_PLUGSPACE_END(h)
+#else
+#ifdef _VAMP_PLUGIN_IN_HOST_NAMESPACE
+#define _VAMP_SDK_PLUGSPACE_BEGIN(h) \
+	namespace _VampHost {
+
+#define _VAMP_SDK_PLUGSPACE_END(h) \
+	} \
+	using namespace _VampHost;
+#else
+#define _VAMP_SDK_PLUGSPACE_BEGIN(h) \
+	namespace _VampPlugin {
+
+#define _VAMP_SDK_PLUGSPACE_END(h) \
+	} \
+	using namespace _VampPlugin;
+#endif
+#endif
+
+#endif
+
+#endif
+
diff --git a/libs/vamp-sdk/vamp-sdk/vamp-sdk.h b/libs/vamp-sdk/vamp-sdk/vamp-sdk.h
new file mode 100644
index 0000000..3ac2f8b
--- /dev/null
+++ b/libs/vamp-sdk/vamp-sdk/vamp-sdk.h
@@ -0,0 +1,46 @@
+/* -*- c-basic-offset: 4 indent-tabs-mode: nil -*-  vi:set ts=8 sts=4 sw=4: */
+
+/*
+    Vamp
+
+    An API for audio analysis and feature extraction plugins.
+
+    Centre for Digital Music, Queen Mary, University of London.
+    Copyright 2006 Chris Cannam.
+  
+    Permission is hereby granted, free of charge, to any person
+    obtaining a copy of this software and associated documentation
+    files (the "Software"), to deal in the Software without
+    restriction, including without limitation the rights to use, copy,
+    modify, merge, publish, distribute, sublicense, and/or sell copies
+    of the Software, and to permit persons to whom the Software is
+    furnished to do so, subject to the following conditions:
+
+    The above copyright notice and this permission notice shall be
+    included in all copies or substantial portions of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+    EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+    NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR
+    ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF
+    CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+    WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+
+    Except as contained in this notice, the names of the Centre for
+    Digital Music; Queen Mary, University of London; and Chris Cannam
+    shall not be used in advertising or otherwise to promote the sale,
+    use or other dealings in this Software without prior written
+    authorization.
+*/
+
+#ifndef _VAMP_SDK_SINGLE_INCLUDE_H_
+#define _VAMP_SDK_SINGLE_INCLUDE_H_
+
+#include "PluginBase.h"
+#include "Plugin.h"
+#include "RealTime.h"
+
+#endif
+
+
diff --git a/libs/vamp-sdk/vamp/vamp.h b/libs/vamp-sdk/vamp/vamp.h
index 4f0145a..08a83ee 100644
--- a/libs/vamp-sdk/vamp/vamp.h
+++ b/libs/vamp-sdk/vamp/vamp.h
@@ -50,7 +50,7 @@ extern "C" {
  * See also the vampApiVersion field in the plugin descriptor, and the
  * hostApiVersion argument to the vampGetPluginDescriptor function.
  */
-#define VAMP_API_VERSION 1
+#define VAMP_API_VERSION 2
 
 /**
  * C language API for Vamp plugins.
@@ -160,6 +160,15 @@ typedef struct _VampOutputDescriptor
        "Resolution" of result, if sampleType is vampVariableSampleRate. */
     float sampleRate;
 
+    /** 1 if the returned results for this output are known to have a
+        duration field.
+
+        This field is new in Vamp API version 2; it must not be tested
+        for plugins that report an older API version in their plugin
+        descriptor.
+    */
+    int hasDuration;
+
 } VampOutputDescriptor;
 
 typedef struct _VampFeature
@@ -184,13 +193,46 @@ typedef struct _VampFeature
 
 } VampFeature;
 
+typedef struct _VampFeatureV2
+{
+    /** 1 if the feature has a duration. */
+    int hasDuration;
+
+    /** Seconds component of duratiion. */
+    int durationSec;
+
+    /** Nanoseconds component of duration. */
+    int durationNsec;
+
+} VampFeatureV2;
+
+typedef union _VampFeatureUnion
+{
+    // sizeof(featureV1) >= sizeof(featureV2) for backward compatibility
+    VampFeature   v1;
+    VampFeatureV2 v2;
+
+} VampFeatureUnion;
+
 typedef struct _VampFeatureList
 {
     /** Number of features in this feature list. */
     unsigned int featureCount;
 
-    /** Features in this feature list.  May be NULL if featureCount is zero. */
-    VampFeature *features;
+    /** Features in this feature list.  May be NULL if featureCount is
+        zero.
+
+        If present, this array must contain featureCount feature
+        structures for a Vamp API version 1 plugin, or 2*featureCount
+        feature unions for a Vamp API version 2 plugin.
+
+        The features returned by an API version 2 plugin must consist
+        of the same feature structures as in API version 1 for the
+        first featureCount array elements, followed by featureCount
+        unions that contain VampFeatureV2 structures (or NULL pointers
+        if no V2 feature structures are present).
+     */
+    VampFeatureUnion *features;
 
 } VampFeatureList;
 
@@ -289,7 +331,7 @@ typedef struct _VampPluginDescriptor
         handle, or releaseOutputDescriptor for this descriptor. Host
         must call releaseOutputDescriptor after use. */
     VampOutputDescriptor *(*getOutputDescriptor)(VampPluginHandle,
-                                                unsigned int);
+                                                 unsigned int);
 
     /** Destroy a descriptor for a feature output. */
     void (*releaseOutputDescriptor)(VampOutputDescriptor *);
@@ -312,6 +354,7 @@ typedef struct _VampPluginDescriptor
 
 } VampPluginDescriptor;
 
+
 /** Get the descriptor for a given plugin index in this library.
     Return NULL if the index is outside the range of valid indices for
     this plugin library.
@@ -324,10 +367,16 @@ typedef struct _VampPluginDescriptor
     field for its actual compatibility level, the host should be able
     to do the right thing with it: use it if possible, discard it
     otherwise.
+
+    This is the only symbol that a Vamp plugin actually needs to
+    export from its shared object; all others can be hidden.  See the
+    accompanying documentation for notes on how to achieve this with
+    certain compilers.
 */
 const VampPluginDescriptor *vampGetPluginDescriptor
     (unsigned int hostApiVersion, unsigned int index);
 
+
 /** Function pointer type for vampGetPluginDescriptor. */
 typedef const VampPluginDescriptor *(*VampGetPluginDescriptorFunction)
     (unsigned int, unsigned int);
diff --git a/vst/SConscript b/vst/SConscript
index 544854e..f3492b8 100644
--- a/vst/SConscript
+++ b/vst/SConscript
@@ -16,6 +16,7 @@ winmain.c
 #libs/fst/fstinfofile.o
 #libs/fst/vstwin.o
 #libs/fst/vsti.o
+#libs/fst/thread.o
 """
 )
 
diff --git a/vst/ardevst b/vst/ardevst
index cc21cde..fe33373 100755
--- a/vst/ardevst
+++ b/vst/ardevst
@@ -1,5 +1,6 @@
 #!/bin/sh      
-export ARDOUR_PATH=../gtk2_ardour/icons:../gtk2_ardour/pixmaps:../gtk2_ardour
-export LD_LIBRARY_PATH=../gtk2_ardour:../libs/surfaces/control_protocol:../libs/ardour:../libs/midi++2:../libs/pbd:../libs/soundtouch:../libs/gtkmm2ext:../libs/sigc++2:../libs/glibmm2:../libs/gtkmm2/atk:../libs/gtkmm2/pango:../libs/gtkmm2/gdk:../libs/gtkmm2/gtk:../libs/libgnomecanvasmm:../libs/libsndfile:../libs/appleutility:../libs/rubberband:../libs/vamp-sdk:$LD_LIBRARY_PATH
-export GTK_PATH=$PWD/../libs/clearlooks:~/.ardour2
-exec wine ./ardour_vst.exe.so "$@"
+
+. ../gtk2_ardour/ardev_common.sh
+
+export LD_LIBRARY_PATH=gtk2_ardour:$LD_LIBRARY_PATH
+wine ./vst/ardour_vst.exe.so "$@"
diff --git a/vst/winmain.c b/vst/winmain.c
index c2ad5fc..3721932 100644
--- a/vst/winmain.c
+++ b/vst/winmain.c
@@ -1,17 +1,12 @@
 #include <limits.h>
 #include <unistd.h>
 #include <stdio.h>
+#include <fst.h>
 
 extern int ardour_main(int argc, char* argv[]);
 
 int
 main (int argc, char* argv[]) 
 {
-    // call the user specified main function    
-    
-	int result = ardour_main(argc, argv);
-	printf ("main returned %d\n", result);
-	
-	return result;
-
+  return ardour_main(argc, argv);
 }

-- 
ardour Debian packaging



More information about the pkg-multimedia-commits mailing list