[SCM] mapserver branch, upstream, updated. upstream/6.2.1-3-gd3dd19a

Bas Couwenberg sebastic at xs4all.nl
Wed Sep 11 15:53:32 UTC 2013


The following commit has been merged in the upstream branch:
commit 967f9ca46ce9be8841044c9dfc4486509036b47c
Author: Bas Couwenberg <sebastic at xs4all.nl>
Date:   Wed Sep 11 14:43:58 2013 +0200

    Imported Upstream version 6.4.0-beta1

diff --git a/.gitignore b/.gitignore
index 403df5a..348bad4 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,41 +1,5 @@
-.libs
-*.o
-*.lo
-config.log
-config.status
-*.dll
+build
 *.swp
-*.pyc
-Makefile
-legend
-libmapserver.a
-libmapserver.la
-libtool
-mapscript/csharp/Makefile
-mapscript/java/Makefile
-mapscript/perl/Makefile.PL
-mapscript/python/_mapscript.la
-mapscript/python/build/
-mapscript/python/mapscript.py
-mapscript/python/mapscript_wrap.c
-mapscript/php/php_mapscript.la
-mapscript/java/edu
-mapscript/java/javamapscript_wrap.c
-mapscript/java/libjavamapscript.la
-mapscript/java/mapscript.jar
-mapscript/perl/MYMETA.yml
-mapscript/perl/Makefile.old
-mapscriptvars
-mapserv
-mapserver-config
-msencrypt
 nbproject
-scalebar
-shp2img
-shptree
-shptreetst
-shptreevis
-sortshp
-tile4ms
-autom4te.cache
 tags
+
diff --git a/.travis.yml b/.travis.yml
index 8243455..7a3891f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,4 +1,40 @@
-language: c
+language: php
+php:
+  - 5.5
+
+env:
+  global:
+# Encrypted private key of the deploy key of the github.com/mapserver/coverage.git repository
+     - secure: "B1Tt18Q4F82+cXlj4fBoZDiyWbXLuzpJD6jt828qiS/i9ws8IEqYF7x3V4fo\nAnO1pZ84hdIOEfcSj2tFnysCPZ+zpOPzN2ma7iVEgmFTPNXf8pSx8CTXtiI/\nohUEcnARRCyuCK7cjEP5m4iWGazI+Pc563X4g67ToRPkLhIdrEg="
+     - secure: "OvxCriM3Dwa0wkZ+nQL8e6nuMrG2hrfET+QEPRps/fPSGSR+yRWo04hBqRn2\niBTJGpi0JvaTN0pxjCx2I/+4jbzkNt+J6IqSz2KTUzseiWA3tyAN8uel6fIo\nkS90UJ7OeKUuYkvzfVwYn6pxM6b+CN6+DTs0dlWgxyMg/AtVdz8="
+     - secure: "Vcf+jOzNtXapBf8qfM8N0ZTarQ9B7qqvG8X8fLJP5M2uDO2BrruMIZPpxwcL\nGMBkkZZGuofeqOs+BNxwnO1l4YOC+JUzQGQnExbEi02QDVzdR4+3sUvruXtL\nU/ppXvjghchgqvVp8QMjiVkUG1Ja1qwwCDM0GSN/PTfBy+Pjav0="
+     - secure: "FcCFPhMjgeAcSMFiTaZC6cp3IrAP9PvpAiuiKchG2smlQe85nvwdUbap7aFu\nJ8ujnuqzQJ1pc2+GAtCn0OZZ1Bh9mW31FEESiU74TphaKOFY8qAKrR7TamWx\n5XLqHvNu16LlOy/Cy8G82dMCGzPJCadM/ZwdI/RsWwRqjHgIHv0="
+     - secure: "Zs2+0yF2P6WWVT4o1kmgkSRmHUL1dkAYk+tHU0Piie+czblouMmqdJwsBNP6\nQF454VinL3Pu2tgbDAF10V+HknW/0ZevvmcrNa9k+Hjry8VtMNdM7jMqv4it\nYU5IGR55wfRg5q6c1jRxIPwc3Ssh2VOlz7HByppPG6i37prYO8I="
+     - secure: "rnFScHTmX9VDMUquOlP1FPGCr/GpCu64xw4m5AC5nIP/BCSdFSak02cc/JgC\nJPvuoud5xftyBspPRDB2eBP4YXOcPuSEdysibpGGBagKj7faCNQmCZSDd3zR\nWvLJwlfuQ39PoTIHU6O/TCX4U+v/gm4WJMwm1Tip1ID+wqqyoNU="
+     - secure: "h57JVvts9A0XF9ckGGokZwuD1hTBDOS0o1Yq3lD0Xd2BeJrgAXwgnKsBnBNP\nEMTBfRLGVyTgR8hiamySlWUUyVVQXMuLvKu1JnlrnZltMC8YGH4QEQwc7Twj\ni2GmsouUUHGOHU10U1F+YllSWZJjfLa6kgjkMNHg617c+PZfPLg="
+     - secure: "gB/9lGc5o6xeJSLler3s5ZmP0Kn+x1knSw5BIUQkke7rzWlMIaeZHqEf1iQm\n49Q2Aepo0I+RdAaGNlPHR3KrUc3P3/ZokWZ1zv449Mh0OKLNrLSE+CruuVYj\n2XcOrLC2vjSsMfaM9520spdjbvVpcTUKJho9kGRTPKLs8YbGLv8="
+     - secure: "px+guXOAtfmiBRub6sgvzlidKEmCNVthyAcaRHRzdtl6j7XoXHPGL2QHb8YH\nxV/wtDnLFIZi1eoShpLwABGvqQ1KQ20X+nz8FWZDnmDK3PXVBTqaUMyarmEB\nT7UohY94d8S2NqWJqeiOqVfMBOsIve9N1g3mcSUAlYMngEYoVt0="
+     - secure: "jPxrLpA61LxMH2a8k9P22l3/7Yx+Lhzmrne61xkFGo1F9oqwHap88AKm0gP3\nEApgDmCVRvHgetfEFIxapF+6yPZinE0EsqJonKS1NCeKjs91LMsM7Dr3UiU3\nNaco2w3B0v6dDOdG1JhAV6N/CqdWXz85hooSWsLrWpYMtPbOfJQ="
+     - secure: "dFvmnenj189QmbFdTW2ckHPbYojouowtz8cURDrR/2BiU0a3GUUDHP0h9O+c\nLDfJ1g03hsMr8m/45QdpL/x2lROimczFNu/U+uS8Vtja1z4SYaOMDjW4p3pq\nqPzQc/WmlpBY8wmfCH1WqmRRPvrfKceEDtVhWXruxpSZUx/OvoY="
+     - secure: "TmOZmx8kyEOCUOMmWKuPpKzqBpbCKMOJpankHhhEAwJ00iJ3bMzdZk7dFsMV\nq9sk2nAgkARsVakfhiUvM516CKgf3J5rskUq+AQs6JdFP8w9A3LKowLHxlqg\nCvhQtOm3ff1EVQKeDOfgUxaI20Ulq6sl+b1/uq2W1v25IqwR1ps="
+     - secure: "rYU47VfOGgheYhF/Xy6DM9iRi+NPSoyfMQ9B0Hoznm7k/TI1ojEky/wnIp3A\n+UdkoNo0xYzLZdjY4b1UBukMTKZJXVpYHs+KwKMhJQU3UaXpWEWo0Hqr8fU1\nOf7nspF27o79xcc3R+Okuz7L2J8+jD6Ggi2NW5vvp2S+jQW4Py4="
+     - secure: "PXqhXu3cK9nf80Pv4AgqS2R8HVLAHVGozqfAeAgPDOZQYUCbAyEm/QZ5WbPb\nzNQAYuEFVjt59H0b3fOM5rUSX8Igx0NeG9rxG6WYyitXZWinXyeKeZ5yKn1f\nI/gIZPVH1r1H30+TCOH9sD9rH/2eRzb5ycDGKccZfv5/MocwKwg="
+     - secure: "KK6YzOtwmbd3UbfiavTowvUkTGXN23ZMONwP7OpTTDZ+1/XVBeiuGLJAdHsn\nLPOImlytI9SavQekA6w4EaPb9VLRoC+O1CXOlllEjxfo0LojXDBKCaoyXOx3\nu1K8aXjyeZ2dPagjz06NV6r+y9tGypHrR7qXArVANRkzsajpABM="
+     - secure: "XH1YshS/QJTOWxlccDjHVCSnN3IDYqug8hw+xOpNXeKR/VbZ82lv6s1gURHh\nKI6jDPGUFiD/OA37SDmArT/CbZ2zDJtSB8YNDr8w/wInlp7vnWBoRWlFQ3eP\nsJDexlZTCvo3TUogHFpLrbq9WuEXLCJ/yfYq1zJfFvipDWR6MhQ="
+     - secure: "QoM0cJU0QioMMcD8Vs4xD04+jMGrTmbxxESpR4fwllAhP0ZpZt8E1qPQV9Hq\nVNzRVF/FLMlmDL8LzAYOFzVZASpb0X0l5KmxqRN3rRkSDc/LLSQf+701W00T\nJLAUXB05JPvJE5QBM5VgqNivO1JAC/Y0D83Pio8fHxYFUG6M9DM="
+     - secure: "LufnBePmcGefhwb3ofhBiPWdiGjGMa8G83HNdYv4BGMNyJqGa4rVaFg5yPa2\nLZx0JPwEoWK+i3QuI2ug37bSSBMf0130sUOn+E+Vy4fHeGrCdt3WrwSjACq5\nGgaBQ1JN6zLI8Gt4ekcOBOZNme6a+eMoW6asAhroIPoU1Jo/5o0="
+     - secure: "LZorvKqv/ncsk6sZS5NaZch/msx3HCHcy3e6BEJwudQHnF5iLz8TGbJFL9UL\nXjVX6H+CmnOQW9qbMEWTfMVXuLEXCVpX0YoQuhYwYEbhdSmz8PFJlv8BxxJg\n3OOZo0QgD2ZZ/KBenj3XIVVKeS2jHBUhXKP8G6D88xmdt3GtzRY="
+     - secure: "JmHFSkvxfoY6vfSM35K2eC4X0GN9n1SWapBzIFT70rz3PNKAY2QAGlvcMI2W\nZZ5JouXHHESXR+mujllzZRcx9ZJQ67k65OxG+a1ID+rivTO1A0kU36chBy8Q\nNgskyAD68gixuYts+4MXb1biXKdEO9AmUTu3zDvgqo5vcTIjvPU="
+     - secure: "QMjLOqEDegfPTTlm1f4SX2/77XLqAjpPrQ483EGRY59/xrS1aI0l9jTgpgTv\nZ/JyuYOX+JkbQBeW1ZuAhaXH1Q2AZ7Sun+adJ0B4yLZTHFiiy2mIFe7CcUCi\np+WgxwSPvi+uZUvEEAczKFWDKvM8qyUwZoHqaYj7VU4mComfsyE="
+     - secure: "RynRoItVw0gkM5OznZYhoDuukwOXVVXS5sF75G53FpoobXQYaUR20BoPFqtT\nHptuGei3f23Afiq3j807GWNoOxqVIaIoijMVxEBk6/xu43DYqUO3Nx4fB6Bk\nHdp4qNTfTVtsqy7IuXzbB3koS5xc1DUPHFDYh10pH5xWItUxlEc="
+     - secure: "UVtqSIfAKYSW0J06QEo+HveY+krqc7rEvnO5SNVzcQCFahnfWOIec6WQPd6O\nF/wPRjcC/zxg8PK/u5RHOKDNY6/nFNnRE7b8+MkxKcWZiFy0TipGjr57n6GW\nzgBGFi4Kw8XqFkC4hKC2eqiA8iYC+xCVzLNtnT3zp0fBG/nSrR8="
+     - secure: "jGoUxEIa0Mi1RZU+nZpgO9c5vw82Yl4s1h+0bimQ17OA44mmOD4UQ4ygkH+1\nKsDwJ1JxP85K2EVZdwI4EswHCH1gYRzHyO0Mo6r9LOB8aGb60mq4BCQj80oI\nlw/i4K037sb0zqys7uu0J0UD9Xep0F49uYBdrnXl5l/fLzHTm1w="
+     - secure: "CzFKm/g+wLUdsu4ecEx6v93ZS/CM0/3hcBxPtt/nRbmF95KW+QZMIpwUbmsH\nIZhljPkWjKOceB1sotdJjXWzEuPMj64rh9cJyWw2WO7eGG0NtbovZPUEZF4P\nz6sa3KcjNnLYAMq3Op29p23DLaZWzJqy6yzFvYQF8lxUYIyhLDU="
+     - secure: "fwO9vY9pIHgsCoETgQCkTVzKguuItFwLnkWOzZtzvt8fiJw2/ZafycnsTJMc\nh3/jZpn1+K+dQr7jMks9vKTXLq5101Z4SBbxaa0bt9NjyGlL72gf8sB331Oh\nLZ/E/415jeRT8sFoYNvKOfL+rtqqHaimJkaS/XvRUfru/zrb5Rw="
+     - secure: "TN6ig2qgH6EFGEttDtD9rxj2bH3BUJA4rJafjOXiAdQUVcH9E6lWeIaorzy9\n5Empsi/iC2rXF9i+JwE+OreUh47NL3P9jQN8dNkRmyLiuGpVVmreXynLydsS\nmaxPVwRKKSkL1PR54ICQ/Blw0vR27AqlvxO/gLcESG9Xu3Isa4o="
+     - secure: "BacSp+HDt0fEiSElLIzfTxi72sjO1VZkQc2/+AEJqYnGmBse1eofV9XRSlfd\nfm2qDXER34y2PerxBL5EmF3D0kG8vhBANOtHTHw5LlTR8xa/MJIMZag6zw7q\nBacSmiRNbw9XpTN+lcYvzrKFaf29exBvdKCGBv7qdMzLcEMxBVw="
+     - secure: "Bj/9iVBA6DGVcGRdbt3bQms8VglgSjdhI7IwvRkO3Gfvq0FTg1Hu8nodAiwM\nrfMfHzvTGNZudAkBRmPE6xZtIbID6v89S8CqEx3iGU+qbvni2nVt1SzEppb4\n8oZLKlZf3dCthrR2rpIdVMcccWhW3AjDfHKO9OlV2VR90NkWKz4="
+     - secure: "OJqQvNnWc0MWNOxsyhtfnn6XLj3Ssmcl+nRAp2KBwI691HvXMDsqmIXBEjq1\nql+iuNn7sxn9v+ooGXmrFS9CHndncmtKEvNzdi1HKlJhEAG0+MCYnwYwaQHr\n+6HhCnLoZ2wiE+OANFjodkQRNQ4VyATOEn5WFnp56CEtiFQiNzM="
 
 compiler:
   - gcc
@@ -7,29 +43,32 @@ before_install:
   - git submodule update --init --recursive
   - sudo add-apt-repository -y ppa:ubuntugis/ubuntugis-unstable
   - sudo apt-get update -qq
-  - sudo apt-get install -qq php-pear colordiff postgis libpq-dev libpng12-dev libjpeg-dev libgif-dev libgeos-dev libgd2-noxpm-dev libfreetype6-dev libfcgi-dev libcurl4-gnutls-dev libcairo2-dev libgdal1-dev libproj-dev libxml2-dev
-  - sudo pear config-set auto_discover 1 && sudo pear install --alldeps channel://pear.phpunit.de/PHPUnit-3.6.12
-  - echo "extension=php_mapscript.so" | sudo tee -a /etc/php5/cli/php.ini
+  - sudo apt-get install -qq bison flex swig cmake librsvg2-dev colordiff postgis postgresql-9.1-postgis-2.0-scripts libpq-dev libpng12-dev libjpeg-dev libgif-dev libgeos-dev libgd2-noxpm-dev libfreetype6-dev libfcgi-dev libcurl4-gnutls-dev libcairo2-dev libgdal1-dev libproj-dev libxml2-dev python-dev php5-dev libexempi-dev lcov lftp
+  - sudo pip install git+git://github.com/tbonfort/cpp-coveralls.git@extensions
   - cd msautotest
   - ./create_postgis_test_data.sh
+  - python -m SimpleHTTPServer &> /dev/null &
   - cd ..
+  - touch maplexer.l
+  - touch mapparser.y
 
-install:
-  - ./configure --with-gd --with-postgis --with-wmsclient --with-wfsclient --with-kml --with-cairo --with-wcs --with-proj --with-geos --with-gdal --with-ogr --with-wfs --with-sos --with-php
-  - make -j3
-  - sudo make install 
-  - sudo ldconfig
 
 script:
-  - make -j3 test
-  - cd msautotest/php && ./run_test.py
+  - ./run-test-suite.sh
+
+after_success: 
+# Only run coverage when it is safe to do so (not on pull requests), and only on master branch
+  - echo "$TRAVIS_SECURE_ENV_VARS"
+  - echo "$TRAVIS_BRANCH"
+  - sh -c 'if test "$TRAVIS_SECURE_ENV_VARS" = "true" -a "$TRAVIS_BRANCH" = "master"; then echo "run coverage"; ./run_code_coverage_upload.sh; fi'
+  - coveralls --exclude renderers --exclude mapscript --exclude apache --exclude build/mapscript/mapscriptPYTHON_wrap.c --exclude shp2img.c --exclude legend.c --exclude scalebar.c --exclude msencrypt.c --exclude sortshp.c --exclude shptreevis.c --exclude shptree.c --exclude testexpr.c --exclude sym2img.c --exclude testcopy.c --exclude shptreetst.c --exclude tile4ms.c --extension .c --extension .cpp
 
 notifications:
   email:
     recipients:
       - thomas.bonfort at gmail.com
-
   irc:
     channels:
       - "irc.freenode.org#mapserver"
     use_notice: true
+
diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..615b5df
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,890 @@
+cmake_minimum_required (VERSION 2.6)
+
+project (MapServer)
+
+include(CheckLibraryExists)
+include(CheckFunctionExists)
+include(CheckIncludeFile)
+include(CheckCSourceCompiles)
+
+
+
+set (MapServer_VERSION_MAJOR 6)
+set (MapServer_VERSION_MINOR 4)
+set (MapServer_VERSION_REVISION 0)
+set (MapServer_VERSION_SUFFIX "-beta1")
+
+set(TARGET_VERSION_MAJOR ${MapServer_VERSION_MAJOR})
+set(TARGET_VERSION_MINOR ${MapServer_VERSION_MINOR})
+
+MATH(EXPR MapServer_IS_DEV_VERSION "${MapServer_VERSION_MINOR}%2")
+if(MapServer_IS_DEV_VERSION)
+  set (MapServer_VERSION_STRING "${MapServer_VERSION_MAJOR}.${MapServer_VERSION_MINOR}-dev")
+else(MapServer_IS_DEV_VERSION)
+  set (MapServer_VERSION_STRING "${MapServer_VERSION_MAJOR}.${MapServer_VERSION_MINOR}.${MapServer_VERSION_REVISION}")
+  set (MapServer_VERSION_STRING "${MapServer_VERSION_STRING}${MapServer_VERSION_SUFFIX}")
+endif(MapServer_IS_DEV_VERSION)
+MATH(EXPR MapServer_VERSION_NUM "${MapServer_VERSION_MAJOR}*10000+${MapServer_VERSION_MINOR}*100+${MapServer_VERSION_REVISION}")
+
+SET(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake ${CMAKE_MODULE_PATH})
+if (APPLE)
+  set(CMAKE_FIND_FRAMEWORK "LAST")
+endif (APPLE)
+
+
+macro (ms_link_libraries)
+  target_link_libraries(mapserver ${ARGV})
+  if(BUILD_STATIC)
+    target_link_libraries(mapserver_static ${ARGV})
+  endif(BUILD_STATIC)
+endmacro()
+
+macro( report_optional_not_found component )
+  message(SEND_ERROR "${component} library/component/dependency could not be found.
+  HINTS:
+  - disable ${component} support by adding -DWITH_${component}=0
+  - add the ${component} install directory to the CMAKE_PREFIX_PATH variable (-DCMAKE_PREFIX_PATH=\"/path/to/${component}-install-dir;/path/to/other/dirs\"")
+endmacro()
+macro( report_mandatory_not_found component )
+  message(SEND_ERROR "${component} library/component could not be found and is a mandatory dependency
+  HINT:
+  - add the ${component} install directory to the CMAKE_PREFIX_PATH variable (-DCMAKE_PREFIX_PATH=\"/path/to/${component}-install-dir;/path/to/other/dirs\"")
+endmacro()
+macro( report_dependency_error component dependency)
+  message(SEND_ERROR "${component} support requires ${dependency} support, however ${dependency} support has been disabled.
+  HINTS:
+  - re-run with -DWITH_${dependency}=1 (or without -DWITH_${dependency}=0)
+  - disable ${component} support by adding -DWITH_${component}=0"
+  )
+endmacro()
+
+SET(CMAKE_REQUIRED_INCLUDES "math.h")
+if(CMAKE_COMPILER_IS_GNUCXX)
+   SET(CMAKE_REQUIRED_LIBRARIES "m")
+endif(CMAKE_COMPILER_IS_GNUCXX)
+check_function_exists("strrstr"          HAVE_STRRSTR)
+check_function_exists("strcasecmp"  HAVE_STRCASECMP)
+check_function_exists("strcasestr"  HAVE_STRCASESTR)
+check_function_exists("strdup"  HAVE_STRDUP)
+check_function_exists("strlcat"  HAVE_STRLCAT)
+check_function_exists("strlcpy"  HAVE_STRLCPY)
+check_function_exists("strlen"  HAVE_STRLEN)
+check_function_exists("strncasecmp"  HAVE_STRNCASECMP)
+check_function_exists("vsnprintf"  HAVE_VSNPRINTF)
+check_function_exists("lrintf" HAVE_LRINTF)
+check_function_exists("lrint" HAVE_LRINT)
+
+check_include_file(dlfcn.h HAVE_DLFCN_H)
+
+
+check_c_source_compiles("
+int main(int argc, char **argv) {
+   long x=0,y=0;
+   for(x=0;x<5;x++) {
+     if(y>1) break;
+     y=__sync_fetch_and_add(&x,1);
+   }
+}" HAVE_SYNC_FETCH_AND_ADD)
+
+include_directories(${CMAKE_CURRENT_BINARY_DIR})
+
+#options suported by the cmake builder
+option(WITH_PROJ "Choose if reprojection support should be built in" ON)
+option(WITH_KML "Enable native KML output support (requires libxml2 support)" OFF)
+option(WITH_SOS "Enable SOS Server support (requires PROJ and libxml2 support)" OFF)
+option(WITH_WMS "Enable WMS Server support (requires proj support)" ON)
+option(WITH_GD "Choose if (old) GD support should be built in" OFF)
+option(WITH_FRIBIDI "Choose if FriBidi glyph shaping support should be built in (usefull for left-to-right languages)" ON)
+option(WITH_ICONV "Choose if Iconv Internationalization support should be built in" ON)
+option(WITH_CAIRO "Choose if CAIRO  rendering support should be built in (required for SVG and PDF output)" ON)
+option(WITH_SVGCAIRO "Choose if SVG symbology support (via libsvgcairo) should be built in (requires cairo, libsvg, libsvg-cairo. Incompatible with librsvg)" OFF)
+option(WITH_RSVG "Choose if SVG symbology support (via librsvg) should be built in (requires cairo, librsvg. Incompatible with libsvg-cairo)" OFF)
+option(WITH_MYSQL "Choose if MYSQL joining support should be built in" OFF)
+option(WITH_FCGI "Choose if FastCGI support should be built in" ON)
+option(WITH_GEOS "Choose if GEOS geometry operations support should be built in" ON)
+option(WITH_POSTGIS "Choose if Postgis input support should be built in" ON)
+option(WITH_GDAL "Choose if GDAL input raster support should be built in" ON)
+option(WITH_OGR "Choose if OGR/GDAL input vector support should be built in" ON)
+option(WITH_CLIENT_WMS "Enable Client WMS Layer support (requires CURL and GDAL support)" OFF)
+option(WITH_CLIENT_WFS "Enable Client WMS Layer support (requires CURL and OGR support)" OFF)
+option(WITH_CURL "Enable Curl HTTP support (required for wms/wfs client, and remote SLD)" OFF)
+option(WITH_WFS "Enable WFS Server support (requires PROJ and OGR support)" ON)
+option(WITH_WCS "Enable WCS Server support (requires PROJ and GDAL support)" ON)
+option(WITH_LIBXML2 "Choose if libxml2 support should be built in (used for sos, wcs 1.1,2.0 and wfs 1.1)" ON)
+option(WITH_THREADS "Choose if a thread-safe version of libmapserver should be built (only recommended for some mapscripts)" OFF)
+option(WITH_GIF "Enable GIF support (for PIXMAP loading)" ON)
+option(WITH_PYTHON "Enable Python mapscript support" OFF)
+option(WITH_PHP "Enable Python mapscript support" OFF)
+option(WITH_PERL "Enable Perl mapscript support" OFF)
+option(WITH_RUBY "Enable Ruby mapscript support" OFF)
+option(WITH_JAVA "Enable Java mapscript support" OFF)
+option(WITH_CSHARP "Enable C# mapscript support" OFF)
+option(WITH_POINT_Z_M "include Z and M coordinates in point structure (advanced, not recommended)" OFF)
+option(WITH_ORACLESPATIAL "include oracle spatial database input support" OFF)
+option(WITH_ORACLE_PLUGIN "include oracle spatial database input support as plugin" OFF)
+option(WITH_MSSQL2008 "include mssql 2008 database input support as plugin" OFF)
+option(WITH_SDE_PLUGIN "include ArcSDE support as a plugin (must specify SDE_INCLUDE_DIR and SDE_LIBRARY_DIR)." OFF)
+option(WITH_SDE "include ArcSDE support. Add -DSDE_VERSION=91 to use 9.1 arcSDE version" OFF)
+option(WITH_EXEMPI "include xmp output metadata support" OFF)
+option(WITH_XMLMAPFILE "include native xml mapfile support (requires libxslt/libexslt)" OFF)
+
+option(BUILD_STATIC "Also build a static version of mapserver" OFF)
+option(LINK_STATIC_LIBMAPSERVER "Link to static version of libmapserver (also for mapscripts)" OFF)
+option(WITH_APACHE_MODULE "include (experimental) support for apache module" OFF)
+option(WITH_GENERIC_NINT "generic rounding" OFF)
+
+#TODO: USE_OGL? , USE_SDE, USE_CLUSTER_EXTERNAL USE_CLUSTER_PLUGIN, USE_MSSQL2008, USE_MSSQL2008_PLUGIN
+# SIGNORE_MISSING_DATA, CGI_CL_DEBUG_ARGS, EXTRA DEBUG FLAGS?,
+# PERLV_ld_DETECT?
+
+# Add compiler flags for warnings
+if(CMAKE_COMPILER_IS_GNUCXX)
+    set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wall -Wdeclaration-after-statement")
+    set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall")
+endif()
+SET(CMAKE_INSTALL_RPATH "${CMAKE_INSTALL_PREFIX}/lib")
+SET(CMAKE_INSTALL_RPATH_USE_LINK_PATH TRUE)
+SET(CMAKE_MACOSX_RPATH ON)
+
+if(LINK_STATIC_LIBMAPSERVER)
+  set(BUILD_STATIC 1)
+  set(MAPSERVER_LIBMAPSERVER mapserver_static)
+else(LINK_STATIC_LIBMAPSERVER)
+  set(MAPSERVER_LIBMAPSERVER mapserver)
+endif(LINK_STATIC_LIBMAPSERVER)
+
+set(agg_SOURCES
+renderers/agg/src/agg_arc.cpp
+renderers/agg/src/agg_vcgen_dash.cpp
+renderers/agg/src/agg_vcgen_contour.cpp
+renderers/agg/src/agg_curves.cpp
+renderers/agg/src/agg_embedded_raster_fonts.cpp
+renderers/agg/src/agg_trans_affine.cpp
+renderers/agg/src/agg_vcgen_stroke.cpp
+renderers/agg/src/agg_font_freetype.cpp
+renderers/agg/src/agg_line_aa_basics.cpp
+renderers/agg/src/clipper.cpp
+)
+include_directories(renderers/agg/include)
+
+if(WIN32)
+  set(REGEX_SOURCES ${REGEX_DIR}/regex.c)
+  include_directories(${REGEX_DIR})
+  add_definitions(-DREGEX_MALLOC -DUSE_GENERIC_MS_NINT -DHAVE_STRING_H)
+  add_definitions(-D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE)
+  set(REGEX_MALLOC 1)
+  set(USE_GENERIC_MS_NINT 1)
+  set(HAVE_STRING_H 0)
+else(WIN32)
+  set(REGEX_SOURCES "")
+endif(WIN32)
+
+set(mapserver_SOURCES
+cgiutil.c mapgeos.c maporaclespatial.c mapsearch.c mapwms.c classobject.c
+mapgml.c mapoutput.c mapwmslayer.c layerobject.c mapgraticule.c mapows.c
+mapservutil.c mapxbase.c maphash.c mapowscommon.c mapshape.c mapxml.c mapbits.c
+maphttp.c mapparser.c mapstring.c mapxmp.c mapcairo.c mapimageio.c
+mappluginlayer.c mapsymbol.c mapchart.c mapimagemap.c mappool.c maptclutf.c
+mapcluster.c mapio.c mappostgis.c maptemplate.c mapcontext.c mapjoin.c
+mappostgresql.c mapthread.c mapcopy.c maplabel.c mapprimitive.c maptile.c
+mapcpl.c maplayer.c mapproject.c maptime.c mapcrypto.c maplegend.c hittest.c
+mapprojhack.c maptree.c mapdebug.c maplexer.c mapquantization.c mapunion.c
+mapdraw.c maplibxml2.c mapquery.c maputil.c strptime.c mapdrawgdal.c
+mapraster.c mapuvraster.c mapdummyrenderer.c mapobject.c maprasterquery.c
+mapwcs.c maperror.c mapogcfilter.c mapregex.c mapwcs11.c mapfile.c
+mapogcfiltercommon.c maprendering.c mapwcs20.c mapgd.c mapogcsld.c
+mapresample.c mapwfs.c mapgdal.c mapogcsos.c mapscale.c mapwfs11.c
+mapgeomtransform.c mapogroutput.c mapsde.c mapwfslayer.c mapagg.cpp mapkml.cpp
+mapgeomutil.cpp mapkmlrenderer.cpp
+mapogr.cpp mapcontour.c mapsmoothing.c ${REGEX_SOURCES})
+
+add_library(mapserver SHARED ${mapserver_SOURCES} ${agg_SOURCES})
+set_target_properties( mapserver  PROPERTIES
+  VERSION ${MapServer_VERSION_STRING}
+  SOVERSION 1
+) 
+if(BUILD_STATIC)
+  add_library(mapserver_static STATIC ${mapserver_SOURCES} ${agg_SOURCES})
+  set_target_properties( mapserver_static PROPERTIES
+    VERSION ${MapServer_VERSION_STRING}
+    SOVERSION 1
+  ) 
+endif(BUILD_STATIC)
+
+#SOVERSION is not necessarily the same as the
+#major version. The rule is that any breakage of the ABI must be
+#indicated by incrementing the SOVERSION. So, adding e.g. functions is no
+#problem, modifying argument lists or removing functions would required
+#the SOVERSION to be incremented. Similar rules hold of course for
+#non-opaque data-structures.
+
+add_executable(mapserv mapserv.c)
+target_link_libraries(mapserv ${MAPSERVER_LIBMAPSERVER})
+add_executable(shp2img shp2img.c)
+target_link_libraries(shp2img ${MAPSERVER_LIBMAPSERVER})
+add_executable(shptree shptree.c)
+target_link_libraries(shptree ${MAPSERVER_LIBMAPSERVER})
+add_executable(shptreevis shptreevis.c)
+target_link_libraries(shptreevis ${MAPSERVER_LIBMAPSERVER})
+add_executable(sortshp sortshp.c)
+target_link_libraries(sortshp ${MAPSERVER_LIBMAPSERVER})
+add_executable(legend legend.c)
+target_link_libraries(legend ${MAPSERVER_LIBMAPSERVER})
+add_executable(scalebar scalebar.c)
+target_link_libraries(scalebar ${MAPSERVER_LIBMAPSERVER})
+add_executable(msencrypt msencrypt.c)
+target_link_libraries(msencrypt ${MAPSERVER_LIBMAPSERVER})
+add_executable(tile4ms tile4ms.c)
+target_link_libraries(tile4ms ${MAPSERVER_LIBMAPSERVER})
+
+
+find_package(PNG)
+if(PNG_FOUND)
+  include_directories(${PNG_INCLUDE_DIR})
+  ms_link_libraries( ${PNG_LIBRARIES})
+  set(USE_PNG 1)
+else(PNG_FOUND)
+  report_mandatory_not_found(PNG)
+endif(PNG_FOUND)
+
+find_package(JPEG)
+if(JPEG_FOUND)
+  include_directories(${JPEG_INCLUDE_DIR})
+  ms_link_libraries( ${JPEG_LIBRARY})
+  set(USE_JPEG 1)
+else(JPEG_FOUND)
+  report_mandatory_not_found(JPEG)
+endif(JPEG_FOUND)
+
+find_package(Freetype)
+if(NOT FREETYPE_FOUND)
+  report_mandatory_not_found(FREETYPE)
+endif(NOT FREETYPE_FOUND)
+include_directories(${FREETYPE_INCLUDE_DIR})
+ms_link_libraries( ${FREETYPE_LIBRARY})
+
+
+if(WITH_PROJ)
+  find_package(Proj)
+  if(NOT PROJ_FOUND)
+    report_optional_not_found(PROJ)
+ else(NOT PROJ_FOUND)
+    include_directories(${PROJ_INCLUDE_DIR})
+    ms_link_libraries( ${PROJ_LIBRARY})
+    set (USE_PROJ 1)
+ endif(NOT PROJ_FOUND)
+endif (WITH_PROJ)
+
+if(WITH_WMS)
+  if(USE_PROJ)
+    set(USE_WMS_SVR 1)
+  else(USE_PROJ)
+    report_dependency_error(WMS PROJ)
+  endif(USE_PROJ)
+endif(WITH_WMS)
+
+
+if(WITH_GD)
+  find_package(GD)
+  if(NOT GD_FOUND)
+    report_optional_not_found(GD)
+ else(NOT GD_FOUND)
+    include_directories(${GD_INCLUDE_DIR})
+    ms_link_libraries( ${GD_LIBRARY})
+    set (USE_GD 1)
+    if(GD_SUPPORTS_PNG)
+      set(USE_GD_PNG 1)
+    endif(GD_SUPPORTS_PNG)
+    if(GD_SUPPORTS_GIF)
+      set(USE_GD_GIF 1)
+    endif(GD_SUPPORTS_GIF)
+    if(GD_SUPPORTS_JPEG)
+      set(USE_GD_JPEG 1)
+    endif(GD_SUPPORTS_JPEG)
+    if(GD_SUPPORTS_FREETYPE)
+      set(USE_GD_FREETYPE 1)
+    endif(GD_SUPPORTS_FREETYPE)
+ endif(NOT GD_FOUND)
+endif (WITH_GD)
+
+if(WITH_FRIBIDI)
+  find_package(FriBiDi)
+  if(NOT FRIBIDI_FOUND)
+    report_optional_not_found(FRIBIDI)
+ else(NOT FRIBIDI_FOUND)
+    include_directories(${FRIBIDI_INCLUDE_DIR})
+    ms_link_libraries( ${FRIBIDI_LIBRARY})
+    set (USE_FRIBIDI 1)
+    if(FRIBIDI_LEGACY)
+      message(WARNING "Old Fribidi found, upgrade recommended")
+    endif(FRIBIDI_LEGACY)
+ endif(NOT FRIBIDI_FOUND)
+endif (WITH_FRIBIDI)
+
+if(WITH_ICONV)
+  find_package(ICONV)
+  if(ICONV_FOUND)
+    include_directories(${ICONV_INCLUDE_DIR})
+    ms_link_libraries( ${ICONV_LIBRARY})
+    set (USE_ICONV 1)
+  else(ICONV_FOUND)
+    report_optional_not_found(ICONV)
+  endif(ICONV_FOUND)
+endif (WITH_ICONV)
+
+if(WITH_GENERIC_NINT)
+   set(USE_GENERIC_MS_NINT 1)
+endif(WITH_GENERIC_NINT)
+
+
+if(WITH_CAIRO)
+  find_package(Cairo)
+  if(CAIRO_FOUND)
+    include_directories(${CAIRO_INCLUDE_DIRS})
+    ms_link_libraries( ${CAIRO_LIBRARY})
+    set (USE_CAIRO 1)
+  else(CAIRO_FOUND)
+    report_optional_not_found(CAIRO)
+  endif(CAIRO_FOUND)
+endif (WITH_CAIRO)
+
+if(WITH_MYSQL)
+  find_package(MySQL)
+  if(MYSQL_FOUND)
+    include_directories(${MYSQL_INCLUDE_DIR})
+    ms_link_libraries( ${MYSQL_LIBRARY})
+    set (USE_MYSQL 1)
+  else(MYSQL_FOUND)
+    report_optional_not_found(MYSQL)
+  endif(MYSQL_FOUND)
+endif (WITH_MYSQL)
+
+if(WITH_ORACLE_PLUGIN AND WITH_ORACLESPATIAL)
+  message(SEND_ERROR "WITH_ORACLESPATIAL and WITH_ORACLE_PLUGIN cannot be used simultaneously")
+endif(WITH_ORACLE_PLUGIN AND WITH_ORACLESPATIAL)
+
+if(WITH_ORACLESPATIAL OR WITH_ORACLE_PLUGIN)
+  if(NOT DEFINED ENV{ORACLE_HOME})
+    MESSAGE( SEND_ERROR "ORACLE_HOME environment variable not set, needed for detection")
+  endif()
+  find_package(Oracle)
+  if(ORACLE_FOUND)
+    include_directories(${ORACLE_INCLUDE_DIR})
+  else(ORACLE_FOUND)
+    report_optional_not_found(ORACLESPATIAL)
+    #FIXME: error message here could be misleading, only states ORACLESPATIAL whereas
+    #the request could have been for ORACLE_PLUGIN
+  endif(ORACLE_FOUND)
+endif(WITH_ORACLESPATIAL OR WITH_ORACLE_PLUGIN)
+
+if(ORACLE_FOUND AND WITH_ORACLESPATIAL)
+    ms_link_libraries( ${ORACLE_LIBRARY})
+    set (USE_ORACLESPATIAL 1)
+endif(ORACLE_FOUND AND WITH_ORACLESPATIAL)
+
+if(ORACLE_FOUND AND WITH_ORACLE_PLUGIN)
+    add_library(msplugin_oracle MODULE maporaclespatial.c)
+    target_link_libraries(msplugin_oracle ${ORACLE_LIBRARY} ${MAPSERVER_LIBMAPSERVER})
+    set_target_properties(msplugin_oracle PROPERTIES COMPILE_FLAGS -DUSE_ORACLE_PLUGIN)
+	set (USE_ORACLE_PLUGIN 1)
+endif(ORACLE_FOUND AND WITH_ORACLE_PLUGIN)
+
+if(WITH_MSSQL2008)
+  find_package(ODBC)
+  if(ODBC_FOUND)
+    include_directories(${ODBC_INCLUDE_DIR})
+	add_library(msplugin_mssql2008 MODULE mapmssql2008.c)
+	target_link_libraries(msplugin_mssql2008 ${ODBC_LIBRARY} ${MAPSERVER_LIBMAPSERVER})
+    set_target_properties(msplugin_mssql2008 PROPERTIES COMPILE_FLAGS "-DUSE_MSSQL2008_PLUGIN -DUSE_MSSQL2008")
+	set (USE_MSSQL2008 1)
+  else(ODBC_FOUND)
+    report_optional_not_found(ODBC)
+  endif(ODBC_FOUND)
+endif(WITH_MSSQL2008)
+
+if(WITH_SDE_PLUGIN)
+  if(WITH_SDE)
+     MESSAGE( SEND_ERROR "WITH_SDE and WITH_SDE_PLUGIN cannot be used simultaneously")
+  endif(WITH_SDE)
+  if(SDE_INCLUDE_DIR AND SDE_LIBRARY_DIR)
+    include_directories(${SDE_INCLUDE_DIR})
+    if(SDE_VERSION STREQUAL "91")
+      add_library(msplugin_sde91 MODULE mapsde.c mapthread.c)
+      target_link_libraries(msplugin_sde91 ${SDE_LIBRARY_DIR}/pe91.lib ${SDE_LIBRARY_DIR}/sg91.lib ${SDE_LIBRARY_DIR}/sde91.lib ${MAPSERVER_LIBMAPSERVER})
+      set_target_properties(msplugin_sde91 PROPERTIES COMPILE_FLAGS "-DUSE_SDE")
+    else(SDE_VERSION STREQUAL "91")
+      add_library(msplugin_sde92 MODULE mapsde.c mapthread.c)
+      target_link_libraries(msplugin_sde92 ${SDE_LIBRARY_DIR}/pe.lib ${SDE_LIBRARY_DIR}/sg.lib ${SDE_LIBRARY_DIR}/sde.lib ${MAPSERVER_LIBMAPSERVER})
+      set_target_properties(msplugin_sde92 PROPERTIES COMPILE_FLAGS "-DUSE_SDE")
+    endif(SDE_VERSION STREQUAL "91")
+    set(USE_SDE_PLUGIN 1)
+  else(SDE_INCLUDE_DIR AND SDE_LIBRARY_DIR)
+     MESSAGE( SEND_ERROR "Must specify SDE_INCLUDE_DIR and SDE_LIBRARY_DIR for WITH_SDE_PLUGIN")
+  endif(SDE_INCLUDE_DIR AND SDE_LIBRARY_DIR)
+endif(WITH_SDE_PLUGIN)
+
+if(WITH_SDE)
+  find_package(SDE)
+  if(SDE_FOUND)
+    include_directories(${SDE_INCLUDE_DIRS})
+    ms_link_libraries(${SDE_LIBRARIES})
+    set (USE_SDE 1)
+    if(CMAKE_SIZEOF_VOID_P EQUAL 8)
+      set(SDE64 1)
+    endif(CMAKE_SIZEOF_VOID_P EQUAL 8)
+  else(SDE_FOUND)
+    MESSAGE(WARNING "Could not find (all?) sde files. Try setting -DSDE_DIR=/path/to/sde and/or -DSDE_VERSION=91|92|100")
+    report_optional_not_found(SDE)
+  endif(SDE_FOUND)
+endif(WITH_SDE)
+
+if(WITH_FCGI)
+  find_package(FCGI)
+  if(FCGI_FOUND)
+    include_directories(${FCGI_INCLUDE_DIR})
+    target_link_libraries(mapserv ${FCGI_LIBRARY})
+    set (USE_FASTCGI 1)
+  else(FCGI_FOUND)
+    report_optional_not_found(FCGI)
+  endif(FCGI_FOUND)
+endif (WITH_FCGI)
+
+if(WITH_GEOS)
+  find_package(GEOS)
+  if(GEOS_FOUND)
+    include_directories(${GEOS_INCLUDE_DIR})
+    ms_link_libraries( ${GEOS_LIBRARY})
+    set (USE_GEOS 1)
+  else(GEOS_FOUND)
+    report_optional_not_found(GEOS)
+  endif(GEOS_FOUND)
+endif (WITH_GEOS)
+
+if(WITH_POSTGIS)
+  find_package(PostgreSQL)
+  if(POSTGRESQL_FOUND)
+    #uppercase our variables
+    if ( NOT DEFINED POSTGRESQL_LIBRARY )
+      set( POSTGRESQL_LIBRARY ${PostgreSQL_LIBRARY})
+    endif()
+    if ( NOT DEFINED POSTGRESQL_INCLUDE_DIR )
+      set( POSTGRESQL_INCLUDE_DIR ${PostgreSQL_INCLUDE_DIR})
+    endif()
+    include_directories(${POSTGRESQL_INCLUDE_DIR})
+    ms_link_libraries( ${POSTGRESQL_LIBRARY})
+    CHECK_LIBRARY_EXISTS(pq "PQserverVersion" POSTGRESQL_LIBRARY POSTGIS_HAS_SERVER_VERSION)
+    set (USE_POSTGIS 1)
+  else(POSTGRESQL_FOUND)
+    report_optional_not_found(POSTGIS)
+  endif(POSTGRESQL_FOUND)
+endif (WITH_POSTGIS)
+
+if(WITH_GDAL)
+  find_package(GDAL)
+  if(GDAL_FOUND)
+    include_directories(${GDAL_INCLUDE_DIR})
+    ms_link_libraries( ${GDAL_LIBRARY})
+    set (USE_GDAL 1)
+  else(GDAL_FOUND)
+    report_optional_not_found(GDAL)
+  endif(GDAL_FOUND)
+endif (WITH_GDAL)
+
+if(WITH_SVGCAIRO)
+  if(WITH_RSVG)
+    message(SEND_ERROR "WITH_SVGCAIRO cannot be enabled with WITH_RSVG")
+  endif(WITH_RSVG)
+  find_package(SVGCairo)
+  if(SVGCAIRO_FOUND)
+    include_directories(${SVGCAIRO_INCLUDE_DIR})
+    ms_link_libraries( ${SVG_LIBRARY} ${SVGCAIRO_LIBRARY})
+    set (USE_SVG_CAIRO 1)
+  else(SVGCAIRO_FOUND)
+    report_optional_not_found(SVGCAIRO)
+  endif(SVGCAIRO_FOUND)
+endif (WITH_SVGCAIRO)
+
+if(WITH_RSVG)
+  if(WITH_SVGCAIRO)
+    message(SEND_ERROR "WITH_RSVG cannot be enabled with WITH_CAIROSVG")
+  endif(WITH_SVGCAIRO)
+  find_package(RSVG)
+  if(RSVG_FOUND AND GOBJECT_FOUND)
+    include_directories(${RSVG_INCLUDE_DIRS})
+    ms_link_libraries( ${RSVG_LIBRARY} )
+    include_directories(${GOBJECT_INCLUDE_DIRS})
+    ms_link_libraries( ${GOBJECT_LIBRARY} )
+    set (USE_RSVG 1)
+  else(RSVG_FOUND AND GOBJECT_FOUND)
+    report_optional_not_found(RSVG)
+  endif(RSVG_FOUND AND GOBJECT_FOUND)
+endif (WITH_RSVG)
+
+if(WITH_OGR)
+  if(GDAL_FOUND)
+    set (USE_OGR 1)
+  else(GDAL_FOUND)
+    find_package(GDAL)
+    if(GDAL_FOUND)
+      include_directories(${GDAL_INCLUDE_DIR})
+      ms_link_libraries( ${GDAL_LIBRARY})
+      set (USE_OGR 1)
+    else(GDAL_FOUND)
+      message(SEND_ERROR "GDAL library could not be found and is needed for OGR support.
+      HINTS:
+      - disable OGR support by adding -DWITH_OGR=0
+      - add the GDAL install directory to the CMAKE_PREFIX_PATH variable (-DCMAKE_PREFIX_PATH=\"/path/to/${component}-install-dir;/path/to/other/dirs\"")
+    endif(GDAL_FOUND)
+  endif(GDAL_FOUND)
+endif(WITH_OGR)
+
+if(WITH_CLIENT_WMS OR WITH_CLIENT_WFS)
+   set(WITH_CURL ON)
+endif(WITH_CLIENT_WMS OR WITH_CLIENT_WFS)
+
+if(WITH_CURL)
+   find_package(CURL)
+   if(CURL_FOUND)
+     include_directories(${CURL_INCLUDE_DIR})
+     ms_link_libraries( ${CURL_LIBRARY})
+     set(USE_CURL 1)
+   else(CURL_FOUND)
+     report_optional_not_found(CURL)
+   endif(CURL_FOUND)
+endif(WITH_CURL)
+
+if(WITH_CLIENT_WMS OR WITH_CLIENT_WFS)
+   if(NOT USE_CURL)
+      if(WITH_CLIENT_WFS)
+        report_dependency_error(CLIENT_WFS CURL)
+      endif(WITH_CLIENT_WFS)
+      if(WITH_CLIENT_WMS)
+        report_dependency_error(CLIENT_WMS CURL)
+      endif(WITH_CLIENT_WMS)
+   endif(NOT USE_CURL)
+endif(WITH_CLIENT_WMS OR WITH_CLIENT_WFS)
+
+if(WITH_CLIENT_WMS)
+  if(USE_GDAL AND USE_PROJ)
+    set(USE_WMS_LYR 1)
+  else(USE_GDAL AND USE_PROJ)
+    if(NOT USE_GDAL)
+      report_dependency_error(CLIENT_WMS GDAL)
+    endif(NOT USE_GDAL)
+    if( NOT USE_PROJ)
+      report_dependency_error(CLIENT_WMS PROJ)
+    endif(NOT USE_PROJ)
+  endif(USE_GDAL AND USE_PROJ)
+endif(WITH_CLIENT_WMS)
+
+if(WITH_CLIENT_WFS)
+  if(USE_OGR AND USE_PROJ)
+    set(USE_WFS_LYR 1)
+  else(USE_OGR AND USE_PROJ)
+    if(NOT USE_OGR)
+      report_dependency_error(CLIENT_WFS OGR)
+    endif(NOT USE_OGR)
+    if( NOT USE_PROJ)
+      report_dependency_error(CLIENT_WFS PROJ)
+    endif(NOT USE_PROJ)
+  endif(USE_OGR AND USE_PROJ)
+endif(WITH_CLIENT_WFS)
+
+if(WITH_WFS)
+  if(USE_PROJ AND USE_OGR)
+    set(USE_WFS_SVR 1)
+    #TODO: set WFS_USE_LIBXML2 ?
+  else(USE_PROJ AND USE_OGR)
+    if( NOT USE_OGR)
+      report_dependency_error(WFS OGR)
+    endif( NOT USE_OGR)
+    if( NOT USE_PROJ)
+      report_dependency_error(WFS PROJ)
+    endif( NOT USE_PROJ)
+  endif(USE_PROJ AND USE_OGR)
+endif(WITH_WFS)
+
+if(WITH_WCS)
+  if(USE_PROJ AND USE_GDAL)
+    set(USE_WCS_SVR 1)
+  else(USE_PROJ AND USE_GDAL)
+    if(NOT USE_GDAL)
+      report_dependency_error(WCS GDAL)
+    endif(NOT USE_GDAL)
+    if(NOT USE_PROJ)
+      report_dependency_error(WCS PROJ)
+    endif(NOT USE_PROJ)
+  endif(USE_PROJ AND USE_GDAL)
+endif(WITH_WCS)
+
+if(WITH_LIBXML2)
+  find_package(LibXml2)
+  if(LIBXML2_FOUND)
+    include_directories(${LIBXML2_INCLUDE_DIR})
+    if(NOT DEFINED LIBXML2_LIBRARY)
+      set(LIBXML2_LIBRARY ${LIBXML2_LIBRARIES})
+    endif()
+    ms_link_libraries( ${LIBXML2_LIBRARY})
+    set (USE_LIBXML2 1)
+  else(LIBXML2_FOUND)
+    report_optional_not_found(LIBXML2)
+  endif(LIBXML2_FOUND)
+endif (WITH_LIBXML2)
+
+if( USE_WCS_SVR AND NOT USE_LIBXML2 )
+   message(WARNING "WCS 1.1 and 2.0 require libxml2 support but it was not found. WCS 1.1 and 2.0 will not be supported by this build")
+endif( USE_WCS_SVR AND NOT USE_LIBXML2 )
+if( USE_WFS_SVR AND NOT USE_LIBXML2 )
+   message(WARNING "WFS 1.1 requires libxml2 support but it was not found. WFS 1.1 will not be supported by this build")
+endif( USE_WFS_SVR AND NOT USE_LIBXML2 )
+
+if(WITH_SOS)
+  if(USE_PROJ AND USE_LIBXML2)
+    set(USE_SOS_SVR 1)
+  else(USE_PROJ AND USE_LIBXML2)
+    if(NOT USE_LIBXML2)
+      report_dependency_error(SOS LIBXML2)
+    endif(NOT USE_LIBXML2)
+    if(NOT USE_PROJ)
+      report_dependency_error(SOS PROJ)
+    endif(NOT USE_PROJ)
+  endif(USE_PROJ AND USE_LIBXML2)
+endif(WITH_SOS)
+
+if(WITH_POINT_Z_M)
+  set(USE_POINT_Z_M 1)
+endif(WITH_POINT_Z_M)
+
+if(WITH_KML)
+  if(USE_LIBXML2)
+    set(USE_KML 1)
+  else(USE_LIBXML2)
+    report_dependency_error(KML LIBXML2)
+  endif(USE_LIBXML2)
+endif(WITH_KML)
+
+if(WITH_THREADS)
+  set( CMAKE_THREAD_PREFER_PTHREAD 1 )
+  find_package(Threads)
+  if (THREADS_FOUND)
+    ms_link_libraries( ${CMAKE_THREAD_LIBS_INIT})
+    set(USE_THREAD 1)
+  endif (THREADS_FOUND)
+endif(WITH_THREADS)
+
+if(WITH_XMLMAPFILE)
+   if(NOT USE_LIBXML2)
+    report_dependency_error(KML LIBXML2)
+   endif(NOT USE_LIBXML2)
+  
+  #check for xslt and exslt
+  find_package(LibXslt)
+  if(LIBXSLT_FOUND)
+    if(NOT DEFINED LIBXSLT_LIBRARY)
+      set(LIBXSLT_LIBRARY ${LIBXSLT_LIBRARIES})
+    endif()
+    include_directories(${LIBXSLT_INCLUDE_DIR})
+    ms_link_libraries( ${LIBXSLT_LIBRARY} ${LIBXSLT_EXSLT_LIBRARY})
+    set(USE_XMLMAPFILE 1)
+  else(LIBXSLT_FOUND)
+    message(SEND_ERROR "Xml Mapfile support requires XSLT support which was not found.
+    HINTS:
+    - add the libxslt install directory to the CMAKE_PREFIX_PATH variable (-DCMAKE_PREFIX_PATH=\"/path/to/libxslt-install-dir;/path/to/other/dirs\"
+    - disable Xml Mapfile support by adding -DWITH_XMLMAPFILE=0"
+    )
+  endif(LIBXSLT_FOUND)
+endif(WITH_XMLMAPFILE)
+
+if(WITH_GIF)
+  find_package(GIF)
+  if(GIF_FOUND)
+    include_directories(${GIF_INCLUDE_DIR})
+    ms_link_libraries( ${GIF_LIBRARY})
+    set(USE_GIF 1)
+  else(GIF_FOUND)
+    report_optional_not_found(GIF)
+  endif(GIF_FOUND)
+endif(WITH_GIF)
+
+if(WITH_EXEMPI)
+  find_package(Exempi)
+  if(LIBEXEMPI_FOUND)
+    include_directories(${LIBEXEMPI_INCLUDE_DIR})
+    ms_link_libraries( ${LIBEXEMPI_LIBRARY})
+    set(USE_EXEMPI 1)
+  else(LIBEXEMPI_FOUND)
+    report_optional_not_found(EXEMPI)
+  endif(LIBEXEMPI_FOUND)
+endif(WITH_EXEMPI)
+
+if(WITH_PYTHON)
+   add_subdirectory("mapscript/python")
+   set(USE_PYTHON_MAPSCRIPT 1)
+endif(WITH_PYTHON)
+
+if(WITH_PHP)
+   add_subdirectory("mapscript/php")
+   set(USE_PHP_MAPSCRIPT 1)
+endif(WITH_PHP)
+
+if(WITH_APACHE_MODULE)
+   add_subdirectory("apache")
+   set(USE_APACHE_MODULE 1)
+endif(WITH_APACHE_MODULE)
+
+
+if(WITH_PERL)
+   add_subdirectory("mapscript/perl")
+   set(USE_PERL_MAPSCRIPT 1)
+endif(WITH_PERL)
+
+if(WITH_RUBY)
+   add_subdirectory("mapscript/ruby")
+   set(USE_RUBY_MAPSCRIPT 1)
+endif(WITH_RUBY)
+
+if(WITH_JAVA)
+   add_subdirectory("mapscript/java")
+   set(USE_JAVA_MAPSCRIPT 1)
+endif(WITH_JAVA)
+
+if(WITH_CSHARP)
+   add_subdirectory("mapscript/csharp")
+   set(USE_CSHARP_MAPSCRIPT 1)
+endif(WITH_CSHARP)
+
+if(UNIX)
+ms_link_libraries( ${CMAKE_DL_LIBS} m )
+endif(UNIX)
+
+if (WIN32)
+ms_link_libraries( ${MS_EXTERNAL_LIBS})
+endif (WIN32)
+
+configure_file (
+  "${PROJECT_SOURCE_DIR}/mapserver-config.h.in"
+  "${PROJECT_BINARY_DIR}/mapserver-config.h"
+  )
+
+configure_file (
+  "${PROJECT_SOURCE_DIR}/mapserver-version.h.in"
+  "${PROJECT_BINARY_DIR}/mapserver-version.h"
+  )
+
+
+
+macro(status_optional_component component enabled libpath)
+  if("${enabled}" EQUAL "1")
+    message(STATUS "  * ${component}: ${libpath}")
+  else()
+    message(STATUS "  * ${component}: disabled")
+  endif()
+endmacro()
+macro(status_optional_feature feature enabled)
+  if("${enabled}" EQUAL "1")
+    message(STATUS "  * ${feature}: ENABLED")
+  else()
+    message(STATUS "  * ${feature}: disabled")
+  endif()
+endmacro()
+
+message(STATUS "* Summary of configured options for this build")
+message(STATUS " * Mandatory components")
+message(STATUS "  * png: ${PNG_LIBRARY}")
+message(STATUS "  * jpeg: ${JPEG_LIBRARY}")
+message(STATUS "  * freetype: ${FREETYPE_LIBRARY}")
+message(STATUS " * Optional components")
+status_optional_component("GDAL" "${USE_GDAL}" "${GDAL_LIBRARY}")
+status_optional_component("OGR" "${USE_OGR}" "${GDAL_LIBRARY}")
+status_optional_component("GD" "${USE_GD}" "${GD_LIBRARY}")
+status_optional_component("GIF" "${USE_GIF}" "${GIF_LIBRARY}")
+status_optional_component("MYSQL" "${USE_MYSQL}" "${MYSQL_LIBRARY}")
+status_optional_component("FRIBIDI" "${USE_FRIBIDI}" "${FRIBIDI_LIBRARY}")
+status_optional_component("GIF" "${USE_GIF}" "${GIF_LIBRARY}")
+status_optional_component("CAIRO" "${USE_CAIRO}" "${CAIRO_LIBRARY}")
+status_optional_component("SVGCAIRO" "${USE_SVG_CAIRO}" "${SVGCAIRO_LIBRARY}")
+status_optional_component("RSVG" "${USE_RSVG}" "${RSVG_LIBRARY}")
+status_optional_component("CURL" "${USE_CURL}" "${CURL_LIBRARY}")
+status_optional_component("PROJ" "${USE_PROJ}" "${PROJ_LIBRARY}")
+status_optional_component("LIBXML2" "${USE_LIBXML2}" "${LIBXML2_LIBRARY}")
+status_optional_component("POSTGIS" "${USE_POSTGIS}" "${POSTGRESQL_LIBRARY}")
+status_optional_component("GEOS" "${USE_GEOS}" "${GEOS_LIBRARY}")
+status_optional_component("FastCGI" "${USE_FASTCGI}" "${FCGI_LIBRARY}")
+if(USE_ORACLESPATIAL OR USE_ORACLE_PLUGIN)
+  if(USE_ORACLESPATIAL)
+    status_optional_component("Oracle Spatial" "${USE_ORACLESPATIAL}" "${ORACLE_LIBRARY}")
+  else(USE_ORACLESPATIAL)
+    status_optional_component("Oracle Spatial (Built as plugin)" "${USE_ORACLE_PLUGIN}" "${ORACLE_LIBRARY}")
+  endif(USE_ORACLESPATIAL)
+else(USE_ORACLESPATIAL OR USE_ORACLE_PLUGIN)
+  status_optional_component("Oracle Spatial" "" "${ORACLE_LIBRARY}")
+endif(USE_ORACLESPATIAL OR USE_ORACLE_PLUGIN)
+if(USE_MSSQL2008)
+  status_optional_component("MSSQL 2008 (Built as plugin)" "${USE_MSSQL2008}" "${ODBC_LIBRARY}")
+endif(USE_MSSQL2008)
+if(USE_SDE_PLUGIN)
+  if(SDE_VERSION STREQUAL "91")
+    status_optional_component("SDE 9.1 (Built as plugin)" "${USE_SDE_PLUGIN}" "${SDE_LIBRARY_DIR}")
+  else(SDE_VERSION STREQUAL "91")
+    status_optional_component("SDE 9.2 (Built as plugin)" "${USE_SDE_PLUGIN}" "${SDE_LIBRARY_DIR}")
+  endif(SDE_VERSION STREQUAL "91")
+else(USE_SDE_PLUGIN)
+  status_optional_component("SDE" "${USE_SDE}" "${SDE_LIBRARIES}")
+endif(USE_SDE_PLUGIN)
+status_optional_component("Exempi XMP" "${USE_EXEMPI}" "${LIBEXEMPI_LIBRARY}")
+message(STATUS " * Optional features")
+status_optional_feature("WMS SERVER" "${USE_WMS_SVR}")
+status_optional_feature("WFS SERVER" "${USE_WFS_SVR}")
+status_optional_feature("WCS SERVER" "${USE_WCS_SVR}")
+status_optional_feature("SOS SERVER" "${USE_SOS_SVR}")
+status_optional_feature("WMS CLIENT" "${USE_WMS_LYR}")
+status_optional_feature("WFS CLIENT" "${USE_WFS_LYR}")
+status_optional_feature("ICONV" "${USE_ICONV}")
+status_optional_feature("Thread-safety support" "${USE_THREAD}")
+status_optional_feature("KML output" "${USE_KML}")
+status_optional_feature("Z+M point coordinate support" "${USE_POINT_Z_M}")
+status_optional_feature("XML Mapfile support" "${USE_XMLMAPFILE}")
+
+message(STATUS " * Mapscripts")
+status_optional_feature("Python" "${USE_PYTHON_MAPSCRIPT}")
+status_optional_feature("PHP" "${USE_PHP_MAPSCRIPT}")
+status_optional_feature("PERL" "${USE_PERL_MAPSCRIPT}")
+status_optional_feature("RUBY" "${USE_RUBY_MAPSCRIPT}")
+status_optional_feature("JAVA" "${USE_JAVA_MAPSCRIPT}")
+status_optional_feature("C#" "${USE_CSHARP_MAPSCRIPT}")
+status_optional_feature("Apache Module (Experimental)" "${USE_APACHE_MODULE}")
+
+message(STATUS "")
+message(STATUS "Will install files to ${CMAKE_INSTALL_PREFIX}")
+
+
+include_directories("${PROJECT_BINARY_DIR}")
+
+if(WIN32)
+set(REGEX_MALLOC 1)
+set(USE_GENERIC_MS_NINT 1)
+endif(WIN32)
+
+
+#INSTALL(FILES mapserver-api.h ${PROJECT_BINARY_DIR}/mapserver-version.h DESTINATION include)
+if(USE_ORACLE_PLUGIN)
+   INSTALL(TARGETS msplugin_oracle DESTINATION lib)
+endif(USE_ORACLE_PLUGIN)
+
+if(USE_MSSQL2008)
+   INSTALL(TARGETS msplugin_mssql2008 DESTINATION lib)
+endif(USE_MSSQL2008)
+
+if(USE_SDE91)
+   INSTALL(TARGETS msplugin_sde91 DESTINATION lib)
+endif(USE_SDE91)
+
+if(USE_SDE92)
+   INSTALL(TARGETS msplugin_sde92 DESTINATION lib)
+endif(USE_SDE92)
+
+INSTALL(TARGETS sortshp shptree shptreevis msencrypt tile4ms shp2img mapserv mapserver RUNTIME DESTINATION bin LIBRARY DESTINATION lib)
+if(BUILD_STATIC)
+   INSTALL(TARGETS mapserver_static DESTINATION lib)
+endif(BUILD_STATIC)
+
diff --git a/HISTORY.TXT b/HISTORY.TXT
index b07d8ab..497c520 100644
--- a/HISTORY.TXT
+++ b/HISTORY.TXT
@@ -12,9 +12,35 @@ the top of the list.)
 
 For a complete change history, please see the Git log comments.
 
-Version 6.2.1 (2013-04-19):
+6.4 release (2013/09/xx)
 ---------------------------
 
+- RFC100: Add support for raster tile index with tiles of mixed SRS (TILESRS keyword)
+
+- RFC94: Shape Smoothing
+
+- RFC95 : add EXPRESSION {value1,value2,...} support to parser (#4648)
+
+- RFC92: Migration from autotools to cmake (#4617)
+
+- RFC88: Saving MapServer Objects to Strings (#4563)
+
+- RFC90: Enable/Disable Layers in OGC Web Services by IP Lists
+
+- RFC85,89 Added Simplify,SimplityPT and Generalize geomtransform, implementation of
+  geomtransform at the layer level
+
+- RFC86: Scale-dependant token replacements (#4538)
+
+- Fix symbol scaling for vector symbols with no height (#4497,#3511)
+
+- Implementation of layer masking for WCS coverages (#4469)
+
+- Implementation of offsets on follow labels (#4399)
+
+6.2.0 release (git branch-6-2) 2012/11/14:
+--------------------------------------------------
+
 - Fix WFS GetFeature result bounds are not written in requested projection (#4494)
 
 - Fixed wrong size in LegendURL of root layer (#4441)
@@ -40,6 +66,11 @@ Version 6.2.1 (2013-04-19):
   
 - Fixed the OGR driver to use point or line spatial filter geometries in degenerated cases (#4420)
 
+- implement OFFSET x -99 on ANGLE FOLLOW labels (#4399)
+
+Version 6.2 (beta1: 20120629): 
+-------------------------------------------------
+
 - Fix WFS filter is produced as non-standard XML (#4171)
 
 - Fix pixmap symbol loading issue (#4329)
diff --git a/INSTALL b/INSTALL
index 03f200b..77d4599 100644
--- a/INSTALL
+++ b/INSTALL
@@ -4,7 +4,7 @@ instructions.
 Unix compilation instructions
 -----------------------------
 
-See README.CONFIGURE or the document on the MapServer website at 
+See INSTALL.CMAKE or the document on the MapServer website at 
 <http://www.mapserver.org/installation/unix.html>
 
 Win32 compilation instructions
diff --git a/INSTALL.CMAKE b/INSTALL.CMAKE
new file mode 100644
index 0000000..2319ada
--- /dev/null
+++ b/INSTALL.CMAKE
@@ -0,0 +1,178 @@
+CMake Build Instructions
+========================
+
+Since version 6.4, MapServer is built with the CMake build tool instead of the
+previous autotools chain. CMake is opensource and free of charge and is usually
+included in distribution packages, or can be downloaded and compiled with no
+third party dependencies.
+CMake itself does not do the actual compiling of the MapServer source code, it
+mainly creates platform specific build files that can then be used by standard
+build utilities (make on unixes, visual studio on windows, xcode on osx, etc...)
+
+Install CMake
+-------------
+
+MapServer requires at least CMake version 2.6.0, although the build process with
+such an old version has not been thouroughly tested. 2.8.0 and above are 
+recommended.
+
+Distro Packaged Version
+.......................
+
+Linux distributions usually include the cmake package, that can be installed
+with your usual package manager: apt-get, yum, yast, etc...
+
+Installing Your Own
+...................
+
+Head over to http://www.cmake.org/cmake/resources/software.html to download
+a source tarball (for unixes) or a binary installer (for windows).
+If you are building from source, the build process is detailed in the tarball
+readme files, and consists only in
+
+ $ tar xzf cmake-x.y.z.tar.gz
+ $ cd cmake-x.y.z
+ $ ./bootstrap
+ $ make
+ # make install
+
+
+Creating the MapServer platform specific project with CMake
+-----------------------------------------------------------
+
+Although you can run and build from MapServer's source directory as created
+by downloading a tarball or using a git clone, it is **highly** recommended
+to run "out-of-source" builds, i.e. having all build files be compiled and
+created in a different directory than the actual MapServer sources. This allows
+to have different configurations running alongside each other (e.g. release and
+debug builds, cross-compiling, enabled features, etc...).
+
+Running CMake From the Command Line
+...................................
+
+mkdir build
+cd build
+cmake ..
+## fix dependency issues
+make
+
+Running the GUI version of cmake
+................................
+
+CMake can be run in graphical mode, in which case the list of available options
+are presented in a more user-friendly manner
+
+mkdir build
+cd build
+ccmake ..
+## follow instructions, fix dependency issues
+
+Options and Dependencies
+........................
+
+Depending on what packages are available in the default locations of your system,
+the previous "cmake .." step will most probably have failed with messages indicating
+missing dependencies (by default, MapServer has *many* of those). The error message
+that CMake prints out should give you a rather good idea of what steps you should take
+next, depending on wether the failed dependency is a feature you require in your build
+or not.
+
+- Either disable the dependency by rerunning cmake with -DWITH_DEPENDENCY=0, e.g.
+
+  $ cmake .. -DWITH_CAIRO=0
+
+- Or, if the failed dependency relates to a feature you want built in, and that cmake has
+  not been able to find it's installation location, there are 3 possible reasons:
+
+ 1 You have not installed the third party package, and/or the third party development
+   headers. Use your standard package manager to install the failing package, along
+   with it's development headers. The development packages on linux usually end with
+   "-dev" or "-devel", e.g. libcairo2-devel , libpng-dev, etc...
+
+   $ (sudo) apt-get install libcairo-dev
+   $ cmake ..
+   
+ 2 You have installed the third party package in a non standard location, which you
+   must give to cmake so it can find the required headers and libraries
+
+   $ cmake .. -DCMAKE_PREFIX_PATH=/opt/cairo-1.18.2
+
+   Cmake expects these nonstandard prefixes to contain standard subdirectories, i.e.
+   /opt/cairo-1.18.2/include/cairo.h and /opt/cairo-1.18.2/lib/libcairo.so.
+   You can specify multiple prefixes on the cmake command line by separating them with
+   a semi-colon, e.g.
+
+   $ cmake .. -DCMAKE_PREFIX_PATH=/opt/cairo-1.18.2;/opt/freeware
+
+ 3 If you're certain that the packages development headers are installed, and/or that
+   you pointed to a valid installation prefix, but cmake is still failing, then there's
+   an issue with MapServer's cmake setup, and you can bring this up on the
+   mailing list or issue tracker.
+
+Available Options
+-----------------
+
+Following is a list of option, taken from MapServer's CMakeLists.txt configuration file.
+After the description of the option, the ON/OFF flag states if the option is enabled by
+default (in which case the cmake step will fail if the dependency cannot be found). All
+of these can be enabled or disabled by passing "-DWITH_XXX=0" or "-DWITH_XXX=1" to the
+"cmake .." invocation in order to override a default selection.
+
+ - option(WITH_PROJ "Choose if reprojection support should be built in" ON)
+ - option(WITH_KML "Enable native KML output support (requires libxml2 support)" OFF)
+ - option(WITH_SOS "Enable SOS Server support (requires PROJ and libxml2 support)" OFF)
+ - option(WITH_WMS "Enable WMS Server support (requires proj support)" ON)
+ - option(WITH_GD "Choose if (old) GD support should be built in" OFF)
+ - option(WITH_FRIBIDI "Choose if FriBidi glyph shaping support should be built in (usefull for left-to-right languages)" ON)
+ - option(WITH_ICONV "Choose if Iconv Internationalization support should be built in" ON)
+ - option(WITH_CAIRO "Choose if CAIRO  rendering support should be built in (required for SVG and PDF output)" ON)
+ - option(WITH_SVGCAIRO "Choose if SVG symbology support (via libsvgcairo) should be built in (requires cairo, libsvg, libsvg-cairo. Incompatible with librsvg)" OFF)
+ - option(WITH_RSVG "Choose if SVG symbology support (via librsvg) should be built in (requires cairo, librsvg. Incompatible with libsvg-cairo)" OFF)
+ - option(WITH_MYSQL "Choose if MYSQL joining support should be built in" OFF)
+ - option(WITH_FCGI "Choose if FastCGI support should be built in" ON)
+ - option(WITH_GEOS "Choose if GEOS geometry operations support should be built in" ON)
+ - option(WITH_POSTGIS "Choose if Postgis input support should be built in" ON)
+ - option(WITH_GDAL "Choose if GDAL input raster support should be built in" ON)
+ - option(WITH_OGR "Choose if OGR/GDAL input vector support should be built in" ON)
+ - option(WITH_CURL "Enable Curl HTTP support (required for wms/wfs client, remote SLDs and pixmap symbols)" OFF)
+ - option(WITH_CLIENT_WMS "Enable Client WMS Layer support (requires CURL and GDAL support)" OFF)
+ - option(WITH_CLIENT_WFS "Enable Client WMS Layer support (requires CURL and OGR support)" OFF)
+ - option(WITH_WFS "Enable WFS Server support (requires PROJ and OGR support)" ON)
+ - option(WITH_WCS "Enable WCS Server support (requires PROJ and GDAL support)" ON)
+ - option(WITH_LIBXML2 "Choose if libxml2 support should be built in (used for sos, wcs 1.1,2.0 and wfs 1.1)" ON)
+ - option(WITH_THREADS "Choose if a thread-safe version of libmapserver should be built (only recommended for some mapscripts)" OFF)
+ - option(WITH_GIF "Enable GIF support (for PIXMAP loading)" ON)
+ - option(WITH_PYTHON "Enable Python mapscript support" OFF)
+ - option(WITH_PHP "Enable Python mapscript support" OFF)
+ - option(WITH_PERL "Enable Perl mapscript support" OFF)
+ - option(WITH_RUBY "Enable Ruby mapscript support" OFF)
+ - option(WITH_JAVA "Enable Java mapscript support" OFF)
+ - option(WITH_CSHARP "Enable C# mapscript support" OFF)
+ - option(WITH_ORACLESPATIAL "include oracle spatial database input support" OFF)
+ - option(WITH_ORACLE_PLUGIN "include oracle spatial database input support as plugin" OFF)
+ - option(WITH_MSSQL2008 "include mssql 2008 database input support as plugin" OFF)
+ - option(WITH_SDE_PLUGIN "include ArcSDE support as a plugin (must specify SDE_INCLUDE_DIR and SDE_LIBRARY_DIR)." OFF)
+ - option(WITH_SDE "include ArcSDE support. Add -DSDE_VERSION=91 to use 9.1 arcSDE version" OFF)
+ - option(WITH_EXEMPI "include xmp output metadata support" OFF)
+ - option(WITH_XMLMAPFILE "include native xml mapfile support (requires libxslt/libexslt)" OFF)
+
+
+The following options are for advanced users, i.e. you should not enable them unless
+you know what you are doing:
+
+ - option(BUILD_STATIC "Also build a static version of mapserver" OFF)
+ - option(LINK_STATIC_LIBMAPSERVER "Link to static version of libmapserver (also for mapscripts)" OFF)
+ - option(WITH_APACHE_MODULE "include (experimental) support for apache module" OFF)
+ - option(WITH_GENERIC_NINT "generic rounding" OFF)
+ - option(WITH_POINT_Z_M "include Z and M coordinates in point structure (advanced, not recommended)" OFF)
+
+The following are some common CMake options not specific to MapServer itself:
+
+ - CMAKE_INSTALL_PREFIX : path where mapserver binaries and libraries should be installed. Defaults
+   to /usr/local on unix.
+ - CMAKE_PREFIX_PATH : semi-colon separted list of prefixes where dependencies will be looked for, e.g.
+   "-DCMAKE_PREFIX_PATH=/opt/freeware;/opt/jdk-1.5.6"
+ - CMAKE_BUILD_TYPE : Specify the build type. Usually one of 'Debug' or 'Release', e.g.
+   "-DCMAKE_BUILD_TYPE=Release" "-DCMAKE_BUILD_TYPE=Debug"
+
+You can find a more extensive list of cmake variables here: http://www.cmake.org/Wiki/CMake_Useful_Variables
diff --git a/MIGRATION_GUIDE.txt b/MIGRATION_GUIDE.txt
index 3104626..8d73715 100644
--- a/MIGRATION_GUIDE.txt
+++ b/MIGRATION_GUIDE.txt
@@ -1,846 +1,14 @@
-.. _migration:
-
 *****************************************************************************
 MapServer Migration Guide
 *****************************************************************************
 
-:Last Updated: 2011-05-04
-
-.. contents:: Table of Contents
-    :depth: 2
-    :backlinks: top
-    
-Mapserver 6.0 to 6.2 Migration
-==============================
-
-This section documents the changes that must be made to MapServer 
-applications when migrating from version 6.0.x (or earlier versions) 
-to 6.2 (i.e. backwards incompatibilities), as well as information
-on some of the new features.
-
---------------------
-Build system changes
---------------------
-
-If you are building MapServer from source, then the following may be of interest to you:
-
-* Use of libtool: In version 6.2, the Unix/Linux build scripts and Makefiles were converted to use libtool. One impact of this change is that the 'mapserv' file in the main source tree is a libtool wrapper script and not the actual binary. To use 'mapserv' you actually have to use 'make install' and then point to the installed binary. More info is available in the Compiling on Unix document at http://mapserver.org/trunk/installation/unix.html#installation
-
-* The --with-php configure option has been changed to point directly to the php-config script instead of to the directory where the PHP headers are located.
-
------------
-CGI Changes
------------
-
-* Changing MIN/MAXSCALE or MIN/MAXSCALEDENOM via URL is no longer supported.
-* The syntax for changing a LABEL with CGI commands has changed along with the
-  ability to support multiple labels
-  The previous syntax ...&map.layer[0].class[0]=label+color+255+0+0+end&... is
-  replaced with ...&map.layer[0].class[0].label[0]=color+255+0+0&...
-  Note that cgi label modifications are/were broken in 6.2.0 and fixed in 6.2.1
-
------------------
-Rendering changes
------------------
-
-* STYLE->GAP interpretation
-  Starting in 6.2, STYLE->GAP specifies the gap between the symbols
-  using the centre to centre distance.
-  In earlier versions of Mapserver, GAP was used as the approximate
-  distance between the symbol boundaries.
-  See ticket #3867 for more information.
-
-  In order to get the same effect with 6.2 as with 6.0, STYLE->GAP
-  must be increased with the size of the symbol.
-
-* Removal of one pixel gap between symbols
-  In earlier versions of Mapserver, an extra gap of one pixel was
-  added between the symbols (in addition to the gap specified in
-  STYLE->GAP).  This has been discontinued in 6.2.
-  See ticket #3868 for more information.
-
-  In order to get the same effect with 6.2 as with 6.0, STYLE->GAP
-  must be increased with one pixel.
-
-* STYLE->INITIALGAP introduced
-  Support for more powerful line styling has been provided with the
-  introduction of STYLE->INITIALGAP.  See ticket #3879 and the
-  documentation for more information.
-
-* SYMBOL->ANCHORPOINT introduced
-  A symbol anchorpoint has been introduced to facilitate precise
-  positioning of symbols.  See ticket #4066 and the documentation for
-  more information.
-
-* Change in vector symbol size calculation.
-  In 6.2, vector symbol coordinates are shifted to get rid of
-  negative x and y coordinate values.
-  See ticket #4116 for more information.
-
-  In order to get the shifting effect that could be obtained using
-  negative coordinate values, SYMBOL->ANCHORPOINT should be used
-  instead.
-
-MapServer 5.6 to 6.0 Migration
-==============================
-    
-This section documents the changes that must be made to MapServer 
-applications when migrating from version 5.6.x (or earlier versions) 
-to 6.0 (i.e. backwards incompatibilities), as well as information
-on some of the new features.
-
-------------------------------------
-Mapfile Changes - Expression Parsing
-------------------------------------
-
-Version 6.0 features an extensive reworking of the expression parsing capabilities.
-While this adds functionality it also introduces a couple of regressions:
-
-Logical Expressions
-
-* a regex is now deliniated as a string (e.g. '^a' rather than /^a/)
-* the regex operator is ~ for case sensitive comparisons and ~* for case insensitive
-* case insensitive string comparison operator is =*
-
-Class text expressions are true expressions in 6.0. This allows for fancy formatting
-of numeric data but also means string operators must be used to concatenate attribute
-values and string literals.
-
-* Old/bad: TEXT ([area] acres)
-* New (option 1)/good: TEXT ('[area]' + ' acres')
-* New (option 2)/good: TEXT '[area] acres'
-
-On the plus side you can now control the number of decimal places, round and even commify
-the area value for annotion.
-
-See http://mapserver.org/development/rfc/ms-rfc-64.html and http://trac.osgeo.org/mapserver/ticket/3736
-for more information.
-
-------------------------------
-Mapfile Changes	- Label Styles
-------------------------------
-
-As the need for more and more control of label drawing increased it became apparent that
-we couldn't extend labelObj's endlessly. In 6.0 we introduce the idea of label styles, that
-is, a styleObj inside a labelObj. The styles can be used to add accompanying markers or 
-bounding box elements to a label- kinda like annotation layers. The big benefit is that 
-it's done in one pass. So you can draw complex roadwork and shields all at the same time.
-Pretty neat huh? Plus you can do attribute binding for any of the styleObj attributes that
-support it.
-
-As a result the parameters BACKGROUNDCOLOR, BACKGROUNDSHADOWCOLOR, BACKGROUNDSHADOWSIZE
-are no more. To draw a label "box" in 6.0 you'd do:
-
-::
-
-  LABEL
-    ...
-    STYLE # a shadow
-      GEOMTRANSFORM 'labelpoly'
-      COLOR 222 222 222
-      OFFSET 2 2
-    END
-    STYLE # bbox
-      GEOMTRANSFORM 'labelpoly'
-      COLOR 255 255 255
-      OUTLINECOLOR 0 0 0
-    END
-  END
-
-More verbose but *much* more flexible in the long run.
-
----------------------------------------
-Mapfile Changes - Label MAXOVERLAPANGLE
----------------------------------------
-
-:ref:`RFC60` introduced a new MAXOVERLAPANGLE keyword to filter out ANGLE 
-FOLLOW labels in which characters overlap. This new option is enabled by 
-default in 6.0 with a default value for MAXOVERLAPANGLE of 22.5 degrees. 
-
-As per :ref:`RFC60`, it is possible to set MAXOVERLAPANGLE to 0 to fall back 
-on pre-6.0 behavior which was to use hardcoded maxoverlapangle = 0.4*MS_PI 
-(40% of 180 degrees = 72 degrees).
-
----------------------------------
-Core Changes - Rendering Overhaul
----------------------------------
-
-The rendering backends for MapServer have been refactored for version 6 to
-allow us to support all features across all rendering drivers (GD,AGG,PDF,SVG, etc...).
-
-* PDF support is output through the cairo library. The dependency on the non-free
-  pdflib library has been removed. 
-* SVG support is output through the cairo library. The native mapserver SVG driver
-  has been removed.
-* AGG support is compiled in by default (no external dependency) and is the
-  default renderer for png and jpeg outputs.
-* GD support is limited to PC256 imagemodes, i.e. png or gif. It is the default
-  renderer for gif output.
-* SWF (flash) support has been dropped.
-* Header files for libpng, libjpeg and giflib are now required for building MapServer.
-  Install the -devel packages of these libraries.
-* All symbols now rotated anticlockwise following the ANGLE parameter. Previous versions
-  rotated vector symbols clockwise.
-* Polygon fills with vector symbols will not cleanly join at tile boundaries. For hatching
-  type symbology, use the HATCH symbol instead of a diagonal vector symbol.
-* Some inconsistencies between renderers have been ironed out. People relying on precise
-  symbol placement should check those, as there may have been some subtle changes in symbol
-  sizes and widths, or spacing between symbols on lines.
-* Style blocks with no associated symbol on point layers will produce no output, as opposed
-  to a single pixel in previous versions. Use an ellipse symbol instead.
-
-------------------------------
-Mapfile Changes - line styling
-------------------------------
-
-All line styling must now be specified in class STYLEs in the layer definition.
-
-The following parameters/keywords have been moved from SYMBOL
-to STYLE:
-
-PATTERN POSITION GAP LINECAP LINEJOIN LINEJOINMAXSIZE
-
-The SYMBOL STYLE parameter/keyword was renamed to PATTERN in
-version 5.
-
-The SYMBOL TYPE cartoline has been removed.
-
-LINECAP triangle is not supported by AGG or Cairo, and is no longer
-available.  The triangle line end effect can be achieved using
-GEOMTRANSFORM start and end with a (filled) vector triangle symbol and
-ANGLE AUTO.  This will only work for the line ends, and not for
-dashes.
-
------------
-CGI Changes
------------
-
-Runtime subsitution now *requires* a validation pattern be present before the
-substitution will take place (this had been optional). This can be done via
-a layer metadata tag as before or within layer or web VALIDATION blocks. See
-ticket #3522 for more information.
-
-All of the query map related modes (e.g. NQUERYMAP, ITEMQUERYMAP, etc...) have 
-been removed in favor of using the "qformat" parameter. That parameter takes 
-an output format name or mime/type as a value and uses that to process a set
-of query results. For example:
-
-  ...&mode=nquerymap&... would become ...&mode=nquery&qformat=png24&...
-
------------------
-OGC Web Services
------------------
-
-All OGC Web Services are now disabled by default. If you want to enable them as 
-they were in MapServer 5.6 and older releases, add the following metadata in the 
-MAP::WEB section::
-
- "ows_enable_request"   "*"
-
-See also: http://mapserver.org/development/rfc/ms-rfc-67.html
-
-------------------------------
-Mapfile Changes - WCS Metadata
-------------------------------
-
-To avoid confusion only "wcs_*" and "ows_*" prefixed metadata entries
-are evaluated in OGC WCS services. Previous versions used "wms_*"
-prefixed entries as fallback which is dropped in version 6.0 in favor of
-forcing explicit decisions.
-
--------------------------------------------------------
-Mapfile Changes - OGC requests - DUMP parameter removed
--------------------------------------------------------
-
-The DUMP LAYER parameter has been removed.  To enable output of
-geometries in WMS getfeatureinfo requests - GML
-(INFO_FORMAT=application/vnd.ogc.gml), LAYER METADATA is used
-instead::
-
-   METADATA
-     gml_geometries "geom"
-     gml_geom_type "polygon"
-     ...
-   END
-
---------------------------------------------------------
-Mapfile Changes - Ability to escape single/double quotes
---------------------------------------------------------
-
-We can now escape single and double quotes in strings and logical
-expressions. Examples:
-
-:: 
-
-  NAME "RO\"AD" # double quote inside a a double quote delimited string
-  NAME 'RO\'AD' # single quote inside a a single quote delimited string
-  FILTER ('[CTY_NAME]' = 'Ita\'sca') # logical expression that contains a single quote
-
-NOTE: The escape character (backslash) will only work if the
-following character is ", ' or \.
-
-For Windows users: if you have a path string delimited by single/double
-quotes that ends with \, you will have to escape the last backslash. 
-
-::
-  
-  SHAPEPATH "C:\ms4w\shapefiles\"
-  # should be modified to...
-  SHAPEPATH "C:\ms4w\shapefiles\\"
-
----------------------
-PHP MapScript Changes
----------------------
-
-* PHP 5.2.0 or more recent is required.
-* PHP/MapScript now uses exceptions for error report. All errors are catchable.
-* Object properties can be set like all other php object. ie. myObj->myProperty = 10;
-  
-  NOTE: The set/setProperty methods are still available. 
-
-* All object constructors throw an exception on failure
-* Objects can be created with the php "new" operator. ie.
-  $myShape = ms_newShapeObj(MS_SHAPE_LINE); // or
-  $myShape = new shapeObj(MS_SHAPE_LINE);
-
-  NOTE: "ms_newSymbolObj()" and "new symbolObj" are different:
-        - ms_newSymbolObj() returns the id of the new/existing symbol.
-        - new symbolObj() returns the symbolObj. You don't need to 
-                          get it with getSymbolObjectById().
-
-* Cloneable objects should be cloned with the PHP clone keyword. There is no more clone methods.
-
-* Class properties that have been removed
-
-  - mapObj: imagetype, imagequality, interlace, scale, transparent
-  - classObj: maxscale, minscale
-  - layerObj: labelsizeitem, labelangleitem, labelmaxscale, labelminscale, 
-              maxscale, minscale, symbolscale, transparency
-  - legendObj: interlace, transparent
-  - scalebarObj: interlace, transparent
-  - symbolObj: gap, stylelength
-  - webObj: minscale, maxscale
-  
-* Class methods that have been removed
-
-  - projectionObj: free
-  - lineObj: free
-  - pointObj: free
-  - rectObj: free
-  - shapeObj: free, union_geos
-  - symbolObj: free, getstylearray
-  - imageObj: free
-  - outputFormatObj: getformatoption, setformatoption
-  - shapefileObj: free
-  - layerObj: getFilter, getShape
-
-* referenceMapObj has new properties: marker, markername, markersize, maxboxsize, minboxsize
-* shapeFileObj is automatically closed/writed on destroy. (At the end of the script or with an explicit unset())
-* layerObj->clearProcessing() method now returns void.
-* mapObj->queryByIndex(): default behavior for the addToQuery parameter was not ok, now it is.
-
-* Methods that now return MS_SUCCESS/MS_FAILURE:
-  
-  - symbolObj: setPoints, setPattern
-  - scalebarObj: setImageColor
-  - outputFormatObj: validate
-  - layerObj: setProcessing, addFeature, draw
-  - mapObj: moveLayerUp, moveLayerDown, zoomRectangle, zoomScale, setProjection,
-            setWKTProjection, setLayersDrawingOrder
-
-* Methods that now return NULL on failure:
-
-  - classObj: clone
-  - styleObj: clone  
-  - layerObj: nextShape, getExtent
-  - mapObj: clone, draw, drawQuery getLayerByName, getProjection, 
-
-* Methods that now return an empty array 
-
-  - symbolObj: getPatternArray
-  - layerObj: getItems, getProcessing, getGridIntersectionCoordinates
-  - mapObj: getLayersIndexByGroup, getAllGroupNames, getLayersDrawingOrder, getAllLayerNames
-
------------------------
-MapScript (All Flavors)
------------------------
-
-The layer query result handing has been re-worked (again) to address some issues introduced in
-the 5.4/5.6 versions. Gone are resultsGetShape and getFeature methods. You should now use a 
-refactored getShape method to access layer shapes. That method takes a resultObj and returns
-a shapeObj. Typical use would be (in Perl):
-
-::
-
-  $layer->queryByRect($map, $map->{extent}); # layer is still open                                                                             
-
-  for($i=0; $i<$layer->getNumResults(); $i++) {
-    $shape = $layer->getShape($layer->getResult($i));
-    print "$i: ". $shape->getValue(1) ."\n";
-  }
-
-  $layer->close();
-
-
-A resultObj encapsulates the data used to manage a result set.
-
-To access shapes independently of a query use the new resultObj class:
-
-  $layer->open();
-  $shape = $layer->getShape(new mapscript::resultObj(1));  
-  $layer->close();
-
-See http://mapserver.org/development/rfc/ms-rfc-65.html for more information.
-
-------------
-OUTPUTFORMAT
-------------
-
-The OUTPUTFORMAT parameter validation when reading from the mapfile 
-will now trigger an error on some problems that in the past were 
-silently fixed up.  For instance using RGBA IMAGEMODE with JPEG format 
-now triggers an error instead of switching to IMAGEMODE RGB silently.
-
-The default outputformats names, drivers and mimetypes have been significantly
-reorganized:
-
-* png : AGG/PNG (image/png)
-* jpeg : AGG/JPEG (image/jpeg)
-* gif : GD/GIF (image/gif)
-* png8 : AGG/PNG8 (same as AGG/PNG, but with 256 color quantization applied)
-  (image/png; mode=8bit)
-* png24 : AGG/PNG (for backwards compatibility) (image/png; mode=24bit)
-* pdf : CAIRO/PDF (application/x-pdf)
-* svg : CAIRO/SVG (image/svg+xml)
-* GTiff : GDAL/GTiff (image/tiff)
-* kml : KML (application/vnd.google-earth.kml++xml)
-* kmz : KMZ (application/vnd.google-earth.kmz)
-                              
-
--------
-Rasters
--------
-
-* The support for rendering rasters without GDAL has been removed.  Now 
-  RASTER layers (or WMS layers) require that MapServer be built against 
-  the GDAL library.  
-* The above change also means there is no longer support for EPPL raster layers.
-
--------------------
-Deprecated features
--------------------
-
-- Support for Flash/SWF output has been removed as part of the rendering overhaul
-  because it was no longer compatible with the new architecture. 
-  Support for Flash/SWF could be reintroduced but would require a non trivial
-  amount of work (i.e. would require funding).
-
-- Support for "CONNECTIONTYPE MyGIS" has been dropped since it was no longer 
-  being maintained and there are better ways to use MySQL data sources theses 
-  days, going through OGR for instance.
-
-MapServer 5.4 to 5.6 Migration
-==============================
-
-This section documents the changes that must be made to MapServer 
-applications when migrating from version 5.4.x (or earlier versions) 
-to 5.6 (i.e. backwards incompatibilities), as well as information
-on some of the new features.
-
-----------------------------------------------------
-MapScript changes related to single pass queries
-----------------------------------------------------
-
-In RFC-52, MapServer was modified to perform queries using a single pass
-on the data instead of two passes. This is transparent for CGI applications,
-but MapScript scripts must be modified to use the layer.resultsGetShape()
-method instead of layer.getShape().
-
-See also: http://mapserver.org/development/rfc/ms-rfc-52.html
-
-(Note: the new resultsGetShape() method is not yet available for PHP MapScript 
-in 5.6.0-beta1)
-
-
-------------------------
-WFS 1.1 axis orientation
-------------------------
-
-The axis order in previous versions of the WFS specifications was to always use 
-easting (x or lon ) and northing (y or lat).  WFS 1.1 specifies that, depending 
-on the particular SRS, the x axis may or may not be oriented West-to-East, and 
-the y axis may or may not be oriented South-to-North. The WFS portrayal operation 
-shall account for axis order. This affects some of the EPSG codes that were commonly 
-used such as ESPG:4326.  The current implementation makes sure that coordinates 
-returned to the server for the GetFeature request reflect the inverse axis orders 
-for EPSG codes between 4000 and 5000.
-
--------------------------------------------------
-Change of mime-type for the imagemap outputformat
--------------------------------------------------
-
-RFC 36 added support for templated outptformats, but this new feature
-was not available for WMS GetFeatureInfo ouptut (see ticket #3024). 
-In MapServer 5.6 this has been resolved by implementing lookup of output 
-formats for query templates by mime-type. However this caused a conflict 
-for the text/html mime-type between the actual text/html query 
-templates and the preconfigured imagemap outputformat which also used the
-text/html mime-type.
-
-In order to resolve this conflict, the mime-type of the imagemap outputformat
-has been changed to "text/html; driver=imagemap". This is unlikely to cause
-much side-effects to existing applications, but the change is documented here
-just in case.
-
-
-MapServer 5.2 to 5.4 Migration
-==============================
-
-This section documents the changes that must be made to MapServer 
-applications when migrating from version 5.2. (or earlier versions) 
-to 5.4 (i.e. backwards incompatibilities), as well as information
-on some of the new features.
-
---------------------------------------------------------
-New requirements for mapfiles, symbolsets and templates
---------------------------------------------------------
-
-Due to some potential security vulnerabilities that were uncovered in previous
-versions of MapServer, RFC-56 introduced a number of changes to tighten 
-access control on mapfiles and templates and limit the risk of leaking 
-arbitrary file contents. These changes were introduced in version 5.4.0,
-and were also backported to v5.2.2 and 4.10.4.
-
-The new requirements are as follows:
-
-* The MAP and SYMBOLSET keywords must be added to any mapfile and symbolset
-  that did not contain them already.
-
-* All MapServer templates must be updated to contain the "MapServer Template"
-  magic string on the first line. This string can be embedded
-  in a commment depending on the template formet and the whole line will
-  be skipped in the output generation. e.g.
-
-  * In HTML: <!-- MapServer Template --> 
-
-  * In JavaScript: // MapServer Template
-
-See also: http://mapserver.org/development/rfc/ms-rfc-56.html
-
-
-MapServer 4.10 to 5.0 Migration
-===============================
-
-This section documents the changes that must be made to MapServer 
-applications when migrating from version 4.10.x (or earlier versions) 
-to 5.x (i.e. backwards incompatibilities), as well as information
-on some of the new features.
-
-----------------------------------------------------
-Mapfile changes
-----------------------------------------------------
-
-Attribute Bindings: In an effort to stem the tide of keyword overload
-and add functionality MapServer 5.0 supports a new method of binding 
-feature attributes to STYLE and LABEL properties. In the past keywords
-like ANGLEITEM or LABELSIZEITEM were used, now you denote the attribute
-in the context of the property being bound. For example, to bind an 
-attribute to a label size you'd do:
-
-::
-
-  LABEL
-    ...
-    SIZE [mySizeItem]
-  END
-
-The []'s denote a binding (as with logical expressions). The following
-keywords are no longer supported and their presence will throw an error:
-
-* Layer: LABELANGLEITEM, LABELSIZEITEM
-* Style: ANGLEITEM, SIZEITEM
-
-The following properties can accept bindings:
-
-* Style: angle, color, outlinecolor, size, symbol
-* Label: angle, color, outlinecolor, size, font, priority
-
-Colors may be given as a hex value (e.g. #FFFFFF) or an RGB triplet 
-(e.g. 255 255 255).
-
-
-Layer Transparency: The values for the TRANSPARENCY parameter have always
-been backwards and in an effort to resolve that the parameter has been
-renamed OPACITY. TRANSPARENCY is still recognized by the mapfile parser
-but is depricated and should be avoided. 
-
-Scale Parameters: MapServer's handling of scale has long been a source
-for confusion. The values use in a layer MINSCALE are really the denominators
-from a representative fraction (e.g. 1:24000). To help clarify this all
-scale parameters are now end with DENOM. So MINSCALE => MINSCALEDENOM,
-SYMBOLSCALE => SYMBOLSCALEDENOM, and so on. The mapfile parser still
-recognizes the older keywords but they are depricated and should be avoided. 
-
-----------------------
-Symbol file changes
-----------------------
-
-Symbol Style: STYLEs are used within a symbol definition to store dash
-patterns for line symbolization. However, there is potential confusion
-with the style object that is used within class definitions. To resolve
-that confusion the symbol STYLE parameter has been renamed PATTERN. The
-symbol file parser will still recognize the STYLE keyword but it is 
-depricated and should be avoided.
-
-----------------------------------------------------
-Styling/Symbolgy changes
-----------------------------------------------------
-Prior to MapsServer 5.0, if a pixmap symbol was used in style on a Line
-Layer, the symbol was used as a brush to draw the line. In MapServer 5.0, 
-it is possible to draw the pixmap symbol along the line (Note that this 
-was available using a true type symbol). To achieve  this, the user needs 
-to use the parameter GAP with it's pixmap symbol definition in the symbol
-file. The GAP represents the distance between the symbols. If the GAP is not
-given, the pixmap symbol will be used as a brush.
-
-----------------------------------------------------
-AGG rendering changes   
-----------------------------------------------------
-see `the AGG rendering specifics`_ for the changes relating to the addition
-of the `Antigrain Geometry`_ rendering engine.
-
-.. _`the AGG rendering specifics`: http://mapserver.gis.umn.edu/docs/howto/agg-rendering-specifics
-.. _`Antigrain Geometry`: http://www.antigrain.com
-
----------------------------------------------------
-URL configuration changes
----------------------------------------------------
-
-Previous versions of the MapServer CGI program allowed certain parameters
-to be changed via a URL using a cumbersome syntax such as 
-map_layer_0_class_0_color=255+0+0 which changes the color in one classObj.
-Not only was this cumbersome for users but also from a code maintenance
-perspective since we had to maintain seperate loaders for URL-based config
-and file-based config. RFC-31 attempts to streamline both by migrating to
-a single object loading function that can be used with strings (either in
-MapScript or via URL) or with files.
-
-So, in the past you have to change parameters one-at-a-time. Now you can
-pass chunks of mapfiles (with security restrictions) to the CGI interface.
-The map_object notation is still necessary to identify which object you
-want to modify but you can change multiple properties at one time. Note 
-that you can use either a '_' or a '.' to seperate identifiers.
-
-Example 1, changing a scalebar object:
-
-::
-
-  ...&map.scalebar=UNITS+MILES+COLOR+121+121+121+SIZE+300+2&...
-
-Example 2, changing a presentation style:
-
-::
-
- ...&map.layer[lakes].class[0].style[0]=SYMBOL+crosshatch+COLOR+151+51+151+SIZE+15&...
-
-Example 3, creating a new feature
-
-::
-
-  ...&map_layer[3]=FEATURE+POINTS+500000+1000000+END+TEXT+'A+test+point'+END&...
-
-The variable identifies an object uniquely (by name or index in the case of
-layerObj's and classObj's). The value is a snippet of a mapfile. You
-cannot create new objects other than inline features at this point.
-
--------------------------------------------------
-Validation patterns for mapserv attribute queries
--------------------------------------------------
-
-Attribute queries (qstring) done via the mapserv CGI could theoretically 
-be used for SQL injection.
-
-No exploit has been reported, but in order to mitigate the risk, a new
-validation pattern mechanism has been added in 5.0.
-
-In the case of qstring attribute queries, the qstring_validation_pattern
-layer-level metadata is required for qstring queries to work. The metadata
-value is a regular expression that the qstring value must match otherwise
-mapserv produces a fatal error. A fatal error is also produced if qstring
-is used but qstring_validation_pattern is not provided.
-
-Note that similar validation pattern mechanism has been available for 
-%variable% substitutions since version 4.10, but in this case it is optional. 
-The  pattern for %myvar% is provided via a metadata called 
-myvar_validation_pattern.
-
-----------------------------------------------------
-SWIG MapScript (Python, Perl, CSharp, Java) changes
-----------------------------------------------------
-
-Layer Transparency: The layerObj transparency parameter is now called
-opacity. Scripts setting that value in code must be updated.
-
-Symbol Style: the symbolObj style parameter is now called pattern. MapScript
-does not allow direct modification of that parameter. In Swig-based languages
-the symbolObj method setStyle is now called setPattern. In PHP/MapScript, the
-methods setStyle and getStyle are now called setPattern and getPattern.
-
-A new msGetVersionInt() function returning the current MapServer version in
-integer format has been added to facilitate version checks in the future.
-Given version x.y.z, it returns (x*0x10000 + y*0x100 + z). For instance, for
-v5.0.0 it will return 0x050000 (note the hexadecimal notation).
-
------------------------
-CSharp related changes
------------------------
-
-The MapScript C# classes are now placed into the OSGeo.MapServer namespace
-The scripts should use the fully qualified names of the classes or apply 
-the 
-
-::
-
-  using OSGeo.MapServer;
-  
-or the corresponding language equivalent. 
-
-----------------------------------------------------
-PHP/MapScript changes
-----------------------------------------------------
-
-Layer Transparency: The layerObj transparency parameter is now called
-opacity. The old "transparency" name is deprecated and will be removed in
-a future release. Scripts getting/setting that value in code must be updated.
-
-All occurences of scale, minscale, maxscale, etc... parameters have been
-deprecated and renamed with a "denom" suffix (e.g. minscale becomes 
-minscaledenom, etc.). The deprecated parameters will be removed in a
-future release. Scripts getting/setting them must be updated.
-
-SymbolObj style has been renamed pattern. The old "stylelength" parameter
-and setStyle() and getStyleArray() methods have been deprecated and 
-"patternlength", setPattern() and getPatternArray() should be used 
-instead. They will be removed in a future release.
-
-layer.getShape(int tileindex, int shapeindex)) has been deprecated and 
-renamed to layer.getFeature(int shapeindex [, int tileindex = -1]) to
-match the SWIG MapScript equivalent. Note that the order of the arguments
-is reversed since tileindex is optional in getFeature().
-
-class.getExpression() and layer.getFilter() have been deprecated and 
-renamed to class.getExpressionString() and layer.getFilterString() to 
-match what we have in SWIG MapScript. The String suffix in the function
-name also more clearly indicates that the return value is not an object
-but a string representation of it.
-
-A new ms_GetVersionInt() function returning the current MapServer version in
-integer format has been added to facilitate version checks in the future.
-Given version x.y.z, it returns (x*0x10000 + y*0x100 + z). For instance, for
-v5.0.0 it will return 0x050000 (note the hexadecimal notation).
-
-----------------------------------------------------
-OGC Web Map Service (WMS)
-----------------------------------------------------
-
-Required Parameters for GetMap and GetFeatureInfo: previously, MapServer
-did not check for the following parameters when responding to an OGC:WMS
-GetMap or GetFeatureInfo request:
-
- - SRS
- - FORMAT
- - WIDTH
- - HEIGHT
- - STYLES or SLD / SLD_BODY
- - BBOX
-
-That is, a GetMap request would process without error if these were not 
-passed by the WMS client.
-
-A compliant OGC:WMS 1.1.0 and 1.1.1 REQUIRES these parameters.  This may
-affect OGC:WMS client requests who were not passing these values. Ticket
-1088 fully documents this issue.  In addition to WMS compliance, this was also 
-decided that by adding this constraint, if an OGC client request (as described
-earlier) breaks something, people should fix their client anyway since
-if they change WMS vendor, they will have problems as well.
-
-----------------------------------------------------
-OGC Web Feature Service (WFS)
-----------------------------------------------------
-
-----------------------------------------------------
-OGC Sensor Observation Service (SOS)
-----------------------------------------------------
-- The format of MAP/LAYER/METADATA/sos_describesensor_url
-  has been changed such that users now must format the value
-  per:
-
-"sos_describesensor_url" "http://example.org/sml/%procedure%.xml"
-
-  This change has been made to clarify and unify the meaning of procedure
-  within SOS Server's context of a DescribeSensor request.
-
-- Metadata associated with an observedProperty element's
-  swe:component value have been changed to support a URN
-  scheme, instead of the previous "sos_componenturl" metadata.  The
-  "sos_componenturl" metadata is no longer supported.  Instead,
-  "sos_observedproperty_authority" and "sos_observedproperty_version"
-  should be used to format the swe:component value.
-
-
-----------------------------------------------------
-Build Changes
-----------------------------------------------------
-
-MapServer's main include file has been renamed from "map.h" to "mapserver.h".
-
-A new mapserver-config script has been created with the following options:
-
-::
-
-  Usage: mapserver-config [OPTIONS]
-  Options:
-   [--libs]
-   [--dep-libs]
-   [--cflags]
-   [--defines]
-   [--includes]
-   [--version]
-
-The shared and static link libraries for MapSserver have been renamed
-libmapserver.x.y.so and libmapserver.a respectively.
-
-
-The --enable-coverage configure option has been renamed to --enable-gcov
-since the former name led users to think it might be related to enabling 
-support for WCS or Arc/Info coverages:
-
-::
-
-  --enable-gcov           Enable source code coverage testing using gcov
-  
-  
------------------------------------------------------
-Features Heading for Deprecation
------------------------------------------------------
+The current version of the MapServer Migration Guide is available online
+at http://www.mapserver.org/MIGRATION_GUIDE.html.
 
-Some features present in MapServer are likely to be removed in a future
-release. Features might be headed for deprecation because:
 
- - they have been replaced by a superior or more capable solution
- - they have stopped being maintained
+For developers:
 
-Users of these features should be prepared for these upcoming changes
-and start adapting their mapfiles in consequence. If you have strong 
-and motivated objections as to the removal of one or more of these
-features please open a discussion in the usual Mapserver communication
-channels. 
- 
-Cartoline symbols: these were a hack to overcome GD weaknesses, and their
-functionality is now supported by the AGG renderer. They have become poorly
-supported in current MapServer versions. Keywords allowing for setting the
-style of line joins and caps will be moved to the STYLE block.
+The master copy of the MIGRATION_GUIDE is now located in the root of the 
+mapserver/docs source tree (https://github.com/mapserver/docs). Developers
+are welcome and encouraged to edit/update the guide in the docs tree directly.
 
-RGB/RGBA output with GD: support for RGB and RGBA image types will likely not
-be maintained anymore. PC256 will continue to be supported with GD, while RGB
-and RGBA will liekly only be supported with AGG
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..84fe524
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,63 @@
+AUTOTEST_OPTS=-strict -q
+PHP_MAPSCRIPT=build/mapscript/php/php_mapscript.so
+PYTHON_MAPSCRIPT_PATH=build/mapscript/python
+JAVA_MAPSCRIPT_PATH=build/mapscript/java
+BUILDPATH=../../build
+FLEX=flex
+YACC=yacc
+CMAKEFLAGS=-DCMAKE_C_FLAGS="--coverage" -DCMAKE_CXX_FLAGS="--coverage" \
+			  -DCMAKE_SHARED_LINKER_FLAGS="-lgcov" -DWITH_GD=1 -DWITH_CLIENT_WMS=1 \
+			  -DWITH_CLIENT_WFS=1 -DWITH_KML=1 -DWITH_SOS=1 -DWITH_PHP=1 \
+			  -DWITH_PYTHON=1 -DWITH_JAVA=1 -DWITH_THREADS=1 -DWITH_FRIBIDI=0 -DWITH_FCGI=0 -DWITH_EXEMPI=1 \
+			  -DCMAKE_BUILD_TYPE=Release -DWITH_RSVG=1 -DWITH_CURL=1
+all: cmakebuild
+
+cmakebuild: lexer parser
+	if test ! -s build/Makefile; then  mkdir -p build ; cd build ; cmake .. $(CMAKEFLAGS); fi
+	cd build && $(MAKE) $(MFLAGS)
+
+warning:
+	$(error "This Makefile is used to run the \"test\" target")
+
+wxs-testcase:
+	cd msautotest/wxs && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
+
+renderers-testcase:
+	cd msautotest/renderers && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
+
+misc-testcase:
+	cd msautotest/misc && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
+
+gdal-testcase:
+	cd msautotest/gdal && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
+
+query-testcase:
+	cd msautotest/query && export PATH=$(BUILDPATH):$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
+
+autotest-install:
+	test -d "msautotest/wxs" ||  ( git submodule init && git submodule update )
+
+mspython-testcase:
+	test -f "$(PYTHON_MAPSCRIPT_PATH)/_mapscript.so" && (export PYTHONPATH="../../$(PYTHON_MAPSCRIPT_PATH)" && cd msautotest/mspython && python run_all_tests.py)
+
+php-testcase:
+	test -f "$(PHP_MAPSCRIPT)" && (export PHP_MAPSCRIPT_SO="../../$(PHP_MAPSCRIPT)" && cd msautotest/php && ./run_test.sh)
+
+java-testcase:
+	test -d "$(JAVA_MAPSCRIPT_PATH)" && (export JAVA_MAPSCRIPT_SO="../../$(JAVA_MAPSCRIPT_PATH)" && cd mapscript/java && ./run_test.sh)
+
+test: autotest-install cmakebuild
+	@$(MAKE) $(MFLAGS)	wxs-testcase renderers-testcase misc-testcase gdal-testcase query-testcase mspython-testcase
+	@./print-test-results.sh
+	@$(MAKE) $(MFLAGS)	php-testcase
+	@$(MAKE) $(MFLAGS)	java-testcase
+
+
+lexer: maplexer.c
+parser: mapparser.c
+
+maplexer.c: maplexer.l
+	$(FLEX) --nounistd -Pmsyy -i -o$(CURDIR)/maplexer.c $(CURDIR)/maplexer.l
+
+mapparser.c: mapparser.y
+	$(YACC) -d -o$(CURDIR)/mapparser.c $(CURDIR)/mapparser.y
diff --git a/Makefile.in b/Makefile.in
deleted file mode 100644
index 18956af..0000000
--- a/Makefile.in
+++ /dev/null
@@ -1,533 +0,0 @@
-# @configure_input@
-# Run ./configure in the main MapServer directory to turn this Makefile.in
-# into a proper Makefile
-
-prefix		=	@prefix@
-exec_prefix	=	@exec_prefix@
-libdir	=	@libdir@
-bindir	=	@bindir@
-srcdir	=	@srcdir@
-top_builddir = @top_builddir@
-SHELL = @SHELL@
-package     = @PACKAGE_NAME@
-#
-# MS_VERSION - Set by configure based in mapserver.h
-#
-MS_VERSION=	@MS_VERSION@
-
-#
-# Name of static and shared libs to produce
-#
-LIBMAP=	libmapserver.la
-
-#
-# If you want to ignore missing datafile errors uncomment the following
-# line. This is especially useful with large tiled datasets that may not
-# have complete data for each tile.
-#
-#IGNORE_MISSING_DATA=-DIGNORE_MISSING_DATA
-IGNORE_MISSING_DATA = @IGNORE_MISSING_DATA@
-
-#
-# If you want to use shape Z and M parameter this option must be set.
-# It's OFF by default.
-#
-#USE_POINT_Z_M=-DUSE_POINT_Z_M
-USE_POINT_Z_M = @USE_POINT_Z_M@
-
-#
-# If you want to use disable fast versions of NINT (used by default) then
-# define the following
-# It's OFF by default.
-#
-#USE_NINT=-DUSE_GENERIC_MS_NINT
-USE_NINT = @USE_NINT@
-
-#
-# Apparently these aren't as commonplace as I'd hoped. Edit the
-# following line to reflect the missing functions on your platform.
-#
-# STRINGS=-DNEED_STRCASECMP -DNEED_STRNCASECMP -DNEED_STRDUP -DNEED_STRLCAT
-STRINGS= @STRINGS@
-
-# Proj.4 distribution (cartographic projection routines). Not required for normal use.
-PROJ_INC=  @PROJ_INC@
-PROJ_LIBS= @PROJ_LIBS@
-PROJ=      @PROJ_ENABLED@
-
-# GD distribution
-GD_INC=  @GD_INC@
-GD_LIB=  @GD_LIB@
-
-AGG_INC=  -Irenderers/agg/include
-
-#
-# Optional Opengl Support.
-#
-FTGL=     @FTGL_ENABLED@
-FTGL_LIB=  @FTGL_LIB@
-FTGL_INC=  @FTGL_INC@
-
-#Freetype support
-FT_ENABLE=     @FT_ENABLED@
-FT_LIB=  @FT_LIB@
-FT_INC=  @FT_INC@
-
-#
-# Optional Opengl Support.
-#
-OGL=     @OGL_ENABLED@
-OGL_LIB=  @OGL_LIB@
-OGL_INC=  @OGL_INC@
-
-
-PNG_INC= @PNG_INC@
-PNG_LIB= @PNG_LIB@
-
-#
-# Giflib support
-#
-GIF_INC= @GIF_INC@
-GIF_LIB= @GIF_LIB@
-GIF=	 @GIF_ENABLED@
-
-
-# JPEG distribution (raster support for grayscale JPEG images, INPUT ONLY).
-JPEG_INC= @JPEG_INC@
-JPEG_LIB= @JPEG_LIB@
-JPEG=     @JPEG_ENABLED@
-
-# ESRI SDE Support. You MUST have the SDE Client libraries and include files
-# on your system someplace. The actual SDE server you wish to connect to can
-# be elsewhere.
-SDE=	  @SDE_ENABLED@
-SDE_LIB=  @SDE_LIB@
-SDE_INC=  @SDE_INC@
-
-# Optional OGR Support.  OGC Simple Feature inspired interface for vector
-# formats.  See http://ogr.maptools.org/
-# Note that since OGR is part of the GDAL library, it uses GDAL_LIB + GDAL_INC
-OGR=	  @OGR_ENABLED@
-
-# Optional GDAL Support (provides read access to a variety of raster formats)
-# See http://www.remotesensing.org/gdal/
-GDAL=	  @GDAL_ENABLED@
-GDAL_LIB=  @GDAL_LIB@
-GDAL_INC=  @GDAL_INC@
-
-# Optional GEOS Support.
-# See http://geos.refractions.net/
-GEOS=     @GEOS_ENABLED@
-GEOS_LIB=  @GEOS_LIB@
-GEOS_INC=  @GEOS_INC@
-
-# Optional PostGIS Support.  See http://postgis.refractions.net/
-POSTGIS=      @POSTGIS_ENABLED@
-POSTGIS_LIB=  @POSTGIS_LIB@
-POSTGIS_INC=  @POSTGIS_INC@
-
-# Optional Mysql Support. 
-MYSQL=      @MYSQL_ENABLED@
-MYSQL_LIB=  @MYSQL_LIB@
-MYSQL_INC=  @MYSQL_INC@
-
-# Optional ORACLESPATIAL Support. Contact: cabral at cttmar.univali.br
-ORACLESPATIAL=@ORACLESPATIAL_ENABLED@
-ORACLESPATIAL_LIB=@ORACLESPATIAL_LIB@
-ORACLESPATIAL_INC=@ORACLESPATIAL_INC@
-
-# libcurl ... required for WMS/WFS Client Connections
-CURL_INC=@CURL_INC@
-CURL_LIB=@CURL_LIB@
-
-# libfribibi ... 
-FRIBIDI=@FRIBIDI_ENABLED@
-FRIBIDI_INC=@FRIBIDI_INC@
-FRIBIDI_LIB=@FRIBIDI_LIB@
-
-
-# libxml2 ... required for OGC SOS Server
-XML2_INC=@XML2_INC@
-XML2_LIB=@XML2_LIB@
-
-# libxslt ... required for xml mapfile
-XSLT_INC=@XSLT_INC@
-XSLT_LIB=@XSLT_LIB@
-
-# libexslt ... required for xml mapfile
-EXSLT_INC=@EXSLT_INC@
-EXSLT_LIB=@EXSLT_LIB@
-
-# Optional Exempi
-EXEMPI=@EXEMPI_ENABLED@
-EXEMPI_INC=@EXEMPI_INC@
-EXEMPI_LIB=@EXEMPI_LIB@
-
-# Optional FastCGI
-FASTCGI=@FASTCGI_ENABLED@
-FASTCGI_INC=@FASTCGI_INC@
-FASTCGI_LIB=@FASTCGI_LIB@
-
-APXS=@APXS@
-APACHE_INC=@APACHE_INC@
-APR_INC=@APR_INC@
-APR_LIB=@APR_LIBS@
-
-# OWS: OGC Web Services support
-# OGC WMS Server:  -DUSE_WMS_SVR (Requires PROJ4 support)
-# OGC WMS Client Connections:  -DUSE_WMS_LYR (Requires PROJ4 and libcurl)
-# OGC WFS Server: -DUSE_WFS_SVR (Requires OGR, PROJ4 recommended)
-# OGC WFS Client: -DUSE_WFS_LYR (Requires OGR, PROJ4 and libcurl)
-# OGC WCS Server: -DUSE_WCS_SVR (Requires GDAL and PROJ4)
-# OGC SOS Server: -DUSE_SOS_SVR (Requires PROJ4 and libxml2)
-OWS=@WMS_SVR_ENABLED@ @WMS_LYR_ENABLED@ @WFS_SVR_ENABLED@ @WFS_LYR_ENABLED@ @WCS_SVR_ENABLED@ @SOS_SVR_ENABLED@
-
-#
-# IMPORTANT NOTE ABOUT REGEX FOR PHP_MAPSCRIPT USERS:
-#
-# In order to compile the PHP_MAPSCRIPT module, we have to make MapServer
-# use the same version of the REGEX library that PHP was compiled with:
-#
-PHP_REGEX_OBJ=@PHP_REGEX_OBJ@
-PHP_REGEX_INC=@PHP_REGEX_INC@
-
-#
-# Multithreading support.
-#
-THREAD=@THREAD_FLAG@
-THREAD_LIB=@THREAD_LIB@
-
-#
-# libiconv - Enables Internationalization
-#
-ICONV=@ICONV_ENABLED@
-ICONV_LIB=@ICONV_LIB@
-ICONV_INC=@ICONV_INC@
-
-CAIRO=@CAIRO_ENABLED@
-CAIRO_LIB=@CAIRO_LIB@
-CAIRO_INC=@CAIRO_INC@
-
-LIBSVG_CAIRO=@LIBSVG_CAIRO_ENABLED@
-LIBSVG_CAIRO_LIB=@LIBSVG_CAIRO_LIB@
-LIBSVG_CAIRO_INC=@LIBSVG_CAIRO_INC@
-
-PHP_MAPSCRIPT=@PHP_MAPSCRIPT@
-PYTHON_MAPSCRIPT=@PYTHON_MAPSCRIPT@
-
-#
-# Pick a compiler, etc. Flex and bison are only required if you need to modify the mapserver lexer (maplexer.l) or expression parser (mapparser.y).
-#
-CXX=	@CXX@
-CC=     @CC@
-LD=     @CXX@
-AR= ar rc
-RANLIB= @RANLIB@
-LEX=    @LEX@
-YACC=   @YACC@
-LIBTOOL=@LIBTOOL@
-INSTALL=@INSTALL@
-SED=@SED@
-
-LTCC=$(LIBTOOL) --mode=compile --tag=CC
-LTCXX=$(LIBTOOL) --mode=compile --tag=CXX
-LTLD=$(LIBTOOL) --mode=link --tag=CXX
-LTINSTALL=$(LIBTOOL) --mode=install
-OBJ_SUFFIX=lo
-
-XTRALIBS= @XTRALIBS@
-RUNPATHS= -rpath $(libdir)
-
-LT_LDFLAGS= $(RUNPATHS)
-LINK=$(LTLD) $(LD) $(LT_LDFLAGS)
-
-DEFINES = @ALL_ENABLED@ 
-
-INCLUDES = $(FT_INC) $(REGEX_INC) $(PNG_INC) $(GIF_INC) $(JPEG_INC) $(GD_INC) \
-        $(AGG_INC) $(OGL_INC) $(FTGL_INC) $(PROJ_INC) $(EGIS_INC) \
-        $(SDE_INC) $(GDAL_INC) $(POSTGIS_INC) $(MYSQL_INC) \
-        $(CURL_INC) $(ORACLESPATIAL_INC) $(GEOS_INC) $(ICONV_INC) \
-        $(EXEMPI_INC) $(XML2_INC) $(FRIBIDI_INC) $(CAIRO_INC) $(LIBSVG_CAIRO_INC) \
-		  $(APR_INC) $(APACHE_INC)
-
-FLAGS = @DEBUG_FLAGS@ $(DEFINES) $(INCLUDES)
-
-CFLAGS   = @CFLAGS@ $(FLAGS)
-CXXFLAGS = @CXXFLAGS@ $(FLAGS)
-
-# Link flags and shared libs only
-SUP_LIBS =  $(FT_LIB) $(GD_LIB) $(OGL_LIB) $(FTGL_LIB) $(PROJ_LIBS) \
-          $(JPEG_LIB) $(PNG_LIB) $(GIF_LIB) $(SDE_LIB) $(GDAL_LIB) $(POSTGIS_LIB) \
-	  $(MYSQL_LIB) $(CURL_LIB) $(ORACLESPATIAL_LIB) $(GEOS_LIB) \
-	  $(THREAD_LIB) $(ICONV_LIB) $(EXEMPI_LIB) $(XSLT_LIB) $(EXSLT_LIB) \
-	  $(XML2_LIB) $(FRIBIDI_LIB) $(XTRALIBS)  $(CAIRO_LIB) $(LIBSVG_CAIRO_LIB) \
-	  $(APR_LIB)
-
-
-EXE_LDFLAGS =	$(RUNPATHS) -lmapserver $(SUP_LIBS)
-
-RM= /bin/rm -f
-
-AGG_OBJ=renderers/agg/src/clipper.$(OBJ_SUFFIX) renderers/agg/src/agg_arc.$(OBJ_SUFFIX) renderers/agg/src/agg_curves.$(OBJ_SUFFIX)\
-		  renderers/agg/src/agg_vcgen_contour.$(OBJ_SUFFIX) renderers/agg/src/agg_vcgen_dash.$(OBJ_SUFFIX)\
-		  renderers/agg/src/agg_vcgen_stroke.$(OBJ_SUFFIX) renderers/agg/src/agg_image_filters.$(OBJ_SUFFIX)\
-		  renderers/agg/src/agg_line_aa_basics.$(OBJ_SUFFIX) renderers/agg/src/agg_line_profile_aa.$(OBJ_SUFFIX)\
-		  renderers/agg/src/agg_sqrt_tables.$(OBJ_SUFFIX) renderers/agg/src/agg_embedded_raster_fonts.$(OBJ_SUFFIX)\
-		  renderers/agg/src/agg_trans_affine.$(OBJ_SUFFIX) renderers/agg/src/agg_vpgen_clip_polygon.$(OBJ_SUFFIX)\
-		  renderers/agg/src/agg_vpgen_clip_polyline.$(OBJ_SUFFIX) renderers/agg/src/agg_font_freetype.$(OBJ_SUFFIX)
-
-OBJS= $(AGG_OBJ) mapgeomutil.$(OBJ_SUFFIX) mapdummyrenderer.$(OBJ_SUFFIX) mapogl.$(OBJ_SUFFIX) mapoglrenderer.$(OBJ_SUFFIX) mapoglcontext.$(OBJ_SUFFIX) \
-				mapimageio.$(OBJ_SUFFIX) mapcairo.$(OBJ_SUFFIX) maprendering.$(OBJ_SUFFIX) mapgeomtransform.$(OBJ_SUFFIX) mapquantization.$(OBJ_SUFFIX) \
-				maptemplate.$(OBJ_SUFFIX) mapbits.$(OBJ_SUFFIX) maphash.$(OBJ_SUFFIX) mapshape.$(OBJ_SUFFIX) mapxbase.$(OBJ_SUFFIX) mapparser.$(OBJ_SUFFIX) maplexer.$(OBJ_SUFFIX) \
-				maptree.$(OBJ_SUFFIX) mapsearch.$(OBJ_SUFFIX) mapstring.$(OBJ_SUFFIX) mapsymbol.$(OBJ_SUFFIX) mapfile.$(OBJ_SUFFIX) maplegend.$(OBJ_SUFFIX) maputil.$(OBJ_SUFFIX) \
-				mapscale.$(OBJ_SUFFIX) mapquery.$(OBJ_SUFFIX) maplabel.$(OBJ_SUFFIX) maperror.$(OBJ_SUFFIX) mapprimitive.$(OBJ_SUFFIX) mapproject.$(OBJ_SUFFIX) mapraster.$(OBJ_SUFFIX) \
-				mapsde.$(OBJ_SUFFIX) mapogr.$(OBJ_SUFFIX) mappostgis.$(OBJ_SUFFIX) maplayer.$(OBJ_SUFFIX) mapresample.$(OBJ_SUFFIX) mapwms.$(OBJ_SUFFIX) \
-				mapwmslayer.$(OBJ_SUFFIX) maporaclespatial.$(OBJ_SUFFIX) mapgml.$(OBJ_SUFFIX) mapprojhack.$(OBJ_SUFFIX) mapthread.$(OBJ_SUFFIX) mapdraw.$(OBJ_SUFFIX) \
-				mapgd.$(OBJ_SUFFIX) mapagg.$(OBJ_SUFFIX) mapoutput.$(OBJ_SUFFIX) mapgdal.$(OBJ_SUFFIX) mapimagemap.$(OBJ_SUFFIX) mapows.$(OBJ_SUFFIX) mapwfs.$(OBJ_SUFFIX) \
-				mapwfs11.$(OBJ_SUFFIX) mapwfslayer.$(OBJ_SUFFIX) mapcontext.$(OBJ_SUFFIX) maphttp.$(OBJ_SUFFIX) mapdrawgdal.$(OBJ_SUFFIX) mapjoin.$(OBJ_SUFFIX) mapgraticule.$(OBJ_SUFFIX) \
-				mapcopy.$(OBJ_SUFFIX) mapogcfilter.$(OBJ_SUFFIX) mapogcsld.$(OBJ_SUFFIX) maptime.$(OBJ_SUFFIX) mapwcs.$(OBJ_SUFFIX) mapwcs11.$(OBJ_SUFFIX) mapcpl.$(OBJ_SUFFIX) cgiutil.$(OBJ_SUFFIX) \
-				maprasterquery.$(OBJ_SUFFIX) mapobject.$(OBJ_SUFFIX) mapgeos.$(OBJ_SUFFIX) classobject.$(OBJ_SUFFIX) layerobject.$(OBJ_SUFFIX) mapio.$(OBJ_SUFFIX) mappool.$(OBJ_SUFFIX) \
-				mapregex.$(OBJ_SUFFIX) mappluginlayer.$(OBJ_SUFFIX) mapogcsos.$(OBJ_SUFFIX) mappostgresql.$(OBJ_SUFFIX) mapcrypto.$(OBJ_SUFFIX) mapowscommon.$(OBJ_SUFFIX) \
-				maplibxml2.$(OBJ_SUFFIX) mapdebug.$(OBJ_SUFFIX) mapchart.$(OBJ_SUFFIX) maptclutf.$(OBJ_SUFFIX) mapxml.$(OBJ_SUFFIX) mapkml.$(OBJ_SUFFIX) mapkmlrenderer.$(OBJ_SUFFIX) \
-				mapogroutput.$(OBJ_SUFFIX) mapwcs20.$(OBJ_SUFFIX)  mapogcfiltercommon.$(OBJ_SUFFIX) mapunion.$(OBJ_SUFFIX) mapcluster.$(OBJ_SUFFIX) mapxmp.$(OBJ_SUFFIX) \
-				mapuvraster.$(OBJ_SUFFIX) mapservutil.$(OBJ_SUFFIX) maptile.$(OBJ_SUFFIX)
-
-HEADERS=	cgiutil.h mapgml.h mapoglcontext.h mapregex.h\
-			maptile.h dxfcolor.h maphash.h mapoglrenderer.h mapresample.h\
-			maptime.h mapagg.h maphttp.h mapows.h mapserv.h\
-			maptree.h mapaxisorder.h mapio.h mapowscommon.h\
-			mapwcs.h mapcopy.h mapkmlrenderer.h mapparser.h mapshape.h\
-			mapentities.h maplibxml2.h mappostgis.h mapsymbol.h maperror.h\
-			mapogcfilter.h mapprimitive.h maptemplate.h mapfile.h mapogcsld.h\
-			mapproject.h mapthread.h
-
-EXE_LIST = 	shp2img legend mapserv shptree shptreevis \
-		shptreetst scalebar sortshp tile4ms \
-		msencrypt mapserver-config
-
-#
-# --- You shouldn't have to edit anything else. ---
-#
-all: $(LIBMAP) $(EXE_LIST) mapscriptvars $(PHP_MAPSCRIPT) $(PYTHON_MAPSCRIPT)
-
-# Explicitly invoke this rule when maplexer.l is altered.  We don't do
-# it automatically for the reasons listed in #2310
-
-lexer:
-	$(LEX) --nounistd -Pmsyy -i -omaplexer.c maplexer.l
-
-maplexer.c:	maplexer.l
-	@echo '----------------------------------------------------------------'
-	@echo '--  Please run "make lexer" if you have altered maplexer.l     -'
-	@echo '----------------------------------------------------------------'
-
-Makefile: Makefile.in config.status
-	./config.status $@
-
-config.status: configure
-	./config.status --recheck
-#
-# Non-gnumake's don't seem to use this pattern rule, 
-# but have a similar built-in rule for C code.  So try not
-# to change these, since the change is unlikely to stick.
-# 
-.SUFFIXES:
-.SUFFIXES: .cpp .c .$(OBJ_SUFFIX)
-
-mapserver.h: $(HEADERS)
-	touch mapserver.h
-
-.c.$(OBJ_SUFFIX): $(HEADERS)
-	$(LTCC) $(CC) -c $(CFLAGS) $< -o $@
-
-mapserv.$(OBJ_SUFFIX): mapserv.c $(HEADERS)
-	$(LTCC) $(CC) -c $(CFLAGS) $(FASTCGI_INC) mapserv.c -o $@
-
-.cpp.$(OBJ_SUFFIX): mapserver.h
-	$(LTCXX) $(CXX) -c $(CXXFLAGS) $< -o $@
-   
-maplexer.o: maplexer.c mapserver.h mapfile.h
-
-mapparser.o: mapparser.c mapserver.h
-
-mapparser.c: mapparser.y
-	$(YACC) -d -omapparser.c mapparser.y
-
-mod_mapserver.la: $(LIBMAP) mod_mapserver.c
-	$(APXS) -c -Wc,"$(CFLAGS)" $(LIBMAP) mod_mapserver.c
-
-mapscript: mapscriptvars mapserver-config
-
-$(LIBMAP): $(OBJS)
-	$(LINK) -release $(MS_VERSION)  $(OBJS) $(SUP_LIBS) -o $(LIBMAP)
-
-shp2pdf: $(LIBMAP) shp2pdf.$(OBJ_SUFFIX)
-	$(LINK) shp2pdf.$(OBJ_SUFFIX) $(LIBMAP) -o shp2pdf
-
-shp2img: $(LIBMAP) shp2img.$(OBJ_SUFFIX)
-	$(LINK) shp2img.$(OBJ_SUFFIX) $(LIBMAP) -o shp2img
-
-sym2img:  sym2img.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) sym2img.$(OBJ_SUFFIX) $(LIBMAP) -o sym2img
-
-legend: legend.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) legend.$(OBJ_SUFFIX) $(LIBMAP) -o legend
-
-scalebar: scalebar.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) scalebar.$(OBJ_SUFFIX) $(LIBMAP) -o scalebar
-
-mapserv: mapserv.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) mapserv.$(OBJ_SUFFIX) $(LIBMAP) $(FASTCGI_LIB) -o mapserv
-
-shpindex: shpindex.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) shpindex.$(OBJ_SUFFIX) $(LIBMAP) -o shpindex
-
-shptree: shptree.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) shptree.$(OBJ_SUFFIX) $(LIBMAP) -o shptree
-
-shptreevis: shptreevis.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) shptreevis.$(OBJ_SUFFIX) $(LIBMAP) -o shptreevis
-
-shptreetst: shptreetst.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) shptreetst.$(OBJ_SUFFIX) $(LIBMAP) -o shptreetst
-
-sortshp: sortshp.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) sortshp.$(OBJ_SUFFIX) $(LIBMAP) -o sortshp
-
-tile4ms: tile4ms.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) tile4ms.$(OBJ_SUFFIX) $(LIBMAP) -o tile4ms
-
-msencrypt: msencrypt.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) msencrypt.$(OBJ_SUFFIX) $(LIBMAP) -o msencrypt
-
-testexpr: testexpr.$(OBJ_SUFFIX) mapparser.$(OBJ_SUFFIX) maplexer.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) testexpr.$(OBJ_SUFFIX) $(LIBMAP) -o testexpr
-
-testcopy: testcopy.$(OBJ_SUFFIX) $(LIBMAP)
-	$(LINK) testcopy.$(OBJ_SUFFIX) $(LIBMAP) -o testcopy
-
-test_mapcrypto: mapcrypto.c mapserver.h $(LIBMAP)
-	$(LINK) mapcrypto.c -DTEST_MAPCRYPTO $(LIBMAP) -o test_mapcrypto
-
-mapscriptvars:	Makefile
-	touch mapscriptvars
-	pwd > mapscriptvars
-	echo $(IGNORE_MISSING_DATA) $(USE_POINT_Z_M) $(STRINGS) @ALL_ENABLED@ >> mapscriptvars
-	echo -I. $(PROJ_INC) $(GD_INC) $(TTF_INC) $(JPEG_INC) $(SDE_INC) $(OGR_INC) $(GDAL_INC) $(GEOS_INC) >> mapscriptvars
-	echo $(LIBMAP) >> mapscriptvars
-	echo $(EXE_LDFLAGS) >> mapscriptvars
-	grep '#define MS_VERSION ' mapserver.h >> mapscriptvars
-
-mapserver-config: Makefile
-	rm -f mapserver-config
-	echo '#!/bin/sh' > mapserver-config
-	echo 'CONFIG_LIBS="$(SUP_LIBS)"' >> mapserver-config
-	echo 'CONFIG_DEP_LIBS="$(LIBS)"' >> mapserver-config
-	echo 'CONFIG_CFLAGS="$(CFLAGS)"' >> mapserver-config
-	echo 'CONFIG_DEFINES="$(DEFINES)"' >> mapserver-config
-	echo 'CONFIG_INCLUDES="$(INCLUDES)"' >> mapserver-config
-	echo 'CONFIG_VERSION="'`grep '#define MS_VERSION ' mapserver.h | $(SED) 's/\"//g' | $(SED) 's/#define MS_VERSION //'`'"' >> mapserver-config
-	cat mapserver-config.in >> mapserver-config
-	chmod a+x mapserver-config
-
-php_mapscript: $(LIBMAP)
-	cd mapscript/php; $(MAKE) $(MFLAGS);
-
-php_mapscript_clean:
-	test -z "$(PHP_MAPSCRIPT)" || (cd mapscript/php; $(MAKE) clean;)
-
-php_mapscript_install:
-	test -z "$(PHP_MAPSCRIPT)" || (cd mapscript/php; $(MAKE) install DESTDIR=$(DESTDIR);)
-
-python_mapscript: $(LIBMAP)
-	cd mapscript/python; $(MAKE) $(MFLAGS);
-
-python_mapscript_clean:
-	test -z "$(PYTHON_MAPSCRIPT)" || (cd mapscript/python; $(MAKE) clean;)
-
-python_mapscript_install:
-	test -z "$(PYTHON_MAPSCRIPT)" || (cd mapscript/python; $(MAKE) install DESTDIR=$(DESTDIR);)
-
-install: install-lib install-bin install-cgibin php_mapscript_install python_mapscript_install
-
-install-cgibin: install-lib mapserv
-	$(LTINSTALL) $(INSTALL) mapserv $(DESTDIR)$(bindir)/mapserv
-	@echo ""
-	@echo "***** MapServer CGI / FastCGI Installation *****"
-	@echo "To install MapServer, copy or symlink the \"$(bindir)/mapserv\" file"
-	@echo "to your web server's cgi-bin directory."
-	@echo "If you use MapScript then see the documentation for your specific MapScript"
-	@echo "version for installation instructions."
-	@echo ""
-
-install-dirs:
-	$(INSTALL) -d $(DESTDIR)$(bindir) $(DESTDIR)$(libdir)
-
-install-bin: install-dirs install-lib $(EXE_LIST)
-	@list='$(EXE_LIST)'; for p in $$list; do \
-	  if test -f $$p; then \
-	    $(LTINSTALL) $(INSTALL) $$p $(DESTDIR)$(bindir)/$$p; \
-	  else :; fi; \
-	done
-
-install-lib: install-dirs $(LIBMAP)
-	$(LTINSTALL) $(INSTALL) $(LIBMAP) $(DESTDIR)$(libdir)/$(LIBMAP); \
-
-uninstall:
-	@list='$(EXE_LIST)'; for p in $$list; do \
-	  if test -f $(DESTDIR)$(bindir)/$$p; then \
-	    $(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(bindir)/$$p; \
-	  else :; fi; \
-	done
-	$(LIBTOOL)  --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(LIBMAP)
-
-install-module: mod_mapserver.la install-lib
-	$(APXS) -i -a -n "mapserver" mod_mapserver.la
-
-clean: php_mapscript_clean python_mapscript_clean
-	rm -rf $(LIBMAP) mapscriptvars *.o *.lo *.la .libs $(EXE_LIST) renderers/agg/src/*.o renderers/agg/src/*.lo renderers/agg/src/.libs
-
-exe-clean:
-	rm -f $(EXE_LIST)
-
-distclean:
-	$(MAKE) clean
-	rm config.log
-	if test -d autom4te.cache ; then \
-	  rm -f -r autom4te.cache ; \
-	fi
-
-sorta-clean:
-	rm -f *.o *.lo
-
-
-AUTOTEST_OPTS=-strict
-
-wxs-testcase:
-	cd msautotest/wxs && export PATH=../..:$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
-
-renderers-testcase:
-	cd msautotest/renderers && export PATH=../..:$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
-
-misc-testcase:
-	cd msautotest/misc && export PATH=../..:$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
-
-gdal-testcase:
-	cd msautotest/gdal && export PATH=../..:$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
-
-query-testcase:
-	cd msautotest/query && export PATH=../..:$(PATH) && ./run_test.py $(AUTOTEST_OPTS)
-
-autotest-install:
-	test -d "msautotest/wxs" ||  ( git submodule init && git submodule update )
-
-php-testcase:
-	test -z "$(PHP_MAPSCRIPT)" || (export PHP_MAPSCRIPT_SO="../../mapscript/php/.libs/php_mapscript.so" && cd msautotest/php && ./run_test.sh)
-
-print-test-results:
-	@./print-test-results.sh
-
-test: shp2img mapserv autotest-install $(PHP_MAPSCRIPT) $(PYTHON_MAPSCRIPT)
-	@$(MAKE) $(MFLAGS)	wxs-testcase renderers-testcase misc-testcase gdal-testcase query-testcase
-	@$(MAKE) print-test-results
-	@$(MAKE) php-testcase
diff --git a/Makefile.vc b/Makefile.vc
index 494c526..fbafe97 100644
--- a/Makefile.vc
+++ b/Makefile.vc
@@ -48,7 +48,7 @@ MS_OBJS = mapbits.obj maphash.obj mapshape.obj mapxbase.obj \
 		mapoglrenderer.obj mapoglcontext.obj mapogl.obj \
 		maptile.obj $(EPPL_OBJ) $(REGEX_OBJ) mapgeomtransform.obj mapunion.obj \
                 mapkmlrenderer.obj mapkml.obj mapdummyrenderer.obj mapgeomutil.obj mapquantization.obj \
-                mapogcfiltercommon.obj mapcluster.obj mapuvraster.obj mapservutil.obj $(AGG_OBJ)
+                mapogcfiltercommon.obj mapcluster.obj mapuvraster.obj mapcontour.obj mapsmoothing.obj mapservutil.obj hittest.obj $(AGG_OBJ)
 
 MS_HDRS = 	mapserver.h mapfile.h
 
@@ -148,7 +148,7 @@ mapscriptvars: makefile.vc nmake.opt
 	echo $(INCLUDES) >> mapscriptvars
 	echo $(LIBS_DLL) >> mapscriptvars
 	echo $(LIBS) >> mapscriptvars
-	findstr MS_VERSION mapserver.h | findstr define >> mapscriptvars
+	findstr MS_VERSION mapserver-version.h | findstr define >> mapscriptvars
 
 #install: $(MS_DLL) $(MS_EXE) python csharp java php
 install: $(MS_DLL) $(MS_EXE)
diff --git a/README.CONFIGURE b/README.CONFIGURE
deleted file mode 100644
index 71ce550..0000000
--- a/README.CONFIGURE
+++ /dev/null
@@ -1,791 +0,0 @@
--------------------------------------------------------------------
-README.CONFIGURE - MapServer "configure" script compilation options
--------------------------------------------------------------------
-
-For Unix users, Mapserver comes with a GNU autoconf "configure" script 
-that should take care of (hopefully!) all compilation issues for you.
-
-The configure script won't work on Windows.  See the file README.WIN32
-for details on compiling on Windows systems.
-
-The default configure behavior is to try to locate on your system the most
-common optional libraries that MapServer can use and include them in the
-Makefiles.  It also takes care of setting the proper compilation flags to
-handle issues like the version of GD that you are using, etc.
-
-
-For the impatient:
-------------------
-
-To build the "mapserv" CGI program with the default options, go to the
-directory where you extracted the MapServer source code package and...
-
-::
-
- $ cd mapserver-6.2.x
- $ ./configure
- $ make
- $ make install
-
-Unless something went wrong, this should compile and install the "mapserv"
-CGI program and the other utility programs.
-
-You should then locate the installed "mapserv" executable and link to it
-from your web server's cgi-bin directory. More information on how to do this
-is available at http://mapserver.org/installation/unix.html#installation
-
-See the MapServer web site at http://mapserver.org/ for usage
-instructions.
-
-
-"configure" options:
---------------------
-
-Here is the list of available options as returned by "./configure --help":
-
-Optional Features:
-
-::
-
-  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
-  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-  --enable-ignore-missing-data   Ignore missing data file errors at runtime
-  --disable-ignore-missing-data  Report all missing data files (enabled by
-                                 default).
-  --enable-point-z-m      Use point Z and M parameters (disabled by default).
-  --disable-point-z-m     Disable support for point Z and M parameters.
-  --disable-fast-nint     Use safe MS_NINT with reliable rounding
-  --enable-debug          Include "-g" in CFLAGS for debugging.
-  --disable-debug         Do not include "-g" in CFLAGS (the default).
-  --enable-cgi-cl-debug-args
-                          Enable mapserv CGI command-line debug arguments
-                          (disabled by default). These command-line args may
-                          be insecure and should be enabled only on
-                          development servers and only if you understand the
-                          security implications.
-  --enable-gcov           Enable source code coverage testing using gcov
-  --enable-perlv-ld-detect (applies to --with-php only)
-                          Use perl -V output to figure the command to use to
-                          link php_mapscript.so.  Try this only if the default
-                          internal macro didn't work.
-  --enable-runpath        Include runtime library path flags (-Wl,-R) in link.
-                          Required on *BSD systems.
-  --disable-runpath       Do not link with runtime lib path (the default).
-
-Optional Packages:
-
-::
-
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pkg-config[=PATH] Include pkg-config support (PATH is path to pkg-config)
-  --with-freetype=DIR     GD: Specify where FreeType 2.x is installed (DIR is
-                              path to freetype-config program or install dir).
-  --with-zlib=DIR         GD,SVG: Specify where zlib is installed (DIR is path
-                              to zlib install dir).
-  --with-png=DIR          GD: Specify where PNG is installed (DIR is path to
-                              PNG install dir).
-  --with-jpeg[=DIR]       Include JPEG support (DIR is LibJPEG's install dir).
-  --with-xpm=DIR          GD: Specify where libXpm is installed (DIR it the
-                              libXpm install prefix).
-  --with-libiconv=DIR     Specify where libiconv is installed (DIR is path
-                          to libiconv install dir (prefix)).
-  --with-gd[=[static,]DIR] Specify which version of GD to use (DIR is GD's
-                          install dir).
-  --without-pdf           Disable PDF support.
-  --with-pdf[=DIR]        Include PDF support (DIR is PDFlib's install dir).
-  --with-agg[=DIR]        Include AGG support (DIR is AGG's install dir).
-  --with-cairo            Include Cairo support (PDF and SVG support)
-  --without-eppl          Disable EPPL7 support.
-  --with-eppl             Include EPPL7 support.
-  --with-proj[=DIR]       Include PROJ.4 support (DIR is PROJ.4's install dir).
-  --with-threads[=linkopt]Include thread safe support
-  --with-sde[=DIR]        Include ESRI SDE support (DIR is SDE's install dir).
-  --with-sde-version[=VERSION NUMBER]  Set ESRI SDE version number (Default
-                          is 91).
-  --with-geos[=PATH]      Include GEOS support (PATH is path to geos-config)
-  --with-ogr[=PATH]       Include OGR support (PATH is path to gdal-config).
-  --with-gdal[=PATH]      Include GDAL support (PATH is path to gdal-config)
-  --without-tiff          Disable TIFF support.
-  --with-tiff[=DIR]       Include TIFF support (DIR is LibTIFF's install dir).
-  --with-postgis[=ARG]    Include PostGIS Support (ARG=yes/path to pg_config)
-  --with-mysql[=ARG]      Include Mysql Support (ARG=yes/path to my_config)
-  --with-oraclespatial[=ARG] Include OracleSpatial Support (ARG=yes/path to
-                          Oracle home)
-  --without-wms           Disable OGC WMS Compatibility (enabled by default).
-  --with-wfs              Enable OGC WFS Server Support (OGR+PROJ4 required).
-  --with-wcs              Enable OGC WCS Server Support (GDAL+PROJ4 required).
-  --with-wmsclient        Enable OGC WMS Client Connections (PROJ4, libcurl and
-                          GDAL required).
-  --with-wfsclient        Enable OGC WFS Client Connections (PROJ4, libcurl and
-                          OGR required).
-  --with-sos              Enable OGC SOS Server Support (libxml2 and PROJ4 and
-                          OGR required).
-  --with-curl-config=PATH Specify path to curl-config.
-  --with-xml2-config=PATH Specify path to xml2-config.
-  --with-fribidi-config[=ARG] Include FriBidi Support (ARG=yes/path to
-                          fribidi-config or fribidi.pc)
-  --with-fastcgi=path     Enable FastCGI, point to installed tree.
-  --with-httpd            Specify path to 'httpd' executable.
-  --with-warnings[=flags] Enable strict warnings (or user defined warnings)
-  --with-php=yes|no|/path/to/php-config
-                          Specify location of php-config script.
-                          Required in order to compile the PHP/MapScript
-                          module.
-  --without-ld-shared     Disable shared library support
-  --with-apxs[=FILE]      (CURRENTLY DISABLED)
-                          Use this option only if building the PHP MapScript
-                          on a system where PHP was built as a shared Apache
-                          module.  FILE is the optional pathname to the
-                          Apache apxs tool; defaults to apxs.
-  --with-apache=DIR       (CURRENTLY DISABLED)
-                          Use this option only if building the PHP MapScript
-                          on a system where PHP was built as an Apache
-                          module statically linked into the httpd executable.
-                          DIR is the path to the apache include files.
-  --with-java-include-os-name=dirname
-                          (AUTODETECTED)
-                          Use this option only if building of Java Mapscript
-                          fails because os-dependent headers are not found.
-                          dirname is the name of subdirectory of the Java
-                          installation where os-dependent include files are
-                          found (for instance linux or solaris).
-                          Only used by Java mapscript.
-
-The most common options are described in more details below.
-
-
-GD and Support Libraries:
--------------------------
-
-::
-
-  --with-gd[=DIR]         Specify which version of GD to use (DIR is GD's
-                          install dir).
-
-
-- The GD library is the only component that is not optional.  
-  Version 2.0.16 or more recent is required, and GD 2.0.35 or higher is
-  strongly recommended. 
-
-- To get the GD source code: The official home of the GD library is
-  http://www.libgd.org/ and in case it is down a copy of recent GD releases
-  is provided as a convenience at http://download.osgeo.org/mapserver/libgd/
-
-- Version 2.0.29 or more recent is required for the LABEL FOLLOW option 
-  to work (curved labels, added in 4.10).
-
-- There is a bug in GD with versions below 2.0.35 with 1 pixel 
-  antialiased lines that requires a patch for GD. See bug 1612:
-  http://trac.osgeo.org/mapserver/ticket/1612
-
-- By default, configure tries to locate GD on your system and uses the
-  system copy if found.   
-
-- You can use the --with-gd=DIR option to use a copy of GD installed in
-  directory "DIR".  Make sure that this copy of GD is compiled before
-  using this option.
-
-- GD has dependencies on a few external libraries and it may be necessary 
-  to explicitly specify the path where those libraries are found using the
-  following configure options:
-
-::
-
-  --with-freetype=DIR     GD: Specify where FreeType 2.x is installed (DIR is
-                              path to freetype-config program or install dir).
-  --with-zlib=DIR         GD,SVG: Specify where zlib is installed (DIR is path
-                              to zlib install dir).
-  --with-png=DIR          GD: Specify where PNG is installed (DIR is path to
-                              PNG install dir).
-  --with-jpeg[=DIR]       Include JPEG support (DIR is LibJPEG's install dir).
-  --with-xpm=DIR          GD: Specify where libXpm is installed (DIR is the
-                              libXpm install prefix).
-  --with-libiconv=DIR     Specify where libiconv is installed (DIR is path
-                          to libiconv install dir (prefix)).
-
-
-- In each case you specify the install dir of the support library, e.g.
-
-    ./configure .... --with-gd=/usr/local --with=jpeg=/usr/local \
-                     --with-png=/usr/local --with-zlib=/usr/local
-
-
-  Note:  If libraries required by GD are not found, it may cause configure
-  to not accurately detect which image formats are supported by GD, and may
-  cause configure and building to fail.
-
-
-TIFF Support:
--------------
-
-::
-
-  --without-tiff          Disable TIFF support.
-  --with-tiff[=DIR]       Include TIFF support (DIR is LibTIFF's install dir).
-
-- Tiff support is optional, but it will be included by default if configure
-  finds libtiff on your system. If you use --with-gdal then Tiff support is
-  disabled by default since GDAL includes Tiff support.
-
-- Use --without-tiff to explicitly disable Tiff support.
-
-- Use the --with-tiff=DIR option to use a copy of LibTiff installed in
-  directory "DIR".  Make sure that this copy of LibTiff is compiled before
-  using this option.
-
-- Do not use --with-tiff together with --with-gdal. If you are also using
-  --with-gdal then you should *not* use --with-tiff. GDAL provides better
-  Tiff support than this option, and that will save potential problems at
-  runtime.
-
-Note:  Your version of libtiff may have been compiled with JPEG or ZLIB
-support.  If so, you may need to specify --with-jpeg=DIR or --with-zlib=DIR
-to resolve these libraries for linking.  Failure to resolve dependent
-libraries may cause linking to fail.
-
-
-
-EPPL7 Support:
---------------
-
-::
-
-  --without-eppl          Disable EPPL7 support.
-  --with-eppl             Include EPPL7 support.
-
-- EPPL7 support is optional and does not require linking with any external 
-  library.
-
-- It will be included by default, and can be disabled with --without-eppl.
-
-
-
-PROJ.4 Support:
----------------
-
-::
-
-  --with-proj[=DIR]       Include PROJ.4 support (DIR is PROJ.4's install dir).
-
-- PROJ.4 support is optional, and is not included by default.
-
-- You have to use the --with-proj=DIR option to enable PROJ.4 support and
-  specify where PROJ.4 installed.  Make sure that this copy of PROJ.4 is 
-  compiled before using this option.
-
-- Starting with MapServer v3.5, PROJ.4.4.2 (or more recent) is required.
-
-- You may also have to install the NADCON data files in order to enable
-  datum shift support if you installed a source distribution.  Look for 
-  proj-nadus-1.0.tar.gz at  http://www.remotesensing.org/proj/.
-
-
-ESRI SDE Support:
------------------
-
-::
-
-  --with-sde[=DIR]        Include ESRI SDE support (DIR is SDE's install dir).
-  --with-sde-version[=VERSION NUMBER]  Set ESRI SDE version number (Default
-                          is 91).
-
-- ESRI SDE support is optional, and is not included by default.  
-
-- You have to use the --with-sde=DIR option to enable ESRI SDE support and
-  specify where ESRI SDE is installed.
-
-
-GEOS Support:
--------------
-
-::
-
-  --with-geos=PATH        Include GEOS support (PATH is path to geos-config)
-
-- GEOS support is optional, and is not included by default.
-  MapServer requires GEOS version 2.2.3 or more recent.
-
-- The GEOS library can be found at http://trac.osgeo.org/geos/
-
-
-XMP Support:
-------------
-
-::
-
-  --with-exempi=PATH
-
-- XMP support is optional, and is not incuded by default.
-
-- XMP support allows metadata (title, attribute, license, etc) to be directly embedded in the images generated by MapServer.
-
-- The exempi library can be found at http://libopenraw.freedesktop.org/wiki/Exempi
-
-
-OGR Support:
-------------
-
-::
-
-  --with-ogr[=PATH]       Include OGR support (PATH is path to gdal-config).
-
-- OGR support is optional, and is not included by default.  
-
-- The OGR library (http://www.gdal.org/ogr/) allows MapServer
-  to access data in a variety of vector formats, see the URL above for the
-  complete list.
-
-- You have to use the --with-ogr[=PATH] option to enable OGR support and
-  specify where the 'gdal-config' script for your installation is located.
-
-    e.g.    ./configure ...  --with-ogr=/usr/local/bin/gdal-config
-
-- OGR is usually installed as part of a GDAL shared library.  To get the
-  full GDAL and OGR source kit visit http://www.gdal.org/ .
-  When configuring GDAL ensure that --with-ogr is selected.
-  Then when you configure MapServer, include the --with-ogr switch with
-  no argument since the location of the GDAL lib also defines the OGR 
-  location in this case.  See the GDAL section below for more details 
-  on using --with-gdal and --with-ogr together.
-
-
-
-GDAL Support:
--------------
-
-::
-
-  --with-gdal[=path]     Include GDAL support (path is to gdal-config script).
-
-- GDAL support is optional, and it is not included by default. 
-
-- The GDAL library ( http://www.gdal.org/) allows MapServer
-  to access data in a variety of raster formats, including GeoTIFF, Erdas
-  Imagine, ESRI BIL, and CEOS. 
-
-- If GDAL is installed (ie. in /usr/local) then it should be sufficient
-  to say --with-gdal, but if the gdal-config script cannot be found, please
-  use --with-gdal=/usr/local/bin/gdal-config, or whatever path is is required
-  to get the gdal-config script. 
-
-Note that it is possible to compile GDAL/OGR independently or not in 
-MapServer:
-
-  1) GDAL only using libgdal.so installed in system lib dirs, this assumes
-     you have previously run 'make install' as root in your GDAL source
-     tree:
-
-       ./configure --with-gdal
-
-     or 
-
-       ./configure --with-gdal=/usr/local/bin/gdal-config
-
-     (or whatever the path to the installed gdal-config script is.)
-
-  2) OGR only, using libgdal.so installed in system lib dirs, once again
-     this assumes you have previously run 'make install' as root in your 
-     GDAL source tree:
-
-       ./configure --with-ogr
-
-     or 
-
-       ./configure --with-ogr=/usr/local/bin/gdal-config
-
-     (or whatever the path to the installed gdal-config script is.)
-
-  3) GDAL and OGR using libgdal.so, assuming that GDAL was configured with 
-     --with-ogr.  Same as #1 above, but add --with-ogr with no argument to
-     the MapServer configure command:
-
-       ./configure --with-gdal --with-ogr
-
-     or 
-
-       ./configure --with-gdal=/usr/local/bin/gdal-config --with-ogr
-
-
-PostGIS Support:
-----------------
-
-::
-
-  --with-postgis[=ARG]   Include PostGIS Support (ARG=yes/path to pg_config)
-
-- PostGIS support is optional, and it is not included by default. 
-
-- PostGIS support (http://postgis.refractions.net) allows Mapserver
-  to access geographic data stored in a PostgreSQL (http://www.postgresql.org)
-  database using the PostGIS server extensions. PostGIS is only supported
-  on PostgreSQL version 7.1.2 or better. PostGIS supports vector (point,
-  line, polygon) data only.
-
-- To access a PostGIS/PostgreSQL data-source, the machine on which 
-  Mapserver is running must have the PostgreSQL client libraries
-  (libpq) installed. To compile Mapserver with PostGIS/PostgreSQL support
-  the PostgreSQL header files must also be present. The 'pg_config' program
-  is included with the PostgreSQL distribution. If it is not already
-  in your path ('which pg_config'), then specify exactly where it can
-  be found.
-
-
-
-Mysql (MySQL v3.xx SFSQL) Support:
-----------------------------------
-
-::
-
-  --with-mysql[=ARG]      Include Mysql Support (ARG=yes/path to my_config)
-
-- Mysql provides join support using MySQl v3.xx.  This option is 
-  disabled by default and can be enabled using the --with-mysql option.
-
-Oracle Spatial Support:
------------------------
-
-::
-
-  --with-oraclespatial[=ARG] Include OracleSpatial Support (ARG=yes/path to
-                          Oracle home)
-
-- Oracle Spatial support is optional and is not included by default. 
-
-- For more details see the MapServer Wiki at:
-  http://mapserver.gis.umn.edu/cgi-bin/wiki.pl?OracleSpatial
-
-
-
-Flash/SWF/Ming Output Support:
-------------------------------
-
-::
-
-Flash support has been removed since MapServer 6.0 due to lack of support and/or
-funding. Get in touch with the mapserver team if this is something you wish to sponsor.
-
-PDF output support:
--------------------
-
-::
-
-PDF support has been transitionned to use the cairo rendering backend. Use --with-cairo
-to enable it.
-
-CAIRO Support:
---------------
-
-::
-  --without-cairo         Disable Cairo support (default)
-  --with-cairo[=/path/to/cairo.pc] Enable Cairo Support
-
-- Cairo support is required for PDF or SVG output
-- pkg-config is used to obtain the compilation options for cairo. If your
-  libs and headers are installed in a non-standard location, you can pass
-  the full path to the cairo.pc configuration package
-
-OGC WMS Server Compatibility:
------------------------------
-
-::
-
-  --without-wms           Disable OGC WMS Compatibility (enabled by default).
-
-- OGC WMS Compatibility is enabled by default if PROJ.4 is included.
-
-- WMS Compatibility allows MapServer (actually the mapserv CGI) to advertize
-  its capabilities and serve maps and feature_info requests following the 
-  OpenGIS Web Mapping Service (WMS) Interface Specification.
-
-- See the MapServer WMS Server HOWTO at 
-  http://mapserver.gis.umn.edu/docs/howto/wms_server
-
-
-OGC WMS Client Support:
------------------------
-
-::
-
-  --with-wmsclient        Enable OGC WMS Client Connections (PROJ4, libcurl and
-                          GDAL required).
-
-- This option enables MapServer's 'CONNECTIONTYPE WMS' to include layers
-  from remote WMS servers in MapServer applications.
-  It requires PROJ4, libcurl (see  --with-curl-config option below) and GDAL.
-  GDAL is required in order to support reprojection of layers obtained from 
-  remote WMS servers.
-
-- See the MapServer WMS Client HOWTO for more details at 
-  http://mapserver.gis.umn.edu/docs/howto/wms_client
-
-
-OGC WFS Server Compatibility:
------------------------------
-
-::
-
-  --with-wfs              Enable OGC WFS Server Support (OGR+PROJ4 required).
-
-- This option is used to enable the OGC WFS server extension.  It requires
-  the OGR and PROJ4 options as well.
-
-- See the MapServer WFS Server HOWTO at 
-  http://mapserver.gis.umn.edu/docs/howto/wfs_server
-
-
-OGC WMS Client Support:
------------------------
-
-::
-
-  --with-wfsclient        Enable OGC WFS Client Connections (PROJ4, libcurl and
-                          OGR required).
-
-- This option enables MapServer's 'CONNECTIONTYPE WFS' to include layers
-  from remote WFS servers in MapServer applications.
-  WFS client support in MapServer requires PROJ4, libcurl and an installation 
-  of OGR compiled with the Xerces library (for GML support via OGR).
-
-- See the MapServer WMS Client HOWTO for more details at 
-  http://mapserver.gis.umn.edu/docs/howto/wfs_client
-
-
-OGC SOS Server Support:
------------------------
-
-::
-
-  --with-sos              Enable OGC SOS Server Support (libxml2 and PROJ4 and
-                          OGR required).
-
-- OGC Sensor Observation Service (SOS) is disabled by default and can be
-  enabled using --with-sos. PROJ4 and libxml2 are required.
-
-- See the MapServer SOS Server HOWTO for more details at 
-  http://mapserver.gis.umn.edu/docs/howto/sos_server
-
-
-Curl Support:
--------------
-
-::
-
-  --with-curl-config=PATH Specify path to curl-config.
-
-- The Curl library (http://curl.haxx.se/libcurl/) is used by the WMS 
-  Client and WFS client options to connect to remote servers via HTTP.
-
-- LibCurl 7.10.1 or more recent is required with the current version 
-  of MapServer.  It is strongly recommended that you use libcurl
-  7.10.7 or more recent which contains some important bug fixes.
-
-- If libcurl is installed in the default system directories then it 
-  should automatically be detected by configure.  Otherwise use the
-  --with-curl-config option to specify the path where the curl-config
-  script is located.
-  e.g.
-
-     ./configure .... --with-curl-config=/usr/local/bin/curl-config
-
-
-Libxml2 Support:
-----------------
-
-::
-
-  --with-xml2-config=PATH Specify path to xml2-config.
-
-- The libxml2 library (http://xmlsoft.org/) is used by the optional 
-  OGC SOS Server module to handle XML generation and parsing.
-
-- If libxml2 is installed in the default system directories then it 
-  should automatically be detected by configure.  Otherwise use the
-  --with-xml2-config option to specify the path where the xml2-config
-  script is located.
-  e.g.
-
-::
-
-     ./configure .... --with-xml2-config=/usr/local/bin/xml2-config
-
-
-
-FriBidi Support:
-----------------
-
-::
-
-  --with-fribidi-config[=ARG] Include FriBidi Support (ARG=yes/path to
-                          fribidi-config or fribidi.pc)
-
-- The FriBidi library (http://fribidi.freedesktop.org/wiki/) is used
-  by MapServer to support labels flowing from right to left, such as
-  Arabic or Hebrew.
-
-- Support for the FriBidi library is optional and is not included by 
-  default.
-
-- The arg to --with-fribidi-config can be one of:
-
-  - yes: Autoconf will check if the system has fribidi-config. If not,
-    it will check if the pkg-config has fribidi in it's packages list.
-  - path to fribidi-config for fribidi (v0.10.9 and older)
-  - path to fribidi.pc for fribidi2 (v0.19.1 and more recent)
-
-- This option may be used in combination with the --with-pkg-config[=PATH]
-  option to specify the path to the pkg-config script
-
-
-Miscellaneous flags:
---------------------
-
-::
-
-  --with-threads[=linkopt]Include thread safe support
-
-::
-
-  --enable-ignore-missing-data   Ignore missing data file errors at runtime
-  --disable-ignore-missing-data  Report all missing data files (enabled by
-                                 default).
-
-::
-
-  --enable-point-z-m      Use point Z and M parameters (disabled by default).
-  --disable-point-z-m     Disable support for point Z and M parameters.
-
-::
-
-  --disable-fast-nint     Use safe MS_NINT with reliable rounding
-
-::
-
-  --enable-debug          Include "-g" in CFLAGS for debugging.
-  --disable-debug         Do not include "-g" in CFLAGS (the default).
-
-::
-
-  --enable-cgi-cl-debug-args
-                          Enable mapserv CGI command-line debug arguments
-                          (disabled by default). These command-line args may
-                          be insecure and should be enabled only on
-                          development servers and only if you understand the
-                          security implications.
-
-::
-
-  --enable-gcov           Enable source code coverage testing using gcov
-
-::
-
-  --enable-runpath        Include runtime library path flags (-Wl,-R) in link.
-                          Required on *BSD systems.
-  --disable-runpath       Do not link with runtime lib path (the default).
-
-NOTE FOR BSD USERS ABOUT --enable-runpath:
--------------------------------------------
-For some reason, the --enable-runpath switch is required in order to 
-successfully link on BSD systems.  For most other operating systems
-you don't need the --enable-runpath switch unless you link MapServer
-with some shared libraries located outside of the system's runtime 
-library path.  And even then, it is probably preferable to use 
-"setenv LD_LIBRARY_PATH ..." in Apache's httpd.conf to set the mapserv
-CGI or MapScript runtime library path.
-
-
-PHP/MapScript module:
-----------------------
-
-::
-
-  --with-php=yes|no|/path/to/php-config
-                          Specify location of php-config script.
-                          Required in order to compile the PHP/MapScript
-                          module.
-  --enable-perlv-ld-detect (applies to --with-php only)
-                          Use perl -V output to figure the command to use to
-                          link php_mapscript.so.  Try this only if the default
-                          internal macro didn't work.
-
-
-- The --with-php option will trigger the compilation of the PHP MapScript
-  module in the ./mapscript/php/ directory.  
-
-- The argument to the --with-php option is the full path to the php-config
-  script
-    e.g.  $ ./configure --with-php=/usr/local/bin/php-config
-
-- PHP MapScript now requires PHP 5.2.0 or more recent.
-  Support for PHP3 has been dropped after MapServer version 3.5.
-  Support for PHP4 has been dropped after MapServer version 5.6.
-
-- Some libraries are used by both PHP and MapServer, and using different 
-  versions of these libs will lead to potential crashes at runtime.  In most
-  cases it is safe to have both PHP and MapServer compiled with the same 
-  libraries (e.g. GD, regex, etc.) as long as they are of the same versions.
-
-
-Perl MapScript Module:
-----------------------
-
-- The Perl MapScript module is not yet handled by the configure script.
-
-- See the file ./mapscript/perl/README for compilation instructions.
-
-
-Python MapScript Module:
-------------------------
-
-- The Python MapScript module is not yet handled by the configure script.
-
-- See the file ./mapscript/python/README for brief compilation instructions.
-
-
-Tcl MapScript Module:
----------------------
-
--  The Tcl MapScript module is not yet handled by the configure script.
-
--  See the file ./mapscript/tcl/README for compilation instructions.
-
--  Mapserver must first be configured and build before building Tcl MapScript.
-
-Java Mapscript Module:
-----------------------
-
-- Building of Java Mapscript is described in the mapscript/java/README file.
-  
-- Relevant configure options are:
-
-  ::
-
-    --with-threads : absolutely necessary due to the highly threaded
-                     nature of Java programs.
-  
-    --with-java-include-os-name=dirname : use only if compilation of Java
-                     mapscript fails because of missing headers.
-                   
-                     dirname is the directory where the os-dependent headers
-                     used by the Java Native Interface are found.
-
-                     Example:
-                 
-                       $JAVA_HOME/include/linux
-                                          ^^^^^ this is the directory name
-		   
-                     On linux the directory is called linux and on Solaris
-                     solaris. The configure script will try to autodetect
-                     it if not specified.
-                   
-                     In case autodetection fails you might want to add a comment
-                     to bug:
-                     http://trac.osgeo.org/mapserver/tickets/1209
-
-----------------
-$Id$
-----------------
-
-
-
-
diff --git a/aclocal.m4 b/aclocal.m4
deleted file mode 100644
index 55f3c92..0000000
--- a/aclocal.m4
+++ /dev/null
@@ -1,8620 +0,0 @@
-# generated automatically by aclocal 1.11.3 -*- Autoconf -*-
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,
-# Inc.
-# This file is free software; the Free Software Foundation
-# gives unlimited permission to copy and/or distribute it,
-# with or without modifications, as long as this notice is preserved.
-
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
-# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
-# PARTICULAR PURPOSE.
-
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 57 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
-       [m4_default([$3],
-		   [m4_fatal([Libtool version $1 or higher is required],
-		             63)])],
-       [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
-  *\ * | *\	*)
-    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
-  case $cc_temp in
-    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-dnl
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_WITH_SYSROOT])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    _LT_PATH_MAGIC
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
-              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME.  Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
-    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
-	[m4_ifval([$1], [$1], [$2])])
-    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
-    m4_ifval([$4],
-	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
-    lt_dict_add_subkey([lt_decl_dict], [$2],
-	[tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
-  [0], [m4_fatal([$0: too few arguments: $#])],
-  [1], [m4_fatal([$0: too few arguments: $#: $1])],
-  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
-  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
-  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
-    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
-    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
-     m4_if([$2], [],
-	   m4_quote(lt_decl_varnames),
-	m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
-			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'.  VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly.  In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
-    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-#    # Some comment about what VAR is for.
-#    visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
-					   [description])))[]dnl
-m4_pushdef([_libtool_name],
-    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
-    [0], [_libtool_name=[$]$1],
-    [1], [_libtool_name=$lt_[]$1],
-    [2], [_libtool_name=$lt_[]$1],
-    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
-    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'.  Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
-	dnl If the libtool generation code has been placed in $CONFIG_LT,
-	dnl instead of duplicating it all over again into config.status,
-	dnl then we will have config.status run $CONFIG_LT later, so it
-	dnl needs to know what name is stored there:
-        [AC_CONFIG_COMMANDS([libtool],
-            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
-    dnl If the libtool generation code is destined for config.status,
-    dnl expand the accumulated commands and init code now:
-    [AC_CONFIG_COMMANDS([libtool],
-        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable.  If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins.  After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script.  The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
-  echo
-  AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
-  -h, --help      print this help, then exit
-  -V, --version   print version number, then exit
-  -q, --quiet     do not print progress messages
-  -d, --debug     don't remove temporary files
-
-Report bugs to <bug-libtool at gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2011 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
-  case $[1] in
-    --version | --v* | -V )
-      echo "$lt_cl_version"; exit 0 ;;
-    --help | --h* | -h )
-      echo "$lt_cl_help"; exit 0 ;;
-    --debug | --d* | -d )
-      debug=: ;;
-    --quiet | --q* | --silent | --s* | -q )
-      lt_cl_silent=: ;;
-
-    -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
-    *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
-  esac
-  shift
-done
-
-if $lt_cl_silent; then
-  exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure.  Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test "$silent" = yes &&
-  lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars.  Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
-  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
-  m4_if(_LT_TAG, [C], [
-    # See if we are running on zsh, and set the options which allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
-      setopt NO_GLOB_SUBST
-    fi
-
-    cfgfile="${ofile}T"
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
-
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
-  esac
-
-  _LT_PROG_LTMAIN
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" \
-     || (rm -f "$cfgfile"; exit 1)
-
-  _LT_PROG_REPLACE_SHELLFNS
-
-   mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
-    RM='$RM'
-    ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
-  [C],			[_LT_LANG(C)],
-  [C++],		[_LT_LANG(CXX)],
-  [Go],			[_LT_LANG(GO)],
-  [Java],		[_LT_LANG(GCJ)],
-  [Fortran 77],		[_LT_LANG(F77)],
-  [Fortran],		[_LT_LANG(FC)],
-  [Windows Resource],	[_LT_LANG(RC)],
-  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
-    [_LT_LANG($1)],
-    [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
-  [LT_SUPPORTED_TAG([$1])dnl
-  m4_append([_LT_TAGS], [$1 ])dnl
-  m4_define([_LT_LANG_]$1[_enabled], [])dnl
-  _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-m4_ifndef([AC_PROG_GO], [
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-m4_defun([AC_PROG_GO],
-[AC_LANG_PUSH(Go)dnl
-AC_ARG_VAR([GOC],     [Go compiler command])dnl
-AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-_AC_ARG_VAR_LDFLAGS()dnl
-AC_CHECK_TOOL(GOC, gccgo)
-if test -z "$GOC"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
-  fi
-fi
-if test -z "$GOC"; then
-  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-fi
-])#m4_defun
-])#m4_ifndef
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
-  [LT_LANG(CXX)],
-  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
-  [LT_LANG(F77)],
-  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
-  [LT_LANG(FC)],
-  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-  [LT_LANG(GCJ)],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-    [LT_LANG(GCJ)],
-    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
-      [LT_LANG(GCJ)],
-      [m4_ifdef([AC_PROG_GCJ],
-	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([A][M_PROG_GCJ],
-	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([LT_PROG_GCJ],
-	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([AC_PROG_GO],
-  [LT_LANG(GO)],
-  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
-  [LT_LANG(RC)],
-  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
-  case $host_os in
-    rhapsody* | darwin*)
-    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
-    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
-    AC_CHECK_TOOL([LIPO], [lipo], [:])
-    AC_CHECK_TOOL([OTOOL], [otool], [:])
-    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
-    _LT_DECL([], [DSYMUTIL], [1],
-      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
-    _LT_DECL([], [NMEDIT], [1],
-      [Tool to change global to local symbols on Mac OS X])
-    _LT_DECL([], [LIPO], [1],
-      [Tool to manipulate fat objects and archives on Mac OS X])
-    _LT_DECL([], [OTOOL], [1],
-      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
-    _LT_DECL([], [OTOOL64], [1],
-      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
-    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
-      [lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	# If there is a non-empty error log, and "single_module"
-	# appears in it, assume the flag caused a linker warning
-        if test -s conftest.err && $GREP single_module conftest.err; then
-	  cat conftest.err >&AS_MESSAGE_LOG_FD
-	# Otherwise, if the output was created with a 0 exit code from
-	# the compiler, it worked.
-	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&AS_MESSAGE_LOG_FD
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi])
-
-    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
-      [lt_cv_ld_exported_symbols_list],
-      [lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-	[lt_cv_ld_exported_symbols_list=yes],
-	[lt_cv_ld_exported_symbols_list=no])
-	LDFLAGS="$save_LDFLAGS"
-    ])
-
-    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
-      [lt_cv_ld_force_load=no
-      cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
-      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
-      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
-      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
-      cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
-      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
-      _lt_result=$?
-      if test -s conftest.err && $GREP force_load conftest.err; then
-	cat conftest.err >&AS_MESSAGE_LOG_FD
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
-	lt_cv_ld_force_load=yes
-      else
-	cat conftest.err >&AS_MESSAGE_LOG_FD
-      fi
-        rm -f conftest.err libconftest.a conftest conftest.c
-        rm -rf conftest.dSYM
-    ])
-    case $host_os in
-    rhapsody* | darwin1.[[012]])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[[012]]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
-  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_automatic, $1)=yes
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
-                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
-  else
-    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
-  fi
-  _LT_TAGVAR(link_all_deplibs, $1)=yes
-  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=func_echo_all
-    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-    m4_if([$1], [CXX],
-[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
-    fi
-],[])
-  else
-  _LT_TAGVAR(ld_shlibs, $1)=no
-  fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-# ----------------------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# Store the results from the different compilers for each TAGNAME.
-# Allow to override them for all tags through lt_cv_aix_libpath.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
-  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
-  lt_aix_libpath_sed='[
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }]'
-  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi],[])
-  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
-  fi
-  ])
-  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
-   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='printf %s\n'
-else
-  # Use this function as a fallback that always works.
-  func_fallback_echo ()
-  {
-    eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
-  }
-  ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO "$*" 
-}
-
-case "$ECHO" in
-  printf*) AC_MSG_RESULT([printf]) ;;
-  print*) AC_MSG_RESULT([print -r]) ;;
-  *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
-  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
-    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-    PATH=/empty FPATH=/empty; export PATH FPATH
-    test "X`printf %s $ECHO`" = "X$ECHO" \
-      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_WITH_SYSROOT
-# ----------------
-AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
-AC_ARG_WITH([sysroot],
-[  --with-sysroot[=DIR] Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).],
-[], [with_sysroot=no])
-
-dnl lt_sysroot will always be passed unquoted.  We quote it here
-dnl in case the user passed a directory name.
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
-   if test "$GCC" = yes; then
-     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-   fi
-   ;; #(
- /*)
-   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-   ;; #(
- no|'')
-   ;; #(
- *)
-   AC_MSG_RESULT([${with_sysroot}])
-   AC_MSG_ERROR([The sysroot must be an absolute path.])
-   ;;
-esac
-
- AC_MSG_RESULT([${lt_sysroot:-no}])
-_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-  [AS_HELP_STRING([--disable-libtool-lock],
-    [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE="32"
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE="64"
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
-	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*)
-        case $host in
-        i?86-*-solaris*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        sparc*-*-solaris*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-        esac
-        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
-        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
-        fi
-        ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_PROG_AR
-# -----------
-m4_defun([_LT_PROG_AR],
-[AC_CHECK_TOOLS(AR, [ar], false)
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-
-AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
-  [lt_cv_ar_at_file=no
-   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
-     [echo conftest.$ac_objext > conftest.lst
-      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
-      AC_TRY_EVAL([lt_ar_try])
-      if test "$ac_status" -eq 0; then
-	# Ensure the archiver fails upon bogus file names.
-	rm -f conftest.$ac_objext libconftest.a
-	AC_TRY_EVAL([lt_ar_try])
-	if test "$ac_status" -ne 0; then
-          lt_cv_ar_at_file=@
-        fi
-      fi
-      rm -f conftest.* libconftest.a
-     ])
-  ])
-
-if test "x$lt_cv_ar_at_file" = xno; then
-  archiver_list_spec=
-else
-  archiver_list_spec=$lt_cv_ar_at_file
-fi
-_LT_DECL([], [archiver_list_spec], [1],
-  [How to feed a file listing to the archiver])
-])# _LT_PROG_AR
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[_LT_PROG_AR
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
-    [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
-  darwin*)
-    lock_old_archive_extraction=yes ;;
-  *)
-    lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
-    [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
-    [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       $2=yes
-     fi
-   fi
-   $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$5], , :, [$5])
-else
-    m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                  [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         $2=yes
-       fi
-     else
-       $2=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$4], , :, [$4])
-else
-    m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  mint*)
-    # On MiNT this can take a long time and run out of memory.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  os2*)
-    # The test takes a long time on OS/2.
-    lt_cv_sys_max_cmd_len=8192
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
-	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
-    [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-[#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else
-        {
-	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-          else puts (dlerror ());
-	}
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}]
-_LT_EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_dlunknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-    ;;
-
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-	  lt_cv_dlopen_self, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-	  lt_cv_dlopen_self_static, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
-	 [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
-	 [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
-	 [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w . 2>&AS_MESSAGE_LOG_FD
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
-	[Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
-         [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
-  [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
-   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
-   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
-   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
-    [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      AC_MSG_RESULT([yes])
-    else
-      AC_MSG_RESULT([no])
-    fi
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ;;
-  esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
-	[], [
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
-  case $lt_search_path_spec in
-  *\;*)
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
-    ;;
-  *)
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
-    ;;
-  esac
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
-  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
-  # AWK program above erroneously prepends '/' to C:/dos/paths
-  # for these hosts.
-  case $host_os in
-    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
-  esac
-  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[[4-9]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[[45]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$cc_basename in
-  yes,*)
-    # gcc
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-m4_if([$1], [],[
-      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    dynamic_linker='Win32 ld.exe'
-    ;;
-
-  *,cl*)
-    # Native MSVC
-    libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
-
-    case $build_os in
-    mingw*)
-      sys_lib_search_path_spec=
-      lt_save_ifs=$IFS
-      IFS=';'
-      for lt_path in $LIB
-      do
-        IFS=$lt_save_ifs
-        # Let DOS variable expansion print the short 8.3 style file name.
-        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-      done
-      IFS=$lt_save_ifs
-      # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
-      ;;
-    cygwin*)
-      # Convert to unix form, then to dos form, then back to unix form
-      # but this time dos style (no spaces!) so that the unix form looks
-      # like /cygdrive/c/PROGRA~1:/cygdr...
-      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      ;;
-    *)
-      sys_lib_search_path_spec="$LIB"
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      # FIXME: find the short name or the path components, as spaces are
-      # common. (e.g. "Program Files" -> "PROGRA~1")
-      ;;
-    esac
-
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-    dynamic_linker='Win32 link.exe'
-    ;;
-
-  *)
-    # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    dynamic_linker='Win32 ld.exe'
-    ;;
-  esac
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[[23]].*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2.*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
-  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-haiku*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-  postinstall_cmds='chmod 555 $lib'
-  # or fails outright, so override atomically:
-  install_override_mode=555
-  ;;
-
-interix[[3-9]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux # correct to gnu/linux during the next big refactor
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-
-  # Some binutils ld are patched to set DT_RUNPATH
-  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
-    [lt_cv_shlibpath_overrides_runpath=no
-    save_LDFLAGS=$LDFLAGS
-    save_libdir=$libdir
-    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-	 [lt_cv_shlibpath_overrides_runpath=yes])])
-    LDFLAGS=$save_LDFLAGS
-    libdir=$save_libdir
-    ])
-  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
-    [Variables whose values should be saved in libtool wrapper scripts and
-    restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
-    [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
-    [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
-    [[List of archive names.  First name is the real one, the rest are links.
-    The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
-    [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
-    [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
-    [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
-    [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
-    [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
-    [[As "finish_cmds", except a single script fragment to be evaled but
-    not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
-    [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
-    [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
-    [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="m4_if([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
-	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
-    [AS_HELP_STRING([--with-gnu-ld],
-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
-      reload_cmds=false
-    fi
-    ;;
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[[45]]*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    # Keep this pattern in sync with the one in func_win32_libid.
-    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-cegcc*)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-haiku*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[[3-9]]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd* | netbsdelf*-gnu)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
-  case $host_os in
-  mingw* | pw32*)
-    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-      want_nocaseglob=yes
-    else
-      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
-    fi
-    ;;
-  esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
-    [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method = "file_magic"])
-_LT_DECL([], [file_magic_glob], [1],
-    [How to find potential files when deplibs_check_method = "file_magic"])
-_LT_DECL([], [want_nocaseglob], [1],
-    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$DUMPBIN"; then :
-    # Let the user override the test.
-  else
-    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
-    *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
-      ;;
-    *)
-      DUMPBIN=:
-      ;;
-    esac
-  fi
-  AC_SUBST([DUMPBIN])
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
-  [lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
-  cat conftest.out >&AS_MESSAGE_LOG_FD
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-# --------------------------------
-# how to determine the name of the shared library
-# associated with a specific link library.
-#  -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-m4_require([_LT_DECL_DLLTOOL])
-AC_CACHE_CHECK([how to associate runtime and link libraries],
-lt_cv_sharedlib_from_linklib_cmd,
-[lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
-  case `$DLLTOOL --help 2>&1` in
-  *--identify-strict*)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-    ;;
-  *)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
-    ;;
-  esac
-  ;;
-*)
-  # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
-  ;;
-esac
-])
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
-    [Command to associate shared and link libraries])
-])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-
-
-# _LT_PATH_MANIFEST_TOOL
-# ----------------------
-# locate the manifest tool
-m4_defun([_LT_PATH_MANIFEST_TOOL],
-[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
-  [lt_cv_path_mainfest_tool=no
-  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
-  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-    lt_cv_path_mainfest_tool=yes
-  fi
-  rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
-  MANIFEST_TOOL=:
-fi
-_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-])# _LT_PATH_MANIFEST_TOOL
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  case $cc_basename in
-  nvcc*)
-    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
-  *)
-    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
-  esac
-
-  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
-	[Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris*)
-  symcode='[[BDRT]]'
-  ;;
-sco3.2v5*)
-  symcode='[[DT]]'
-  ;;
-sysv4.2uw2*)
-  symcode='[[DT]]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[[ABDT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK ['"\
-"     {last_section=section; section=\$ 3};"\
-"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx]"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
-   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-# define LT@&t at _DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data.  */
-# define LT@&t at _DLSYM_CONST
-#else
-# define LT@&t at _DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
-	  cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols.  */
-LT@&t at _DLSYM_CONST struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_globsym_save_LIBS=$LIBS
-	  lt_globsym_save_CFLAGS=$CFLAGS
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS=$lt_globsym_save_LIBS
-	  CFLAGS=$lt_globsym_save_CFLAGS
-	else
-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-  nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
-  nm_file_list_spec='@'
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
-    [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
-    [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
-    [lt_cv_sys_global_symbol_to_c_name_address], [1],
-    [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
-    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
-    [Transform the output of nm in a C name address pair when lib prefix is needed])
-_LT_DECL([], [nm_file_list_spec], [1],
-    [Specify filename containing input files for $NM])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-m4_if([$1], [CXX], [
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-      ;;
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[[4-9]]*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	else
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      mingw* | cygwin* | os2* | pw32* | cegcc*)
-	# This hack is so that the source file can tell whether it is being
-	# built for inclusion in a dll (and should export symbols for example).
-	m4_if([$1], [GCJ], [],
-	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
-	    # IBM XL 8.0, 9.0 on PPC and BlueGene
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd* | netbsdelf*-gnu)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-	;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-      ;;
-
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-
-    case $cc_basename in
-    nvcc*) # Cuda Compiler Driver 2.2
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
-      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
-      fi
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
-      ecc*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
-	;;
-      nagfor*)
-	# NAG Fortran compiler
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	;;
-      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-        ;;
-      ccc*)
-        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      xl* | bgxl* | bgf* | mpixl*)
-	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
-	  ;;
-	*Sun\ F* | *Sun*Fortran*)
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	  ;;
-	*Sun\ C*)
-	  # Sun C 5.9
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  ;;
-        *Intel*\ [[CF]]*Compiler*)
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	  ;;
-	*Portland\ Group*)
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  ;;
-	esac
-	;;
-      esac
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    rdos*)
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    unicos*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-
-AC_CACHE_CHECK([for $compiler option to produce PIC],
-  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
-  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
-    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
-    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
-	[Additional compiler flags for building library objects])
-
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-	[How to pass a linker flag through the compiler])
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
-  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
-  $lt_tmp_static_flag,
-  [],
-  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
-	[Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  case $host_os in
-  aix[[4-9]]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-    ;;
-  cygwin* | mingw* | cegcc*)
-    case $cc_basename in
-    cl*)
-      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-      ;;
-    *)
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-      ;;
-    esac
-    ;;
-  linux* | k*bsd*-gnu | gnu*)
-    _LT_TAGVAR(link_all_deplibs, $1)=no
-    ;;
-  *)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-    ;;
-  esac
-], [
-  runpath_var=
-  _LT_TAGVAR(allow_undefined_flag, $1)=
-  _LT_TAGVAR(always_export_symbols, $1)=no
-  _LT_TAGVAR(archive_cmds, $1)=
-  _LT_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_TAGVAR(compiler_needs_object, $1)=no
-  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  _LT_TAGVAR(hardcode_automatic, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
-  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(inherit_rpath, $1)=no
-  _LT_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_TAGVAR(module_cmds, $1)=
-  _LT_TAGVAR(module_expsym_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  linux* | k*bsd*-gnu | gnu*)
-    _LT_TAGVAR(link_all_deplibs, $1)=no
-    ;;
-  esac
-
-  _LT_TAGVAR(ld_shlibs, $1)=yes
-
-  # On some targets, GNU ld is compatible enough with the native linker
-  # that we're better off using the native interface for both.
-  lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
-    case $host_os in
-      aix*)
-	# The AIX port of GNU ld has always aspired to compatibility
-	# with the native linker.  However, as the warning in the GNU ld
-	# block says, versions before 2.19.5* couldn't really create working
-	# shared libraries, regardless of the interface used.
-	case `$LD -v 2>&1` in
-	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
-	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
-	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
-	  *)
-	    lt_use_gnu_ld_interface=yes
-	    ;;
-	esac
-	;;
-      *)
-	lt_use_gnu_ld_interface=yes
-	;;
-    esac
-  fi
-
-  if test "$lt_use_gnu_ld_interface" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[[3-9]]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=no
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    haiku*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    interix[[3-9]]*)
-      _LT_TAGVAR(hardcode_direct, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
-      then
-	tmp_addflag=' $pic_flag'
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95* | pgfortran*)
-					# Portland Group f77 and f90 compilers
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-	  tmp_sharedflag='--shared' ;;
-	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	nvcc*)	# Cuda Compiler Driver 2.2
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-	  ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-        if test "x$supports_anon_versioning" = xyes; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-        fi
-
-	case $cc_basename in
-	xlf* | bgf* | bgxlf* | mpixlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        _LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
-      runpath_var=
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	_LT_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix[[4-9]]*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	# Also, AIX nm treats weak defined symbols like other global
-	# defined symbols, whereas GNU nm marks them as "W".
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	else
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  ;;
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      _LT_TAGVAR(archive_cmds, $1)=''
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[[012]]|aix4.[[012]].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
-	fi
-	_LT_TAGVAR(link_all_deplibs, $1)=no
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-	  fi
-	fi
-      fi
-
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        _LT_SYS_MODULE_PATH_AIX([$1])
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-	if test "$host_cpu" = ia64; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 _LT_SYS_MODULE_PATH_AIX([$1])
-	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  if test "$with_gnu_ld" = yes; then
-	    # We only use this code for GNU lds that support --whole-archive.
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	  else
-	    # Exported symbols can be pulled into shared objects from archives
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	  fi
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    bsdi[[45]]*)
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      case $cc_basename in
-      cl*)
-	# Native MSVC
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	_LT_TAGVAR(always_export_symbols, $1)=yes
-	_LT_TAGVAR(file_list_spec, $1)='@'
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	  else
-	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	  fi~
-	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	  linknames='
-	# The linker will not automatically build a static lib if we build a DLL.
-	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-	# Don't use ranlib
-	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-	  case $lt_outputfile in
-	    *.exe|*.EXE) ;;
-	    *)
-	      lt_outputfile="$lt_outputfile.exe"
-	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-	      ;;
-	  esac~
-	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	    $RM "$lt_outputfile.manifest";
-	  fi'
-	;;
-      *)
-	# Assume MSVC wrapper
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-	# The linker will automatically build a .lib file if we build a DLL.
-	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	# FIXME: Should let the user specify the lib program.
-	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	;;
-      esac
-      ;;
-
-    darwin* | rhapsody*)
-      _LT_DARWIN_LINKER_FEATURES($1)
-      ;;
-
-    dgux*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2.*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	_LT_TAGVAR(hardcode_minus_L, $1)=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	m4_if($1, [], [
-	  # Older versions of the 11.00 compiler do not understand -b yet
-	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-	  _LT_LINKER_OPTION([if $CC understands -b],
-	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
-	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
-	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
-	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	*)
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-	# This should be the same for all languages, so no per-tag cache variable.
-	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
-	  [lt_cv_irix_exported_symbol],
-	  [save_LDFLAGS="$LDFLAGS"
-	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-	   AC_LINK_IFELSE(
-	     [AC_LANG_SOURCE(
-	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
-			      [C++], [[int foo (void) { return 0; }]],
-			      [Fortran 77], [[
-      subroutine foo
-      end]],
-			      [Fortran], [[
-      subroutine foo
-      end]])])],
-	      [lt_cv_irix_exported_symbol=yes],
-	      [lt_cv_irix_exported_symbol=no])
-           LDFLAGS="$save_LDFLAGS"])
-	if test "$lt_cv_irix_exported_symbol" = yes; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-	fi
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(inherit_rpath, $1)=yes
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *nto* | *qnx*)
-      ;;
-
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	else
-	  case $host_os in
-	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	     ;;
-	   *)
-	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	     ;;
-	  esac
-	fi
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    os2*)
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='${wl}'
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	else
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-        ;;
-	motorola)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	_LT_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-
-    if test x$host_vendor = xsni; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
-    [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
-	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
-	[$RM conftest*
-	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-	  soname=conftest
-	  lib=conftest
-	  libobjs=conftest.$ac_objext
-	  deplibs=
-	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-	  compiler_flags=-v
-	  linker_flags=-v
-	  verstring=
-	  output_objdir=.
-	  libname=conftest
-	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-	  _LT_TAGVAR(allow_undefined_flag, $1)=
-	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-	  then
-	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	  else
-	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  fi
-	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-	else
-	  cat conftest.err 1>&5
-	fi
-	$RM conftest*
-	])
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
-    [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
-    [enable_shared_with_static_runtimes], [0],
-    [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
-    [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
-    [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
-    [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
-    [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
-    [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
-    [Commands used to build a loadable module if different from building
-    a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
-    [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
-    [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
-    [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
-    [Flag to hardcode $libdir into a binary during linking.
-    This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
-    [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-    DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-    DIR into the resulting binary and the resulting library dependency is
-    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
-    library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
-    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
-    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
-    [Set to "yes" if building a shared library automatically hardcodes DIR
-    into the library and all subsequent libraries and executables linked
-    against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
-    [Set to yes if linker adds runtime paths of dependent libraries
-    to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
-    [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [always_export_symbols], [0],
-    [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
-    [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
-    [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
-    [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
-    [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [postlink_cmds], [2],
-    [Commands necessary for finishing linking programs])
-_LT_TAGDECL([], [file_list_spec], [1],
-    [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl    [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_SYS_DYNAMIC_LINKER($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-  LT_SYS_DLOPEN_SELF
-  _LT_CMD_STRIPLIB
-
-  # Report which library types will actually be built
-  AC_MSG_CHECKING([if libtool supports shared libraries])
-  AC_MSG_RESULT([$can_build_shared])
-
-  AC_MSG_CHECKING([whether to build shared libraries])
-  test "$can_build_shared" = "no" && enable_shared=no
-
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[[4-9]]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    fi
-    ;;
-  esac
-  AC_MSG_RESULT([$enable_shared])
-
-  AC_MSG_CHECKING([whether to build static libraries])
-  # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
-  AC_MSG_RESULT([$enable_static])
-
-  _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  AC_PROG_CXXCPP
-else
-  _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_CFLAGS=$CFLAGS
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  CFLAGS=$CXXFLAGS
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-    else
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-    fi
-
-    if test "$GXX" = yes; then
-      # Set up default GNU C++ configuration
-
-      LT_PATH_LD
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-        else
-          _LT_TAGVAR(whole_archive_flag_spec, $1)=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-    _LT_TAGVAR(ld_shlibs, $1)=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-      aix[[4-9]]*)
-        if test "$host_cpu" = ia64; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=""
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
-          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        _LT_TAGVAR(archive_cmds, $1)=''
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-        _LT_TAGVAR(link_all_deplibs, $1)=yes
-        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
-        if test "$GXX" = yes; then
-          case $host_os in aix4.[[012]]|aix4.[[012]].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
-	  fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
-	    else
-	      shared_flag='${wl}-bM:SRE'
-	    fi
-          fi
-        fi
-
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        _LT_TAGVAR(always_export_symbols, $1)=yes
-        if test "$aix_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          _LT_SYS_MODULE_PATH_AIX([$1])
-          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    _LT_SYS_MODULE_PATH_AIX([$1])
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	    if test "$with_gnu_ld" = yes; then
-	      # We only use this code for GNU lds that support --whole-archive.
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    else
-	      # Exported symbols can be pulled into shared objects from archives
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	    fi
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-	case $GXX,$cc_basename in
-	,cl* | no,cl*)
-	  # Native MSVC
-	  # hardcode_libdir_flag_spec is actually meaningless, as there is
-	  # no search path for DLLs.
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  _LT_TAGVAR(always_export_symbols, $1)=yes
-	  _LT_TAGVAR(file_list_spec, $1)='@'
-	  # Tell ltmain to make .lib files, not .a files.
-	  libext=lib
-	  # Tell ltmain to make .dll files, not .so files.
-	  shrext_cmds=".dll"
-	  # FIXME: Setting linknames here is a bad hack.
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	    else
-	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	    fi~
-	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	    linknames='
-	  # The linker will not automatically build a static lib if we build a DLL.
-	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	  # Don't use ranlib
-	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-	    lt_tool_outputfile="@TOOL_OUTPUT@"~
-	    case $lt_outputfile in
-	      *.exe|*.EXE) ;;
-	      *)
-		lt_outputfile="$lt_outputfile.exe"
-		lt_tool_outputfile="$lt_tool_outputfile.exe"
-		;;
-	    esac~
-	    func_to_tool_file "$lt_outputfile"~
-	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	      $RM "$lt_outputfile.manifest";
-	    fi'
-	  ;;
-	*)
-	  # g++
-	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-	  # as there is no search path for DLLs.
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  _LT_TAGVAR(always_export_symbols, $1)=no
-	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	    # If the export-symbols file already is a .def file (1st line
-	    # is EXPORTS), use it as is; otherwise, prepend...
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      cp $export_symbols $output_objdir/$soname.def;
-	    else
-	      echo EXPORTS > $output_objdir/$soname.def;
-	      cat $export_symbols >> $output_objdir/$soname.def;
-	    fi~
-	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	  else
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	  ;;
-	esac
-	;;
-      darwin* | rhapsody*)
-        _LT_DARWIN_LINKER_FEATURES($1)
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      freebsd2.*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      freebsd-elf*)
-        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      haiku*)
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(link_all_deplibs, $1)=yes
-        ;;
-
-      hpux9*)
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            _LT_TAGVAR(ld_shlibs, $1)=no
-            ;;
-          aCC*)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-            ;;
-          *)
-            if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              _LT_TAGVAR(ld_shlibs, $1)=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            _LT_TAGVAR(hardcode_direct, $1)=no
-            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-            ;;
-          *)
-            _LT_TAGVAR(hardcode_direct, $1)=yes
-            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
-	        case $host_cpu in
-	          hppa*64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[[3-9]]*)
-	_LT_TAGVAR(hardcode_direct, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	      else
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
-	      fi
-	    fi
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-	    ;;
-        esac
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(inherit_rpath, $1)=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
-	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
-	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-		$RANLIB $oldlib'
-	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 and above use weak symbols
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
-	    ;;
-	  xl* | mpixl* | bgxl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	      _LT_TAGVAR(compiler_needs_object, $1)=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='func_echo_all'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-	;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      openbsd*)
-	if test -f /usr/libexec/ld.so; then
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=func_echo_all
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-		;;
-	      *)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-		;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	      case $host in
-	        osf3*)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	        *)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
-	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	    case $host_os in
-	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-
-	    output_verbose_link_cmd='func_echo_all'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	        # platform.
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      fi
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-	      case $host_os in
-		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-		*)
-		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-	_LT_TAGVAR(link_all_deplibs, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
-	      '"$_LT_TAGVAR(old_archive_cmds, $1)"
-	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
-	      '"$_LT_TAGVAR(reload_cmds, $1)"
-	    ;;
-	  *)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-    esac
-
-    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-    _LT_TAGVAR(GCC, $1)="$GXX"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_FUNC_STRIPNAME_CNF
-# ----------------------
-# func_stripname_cnf prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-#
-# This function is identical to the (non-XSI) version of func_stripname,
-# except this one can be used by m4 code that may be executed by configure,
-# rather than the libtool script.
-m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-AC_REQUIRE([_LT_DECL_SED])
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-func_stripname_cnf ()
-{
-  case ${2} in
-  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-  esac
-} # func_stripname_cnf
-])# _LT_FUNC_STRIPNAME_CNF
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-_LT_EOF
-], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-package foo
-func foo() {
-}
-_LT_EOF
-])
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case ${prev}${p} in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-	 prev=$p
-	 continue
-       fi
-
-       # Expand the sysroot to ease extracting the directories later.
-       if test -z "$prev"; then
-         case $p in
-         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
-         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
-         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
-         esac
-       fi
-       case $p in
-       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
-       esac
-       if test "$pre_test_object_deps_done" = no; then
-	 case ${prev} in
-	 -L | -R)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-	   else
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
-	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
-	 else
-	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
-	 fi
-       fi
-       prev=
-       ;;
-
-    *.lto.$objext) ;; # Ignore GCC LTO objects
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
-	   _LT_TAGVAR(predep_objects, $1)="$p"
-	 else
-	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
-	 fi
-       else
-	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
-	   _LT_TAGVAR(postdep_objects, $1)="$p"
-	 else
-	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  _LT_TAGVAR(predep_objects,$1)=
-  _LT_TAGVAR(postdep_objects,$1)=
-  _LT_TAGVAR(postdeps,$1)=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC* | sunCC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
-    [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
-    [Dependencies to place before and after the objects being linked to
-    create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
-    [The library search path used internally by the compiler when linking
-    a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
-  _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
-  lt_save_GCC=$GCC
-  lt_save_CFLAGS=$CFLAGS
-  CC=${F77-"f77"}
-  CFLAGS=$FFLAGS
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-  GCC=$G77
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test "$enable_shared" = yes && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)="$G77"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC="$lt_save_CC"
-  CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test "X$FC" = "Xno"; then
-  _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
-  lt_save_GCC=$GCC
-  lt_save_CFLAGS=$CFLAGS
-  CC=${FC-"f95"}
-  CFLAGS=$FCFLAGS
-  compiler=$CC
-  GCC=$ac_cv_fc_compiler_gnu
-
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test "$enable_shared" = yes && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-CFLAGS=$GCJFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-
-  _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_GO_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Go compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GO_CONFIG],
-[AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
-
-# Source file extension for Go test sources.
-ac_ext=go
-
-# Object file extension for compiled Go test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="package main; func main() { }"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='package main; func main() { }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GOC-"gccgo"}
-CFLAGS=$GOFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# Go did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-
-  _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GO_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-CFLAGS=
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
-  :
-  _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
-  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
-    [AC_CHECK_TOOL(GCJ, gcj,)
-      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-      AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_GO
-# ----------
-AC_DEFUN([LT_PROG_GO],
-[AC_CHECK_TOOL(GOC, gccgo,)
-])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-# _LT_DECL_DLLTOOL
-# ----------------
-# Ensure DLLTOOL variable is set.
-m4_defun([_LT_DECL_DLLTOOL],
-[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-AC_SUBST([DLLTOOL])
-])
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
-    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && continue
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
-  ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([	 ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
-    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-    # positional parameters, so assign one to ordinary parameter first.
-    func_stripname_result=${3}
-    func_stripname_result=${func_stripname_result#"${1}"}
-    func_stripname_result=${func_stripname_result%"${2}"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
-    func_split_long_opt_name=${1%%=*}
-    func_split_long_opt_arg=${1#*=}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
-    func_split_short_opt_arg=${1#??}
-    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
-    case ${1} in
-      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-      *)    func_lo2o_result=${1} ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
-
-  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
-
-  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
-    func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
-    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
-# _LT_PATH_CONVERSION_FUNCTIONS
-# -----------------------------
-# Determine which file name conversion functions should be used by
-# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
-# for certain cross-compile configurations and native mingw.
-m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_MSG_CHECKING([how to convert $build file names to $host format])
-AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-[case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-        ;;
-    esac
-    ;;
-  *-*-cygwin* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_noop
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-        ;;
-    esac
-    ;;
-  * ) # unhandled hosts (and "normal" native builds)
-    lt_cv_to_host_file_cmd=func_convert_file_noop
-    ;;
-esac
-])
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
-         [0], [convert $build file names to $host format])dnl
-
-AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-[#assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-        ;;
-    esac
-    ;;
-esac
-])
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
-         [0], [convert $build files to toolchain format])dnl
-])# _LT_PATH_CONVERSION_FUNCTIONS
-
-# Helper functions for option handling.                    -*- Autoconf -*-
-#
-#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-#   Inc.
-#   Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 7 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
-        _LT_MANGLE_DEFUN([$1], [$2]),
-    [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
-		      [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME.  If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-    [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
-  dnl
-  dnl Simply set some default values (i.e off) if boolean options were not
-  dnl specified:
-  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
-  ])
-  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
-  ])
-  dnl
-  dnl If no reference was made to various pairs of opposing options, then
-  dnl we run the default mode handler for the pair.  For example, if neither
-  dnl `shared' nor `disable-shared' was passed, we enable building of shared
-  dnl archives by default:
-  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
-  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
-  		   [_LT_ENABLE_FAST_INSTALL])
-  ])
-])# _LT_SET_OPTIONS
-
-
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS],      [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
-    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
-    _LT_DECL([build_libtool_libs], [enable_shared], [0],
-	[Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
-    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
-    _LT_DECL([build_old_libs], [enable_static], [0],
-	[Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
-    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
-	 [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
-	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [lt_p=${PACKAGE-default}
-    case $withval in
-    yes|no) pic_mode=$withval ;;
-    *)
-      pic_mode=default
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for lt_pkg in $withval; do
-	IFS="$lt_save_ifs"
-	if test "X$lt_pkg" = "X$lt_p"; then
-	  pic_mode=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
-		 [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
-		 [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
-		 [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
-		 [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
-		 [m4_define([_LTDL_TYPE], [convenience])])
-
-# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
-       [$#], [2], [[$2]],
-       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
-       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
-       [$#], 1, [],
-       [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
-	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
-       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
-	     [m4_foreach([_Lt_suffix],
-		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
-	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
-	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
-		 [lt_append([$1], [$2], [$3])$4],
-		 [$5])],
-	  [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
-	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
-    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
-	[$5],
-    [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
-  [lt_join(m4_quote(m4_default([$4], [[, ]])),
-           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
-		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
-
-# ltversion.m4 -- version numbers			-*- Autoconf -*-
-#
-#   Copyright (C) 2004 Free Software Foundation, Inc.
-#   Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# @configure_input@
-
-# serial 3337 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
-
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
-#
-#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-#   Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else.  This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
-
diff --git a/apache/CMakeLists.txt b/apache/CMakeLists.txt
new file mode 100644
index 0000000..83cd179
--- /dev/null
+++ b/apache/CMakeLists.txt
@@ -0,0 +1,45 @@
+add_library(mod_mapserver MODULE mod_mapserver.c)
+target_link_libraries(mod_mapserver ${MAPSERVER_LIBMAPSERVER})
+set_target_properties(mod_mapserver PROPERTIES PREFIX "")
+
+IF(APPLE)
+  if(HTTPD_EXECUTABLE)
+    if(XCODE)
+       SET(CMAKE_C_LINK_FLAGS 
+          "${CMAKE_C_LINK_FLAGS} -bundle_loader ${HTTPD_EXECUTABLE}")
+    else(XCODE)
+       SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS 
+          "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -bundle_loader ${HTTPD_EXECUTABLE}")
+    endif(XCODE)
+  else(HTTPD_EXECUTABLE)
+    if(XCODE)
+       SET(CMAKE_C_LINK_FLAGS 
+          "${CMAKE_C_LINK_FLAGS} -undefined dynamic_lookup")
+    else(XCODE)
+       SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS 
+          "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -Wl,-undefined,dynamic_lookup")
+    endif(XCODE)
+  endif(HTTPD_EXECUTABLE)
+ENDIF(APPLE)
+
+find_package(APACHE)
+if(APACHE_FOUND)
+   include_directories(${APACHE_INCLUDE_DIR})
+else(APACHE_FOUND)
+   report_mandatory_not_found(APACHE)
+endif(APACHE_FOUND)
+
+find_package(APR)
+if(APR_FOUND)
+   include_directories(${APR_INCLUDE_DIR})
+   target_link_libraries(mod_mapserver ${APR_LIBRARY})
+   if(DEFINED APR_CPPFLAGS)
+     add_definitions("${APR_CPPFLAGS}")
+   endif(DEFINED APR_CPPFLAGS)
+else(APR_FOUND)
+   report_mandatory_not_found(APR)
+endif(APR_FOUND)
+
+if(APACHE_MODULE_DIR)
+  INSTALL(TARGETS mod_mapserver DESTINATION ${APACHE_MODULE_DIR})
+endif(APACHE_MODULE_DIR)
diff --git a/mod_mapserver.c b/apache/mod_mapserver.c
similarity index 99%
rename from mod_mapserver.c
rename to apache/mod_mapserver.c
index 3bfa212..7949ddf 100644
--- a/mod_mapserver.c
+++ b/apache/mod_mapserver.c
@@ -12,9 +12,9 @@
 #include "apr_tables.h"
 #include "apr_file_info.h"
 
-#include "mapserver.h"  /* for mapObj */
-#include "cgiutil.h"
-#include "mapserv.h"
+#include "../mapserver.h"  /* for mapObj */
+#include "../cgiutil.h"
+#include "../mapserv.h"
 
 module AP_MODULE_DECLARE_DATA mapserver_module;
 
diff --git a/cgiutil.c b/cgiutil.c
index fc187ce..e2a9c63 100644
--- a/cgiutil.c
+++ b/cgiutil.c
@@ -64,7 +64,7 @@ int readPostBody( cgiRequestObj *request, char **data )
     if( *data == NULL ) {
       msIO_setHeader("Content-Type","text/html");
       msIO_sendHeaders();
-      msIO_printf("malloc() failed, Content-Length: %u unreasonably large?\n", data_max );
+      msIO_printf("malloc() failed, Content-Length: %u unreasonably large?\n", (unsigned int)data_max );
       return MS_FAILURE;
     }
 
@@ -104,7 +104,7 @@ int readPostBody( cgiRequestObj *request, char **data )
     }
   }
 
-  *data[data_len] = '\0';
+  (*data)[data_len] = '\0';
   return MS_SUCCESS;
 }
 
diff --git a/cmake/FindAPACHE.cmake b/cmake/FindAPACHE.cmake
new file mode 100644
index 0000000..2ec4f15
--- /dev/null
+++ b/cmake/FindAPACHE.cmake
@@ -0,0 +1,36 @@
+#
+#  APACHE_FOUND - System has APACHE
+#  APACHE_INCLUDE_DIR - The APACHE include directory
+#
+#  APACHE_LOCATION
+#   setting this enables search for apache libraries / headers in this location
+
+#
+# Include directories
+#
+find_path(APACHE_INCLUDE_DIR
+          NAMES httpd.h 
+          PATH_SUFFIXES httpd apache apache2
+)
+
+find_program(APXS_BIN NAMES apxs apxs2
+          PATH_SUFFIXES httpd apache apache2
+)
+
+find_program(HTTPD_EXECUTABLE NAMES httpd
+          PATHS
+            /usr/sbin
+          PATH_SUFFIXES httpd apache apache2
+)
+
+if(APXS_BIN)
+   EXEC_PROGRAM(${APXS_BIN}
+      ARGS -q LIBEXECDIR
+      OUTPUT_VARIABLE APACHE_MODULE_DIR )
+endif(APXS_BIN)
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set APACHE_FOUND to TRUE if 
+# all listed variables are TRUE
+find_package_handle_standard_args(APACHE DEFAULT_MSG APACHE_INCLUDE_DIR )
+mark_as_advanced(APACHE_INCLUDE_DIR)
diff --git a/cmake/FindAPR.cmake b/cmake/FindAPR.cmake
new file mode 100644
index 0000000..1ebbead
--- /dev/null
+++ b/cmake/FindAPR.cmake
@@ -0,0 +1,78 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+# 
+#   http://www.apache.org/licenses/LICENSE-2.0
+# 
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# - Find Apache Portable Runtime
+# Find the APR includes and libraries
+# This module defines
+#  APR_INCLUDE_DIR and APRUTIL_INCLUDE_DIR, where to find apr.h, etc.
+#  APR_LIBRARIES and APRUTIL_LIBRARIES, the libraries needed to use APR.
+#  APR_FOUND and APRUTIL_FOUND, If false, do not try to use APR.
+# also defined, but not for general use are
+#  APR_LIBRARY and APRUTIL_LIBRARY, where to find the APR library.
+
+# APR first.
+
+FIND_PROGRAM(APR_CONFIG_BIN
+   NAMES apr-config apr-1-config )
+
+if(APR_CONFIG_BIN)
+   execute_process(
+      COMMAND ${APR_CONFIG_BIN} --includedir
+      OUTPUT_VARIABLE HINT_APR_INCLUDE_DIR
+      OUTPUT_STRIP_TRAILING_WHITESPACE
+   )
+   execute_process(
+      COMMAND ${APR_CONFIG_BIN} --cppflags
+      OUTPUT_VARIABLE APR_CPPFLAGS
+      OUTPUT_STRIP_TRAILING_WHITESPACE
+   )
+endif(APR_CONFIG_BIN)
+
+FIND_PATH(APR_INCLUDE_DIR
+   NAMES apr.h
+   HINTS ${HINT_APR_INCLUDE_DIR}
+   PATH_SUFFIXES apr-1 apr-1.0 apr 
+)
+
+FIND_LIBRARY(APR_LIBRARY
+  NAMES apr-1 apr
+  PATH_SUFFIXES apr-1 apr-1.0 apr
+)
+
+set(APR_INCLUDE_DIRS ${APR_INCLUDE_DIR})
+set(APR_LIBRARIES ${APR_LIBRARY})
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(APR DEFAULT_MSG APR_LIBRARY APR_INCLUDE_DIR)
+mark_as_advanced(APR_LIBRARY APR_INCLUDE_DIR)
+
+# Next, APRUTIL.
+
+FIND_PATH(APU_INCLUDE_DIR
+   NAMES apu.h
+   PATH_SUFFIXES apr-1 apr-1.0 apr 
+)
+
+FIND_LIBRARY(APU_LIBRARY
+  NAMES aprutil-1 aprutil
+  PATH_SUFFIXES apr-1 apr-1.0 apr
+)
+
+
+set(APU_INCLUDE_DIRS ${APU_INCLUDE_DIR})
+set(APU_LIBRARIES ${APU_LIBRARY})
+find_package_handle_standard_args(APU DEFAULT_MSG APU_LIBRARY APU_INCLUDE_DIR)
+mark_as_advanced(APU_LIBRARY APU_INCLUDE_DIR)
diff --git a/cmake/FindCairo.cmake b/cmake/FindCairo.cmake
new file mode 100644
index 0000000..8b10754
--- /dev/null
+++ b/cmake/FindCairo.cmake
@@ -0,0 +1,77 @@
+# - Try to find Cairo
+# Once done, this will define
+#
+#  CAIRO_FOUND - system has Cairo
+#  CAIRO_INCLUDE_DIR - the Cairo include directories
+#  CAIRO_LIBRARY - link these to use Cairo
+#
+# Copyright (C) 2012 Raphael Kubo da Costa <rakuco at webkit.org>
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+# 1.  Redistributions of source code must retain the above copyright
+#     notice, this list of conditions and the following disclaimer.
+# 2.  Redistributions in binary form must reproduce the above copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDER AND ITS CONTRIBUTORS ``AS
+# IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+# THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ITS
+# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+# EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+FIND_PACKAGE(PkgConfig)
+PKG_CHECK_MODULES(PC_CAIRO cairo) # FIXME: After we require CMake 2.8.2 we can pass QUIET to this call.
+
+FIND_PATH(CAIRO_INCLUDE_DIR
+    NAMES cairo.h
+    HINTS ${PC_CAIRO_INCLUDEDIR}
+          ${PC_CAIRO_INCLUDE_DIRS}
+    PATH_SUFFIXES cairo
+)
+
+IF(APPLE)
+   #On Mountain Lion we need this for the XQuartz supplied version of cairo
+    PKG_CHECK_MODULES(PC_FONTCONFIG fontconfig) # FIXME: After we require CMake 2.8.2 we can pass QUIET to this call.
+    FIND_PATH(FC_INCLUDE_DIR
+       NAMES fontconfig/fontconfig.h
+       HINTS ${PC_FONTCONFIG_INCLUDEDIR}
+    )
+ENDIF(APPLE)
+
+FIND_LIBRARY(CAIRO_LIBRARY
+    NAMES cairo
+    HINTS ${PC_CAIRO_LIBDIR}
+          ${PC_CAIRO_LIBRARY_DIRS}
+)
+
+IF (CAIRO_INCLUDE_DIR)
+    IF (EXISTS "${CAIRO_INCLUDE_DIR}/cairo-version.h")
+        FILE(READ "${CAIRO_INCLUDE_DIR}/cairo-version.h" CAIRO_VERSION_CONTENT)
+
+        STRING(REGEX MATCH "#define +CAIRO_VERSION_MAJOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}")
+        SET(CAIRO_VERSION_MAJOR "${CMAKE_MATCH_1}")
+
+        STRING(REGEX MATCH "#define +CAIRO_VERSION_MINOR +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}")
+        SET(CAIRO_VERSION_MINOR "${CMAKE_MATCH_1}")
+
+        STRING(REGEX MATCH "#define +CAIRO_VERSION_MICRO +([0-9]+)" _dummy "${CAIRO_VERSION_CONTENT}")
+        SET(CAIRO_VERSION_MICRO "${CMAKE_MATCH_1}")
+
+        SET(CAIRO_VERSION "${CAIRO_VERSION_MAJOR}.${CAIRO_VERSION_MINOR}.${CAIRO_VERSION_MICRO}")
+    ENDIF ()
+ENDIF ()
+
+set(CAIRO_INCLUDE_DIRS ${CAIRO_INCLUDE_DIR} ${FC_INCLUDE_DIR})
+set(CAIRO_LIBRARIES ${CAIRO_LIBRARY})
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(CAIRO DEFAULT_MSG CAIRO_LIBRARY CAIRO_INCLUDE_DIR)
+mark_as_advanced(CAIRO_LIBRARY CAIRO_INCLUDE_DIR)
diff --git a/cmake/FindExempi.cmake b/cmake/FindExempi.cmake
new file mode 100644
index 0000000..73a837a
--- /dev/null
+++ b/cmake/FindExempi.cmake
@@ -0,0 +1,11 @@
+# Look for the header file.
+find_path(LIBEXEMPI_INCLUDE_DIR NAMES xmp.h
+    PATH_SUFFIXES exempi-2.0 exempi-2.0/exempi exempi 
+)
+find_library(LIBEXEMPI_LIBRARY NAMES exempi)
+
+set(LIBEXEMPI_LIBRARIES ${LIBEXEMPI_LIBRARY})
+set(LIBEXEMPI_INCLUDE_DIRS ${LIBEXEMPI_INCLUDE_DIR})
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(LIBEXEMPI DEFAULT_MSG LIBEXEMPI_LIBRARY LIBEXEMPI_INCLUDE_DIR)
+mark_as_advanced(LIBEXEMPI_INCLUDE_DIR LIBEXEMPI_LIBRARY)
diff --git a/cmake/FindFCGI.cmake b/cmake/FindFCGI.cmake
new file mode 100644
index 0000000..d3b65f9
--- /dev/null
+++ b/cmake/FindFCGI.cmake
@@ -0,0 +1,11 @@
+# Look for the header file.
+find_path(FCGI_INCLUDE_DIR NAMES fastcgi.h)
+
+# Look for the library.
+find_library(FCGI_LIBRARY NAMES fcgi libfcgi)
+
+set(FCGI_INCLUDE_DIRS ${FCGI_INCLUDE_DIR})
+set(FCGI_LIBRARIES ${FCGI_LIBRARY})
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(FCGI DEFAULT_MSG FCGI_LIBRARY FCGI_INCLUDE_DIR)
+mark_as_advanced(FCGI_LIBRARY FCGI_INCLUDE_DIR)
diff --git a/cmake/FindFreetype.cmake b/cmake/FindFreetype.cmake
new file mode 100644
index 0000000..edb142d
--- /dev/null
+++ b/cmake/FindFreetype.cmake
@@ -0,0 +1,96 @@
+# - Locate FreeType library
+# This module defines
+#  FREETYPE_LIBRARIES, the library to link against
+#  FREETYPE_FOUND, if false, do not try to link to FREETYPE
+#  FREETYPE_INCLUDE_DIR, where to find headers.
+#  This is the concatenation of the paths:
+#  FREETYPE_INCLUDE_DIR_ft2build
+#  FREETYPE_INCLUDE_DIR_freetype2
+#
+# $FREETYPE_DIR is an environment variable that would
+# correspond to the ./configure --prefix=$FREETYPE_DIR
+# used in building FREETYPE.
+
+#=============================================================================
+# Copyright 2007-2009 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distributed this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+# Created by Eric Wing. 
+# Modifications by Alexander Neundorf.
+# This file has been renamed to "FindFreetype.cmake" instead of the correct
+# "FindFreeType.cmake" in order to be compatible with the one from KDE4, Alex.
+
+# Ugh, FreeType seems to use some #include trickery which 
+# makes this harder than it should be. It looks like they
+# put ft2build.h in a common/easier-to-find location which
+# then contains a #include to a more specific header in a 
+# more specific location (#include <freetype/config/ftheader.h>).
+# Then from there, they need to set a bunch of #define's 
+# so you can do something like:
+# #include FT_FREETYPE_H
+# Unfortunately, using CMake's mechanisms like INCLUDE_DIRECTORIES()
+# wants explicit full paths and this trickery doesn't work too well.
+# I'm going to attempt to cut out the middleman and hope 
+# everything still works.
+FIND_PATH(FREETYPE_INCLUDE_DIR_ft2build ft2build.h 
+  HINTS
+  $ENV{FREETYPE_DIR}
+  PATH_SUFFIXES include
+  PATHS
+  /usr/local/X11R6/include
+  /usr/local/X11/include
+  /usr/X11/include
+  /sw/include
+  /opt/local/include
+  /usr/freeware/include
+)
+
+FIND_PATH(FREETYPE_INCLUDE_DIR_freetype2 freetype/config/ftheader.h 
+  HINTS
+  $ENV{FREETYPE_DIR}/include/freetype2
+  PATHS
+  /usr/local/X11R6/include
+  /usr/local/X11/include
+  /usr/X11/include
+  /sw/include
+  /opt/local/include
+  /usr/freeware/include
+  PATH_SUFFIXES freetype2
+)
+
+set(FREETYPE_NAMES ${FREETYPE_NAMES} freetype libfreetype freetype219 freetype239 freetype241MT_D freetype2411)
+FIND_LIBRARY(FREETYPE_LIBRARY
+  NAMES ${FREETYPE_NAMES}
+  HINTS
+  $ENV{FREETYPE_DIR}
+  PATH_SUFFIXES lib64 lib x86_64-linux-gnu i386-linux-gnu
+  PATHS
+  /usr/local/X11R6
+  /usr/local/X11
+  /usr/X11
+  /sw
+  /usr/freeware
+)
+
+# set the user variables
+IF(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
+  SET(FREETYPE_INCLUDE_DIR "${FREETYPE_INCLUDE_DIR_ft2build};${FREETYPE_INCLUDE_DIR_freetype2}")
+ENDIF(FREETYPE_INCLUDE_DIR_ft2build AND FREETYPE_INCLUDE_DIR_freetype2)
+SET(FREETYPE_LIBRARIES "${FREETYPE_LIBRARY}")
+
+# handle the QUIETLY and REQUIRED arguments and set FREETYPE_FOUND to TRUE if 
+# all listed variables are TRUE
+INCLUDE(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(Freetype  DEFAULT_MSG  FREETYPE_LIBRARY  FREETYPE_INCLUDE_DIR)
+
+
+MARK_AS_ADVANCED(FREETYPE_LIBRARY FREETYPE_INCLUDE_DIR_freetype2 FREETYPE_INCLUDE_DIR_ft2build)
diff --git a/cmake/FindFriBiDi.cmake b/cmake/FindFriBiDi.cmake
new file mode 100644
index 0000000..4356a03
--- /dev/null
+++ b/cmake/FindFriBiDi.cmake
@@ -0,0 +1,30 @@
+# - Find Fribidi
+# Find the Fribidi includes and libraries
+#
+# Following variables are provided:
+# FRIBIDI_FOUND
+#     True if Fribidi has been found
+# FRIBIDI_INCLUDE_DIR
+#     The include directories of Fribidi
+# FRIBIDI_LIBRARY
+#     Fribidi library list
+
+find_package(PkgConfig)
+pkg_check_modules(PC_FRIBIDI QUIET fribidi>=0.19.0)
+
+find_path(FRIBIDI_INCLUDE_DIR
+   NAMES fribidi.h
+   HINTS ${PC_FRIBIDI_INCLUDE_DIR} ${PC_FRIBIDI_INCLUDE_DIRS}
+   PATH_SUFFIXES fribidi
+)
+
+find_library(FRIBIDI_LIBRARY
+   NAME fribidi
+   HINTS ${PC_FRIBIDI_LIBDIR} ${PC_FRIBIDI_LIBRARY_DIRS}
+)
+
+set(FRIBIDI_INCLUDE_DIRS ${FRIBIDI_INCLUDE_DIR})
+set(FRIBIDI_LIBRARIES ${FRIBIDI_LIBRARY})
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(FRIBIDI DEFAULT_MSG FRIBIDI_LIBRARY FRIBIDI_INCLUDE_DIR)
+mark_as_advanced(FRIBIDI_LIBRARY FRIBIDI_INCLUDE_DIR)
diff --git a/cmake/FindGD.cmake b/cmake/FindGD.cmake
new file mode 100644
index 0000000..304c37a
--- /dev/null
+++ b/cmake/FindGD.cmake
@@ -0,0 +1,100 @@
+# - Find GD
+# Find the native GD includes and library
+# This module defines
+#  GD_INCLUDE_DIR, where to find gd.h, etc.
+#  GD_LIBRARIES, the libraries needed to use GD.
+#  GD_FOUND, If false, do not try to use GD.
+# also defined, but not for general use are
+#  GD_LIBRARY, where to find the GD library.
+#  GD_SUPPORTS_PNG, GD_SUPPORTS_JPEG, GD_SUPPORTS_GIF, test
+#  support for image formats in GD.
+
+FIND_PATH(GD_INCLUDE_DIR gd.h
+/usr/local/include
+/usr/include
+)
+
+if(WIN32 AND NOT CYGWIN)
+  SET(GD_NAMES ${GD_NAMES} bgd)
+else(WIN32)
+  SET(GD_NAMES ${GD_NAMES} gd)
+endif(WIN32 AND NOT CYGWIN)
+
+FIND_LIBRARY(GD_LIBRARY
+  NAMES ${GD_NAMES}
+  PATHS /usr/lib64 /usr/lib /usr/local/lib
+  )
+
+IF (GD_LIBRARY AND GD_INCLUDE_DIR)
+    SET(GD_LIBRARIES ${GD_LIBRARY})
+    SET(GD_FOUND "YES")
+ELSE (GD_LIBRARY AND GD_INCLUDE_DIR)
+  SET(GD_FOUND "NO")
+ENDIF (GD_LIBRARY AND GD_INCLUDE_DIR)
+
+IF (GD_FOUND)
+	IF (WIN32 AND NOT CYGWIN)
+		SET(GD_SUPPORTS_PNG ON)
+		SET(GD_SUPPORTS_JPEG ON)
+		SET(GD_SUPPORTS_GIF ON)
+		SET(GD_SUPPORTS_FREETYPE ON)
+		get_filename_component(GD_LIBRARY_DIR ${GD_LIBRARY} PATH)
+	ELSE (WIN32 AND NOT CYGWIN)
+		INCLUDE(CheckLibraryExists)
+		GET_FILENAME_COMPONENT(GD_LIB_PATH ${GD_LIBRARY} PATH)
+		GET_FILENAME_COMPONENT(GD_LIB ${GD_LIBRARY} NAME)
+
+		CHECK_LIBRARY_EXISTS("${GD_LIBRARY}" "gdImagePng" "${GD_LIB_PATH}" GD_SUPPORTS_PNG)
+		CHECK_LIBRARY_EXISTS("${GD_LIBRARY}" "gdImageJpeg" "${GD_LIB_PATH}" GD_SUPPORTS_JPEG)
+		CHECK_LIBRARY_EXISTS("${GD_LIBRARY}" "gdImageGif" "${GD_LIB_PATH}" GD_SUPPORTS_GIF)
+		CHECK_LIBRARY_EXISTS("${GD_LIBRARY}" "gdFontCacheSetup" "${GD_LIB_PATH}" GD_SUPPORTS_FREETYPE)
+
+		# Trim the list of include directories
+		SET(GDINCTRIM)
+		FOREACH(GD_DIR ${GD_INCLUDE_DIR})
+			SET(GD_TMP_FOUND OFF)
+			FOREACH(GD_TRIMMED ${GDINCTRIM})
+				IF ("${GD_DIR}" STREQUAL "${GD_TRIMMED}")
+				SET(GD_TMP_FOUND ON)
+				ENDIF ("${GD_DIR}" STREQUAL "${GD_TRIMMED}")
+			ENDFOREACH(GD_TRIMMED ${GDINCTRIM})
+			IF (NOT GD_TMP_FOUND)
+				SET(GDINCTRIM "${GDINCTRIM}" "${GD_DIR}")
+			ENDIF (NOT GD_TMP_FOUND)
+		ENDFOREACH(GD_DIR ${GD_INCLUDE_DIR})
+		SET(GD_INCLUDE_DIR ${GDINCTRIM})
+
+		SET(GD_LIBRARY_DIR)
+
+		# Generate trimmed list of library directories and list of libraries
+		FOREACH(GD_LIB ${GD_LIBRARIES})
+			GET_FILENAME_COMPONENT(GD_NEXTLIBDIR ${GD_LIB} PATH)
+			SET(GD_TMP_FOUND OFF)
+			FOREACH(GD_LIBDIR ${GD_LIBRARY_DIR})
+				IF ("${GD_NEXTLIBDIR}" STREQUAL "${GD_LIBDIR}")
+					SET(GD_TMP_FOUND ON)
+				ENDIF ("${GD_NEXTLIBDIR}" STREQUAL "${GD_LIBDIR}")
+			ENDFOREACH(GD_LIBDIR ${GD_LIBRARIES})
+			IF (NOT GD_TMP_FOUND)
+				SET(GD_LIBRARY_DIR "${GD_LIBRARY_DIR}" "${GD_NEXTLIBDIR}")
+			ENDIF (NOT GD_TMP_FOUND)
+		ENDFOREACH(GD_LIB ${GD_LIBRARIES})
+	ENDIF (WIN32 AND NOT CYGWIN)
+ENDIF (GD_FOUND)
+
+IF (!GD_FOUND)
+   IF (GD_FIND_REQUIRED)
+      MESSAGE(FATAL_ERROR "Could not find GD library")
+   ENDIF (GD_FIND_REQUIRED)
+ENDIF (!GD_FOUND)
+
+MARK_AS_ADVANCED(
+  GD_LIBRARY
+  GD_LIBRARIES
+  GD_INCLUDE_DIR
+  GD_LIBRARY_DIR
+  GD_SUPPORTS_PNG
+  GD_SUPPORTS_JPEG
+  GD_SUPPORTS_GIF
+  GD_SUPPORTS_FREETYPE
+)
diff --git a/cmake/FindGDAL.cmake b/cmake/FindGDAL.cmake
new file mode 100644
index 0000000..65881d2
--- /dev/null
+++ b/cmake/FindGDAL.cmake
@@ -0,0 +1,106 @@
+# Locate gdal
+#
+# This module accepts the following environment variables:
+#
+#    GDAL_DIR or GDAL_ROOT - Specify the location of GDAL
+#
+# This module defines the following CMake variables:
+#
+#    GDAL_FOUND - True if libgdal is found
+#    GDAL_LIBRARY - A variable pointing to the GDAL library
+#    GDAL_INCLUDE_DIR - Where to find the headers
+
+#=============================================================================
+# Copyright 2007-2009 Kitware, Inc.
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+#
+# $GDALDIR is an environment variable that would
+# correspond to the ./configure --prefix=$GDAL_DIR
+# used in building gdal.
+#
+# Created by Eric Wing. I'm not a gdal user, but OpenSceneGraph uses it
+# for osgTerrain so I whipped this module together for completeness.
+# I actually don't know the conventions or where files are typically
+# placed in distros.
+# Any real gdal users are encouraged to correct this (but please don't
+# break the OS X framework stuff when doing so which is what usually seems
+# to happen).
+
+# This makes the presumption that you are include gdal.h like
+#
+#include "gdal.h"
+
+find_path(GDAL_INCLUDE_DIR gdal.h
+  HINTS
+    ENV GDAL_DIR
+    ENV GDAL_ROOT
+  PATH_SUFFIXES
+     gdal
+     GDAL
+     gdal1
+  PATHS
+      /sw # Fink
+      /opt/local # DarwinPorts
+      /opt/csw # Blastwave
+      /opt
+)
+
+if(UNIX)
+    # Use gdal-config to obtain the library version (this should hopefully
+    # allow us to -lgdal1.x.y where x.y are correct version)
+    # For some reason, libgdal development packages do not contain
+    # libgdal.so...
+    find_program(GDAL_CONFIG gdal-config
+        HINTS
+          ENV GDAL_DIR
+          ENV GDAL_ROOT
+        PATH_SUFFIXES bin
+        PATHS
+            /sw # Fink
+            /opt/local # DarwinPorts
+            /opt/csw # Blastwave
+            /opt
+    )
+
+    if(GDAL_CONFIG)
+        exec_program(${GDAL_CONFIG} ARGS --libs OUTPUT_VARIABLE GDAL_CONFIG_LIBS)
+        if(GDAL_CONFIG_LIBS)
+            string(REGEX MATCHALL "-l[^ ]+" _gdal_dashl ${GDAL_CONFIG_LIBS})
+            string(REGEX REPLACE "-l" "" _gdal_lib "${_gdal_dashl}")
+            string(REGEX MATCHALL "-L[^ ]+" _gdal_dashL ${GDAL_CONFIG_LIBS})
+            string(REGEX REPLACE "-L" "" _gdal_libpath "${_gdal_dashL}")
+        endif()
+    endif()
+endif()
+
+find_library(GDAL_LIBRARY
+  NAMES ${_gdal_lib} gdal gdal_i gdal1.5.0 gdal1.4.0 gdal1.3.2 GDAL
+  HINTS
+     ENV GDAL_DIR
+     ENV GDAL_ROOT
+     ${_gdal_libpath}
+  PATH_SUFFIXES lib
+  PATHS
+    /sw
+    /opt/local
+    /opt/csw
+    /opt
+    /usr/freeware
+)
+
+set(GDAL_LIBRARIES ${GDAL_LIBRARY})
+set(GDAL_INCLUDE_DIRS ${GDAL_INCLUDE_DIR})
+include(FindPackageHandleStandardArgs)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(GDAL DEFAULT_MSG GDAL_LIBRARY GDAL_INCLUDE_DIR)
+MARK_AS_ADVANCED(GDAL_LIBRARY GDAL_INCLUDE_DIR GDAL_CONFIG)
+
diff --git a/cmake/FindGEOS.cmake b/cmake/FindGEOS.cmake
new file mode 100644
index 0000000..cecf834
--- /dev/null
+++ b/cmake/FindGEOS.cmake
@@ -0,0 +1,34 @@
+# Find the native GEOS(Geometry Engine - Open Source) includes and libraries.
+#
+# This module defines:
+#
+# GEOS_INCLUDE_DIR, where to find geos.h, etc.
+# GEOS_LIBRARY, libraries to link against to use GEOS, using the geos_c library
+# GEOS_FOUND, True if found, false if one of the above are not found.
+
+#---
+# Find include path:
+# Note: Version < 3.3.0 do not have geos.h in the geos sub directory; hence,
+# the check for both "geos/geos.h" and "geos.h".
+#---
+find_path( GEOS_INCLUDE_DIR geos_c.h
+           PATHS 
+           /usr/include
+           /usr/local/include
+           SUFFIXES geos)
+
+# Find GEOS C library:
+find_library( GEOS_LIBRARY NAMES geos_c geos_c_i
+              PATHS 
+              /usr/lib64 
+              /usr/lib 
+              /usr/local/lib )
+
+set(GEOS_INCLUDE_DIRS ${GEOS_INCLUDE_DIR})
+set(GEOS_LIBRARIES ${GEOS_LIBRARY})
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args( GEOS DEFAULT_MSG 
+                                   GEOS_LIBRARY 
+                                   GEOS_INCLUDE_DIR )
+
+MARK_AS_ADVANCED(GEOS_LIBRARY GEOS_INCLUDE_DIR)
diff --git a/cmake/FindICONV.cmake b/cmake/FindICONV.cmake
new file mode 100644
index 0000000..fe83fd3
--- /dev/null
+++ b/cmake/FindICONV.cmake
@@ -0,0 +1,102 @@
+#
+#  Copyright (c) 2006, Peter Kümmel, <syntheticpp at gmx.net>
+#
+#  Redistribution and use in source and binary forms, with or without
+#  modification, are permitted provided that the following conditions
+#  are met:
+#  
+#  1. Redistributions of source code must retain the copyright
+#     notice, this list of conditions and the following disclaimer.
+#  2. Redistributions in binary form must reproduce the copyright
+#     notice, this list of conditions and the following disclaimer in the
+#     documentation and/or other materials provided with the distribution.
+#  3. The name of the author may not be used to endorse or promote products 
+#     derived from this software without specific prior written permission.
+#  
+#  THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+#  IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+#  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+#  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+#  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+#  NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+#  DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+#  THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+#  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+#  THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+#  
+
+set(CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
+
+if (ICONV_INCLUDE_DIR)
+  # Already in cache, be silent
+  set(ICONV_FIND_QUIETLY TRUE)
+endif()
+
+find_path(ICONV_INCLUDE_DIR iconv.h
+   PATHS /sw /opt/local
+)
+
+set(POTENTIAL_ICONV_LIBS iconv libiconv libiconv2)
+
+find_library(ICONV_LIBRARY
+   NAMES ${POTENTIAL_ICONV_LIBS}
+   PATHS /sw /opt/local
+)
+
+if(WIN32)
+	set(ICONV_DLL_NAMES iconv.dll  libiconv.dll libiconv2.dll)
+	find_file(ICONV_DLL   
+					NAMES ${ICONV_DLL_NAMES}
+					PATHS ENV PATH
+					NO_DEFAULT_PATH)
+	find_file(ICONV_DLL_HELP   
+					NAMES ${ICONV_DLL_NAMES}
+					PATHS ENV PATH
+					${ICONV_INCLUDE_DIR}/../bin)
+	if(ICONV_FIND_REQUIRED)
+		if(NOT ICONV_DLL AND NOT ICONV_DLL_HELP)
+			message(FATAL_ERROR "Could not find iconv.dll, please add correct your PATH environment variable")
+		endif()
+		if(NOT ICONV_DLL AND ICONV_DLL_HELP)
+			get_filename_component(ICONV_DLL_HELP ${ICONV_DLL_HELP} PATH)
+			message(STATUS)
+			message(STATUS "Could not find iconv.dll in standard search path, please add ")
+			message(STATUS "${ICONV_DLL_HELP}")
+			message(STATUS "to your PATH environment variable.")
+			message(STATUS)
+			message(FATAL_ERROR "exit cmake")
+		endif()
+	endif()
+	if(ICONV_INCLUDE_DIR AND ICONV_LIBRARY AND ICONV_DLL)
+   		set(ICONV_FOUND TRUE)
+	endif()
+else()
+	include(CheckFunctionExists)
+	check_function_exists(iconv HAVE_ICONV_IN_LIBC)
+	if(ICONV_INCLUDE_DIR AND HAVE_ICONV_IN_LIBC)
+   		set(ICONV_FOUND TRUE)
+		set(ICONV_LIBRARY  CACHE TYPE STRING FORCE)
+	endif()
+	if(ICONV_INCLUDE_DIR AND ICONV_LIBRARY)
+   		set(ICONV_FOUND TRUE)
+	endif()
+endif()
+
+
+
+if(ICONV_FOUND)
+   if(NOT ICONV_FIND_QUIETLY)
+      message(STATUS "Found iconv library: ${ICONV_LIBRARY}")
+      #message(STATUS "Found iconv   dll  : ${ICONV_DLL}")
+   endif()
+else()
+   if(ICONV_FIND_REQUIRED)
+      message(STATUS "Looked for iconv library named ${POTENTIAL_ICONV_LIBS}.")
+      message(STATUS "Found no acceptable iconv library. This is fatal.")
+      message(STATUS "iconv header: ${ICONV_INCLUDE_DIR}")
+      message(STATUS "iconv lib   : ${ICONV_LIBRARY}")
+      message(FATAL_ERROR "Could NOT find iconv library")
+   endif()
+endif()
+
+mark_as_advanced(ICONV_LIBRARY ICONV_INCLUDE_DIR)
diff --git a/cmake/FindMySQL.cmake b/cmake/FindMySQL.cmake
new file mode 100644
index 0000000..1b5de7e
--- /dev/null
+++ b/cmake/FindMySQL.cmake
@@ -0,0 +1,48 @@
+# - Find mysqlclient
+# Find the native MySQL includes and library
+#
+#  MYSQL_INCLUDE_DIR - where to find mysql.h, etc.
+#  MYSQL_LIBRARIES   - List of libraries when using MySQL.
+#  MYSQL_FOUND       - True if MySQL found.
+
+IF (MYSQL_INCLUDE_DIR)
+  # Already in cache, be silent
+  SET(MYSQL_FIND_QUIETLY TRUE)
+ENDIF (MYSQL_INCLUDE_DIR)
+
+FIND_PATH(MYSQL_INCLUDE_DIR mysql.h
+  /usr/local/include/mysql
+  /usr/include/mysql
+)
+
+SET(MYSQL_NAMES mysqlclient mysqlclient_r)
+FIND_LIBRARY(MYSQL_LIBRARY
+  NAMES ${MYSQL_NAMES}
+  PATHS /usr/lib /usr/local/lib
+  PATH_SUFFIXES mysql
+)
+
+IF (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
+  SET(MYSQL_FOUND TRUE)
+  SET( MYSQL_LIBRARIES ${MYSQL_LIBRARY} )
+ELSE (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
+  SET(MYSQL_FOUND FALSE)
+  SET( MYSQL_LIBRARIES )
+ENDIF (MYSQL_INCLUDE_DIR AND MYSQL_LIBRARY)
+
+IF (MYSQL_FOUND)
+  IF (NOT MYSQL_FIND_QUIETLY)
+    MESSAGE(STATUS "Found MySQL: ${MYSQL_LIBRARY}")
+  ENDIF (NOT MYSQL_FIND_QUIETLY)
+ELSE (MYSQL_FOUND)
+  IF (MYSQL_FIND_REQUIRED)
+    MESSAGE(STATUS "Looked for MySQL libraries named ${MYSQL_NAMES}.")
+    MESSAGE(FATAL_ERROR "Could NOT find MySQL library")
+  ENDIF (MYSQL_FIND_REQUIRED)
+ENDIF (MYSQL_FOUND)
+
+MARK_AS_ADVANCED(
+  MYSQL_LIBRARY
+  MYSQL_INCLUDE_DIR
+  )
+
diff --git a/cmake/FindODBC.cmake b/cmake/FindODBC.cmake
new file mode 100644
index 0000000..95166c0
--- /dev/null
+++ b/cmake/FindODBC.cmake
@@ -0,0 +1,58 @@
+# 
+# Find the ODBC driver manager includes and library.
+# 
+# ODBC is an open standard for connecting to different databases in a
+# semi-vendor-independent fashion.  First you install the ODBC driver
+# manager.  Then you need a driver for each separate database you want
+# to connect to (unless a generic one works).  VTK includes neither
+# the driver manager nor the vendor-specific drivers: you have to find
+# those yourself.
+#  
+# This module defines
+# ODBC_INCLUDE_DIRECTORIES, where to find sql.h
+# ODBC_LIBRARIES, the libraries to link against to use ODBC
+# ODBC_FOUND.  If false, you cannot build anything that requires MySQL.
+
+# also defined, but not for general use is
+# ODBC_LIBRARY, where to find the ODBC driver manager library.
+
+set(ODBC_FOUND FALSE)
+
+find_path(ODBC_INCLUDE_DIR sql.h
+  /usr/include
+  /usr/include/odbc
+  /usr/local/include
+  /usr/local/include/odbc
+  /usr/local/odbc/include
+  "C:/Program Files/ODBC/include"
+  "C:/Program Files/Microsoft SDKs/Windows/v7.0A/include" 
+  "C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/include" 
+  "C:/Program Files/Microsoft SDKs/Windows/v6.0a/include" 
+  "C:/ODBC/include"
+  DOC "Specify the directory containing sql.h."
+)
+
+find_library(ODBC_LIBRARY 
+  NAMES iodbc odbc odbcinst odbc32
+  PATHS
+  /usr/lib
+  /usr/lib/odbc
+  /usr/local/lib
+  /usr/local/lib/odbc
+  /usr/local/odbc/lib
+  "C:/Program Files/ODBC/lib"
+  "C:/ODBC/lib/debug"
+  "C:/Program Files/Microsoft SDKs/Windows/v7.0A/Lib"
+  "C:/Program Files (x86)/Microsoft SDKs/Windows/v7.0A/Lib"
+  DOC "Specify the ODBC driver manager library here."
+)
+
+if(ODBC_LIBRARY)
+  if(ODBC_INCLUDE_DIR)
+    set( ODBC_FOUND 1 )
+  endif()
+endif()
+
+set(ODBC_LIBRARIES ${ODBC_LIBRARY})
+
+mark_as_advanced(ODBC_FOUND ODBC_LIBRARY ODBC_EXTRA_LIBRARIES ODBC_INCLUDE_DIR)
diff --git a/cmake/FindOracle.cmake b/cmake/FindOracle.cmake
new file mode 100644
index 0000000..c38f92d
--- /dev/null
+++ b/cmake/FindOracle.cmake
@@ -0,0 +1,82 @@
+###############################################################################
+#
+# CMake module to search for Oracle client library (OCI)
+#
+# On success, the macro sets the following variables:
+# ORACLE_FOUND       = if the library found
+# ORACLE_LIBRARY     = full path to the library
+# ORACLE_LIBRARIES   = full path to the library
+# ORACLE_INCLUDE_DIR = where to find the library headers also defined,
+#                       but not for general use are
+# ORACLE_VERSION     = version of library which was found, e.g. "1.2.5"
+#
+# Copyright (c) 2009-2013 Mateusz Loskot <mateusz at loskot.net>
+#
+# Developed with inspiration from Petr Vanek <petr at scribus.info>
+# who wrote similar macro for TOra - http://torasql.com/
+#
+# Module source: http://github.com/mloskot/workshop/tree/master/cmake/
+#
+# Redistribution and use is allowed according to the terms of the BSD license.
+# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
+#
+###############################################################################
+
+# If ORACLE_HOME not defined, assume Oracle libraries not available
+if(DEFINED ENV{ORACLE_HOME})
+
+  set(ORACLE_HOME $ENV{ORACLE_HOME})
+  message("ORACLE_HOME=${ORACLE_HOME}")
+
+  find_path(ORACLE_INCLUDE_DIR
+    NAMES oci.h
+    PATHS
+    ${ORACLE_HOME}/rdbms/public
+    ${ORACLE_HOME}/include
+    ${ORACLE_HOME}/sdk/include  # Oracle SDK
+    ${ORACLE_HOME}/OCI/include) # Oracle XE on Windows
+
+  set(ORACLE_OCI_NAMES clntsh libclntsh oci)
+  set(ORACLE_NNZ_NAMES nnz10 libnnz10 nnz11 libnnz11 ociw32)
+  set(ORACLE_OCCI_NAMES libocci occi oraocci10 oraocci11)
+
+  set(ORACLE_LIB_DIR 
+    ${ORACLE_HOME}
+    ${ORACLE_HOME}/lib
+    ${ORACLE_HOME}/sdk/lib       # Oracle SDK
+    ${ORACLE_HOME}/sdk/lib/msvc
+    ${ORACLE_HOME}/OCI/lib/msvc) # Oracle XE on Windows
+
+  find_library(ORACLE_OCI_LIBRARY  NAMES ${ORACLE_OCI_NAMES} PATHS ${ORACLE_LIB_DIR})
+  find_library(ORACLE_OCCI_LIBRARY NAMES ${ORACLE_OCCI_NAMES} PATHS ${ORACLE_LIB_DIR})
+  if (NOT CMAKE_CL_64)
+	find_library(ORACLE_NNZ_LIBRARY NAMES ${ORACLE_NNZ_NAMES} PATHS ${ORACLE_LIB_DIR})
+  endif()
+
+  set(ORACLE_LIBRARY ${ORACLE_OCI_LIBRARY} ${ORACLE_OCCI_LIBRARY} ${ORACLE_NNZ_LIBRARY})
+
+  if(APPLE)
+    set(ORACLE_OCIEI_NAMES libociei ociei)
+
+    find_library(ORACLE_OCIEI_LIBRARY
+      NAMES libociei ociei
+      PATHS ${ORACLE_LIB_DIR})
+
+    if(ORACLE_OCIEI_LIBRARY)
+      set(ORACLE_LIBRARY ${ORACLE_LIBRARY} ${ORACLE_OCIEI_LIBRARY})
+    else(ORACLE_OCIEI_LIBRARY)
+      message(STATUS
+        "libociei.dylib is not found. It may cause crash if you are building BUNDLE")
+    endif()
+  endif()
+
+  set(ORACLE_LIBRARIES ${ORACLE_LIBRARY})
+
+endif(DEFINED ENV{ORACLE_HOME})
+
+# Handle the QUIETLY and REQUIRED arguments and set ORACLE_FOUND to TRUE
+# if all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(ORACLE DEFAULT_MSG ORACLE_LIBRARY ORACLE_INCLUDE_DIR)
+
+mark_as_advanced(ORACLE_INCLUDE_DIR ORACLE_LIBRARY)
diff --git a/cmake/FindPHP5.cmake b/cmake/FindPHP5.cmake
new file mode 100644
index 0000000..eeca42c
--- /dev/null
+++ b/cmake/FindPHP5.cmake
@@ -0,0 +1,99 @@
+# - Find PHP5
+# This module finds if PHP5 is installed and determines where the include files
+# and libraries are. It also determines what the name of the library is. This
+# code sets the following variables:
+#
+#  PHP5_INCLUDE_PATH       = path to where php.h can be found
+#  PHP5_EXECUTABLE         = full path to the php4 binary
+#
+#  file is derived from FindPHP4.cmake
+#
+
+SET(PHP5_FOUND "NO")
+
+SET(PHP5_POSSIBLE_INCLUDE_PATHS
+  /usr/include/php5
+  /usr/local/include/php5
+  /usr/include/php
+  /usr/local/include/php
+  /usr/local/apache/php
+  )
+
+SET(PHP5_POSSIBLE_LIB_PATHS
+  /usr/lib
+  )
+
+#FIND_PATH(PHP5_FOUND_INCLUDE_PATH main/php.h
+#  ${PHP5_POSSIBLE_INCLUDE_PATHS})
+#
+#IF(PHP5_FOUND_INCLUDE_PATH)
+#  SET(php5_paths "${PHP5_POSSIBLE_INCLUDE_PATHS}")
+#  FOREACH(php5_path Zend main TSRM)
+#    SET(php5_paths ${php5_paths} "${PHP5_FOUND_INCLUDE_PATH}/${php5_path}")
+#  ENDFOREACH(php5_path Zend main TSRM)
+#  SET(PHP5_INCLUDE_PATH "${php5_paths}" INTERNAL "PHP5 include paths")
+#ENDIF(PHP5_FOUND_INCLUDE_PATH)
+
+FIND_PROGRAM(PHP5_EXECUTABLE
+  NAMES php5 php
+  PATHS
+  /usr/local/bin
+  )
+
+MARK_AS_ADVANCED(
+  PHP5_EXECUTABLE
+  PHP5_FOUND_INCLUDE_PATH
+  )
+
+IF( NOT PHP5_CONFIG_EXECUTABLE )
+FIND_PROGRAM(PHP5_CONFIG_EXECUTABLE
+  NAMES php5-config php-config
+  )
+ENDIF( NOT PHP5_CONFIG_EXECUTABLE )
+
+IF(PHP5_CONFIG_EXECUTABLE)
+  EXECUTE_PROCESS(COMMAND ${PHP5_CONFIG_EXECUTABLE} --version
+    OUTPUT_VARIABLE PHP5_VERSION)
+  STRING(REPLACE "\n" "" PHP5_VERSION "${PHP5_VERSION}")
+
+  EXECUTE_PROCESS(COMMAND ${PHP5_CONFIG_EXECUTABLE} --extension-dir
+    OUTPUT_VARIABLE PHP5_EXTENSION_DIR)
+  STRING(REPLACE "\n" "" PHP5_EXTENSION_DIR "${PHP5_EXTENSION_DIR}")
+
+  EXECUTE_PROCESS(COMMAND ${PHP5_CONFIG_EXECUTABLE} --includes
+    OUTPUT_VARIABLE PHP5_INCLUDES)
+  STRING(REPLACE "-I" "" PHP5_INCLUDES "${PHP5_INCLUDES}")
+  STRING(REPLACE " " ";" PHP5_INCLUDES "${PHP5_INCLUDES}")
+  STRING(REPLACE "\n" "" PHP5_INCLUDES "${PHP5_INCLUDES}")
+  LIST(GET PHP5_INCLUDES 0 PHP5_INCLUDE_DIR)
+
+  set(PHP5_MAIN_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/main)
+  set(PHP5_TSRM_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/TSRM)
+  set(PHP5_ZEND_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/Zend)
+  set(PHP5_REGEX_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/regex)
+  set(PHP5_EXT_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/ext)
+  set(PHP5_DATE_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/ext/date/lib)
+  set(PHP5_STANDARD_INCLUDE_DIR ${PHP5_INCLUDE_DIR}/ext/standard)
+
+  MESSAGE(STATUS ${PHP5_MAIN_INCLUDE_DIR})
+
+  IF(PHP5_VERSION LESS 5)
+    MESSAGE(FATAL_ERROR "PHP version is not 5 or later")
+  ENDIF(PHP5_VERSION LESS 5)
+
+  IF(PHP5_EXECUTABLE AND PHP5_INCLUDES)
+    set(PHP5_FOUND "yes")
+    MESSAGE(STATUS "Found PHP5-Version ${PHP5_VERSION} (using ${PHP5_CONFIG_EXECUTABLE})")
+  ENDIF(PHP5_EXECUTABLE AND PHP5_INCLUDES)
+
+  FIND_PROGRAM(PHPUNIT_EXECUTABLE
+    NAMES phpunit phpunit2
+    PATHS
+    /usr/local/bin
+  )
+
+  IF(PHPUNIT_EXECUTABLE)
+    MESSAGE(STATUS "Found phpunit: ${PHPUNIT_EXECUTABLE}")
+  ENDIF(PHPUNIT_EXECUTABLE)
+
+ENDIF(PHP5_CONFIG_EXECUTABLE)
diff --git a/cmake/FindPerlLibs.cmake b/cmake/FindPerlLibs.cmake
new file mode 100644
index 0000000..8c98531
--- /dev/null
+++ b/cmake/FindPerlLibs.cmake
@@ -0,0 +1,290 @@
+# - Find Perl libraries
+# This module finds if PERL is installed and determines where the include files
+# and libraries are. It also determines what the name of the library is. This
+# code sets the following variables:
+#
+#  PERLLIBS_FOUND    = True if perl.h & libperl were found
+#  PERL_INCLUDE_PATH = path to where perl.h is found
+#  PERL_LIBRARY      = path to libperl
+#  PERL_EXECUTABLE   = full path to the perl binary
+#
+# The minimum required version of Perl can be specified using the
+# standard syntax, e.g. find_package(PerlLibs 6.0)
+#
+#  The following variables are also available if needed
+#  (introduced after CMake 2.6.4)
+#
+#  PERL_SITEARCH      = path to the sitearch install dir
+#  PERL_SITELIB       = path to the sitelib install directory
+#  PERL_VENDORARCH    = path to the vendor arch install directory
+#  PERL_VENDORLIB     = path to the vendor lib install directory
+#  PERL_ARCHLIB       = path to the arch lib install directory
+#  PERL_PRIVLIB       = path to the priv lib install directory
+#  PERL_EXTRA_C_FLAGS = Compilation flags used to build perl
+#
+
+#=============================================================================
+# Copyright 2004-2009 Kitware, Inc.
+# Copyright 2008      Andreas Schneider <asn at cryptomilk.org>
+#
+# Distributed under the OSI-approved BSD License (the "License");
+# see accompanying file Copyright.txt for details.
+#
+# This software is distributed WITHOUT ANY WARRANTY; without even the
+# implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+# See the License for more information.
+#=============================================================================
+# (To distribute this file outside of CMake, substitute the full
+#  License text for the above reference.)
+
+# find the perl executable
+include(FindPerl)
+
+if (PERL_EXECUTABLE)
+
+   if(NOT DEFINED PERL_VERSION_STRING)
+     ### PERL_VERSION
+     execute_process(
+       COMMAND
+         ${PERL_EXECUTABLE} -V:version
+         OUTPUT_VARIABLE
+           PERL_VERSION_OUTPUT_VARIABLE
+         RESULT_VARIABLE
+           PERL_VERSION_RESULT_VARIABLE
+         ERROR_QUIET
+         OUTPUT_STRIP_TRAILING_WHITESPACE
+     )
+     if(NOT PERL_VERSION_RESULT_VARIABLE AND NOT PERL_VERSION_OUTPUT_VARIABLE MATCHES "^version='UNKNOWN'")
+       string(REGEX REPLACE "version='([^']+)'.*" "\\1" PERL_VERSION_STRING ${PERL_VERSION_OUTPUT_VARIABLE})
+     else()
+       execute_process(
+         COMMAND ${PERL_EXECUTABLE} -v
+         OUTPUT_VARIABLE PERL_VERSION_OUTPUT_VARIABLE
+         RESULT_VARIABLE PERL_VERSION_RESULT_VARIABLE
+         ERROR_QUIET
+         OUTPUT_STRIP_TRAILING_WHITESPACE
+       )
+       if(NOT PERL_VERSION_RESULT_VARIABLE AND PERL_VERSION_OUTPUT_VARIABLE MATCHES "This is perl.*[ \\(]v([0-9\\._]+)[ \\)]")
+         string(REGEX REPLACE ".*This is perl.*[ \\(]v([0-9\\._]+)[ \\)].*" "\\1" PERL_VERSION_STRING ${PERL_VERSION_OUTPUT_VARIABLE})
+       elseif(NOT PERL_VERSION_RESULT_VARIABLE AND PERL_VERSION_OUTPUT_VARIABLE MATCHES "This is perl, version ([0-9\\._]+) +")
+         string(REGEX REPLACE ".*This is perl, version ([0-9\\._]+) +.*" "\\1" PERL_VERSION_STRING ${PERL_VERSION_OUTPUT_VARIABLE})
+       endif()
+     endif()
+   endif()
+
+
+  ### PERL_PREFIX
+  execute_process(
+    COMMAND
+      ${PERL_EXECUTABLE} -V:prefix
+      OUTPUT_VARIABLE
+        PERL_PREFIX_OUTPUT_VARIABLE
+      RESULT_VARIABLE
+        PERL_PREFIX_RESULT_VARIABLE
+  )
+
+  if (NOT PERL_PREFIX_RESULT_VARIABLE)
+    string(REGEX REPLACE "prefix='([^']+)'.*" "\\1" PERL_PREFIX ${PERL_PREFIX_OUTPUT_VARIABLE})
+  endif ()
+
+  ### PERL_ARCHNAME
+  execute_process(
+    COMMAND
+      ${PERL_EXECUTABLE} -V:archname
+      OUTPUT_VARIABLE
+        PERL_ARCHNAME_OUTPUT_VARIABLE
+      RESULT_VARIABLE
+        PERL_ARCHNAME_RESULT_VARIABLE
+  )
+  if (NOT PERL_ARCHNAME_RESULT_VARIABLE)
+    string(REGEX REPLACE "archname='([^']+)'.*" "\\1" PERL_ARCHNAME ${PERL_ARCHNAME_OUTPUT_VARIABLE})
+  endif ()
+
+
+
+  ### PERL_EXTRA_C_FLAGS
+  execute_process(
+    COMMAND
+      ${PERL_EXECUTABLE} -V:cppflags
+    OUTPUT_VARIABLE
+      PERL_CPPFLAGS_OUTPUT_VARIABLE
+    RESULT_VARIABLE
+      PERL_CPPFLAGS_RESULT_VARIABLE
+    )
+  if (NOT PERL_CPPFLAGS_RESULT_VARIABLE)
+    string(REGEX REPLACE "cppflags='([^']+)'.*" "\\1" PERL_EXTRA_C_FLAGS ${PERL_CPPFLAGS_OUTPUT_VARIABLE})
+  endif ()
+
+  ### PERL_SITEARCH
+  execute_process(
+    COMMAND
+      ${PERL_EXECUTABLE} -V:installsitearch
+    OUTPUT_VARIABLE
+      PERL_SITEARCH_OUTPUT_VARIABLE
+    RESULT_VARIABLE
+      PERL_SITEARCH_RESULT_VARIABLE
+  )
+  if (NOT PERL_SITEARCH_RESULT_VARIABLE)
+    string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_SITEARCH ${PERL_SITEARCH_OUTPUT_VARIABLE})
+    file(TO_CMAKE_PATH "${PERL_SITEARCH}" PERL_SITEARCH)
+  endif ()
+
+  ### PERL_SITELIB
+  execute_process(
+    COMMAND
+      ${PERL_EXECUTABLE} -V:installsitelib
+    OUTPUT_VARIABLE
+      PERL_SITELIB_OUTPUT_VARIABLE
+    RESULT_VARIABLE
+      PERL_SITELIB_RESULT_VARIABLE
+  )
+  if (NOT PERL_SITELIB_RESULT_VARIABLE)
+    string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_SITELIB ${PERL_SITELIB_OUTPUT_VARIABLE})
+    file(TO_CMAKE_PATH "${PERL_SITELIB}" PERL_SITELIB)
+  endif ()
+
+  ### PERL_VENDORARCH
+  execute_process(
+    COMMAND
+      ${PERL_EXECUTABLE} -V:installvendorarch
+    OUTPUT_VARIABLE
+      PERL_VENDORARCH_OUTPUT_VARIABLE
+    RESULT_VARIABLE
+      PERL_VENDORARCH_RESULT_VARIABLE
+    )
+  if (NOT PERL_VENDORARCH_RESULT_VARIABLE)
+    string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_VENDORARCH ${PERL_VENDORARCH_OUTPUT_VARIABLE})
+    file(TO_CMAKE_PATH "${PERL_VENDORARCH}" PERL_VENDORARCH)
+  endif ()
+
+  ### PERL_VENDORLIB
+  execute_process(
+    COMMAND
+      ${PERL_EXECUTABLE} -V:installvendorlib
+    OUTPUT_VARIABLE
+      PERL_VENDORLIB_OUTPUT_VARIABLE
+    RESULT_VARIABLE
+      PERL_VENDORLIB_RESULT_VARIABLE
+  )
+  if (NOT PERL_VENDORLIB_RESULT_VARIABLE)
+    string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_VENDORLIB ${PERL_VENDORLIB_OUTPUT_VARIABLE})
+    file(TO_CMAKE_PATH "${PERL_VENDORLIB}" PERL_VENDORLIB)
+  endif ()
+
+  macro(perl_adjust_darwin_lib_variable varname)
+    string( TOUPPER PERL_${varname} FINDPERL_VARNAME )
+    string( TOLOWER install${varname} PERL_VARNAME )
+
+    if (NOT PERL_MINUSV_OUTPUT_VARIABLE)
+      execute_process(
+        COMMAND
+        ${PERL_EXECUTABLE} -V
+        OUTPUT_VARIABLE
+        PERL_MINUSV_OUTPUT_VARIABLE
+        RESULT_VARIABLE
+        PERL_MINUSV_RESULT_VARIABLE
+        )
+    endif()
+
+    if (NOT PERL_MINUSV_RESULT_VARIABLE)
+      string(REGEX MATCH "(${PERL_VARNAME}.*points? to the Updates directory)"
+        PERL_NEEDS_ADJUSTMENT ${PERL_MINUSV_OUTPUT_VARIABLE})
+
+      if (PERL_NEEDS_ADJUSTMENT)
+        string(REGEX REPLACE "(.*)/Updates/" "/System/\\1/" ${FINDPERL_VARNAME} ${${FINDPERL_VARNAME}})
+      endif ()
+
+    endif ()
+  endmacro()
+
+  ### PERL_ARCHLIB
+  execute_process(
+    COMMAND
+      ${PERL_EXECUTABLE} -V:archlib
+      OUTPUT_VARIABLE
+        PERL_ARCHLIB_OUTPUT_VARIABLE
+      RESULT_VARIABLE
+        PERL_ARCHLIB_RESULT_VARIABLE
+  )
+  if (NOT PERL_ARCHLIB_RESULT_VARIABLE)
+    string(REGEX REPLACE "[a-z]+='([^']+)'.*" "\\1" PERL_ARCHLIB ${PERL_ARCHLIB_OUTPUT_VARIABLE})
+    perl_adjust_darwin_lib_variable( ARCHLIB )
+    file(TO_CMAKE_PATH "${PERL_ARCHLIB}" PERL_ARCHLIB)
+  endif ()
+  
+  ### PERL_PRIVLIB
+  execute_process(
+    COMMAND
+      ${PERL_EXECUTABLE} -V:installprivlib
+    OUTPUT_VARIABLE
+      PERL_PRIVLIB_OUTPUT_VARIABLE
+    RESULT_VARIABLE
+      PERL_PRIVLIB_RESULT_VARIABLE
+  )
+  if (NOT PERL_PRIVLIB_RESULT_VARIABLE)
+    string(REGEX REPLACE "install[a-z]+='([^']+)'.*" "\\1" PERL_PRIVLIB ${PERL_PRIVLIB_OUTPUT_VARIABLE})
+    perl_adjust_darwin_lib_variable( PRIVLIB )
+    file(TO_CMAKE_PATH "${PERL_PRIVLIB}" PERL_PRIVLIB)
+  endif ()
+
+  ### PERL_POSSIBLE_LIBRARY_NAMES
+  execute_process(
+    COMMAND
+      ${PERL_EXECUTABLE} -V:libperl
+    OUTPUT_VARIABLE
+      PERL_LIBRARY_OUTPUT_VARIABLE
+    RESULT_VARIABLE
+      PERL_LIBRARY_RESULT_VARIABLE
+  )
+  if (NOT PERL_LIBRARY_RESULT_VARIABLE)
+    string(REGEX REPLACE "libperl='([^']+)'.*" "\\1" PERL_POSSIBLE_LIBRARY_NAMES ${PERL_LIBRARY_OUTPUT_VARIABLE})
+  else ()
+    set(PERL_POSSIBLE_LIBRARY_NAMES perl${PERL_VERSION_STRING} perl)
+  endif ()
+
+  ### PERL_INCLUDE_PATH
+  find_path(PERL_INCLUDE_PATH
+    NAMES
+      perl.h
+    PATHS
+      ${PERL_ARCHLIB}/CORE
+      /System/${PERL_ARCHLIB}/CORE
+      /usr/lib/perl5/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
+      /usr/lib/perl/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
+      /usr/lib/perl5/${PERL_VERSION_STRING}/CORE
+      /usr/lib/perl/${PERL_VERSION_STRING}/CORE
+  )
+
+
+  ### PERL_LIBRARY
+  find_library(PERL_LIBRARY
+    NAMES
+    ${PERL_POSSIBLE_LIBRARY_NAMES} perl perl${PERL_VERSION_STRING} perl_i perl${PERL_VERSION_STRING}_i
+
+    PATHS
+      ${PERL_ARCHLIB}/CORE
+      /System/${PERL_ARCHLIB}/CORE
+      /usr/lib/perl5/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
+      /usr/lib/perl/${PERL_VERSION_STRING}/${PERL_ARCHNAME}/CORE
+      /usr/lib/perl5/${PERL_VERSION_STRING}/CORE
+      /usr/lib/perl/${PERL_VERSION_STRING}/CORE
+  )
+
+endif ()
+
+# handle the QUIETLY and REQUIRED arguments and set PERLLIBS_FOUND to TRUE if
+# all listed variables are TRUE
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(PerlLibs REQUIRED_VARS PERL_LIBRARY PERL_INCLUDE_PATH)
+
+# Introduced after CMake 2.6.4 to bring module into compliance
+set(PERL_INCLUDE_DIR  ${PERL_INCLUDE_PATH})
+set(PERL_INCLUDE_DIRS ${PERL_INCLUDE_PATH})
+set(PERL_LIBRARIES    ${PERL_LIBRARY})
+# For backward compatibility with CMake before 2.8.8
+set(PERL_VERSION ${PERL_VERSION_STRING})
+
+mark_as_advanced(
+  PERL_INCLUDE_PATH
+  PERL_LIBRARY
+)
diff --git a/cmake/FindPostgreSQL.cmake b/cmake/FindPostgreSQL.cmake
new file mode 100644
index 0000000..c30a3db
--- /dev/null
+++ b/cmake/FindPostgreSQL.cmake
@@ -0,0 +1,40 @@
+# - Find PostgreSQL
+# Find the PostgreSQL includes and client library
+# This module defines
+#  POSTGRESQL_INCLUDE_DIR, where to find POSTGRESQL.h
+#  POSTGRESQL_LIBRARY, the libraries needed to use POSTGRESQL.
+#  POSTGRESQL_FOUND, If false, do not try to use PostgreSQL.
+#
+# Copyright (c) 2013 Thomas Bonfort
+#
+
+find_path(POSTGRESQL_INCLUDE_DIR libpq-fe.h
+  /usr/include/server
+  /usr/include/postgresql
+  /usr/include/pgsql/server
+  /usr/local/include/pgsql/server
+  /usr/include/postgresql/server
+  /usr/include/postgresql/*/server
+  /usr/local/include/postgresql/server
+  /usr/local/include/postgresql/*/server
+  $ENV{ProgramFiles}/PostgreSQL/*/include/server
+  $ENV{SystemDrive}/PostgreSQL/*/include/server
+)
+
+find_library(POSTGRESQL_LIBRARY NAMES pq libpq
+  PATHS
+  /usr/lib
+  /usr/local/lib
+  /usr/lib/postgresql
+  /usr/lib64
+  /usr/local/lib64
+  /usr/lib64/postgresql
+  $ENV{ProgramFiles}/PostgreSQL/*/lib/ms
+  $ENV{SystemDrive}/PostgreSQL/*/lib/ms
+)
+
+set(POSTGRESQL_INCLUDE_DIRS ${POSTGRESQL_INCLUDE_DIR})
+set(POSTGRESQL_LIBRARIES ${POSTGRESQL_LIBRARY})
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(POSTGRESQL DEFAULT_MSG POSTGRESQL_LIBRARY POSTGRESQL_INCLUDE_DIR)
+mark_as_advanced(POSTGRESQL_LIBRARY POSTGRESQL_INCLUDE_DIR)
diff --git a/cmake/FindProj.cmake b/cmake/FindProj.cmake
new file mode 100644
index 0000000..31b0a4f
--- /dev/null
+++ b/cmake/FindProj.cmake
@@ -0,0 +1,17 @@
+# Find Proj
+#
+# If it's found it sets PROJ_FOUND to TRUE
+# and following variables are set:
+#    PROJ_INCLUDE_DIR
+#    PROJ_LIBRARY
+
+
+FIND_PATH(PROJ_INCLUDE_DIR proj_api.h)
+
+FIND_LIBRARY(PROJ_LIBRARY NAMES proj proj_i)
+
+set(PROJ_INCLUDE_DIRS ${PROJ_INCLUDE_DIR})
+set(PROJ_LIBRARIES ${PROJ_LIBRARY})
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(PROJ DEFAULT_MSG PROJ_LIBRARY PROJ_INCLUDE_DIR)
+mark_as_advanced(PROJ_LIBRARY PROJ_INCLUDE_DIR)
diff --git a/cmake/FindRSVG.cmake b/cmake/FindRSVG.cmake
new file mode 100644
index 0000000..094d36b
--- /dev/null
+++ b/cmake/FindRSVG.cmake
@@ -0,0 +1,39 @@
+# - Find Rsvg
+# Find the Rsvg includes and libraries
+#
+# Following variables are provided:
+# RSVG_FOUND
+#     True if Rsvg has been found
+# RSVG_INCLUDE_DIRS
+#     The include directories of Rsvg
+# RSVG_LIBRARIES
+#     Rsvg library list
+
+find_package(PkgConfig)
+pkg_check_modules(RSVG QUIET librsvg-2.0>=2.32.0)
+pkg_check_modules(GOBJECT QUIET gobject-2.0>=2.32.0)
+
+find_path(RSVG_INCLUDE_DIR
+   NAMES rsvg-cairo.h
+   HINTS ${RSVG_INCLUDE_DIRS}
+   PATH_SUFFIXES librsvg
+)
+
+find_library(RSVG_LIBRARY
+   NAME rsvg-2
+   HINTS ${RSVG_LIBRARY_DIRS}
+)
+
+find_path(GOBJECT_INCLUDE_DIR
+   NAMES glib-object.h
+   HINTS ${GOBJECT_INCLUDE_DIRS}
+)
+
+find_library(GOBJECT_LIBRARY
+   NAME gobject-2.0
+   HINTS ${GOBJECT_LIBRARY_DIRS}
+)
+
+find_package_handle_standard_args(RSVG DEFAULT_MSG RSVG_LIBRARY RSVG_INCLUDE_DIR)
+find_package_handle_standard_args(GOBJECT DEFAULT_MSG GOBJECT_LIBRARY GOBJECT_INCLUDE_DIR)
+mark_as_advanced(RSVG_LIBRARY RSVG_INCLUDE_DIR RSVG_LIBRARIES RSVG_INCLUDE_DIRS GOBJECT_LIBRARY GOBJECT_INCLUDE_DIR)
\ No newline at end of file
diff --git a/cmake/FindSDE.cmake b/cmake/FindSDE.cmake
new file mode 100644
index 0000000..270daa6
--- /dev/null
+++ b/cmake/FindSDE.cmake
@@ -0,0 +1,43 @@
+# Find ESRI SDE
+#
+# If it's found it sets SDE_FOUND to TRUE
+# and following variables are set:
+#    SDE_INCLUDE_DIRS
+#    SDE_LIBRARIES
+
+
+FIND_PATH(SDE_INCLUDE_DIR sdetype.h
+    PATHS ${SDE_DIR}
+    PATH_SUFFIXES include arcsde/coverages/include
+)
+
+if(SDE_VERSION STREQUAL "91")
+  FIND_LIBRARY(SDE_LIBRARY NAMES sde91 PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
+  FIND_LIBRARY(PE_LIBRARY NAMES pe91 PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
+  FIND_LIBRARY(SG_LIBRARY NAMES sg91 PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
+else(SDE_VERSION STREQUAL "91")
+  FIND_LIBRARY(SDE_LIBRARY NAMES sde PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
+  FIND_LIBRARY(PE_LIBRARY NAMES pe PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
+  FIND_LIBRARY(SG_LIBRARY NAMES sg PATHS ${SDE_DIR} PATH_SUFFIXES lib lib64)
+endif(SDE_VERSION STREQUAL "91")
+
+FIND_LIBRARY(SDE_DL_LIBRARY NAMES dl)
+FIND_LIBRARY(SDE_SOCKET_LIBRARY NAMES socket)
+FIND_LIBRARY(SDE_PTHREAD_LIBRARY NAMES pthread)
+
+set(SDE_LIBRARIES ${SDE_LIBRARY} ${PE_LIBRARY} ${SG_LIBRARY})
+if(SDE_DL_LIBRARY)
+  set(SDE_LIBRARIES ${SDE_LIBRARIES} dl)
+endif(SDE_DL_LIBRARY)
+if(SDE_SOCKET_LIBRARY)
+  set(SDE_LIBRARIES ${SDE_LIBRARIES} socket)
+endif(SDE_SOCKET_LIBRARY)
+if(SDE_PTHREAD_LIBRARY)
+  set(SDE_LIBRARIES ${SDE_LIBRARIES} pthread)
+endif(SDE_PTHREAD_LIBRARY)
+
+set(SDE_INCLUDE_DIRS ${SDE_INCLUDE_DIR})
+
+include(FindPackageHandleStandardArgs)
+find_package_handle_standard_args(SDE DEFAULT_MSG SDE_LIBRARIES SDE_INCLUDE_DIRS)
+mark_as_advanced(SDE_LIBRARIES SDE_INCLUDE_DIRS)
diff --git a/cmake/FindSVGCairo.cmake b/cmake/FindSVGCairo.cmake
new file mode 100644
index 0000000..8da024f
--- /dev/null
+++ b/cmake/FindSVGCairo.cmake
@@ -0,0 +1,52 @@
+# - Find LibSVG and LibSVG-Cairo
+#
+# Following variables are provided:
+# SVG_FOUND
+#     True if libsvg has been found
+# SVG_INCLUDE_DIR
+#     The include directories of libsvg
+# SVG_LIBRARY
+#     libsvg library list
+# Following variables are provided:
+# SVGCAIRO_FOUND
+#     True if libsvg-cairo has been found
+# SVGCAIRO_INCLUDE_DIR
+#     The include directories of libsvg-cairo
+# SVGCAIRO_LIBRARY
+#     libsvg-cairo library list
+
+
+find_package(PkgConfig)
+pkg_check_modules(PC_SVG QUIET libsvg>=0.1.4)
+pkg_check_modules(PC_SVGCAIRO QUIET libsvg-cairo>=0.1.6)
+
+find_path(SVG_INCLUDE_DIR
+   NAMES svg.h
+   HINTS ${PC_SVG_INCLUDE_DIR} ${PC_SVG_INCLUDE_DIRS}
+)
+
+find_library(SVG_LIBRARY
+   NAME svg
+   HINTS ${PC_SVG_LIBDIR} ${PC_SVG_LIBRARY_DIRS}
+)
+
+find_path(SVGCAIRO_INCLUDE_DIR
+   NAMES svg-cairo.h
+   HINTS ${PC_SVGCAIRO_INCLUDE_DIR} ${PC_SVGCAIRO_INCLUDE_DIRS}
+)
+
+find_library(SVGCAIRO_LIBRARY
+   NAME svg-cairo
+   HINTS ${PC_SVGCAIRO_LIBDIR} ${PC_SVGCAIRO_LIBRARY_DIRS}
+)
+
+include(FindPackageHandleStandardArgs)
+
+set(SVG_INCLUDE_DIRS ${SVG_INCLUDE_DIR})
+set(SVG_LIBRARIES ${SVG_LIBRARY})
+find_package_handle_standard_args(SVG DEFAULT_MSG SVG_LIBRARY SVG_INCLUDE_DIR)
+mark_as_advanced(SVG_LIBRARY SVG_INCLUDE_DIR)
+set(SVGCAIRO_INCLUDE_DIRS ${SVGCAIRO_INCLUDE_DIR})
+set(SVGCAIRO_LIBRARIES ${SVGCAIRO_LIBRARY})
+find_package_handle_standard_args(SVGCAIRO DEFAULT_MSG SVGCAIRO_LIBRARY SVGCAIRO_INCLUDE_DIR)
+mark_as_advanced(SVGCAIRO_LIBRARY SVGCAIRO_INCLUDE_DIR)
diff --git a/config.guess b/config.guess
deleted file mode 100755
index 43f0cdb..0000000
--- a/config.guess
+++ /dev/null
@@ -1,1519 +0,0 @@
-#! /bin/sh
-# Attempt to guess a canonical system name.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011 Free Software Foundation, Inc.
-
-timestamp='2011-10-01'
-
-# This file is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Originally written by Per Bothner.  Please send patches (context
-# diff format) to <config-patches at gnu.org> and include a ChangeLog
-# entry.
-#
-# This script attempts to guess a canonical system name similar to
-# config.sub.  If it succeeds, it prints the system name on stdout, and
-# exits with 0.  Otherwise, it exits with 1.
-#
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION]
-
-Output the configuration name of the system \`$me' is run on.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <config-patches at gnu.org>."
-
-version="\
-GNU config.guess ($timestamp)
-
-Originally written by Per Bothner.
-Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000,
-2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free
-Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
-    --version | -v )
-       echo "$version" ; exit ;;
-    --help | --h* | -h )
-       echo "$usage"; exit ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help" >&2
-       exit 1 ;;
-    * )
-       break ;;
-  esac
-done
-
-if test $# != 0; then
-  echo "$me: too many arguments$help" >&2
-  exit 1
-fi
-
-trap 'exit 1' 1 2 15
-
-# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
-# compiler to aid in system detection is discouraged as it requires
-# temporary files to be created and, as you can see below, it is a
-# headache to deal with in a portable fashion.
-
-# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
-# use `HOST_CC' if defined, but it is deprecated.
-
-# Portable tmp directory creation inspired by the Autoconf team.
-
-set_cc_for_build='
-trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
-trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
-: ${TMPDIR=/tmp} ;
- { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
- { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
- { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
- { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
-dummy=$tmp/dummy ;
-tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
-case $CC_FOR_BUILD,$HOST_CC,$CC in
- ,,)    echo "int x;" > $dummy.c ;
-	for c in cc gcc c89 c99 ; do
-	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
-	     CC_FOR_BUILD="$c"; break ;
-	  fi ;
-	done ;
-	if test x"$CC_FOR_BUILD" = x ; then
-	  CC_FOR_BUILD=no_compiler_found ;
-	fi
-	;;
- ,,*)   CC_FOR_BUILD=$CC ;;
- ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
-esac ; set_cc_for_build= ;'
-
-# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
-# (ghazi at noc.rutgers.edu 1994-08-24)
-if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
-	PATH=$PATH:/.attbin ; export PATH
-fi
-
-UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
-UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
-UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
-UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
-
-# Note: order is significant - the case branches are not exclusive.
-
-case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
-    *:NetBSD:*:*)
-	# NetBSD (nbsd) targets should (where applicable) match one or
-	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
-	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
-	# switched to ELF, *-*-netbsd* would select the old
-	# object file format.  This provides both forward
-	# compatibility and a consistent mechanism for selecting the
-	# object file format.
-	#
-	# Note: NetBSD doesn't particularly care about the vendor
-	# portion of the name.  We always set it to "unknown".
-	sysctl="sysctl -n hw.machine_arch"
-	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
-	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
-	case "${UNAME_MACHINE_ARCH}" in
-	    armeb) machine=armeb-unknown ;;
-	    arm*) machine=arm-unknown ;;
-	    sh3el) machine=shl-unknown ;;
-	    sh3eb) machine=sh-unknown ;;
-	    sh5el) machine=sh5le-unknown ;;
-	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
-	esac
-	# The Operating System including object format, if it has switched
-	# to ELF recently, or will in the future.
-	case "${UNAME_MACHINE_ARCH}" in
-	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
-		eval $set_cc_for_build
-		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
-			| grep -q __ELF__
-		then
-		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
-		    # Return netbsd for either.  FIX?
-		    os=netbsd
-		else
-		    os=netbsdelf
-		fi
-		;;
-	    *)
-		os=netbsd
-		;;
-	esac
-	# The OS release
-	# Debian GNU/NetBSD machines have a different userland, and
-	# thus, need a distinct triplet. However, they do not need
-	# kernel version information, so it can be replaced with a
-	# suitable tag, in the style of linux-gnu.
-	case "${UNAME_VERSION}" in
-	    Debian*)
-		release='-gnu'
-		;;
-	    *)
-		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
-		;;
-	esac
-	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
-	# contains redundant information, the shorter form:
-	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
-	echo "${machine}-${os}${release}"
-	exit ;;
-    *:OpenBSD:*:*)
-	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
-	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
-	exit ;;
-    *:ekkoBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
-	exit ;;
-    *:SolidBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE}
-	exit ;;
-    macppc:MirBSD:*:*)
-	echo powerpc-unknown-mirbsd${UNAME_RELEASE}
-	exit ;;
-    *:MirBSD:*:*)
-	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
-	exit ;;
-    alpha:OSF1:*:*)
-	case $UNAME_RELEASE in
-	*4.0)
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
-		;;
-	*5.*)
-		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
-		;;
-	esac
-	# According to Compaq, /usr/sbin/psrinfo has been available on
-	# OSF/1 and Tru64 systems produced since 1995.  I hope that
-	# covers most systems running today.  This code pipes the CPU
-	# types through head -n 1, so we only detect the type of CPU 0.
-	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
-	case "$ALPHA_CPU_TYPE" in
-	    "EV4 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV4.5 (21064)")
-		UNAME_MACHINE="alpha" ;;
-	    "LCA4 (21066/21068)")
-		UNAME_MACHINE="alpha" ;;
-	    "EV5 (21164)")
-		UNAME_MACHINE="alphaev5" ;;
-	    "EV5.6 (21164A)")
-		UNAME_MACHINE="alphaev56" ;;
-	    "EV5.6 (21164PC)")
-		UNAME_MACHINE="alphapca56" ;;
-	    "EV5.7 (21164PC)")
-		UNAME_MACHINE="alphapca57" ;;
-	    "EV6 (21264)")
-		UNAME_MACHINE="alphaev6" ;;
-	    "EV6.7 (21264A)")
-		UNAME_MACHINE="alphaev67" ;;
-	    "EV6.8CB (21264C)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8AL (21264B)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.8CX (21264D)")
-		UNAME_MACHINE="alphaev68" ;;
-	    "EV6.9A (21264/EV69A)")
-		UNAME_MACHINE="alphaev69" ;;
-	    "EV7 (21364)")
-		UNAME_MACHINE="alphaev7" ;;
-	    "EV7.9 (21364A)")
-		UNAME_MACHINE="alphaev79" ;;
-	esac
-	# A Pn.n version is a patched version.
-	# A Vn.n version is a released version.
-	# A Tn.n version is a released field test version.
-	# A Xn.n version is an unreleased experimental baselevel.
-	# 1.2 uses "1.2" for uname -r.
-	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	# Reset EXIT trap before exiting to avoid spurious non-zero exit code.
-	exitcode=$?
-	trap '' 0
-	exit $exitcode ;;
-    Alpha\ *:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# Should we change UNAME_MACHINE based on the output of uname instead
-	# of the specific Alpha model?
-	echo alpha-pc-interix
-	exit ;;
-    21064:Windows_NT:50:3)
-	echo alpha-dec-winnt3.5
-	exit ;;
-    Amiga*:UNIX_System_V:4.0:*)
-	echo m68k-unknown-sysv4
-	exit ;;
-    *:[Aa]miga[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-amigaos
-	exit ;;
-    *:[Mm]orph[Oo][Ss]:*:*)
-	echo ${UNAME_MACHINE}-unknown-morphos
-	exit ;;
-    *:OS/390:*:*)
-	echo i370-ibm-openedition
-	exit ;;
-    *:z/VM:*:*)
-	echo s390-ibm-zvmoe
-	exit ;;
-    *:OS400:*:*)
-	echo powerpc-ibm-os400
-	exit ;;
-    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
-	echo arm-acorn-riscix${UNAME_RELEASE}
-	exit ;;
-    arm:riscos:*:*|arm:RISCOS:*:*)
-	echo arm-unknown-riscos
-	exit ;;
-    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
-	echo hppa1.1-hitachi-hiuxmpp
-	exit ;;
-    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
-	# akee at wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
-	if test "`(/bin/universe) 2>/dev/null`" = att ; then
-		echo pyramid-pyramid-sysv3
-	else
-		echo pyramid-pyramid-bsd
-	fi
-	exit ;;
-    NILE*:*:*:dcosx)
-	echo pyramid-pyramid-svr4
-	exit ;;
-    DRS?6000:unix:4.0:6*)
-	echo sparc-icl-nx6
-	exit ;;
-    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
-	case `/usr/bin/uname -p` in
-	    sparc) echo sparc-icl-nx7; exit ;;
-	esac ;;
-    s390x:SunOS:*:*)
-	echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    sun4H:SunOS:5.*:*)
-	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
-	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*)
-	echo i386-pc-auroraux${UNAME_RELEASE}
-	exit ;;
-    i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*)
-	eval $set_cc_for_build
-	SUN_ARCH="i386"
-	# If there is a compiler, see if it is configured for 64-bit objects.
-	# Note that the Sun cc does not turn __LP64__ into 1 like gcc does.
-	# This test works for both compilers.
-	if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-	    if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \
-		(CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		grep IS_64BIT_ARCH >/dev/null
-	    then
-		SUN_ARCH="x86_64"
-	    fi
-	fi
-	echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    sun4*:SunOS:6*:*)
-	# According to config.sub, this is the proper way to canonicalize
-	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
-	# it's likely to be more like Solaris than SunOS4.
-	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    sun4*:SunOS:*:*)
-	case "`/usr/bin/arch -k`" in
-	    Series*|S4*)
-		UNAME_RELEASE=`uname -v`
-		;;
-	esac
-	# Japanese Language versions have a version number like `4.1.3-JL'.
-	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
-	exit ;;
-    sun3*:SunOS:*:*)
-	echo m68k-sun-sunos${UNAME_RELEASE}
-	exit ;;
-    sun*:*:4.2BSD:*)
-	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
-	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
-	case "`/bin/arch`" in
-	    sun3)
-		echo m68k-sun-sunos${UNAME_RELEASE}
-		;;
-	    sun4)
-		echo sparc-sun-sunos${UNAME_RELEASE}
-		;;
-	esac
-	exit ;;
-    aushp:SunOS:*:*)
-	echo sparc-auspex-sunos${UNAME_RELEASE}
-	exit ;;
-    # The situation for MiNT is a little confusing.  The machine name
-    # can be virtually everything (everything which is not
-    # "atarist" or "atariste" at least should have a processor
-    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
-    # to the lowercase version "mint" (or "freemint").  Finally
-    # the system name "TOS" denotes a system which is actually not
-    # MiNT.  But MiNT is downward compatible to TOS, so this should
-    # be no problem.
-    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-	exit ;;
-    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-	exit ;;
-    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
-	echo m68k-atari-mint${UNAME_RELEASE}
-	exit ;;
-    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
-	echo m68k-milan-mint${UNAME_RELEASE}
-	exit ;;
-    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
-	echo m68k-hades-mint${UNAME_RELEASE}
-	exit ;;
-    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
-	echo m68k-unknown-mint${UNAME_RELEASE}
-	exit ;;
-    m68k:machten:*:*)
-	echo m68k-apple-machten${UNAME_RELEASE}
-	exit ;;
-    powerpc:machten:*:*)
-	echo powerpc-apple-machten${UNAME_RELEASE}
-	exit ;;
-    RISC*:Mach:*:*)
-	echo mips-dec-mach_bsd4.3
-	exit ;;
-    RISC*:ULTRIX:*:*)
-	echo mips-dec-ultrix${UNAME_RELEASE}
-	exit ;;
-    VAX*:ULTRIX*:*:*)
-	echo vax-dec-ultrix${UNAME_RELEASE}
-	exit ;;
-    2020:CLIX:*:* | 2430:CLIX:*:*)
-	echo clipper-intergraph-clix${UNAME_RELEASE}
-	exit ;;
-    mips:*:*:UMIPS | mips:*:*:RISCos)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-#ifdef __cplusplus
-#include <stdio.h>  /* for printf() prototype */
-	int main (int argc, char *argv[]) {
-#else
-	int main (argc, argv) int argc; char *argv[]; {
-#endif
-	#if defined (host_mips) && defined (MIPSEB)
-	#if defined (SYSTYPE_SYSV)
-	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_SVR4)
-	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
-	#endif
-	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
-	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
-	#endif
-	#endif
-	  exit (-1);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c &&
-	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
-	  SYSTEM_NAME=`$dummy $dummyarg` &&
-	    { echo "$SYSTEM_NAME"; exit; }
-	echo mips-mips-riscos${UNAME_RELEASE}
-	exit ;;
-    Motorola:PowerMAX_OS:*:*)
-	echo powerpc-motorola-powermax
-	exit ;;
-    Motorola:*:4.3:PL8-*)
-	echo powerpc-harris-powermax
-	exit ;;
-    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
-	echo powerpc-harris-powermax
-	exit ;;
-    Night_Hawk:Power_UNIX:*:*)
-	echo powerpc-harris-powerunix
-	exit ;;
-    m88k:CX/UX:7*:*)
-	echo m88k-harris-cxux7
-	exit ;;
-    m88k:*:4*:R4*)
-	echo m88k-motorola-sysv4
-	exit ;;
-    m88k:*:3*:R3*)
-	echo m88k-motorola-sysv3
-	exit ;;
-    AViiON:dgux:*:*)
-	# DG/UX returns AViiON for all architectures
-	UNAME_PROCESSOR=`/usr/bin/uname -p`
-	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
-	then
-	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
-	       [ ${TARGET_BINARY_INTERFACE}x = x ]
-	    then
-		echo m88k-dg-dgux${UNAME_RELEASE}
-	    else
-		echo m88k-dg-dguxbcs${UNAME_RELEASE}
-	    fi
-	else
-	    echo i586-dg-dgux${UNAME_RELEASE}
-	fi
-	exit ;;
-    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
-	echo m88k-dolphin-sysv3
-	exit ;;
-    M88*:*:R3*:*)
-	# Delta 88k system running SVR3
-	echo m88k-motorola-sysv3
-	exit ;;
-    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
-	echo m88k-tektronix-sysv3
-	exit ;;
-    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
-	echo m68k-tektronix-bsd
-	exit ;;
-    *:IRIX*:*:*)
-	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
-	exit ;;
-    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
-	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
-	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
-    i*86:AIX:*:*)
-	echo i386-ibm-aix
-	exit ;;
-    ia64:AIX:*:*)
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
-	exit ;;
-    *:AIX:2:3)
-	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
-		eval $set_cc_for_build
-		sed 's/^		//' << EOF >$dummy.c
-		#include <sys/systemcfg.h>
-
-		main()
-			{
-			if (!__power_pc())
-				exit(1);
-			puts("powerpc-ibm-aix3.2.5");
-			exit(0);
-			}
-EOF
-		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
-		then
-			echo "$SYSTEM_NAME"
-		else
-			echo rs6000-ibm-aix3.2.5
-		fi
-	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
-		echo rs6000-ibm-aix3.2.4
-	else
-		echo rs6000-ibm-aix3.2
-	fi
-	exit ;;
-    *:AIX:*:[4567])
-	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
-	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
-		IBM_ARCH=rs6000
-	else
-		IBM_ARCH=powerpc
-	fi
-	if [ -x /usr/bin/oslevel ] ; then
-		IBM_REV=`/usr/bin/oslevel`
-	else
-		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
-	fi
-	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
-	exit ;;
-    *:AIX:*:*)
-	echo rs6000-ibm-aix
-	exit ;;
-    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
-	echo romp-ibm-bsd4.4
-	exit ;;
-    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
-	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
-	exit ;;                             # report: romp-ibm BSD 4.3
-    *:BOSX:*:*)
-	echo rs6000-bull-bosx
-	exit ;;
-    DPX/2?00:B.O.S.:*:*)
-	echo m68k-bull-sysv3
-	exit ;;
-    9000/[34]??:4.3bsd:1.*:*)
-	echo m68k-hp-bsd
-	exit ;;
-    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
-	echo m68k-hp-bsd4.4
-	exit ;;
-    9000/[34678]??:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	case "${UNAME_MACHINE}" in
-	    9000/31? )            HP_ARCH=m68000 ;;
-	    9000/[34]?? )         HP_ARCH=m68k ;;
-	    9000/[678][0-9][0-9])
-		if [ -x /usr/bin/getconf ]; then
-		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
-		    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
-		    case "${sc_cpu_version}" in
-		      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
-		      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
-		      532)                      # CPU_PA_RISC2_0
-			case "${sc_kernel_bits}" in
-			  32) HP_ARCH="hppa2.0n" ;;
-			  64) HP_ARCH="hppa2.0w" ;;
-			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
-			esac ;;
-		    esac
-		fi
-		if [ "${HP_ARCH}" = "" ]; then
-		    eval $set_cc_for_build
-		    sed 's/^		//' << EOF >$dummy.c
-
-		#define _HPUX_SOURCE
-		#include <stdlib.h>
-		#include <unistd.h>
-
-		int main ()
-		{
-		#if defined(_SC_KERNEL_BITS)
-		    long bits = sysconf(_SC_KERNEL_BITS);
-		#endif
-		    long cpu  = sysconf (_SC_CPU_VERSION);
-
-		    switch (cpu)
-			{
-			case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
-			case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
-			case CPU_PA_RISC2_0:
-		#if defined(_SC_KERNEL_BITS)
-			    switch (bits)
-				{
-				case 64: puts ("hppa2.0w"); break;
-				case 32: puts ("hppa2.0n"); break;
-				default: puts ("hppa2.0"); break;
-				} break;
-		#else  /* !defined(_SC_KERNEL_BITS) */
-			    puts ("hppa2.0"); break;
-		#endif
-			default: puts ("hppa1.0"); break;
-			}
-		    exit (0);
-		}
-EOF
-		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
-		    test -z "$HP_ARCH" && HP_ARCH=hppa
-		fi ;;
-	esac
-	if [ ${HP_ARCH} = "hppa2.0w" ]
-	then
-	    eval $set_cc_for_build
-
-	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
-	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
-	    # generating 64-bit code.  GNU and HP use different nomenclature:
-	    #
-	    # $ CC_FOR_BUILD=cc ./config.guess
-	    # => hppa2.0w-hp-hpux11.23
-	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
-	    # => hppa64-hp-hpux11.23
-
-	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
-		grep -q __LP64__
-	    then
-		HP_ARCH="hppa2.0w"
-	    else
-		HP_ARCH="hppa64"
-	    fi
-	fi
-	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
-	exit ;;
-    ia64:HP-UX:*:*)
-	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
-	echo ia64-hp-hpux${HPUX_REV}
-	exit ;;
-    3050*:HI-UX:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#include <unistd.h>
-	int
-	main ()
-	{
-	  long cpu = sysconf (_SC_CPU_VERSION);
-	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
-	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
-	     results, however.  */
-	  if (CPU_IS_PA_RISC (cpu))
-	    {
-	      switch (cpu)
-		{
-		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
-		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
-		  default: puts ("hppa-hitachi-hiuxwe2"); break;
-		}
-	    }
-	  else if (CPU_IS_HP_MC68K (cpu))
-	    puts ("m68k-hitachi-hiuxwe2");
-	  else puts ("unknown-hitachi-hiuxwe2");
-	  exit (0);
-	}
-EOF
-	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
-		{ echo "$SYSTEM_NAME"; exit; }
-	echo unknown-hitachi-hiuxwe2
-	exit ;;
-    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
-	echo hppa1.1-hp-bsd
-	exit ;;
-    9000/8??:4.3bsd:*:*)
-	echo hppa1.0-hp-bsd
-	exit ;;
-    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
-	echo hppa1.0-hp-mpeix
-	exit ;;
-    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
-	echo hppa1.1-hp-osf
-	exit ;;
-    hp8??:OSF1:*:*)
-	echo hppa1.0-hp-osf
-	exit ;;
-    i*86:OSF1:*:*)
-	if [ -x /usr/sbin/sysversion ] ; then
-	    echo ${UNAME_MACHINE}-unknown-osf1mk
-	else
-	    echo ${UNAME_MACHINE}-unknown-osf1
-	fi
-	exit ;;
-    parisc*:Lites*:*:*)
-	echo hppa1.1-hp-lites
-	exit ;;
-    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
-	echo c1-convex-bsd
-	exit ;;
-    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit ;;
-    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
-	echo c34-convex-bsd
-	exit ;;
-    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
-	echo c38-convex-bsd
-	exit ;;
-    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
-	echo c4-convex-bsd
-	exit ;;
-    CRAY*Y-MP:*:*:*)
-	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*[A-Z]90:*:*:*)
-	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
-	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
-	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
-	      -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*TS:*:*:*)
-	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*T3E:*:*:*)
-	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    CRAY*SV1:*:*:*)
-	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    *:UNICOS/mp:*:*)
-	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
-	exit ;;
-    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
-	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-	FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
-	echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-	exit ;;
-    5000:UNIX_System_V:4.*:*)
-	FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
-	FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
-	echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
-	exit ;;
-    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
-	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
-	exit ;;
-    sparc*:BSD/OS:*:*)
-	echo sparc-unknown-bsdi${UNAME_RELEASE}
-	exit ;;
-    *:BSD/OS:*:*)
-	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
-	exit ;;
-    *:FreeBSD:*:*)
-	UNAME_PROCESSOR=`/usr/bin/uname -p`
-	case ${UNAME_PROCESSOR} in
-	    amd64)
-		echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-	    *)
-		echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;;
-	esac
-	exit ;;
-    i*:CYGWIN*:*)
-	echo ${UNAME_MACHINE}-pc-cygwin
-	exit ;;
-    *:MINGW*:*)
-	echo ${UNAME_MACHINE}-pc-mingw32
-	exit ;;
-    i*:windows32*:*)
-	# uname -m includes "-pc" on this system.
-	echo ${UNAME_MACHINE}-mingw32
-	exit ;;
-    i*:PW*:*)
-	echo ${UNAME_MACHINE}-pc-pw32
-	exit ;;
-    *:Interix*:*)
-	case ${UNAME_MACHINE} in
-	    x86)
-		echo i586-pc-interix${UNAME_RELEASE}
-		exit ;;
-	    authenticamd | genuineintel | EM64T)
-		echo x86_64-unknown-interix${UNAME_RELEASE}
-		exit ;;
-	    IA64)
-		echo ia64-unknown-interix${UNAME_RELEASE}
-		exit ;;
-	esac ;;
-    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
-	echo i${UNAME_MACHINE}-pc-mks
-	exit ;;
-    8664:Windows_NT:*)
-	echo x86_64-pc-mks
-	exit ;;
-    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
-	# How do we know it's Interix rather than the generic POSIX subsystem?
-	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
-	# UNAME_MACHINE based on the output of uname instead of i386?
-	echo i586-pc-interix
-	exit ;;
-    i*:UWIN*:*)
-	echo ${UNAME_MACHINE}-pc-uwin
-	exit ;;
-    amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*)
-	echo x86_64-unknown-cygwin
-	exit ;;
-    p*:CYGWIN*:*)
-	echo powerpcle-unknown-cygwin
-	exit ;;
-    prep*:SunOS:5.*:*)
-	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
-	exit ;;
-    *:GNU:*:*)
-	# the GNU system
-	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
-	exit ;;
-    *:GNU/*:*:*)
-	# other systems with GNU libc and userland
-	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
-	exit ;;
-    i*86:Minix:*:*)
-	echo ${UNAME_MACHINE}-pc-minix
-	exit ;;
-    alpha:Linux:*:*)
-	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
-	  EV5)   UNAME_MACHINE=alphaev5 ;;
-	  EV56)  UNAME_MACHINE=alphaev56 ;;
-	  PCA56) UNAME_MACHINE=alphapca56 ;;
-	  PCA57) UNAME_MACHINE=alphapca56 ;;
-	  EV6)   UNAME_MACHINE=alphaev6 ;;
-	  EV67)  UNAME_MACHINE=alphaev67 ;;
-	  EV68*) UNAME_MACHINE=alphaev68 ;;
-	esac
-	objdump --private-headers /bin/sh | grep -q ld.so.1
-	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
-	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
-	exit ;;
-    arm*:Linux:*:*)
-	eval $set_cc_for_build
-	if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \
-	    | grep -q __ARM_EABI__
-	then
-	    echo ${UNAME_MACHINE}-unknown-linux-gnu
-	else
-	    if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \
-		| grep -q __ARM_PCS_VFP
-	    then
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabi
-	    else
-		echo ${UNAME_MACHINE}-unknown-linux-gnueabihf
-	    fi
-	fi
-	exit ;;
-    avr32*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    cris:Linux:*:*)
-	echo cris-axis-linux-gnu
-	exit ;;
-    crisv32:Linux:*:*)
-	echo crisv32-axis-linux-gnu
-	exit ;;
-    frv:Linux:*:*)
-	echo frv-unknown-linux-gnu
-	exit ;;
-    hexagon:Linux:*:*)
-	echo hexagon-unknown-linux-gnu
-	exit ;;
-    i*86:Linux:*:*)
-	LIBC=gnu
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#ifdef __dietlibc__
-	LIBC=dietlibc
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC'`
-	echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
-	exit ;;
-    ia64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    m32r*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    m68*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    mips:Linux:*:* | mips64:Linux:*:*)
-	eval $set_cc_for_build
-	sed 's/^	//' << EOF >$dummy.c
-	#undef CPU
-	#undef ${UNAME_MACHINE}
-	#undef ${UNAME_MACHINE}el
-	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
-	CPU=${UNAME_MACHINE}el
-	#else
-	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
-	CPU=${UNAME_MACHINE}
-	#else
-	CPU=
-	#endif
-	#endif
-EOF
-	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'`
-	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
-	;;
-    or32:Linux:*:*)
-	echo or32-unknown-linux-gnu
-	exit ;;
-    padre:Linux:*:*)
-	echo sparc-unknown-linux-gnu
-	exit ;;
-    parisc64:Linux:*:* | hppa64:Linux:*:*)
-	echo hppa64-unknown-linux-gnu
-	exit ;;
-    parisc:Linux:*:* | hppa:Linux:*:*)
-	# Look for CPU level
-	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
-	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
-	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
-	  *)    echo hppa-unknown-linux-gnu ;;
-	esac
-	exit ;;
-    ppc64:Linux:*:*)
-	echo powerpc64-unknown-linux-gnu
-	exit ;;
-    ppc:Linux:*:*)
-	echo powerpc-unknown-linux-gnu
-	exit ;;
-    s390:Linux:*:* | s390x:Linux:*:*)
-	echo ${UNAME_MACHINE}-ibm-linux
-	exit ;;
-    sh64*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    sh*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    sparc:Linux:*:* | sparc64:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    tile*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    vax:Linux:*:*)
-	echo ${UNAME_MACHINE}-dec-linux-gnu
-	exit ;;
-    x86_64:Linux:*:*)
-	echo x86_64-unknown-linux-gnu
-	exit ;;
-    xtensa*:Linux:*:*)
-	echo ${UNAME_MACHINE}-unknown-linux-gnu
-	exit ;;
-    i*86:DYNIX/ptx:4*:*)
-	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
-	# earlier versions are messed up and put the nodename in both
-	# sysname and nodename.
-	echo i386-sequent-sysv4
-	exit ;;
-    i*86:UNIX_SV:4.2MP:2.*)
-	# Unixware is an offshoot of SVR4, but it has its own version
-	# number series starting with 2...
-	# I am not positive that other SVR4 systems won't match this,
-	# I just have to hope.  -- rms.
-	# Use sysv4.2uw... so that sysv4* matches it.
-	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
-	exit ;;
-    i*86:OS/2:*:*)
-	# If we were able to find `uname', then EMX Unix compatibility
-	# is probably installed.
-	echo ${UNAME_MACHINE}-pc-os2-emx
-	exit ;;
-    i*86:XTS-300:*:STOP)
-	echo ${UNAME_MACHINE}-unknown-stop
-	exit ;;
-    i*86:atheos:*:*)
-	echo ${UNAME_MACHINE}-unknown-atheos
-	exit ;;
-    i*86:syllable:*:*)
-	echo ${UNAME_MACHINE}-pc-syllable
-	exit ;;
-    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*)
-	echo i386-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    i*86:*DOS:*:*)
-	echo ${UNAME_MACHINE}-pc-msdosdjgpp
-	exit ;;
-    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
-	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
-	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
-		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
-	else
-		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
-	fi
-	exit ;;
-    i*86:*:5:[678]*)
-	# UnixWare 7.x, OpenUNIX and OpenServer 6.
-	case `/bin/uname -X | grep "^Machine"` in
-	    *486*)	     UNAME_MACHINE=i486 ;;
-	    *Pentium)	     UNAME_MACHINE=i586 ;;
-	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
-	esac
-	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
-	exit ;;
-    i*86:*:3.2:*)
-	if test -f /usr/options/cb.name; then
-		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
-		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
-	elif /bin/uname -X 2>/dev/null >/dev/null ; then
-		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
-		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
-		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
-			&& UNAME_MACHINE=i586
-		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
-			&& UNAME_MACHINE=i686
-		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
-	else
-		echo ${UNAME_MACHINE}-pc-sysv32
-	fi
-	exit ;;
-    pc:*:*:*)
-	# Left here for compatibility:
-	# uname -m prints for DJGPP always 'pc', but it prints nothing about
-	# the processor, so we play safe by assuming i586.
-	# Note: whatever this is, it MUST be the same as what config.sub
-	# prints for the "djgpp" host, or else GDB configury will decide that
-	# this is a cross-build.
-	echo i586-pc-msdosdjgpp
-	exit ;;
-    Intel:Mach:3*:*)
-	echo i386-pc-mach3
-	exit ;;
-    paragon:*:*:*)
-	echo i860-intel-osf1
-	exit ;;
-    i860:*:4.*:*) # i860-SVR4
-	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
-	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
-	else # Add other i860-SVR4 vendors below as they are discovered.
-	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
-	fi
-	exit ;;
-    mini*:CTIX:SYS*5:*)
-	# "miniframe"
-	echo m68010-convergent-sysv
-	exit ;;
-    mc68k:UNIX:SYSTEM5:3.51m)
-	echo m68k-convergent-sysv
-	exit ;;
-    M680?0:D-NIX:5.3:*)
-	echo m68k-diab-dnix
-	exit ;;
-    M68*:*:R3V[5678]*:*)
-	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
-    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
-	OS_REL=''
-	test -r /etc/.relid \
-	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	  && { echo i486-ncr-sysv4; exit; } ;;
-    NCR*:*:4.2:* | MPRAS*:*:4.2:*)
-	OS_REL='.3'
-	test -r /etc/.relid \
-	    && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
-	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
-	    && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
-	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; }
-	/bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \
-	    && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
-    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
-	echo m68k-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    mc68030:UNIX_System_V:4.*:*)
-	echo m68k-atari-sysv4
-	exit ;;
-    TSUNAMI:LynxOS:2.*:*)
-	echo sparc-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    rs6000:LynxOS:2.*:*)
-	echo rs6000-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*)
-	echo powerpc-unknown-lynxos${UNAME_RELEASE}
-	exit ;;
-    SM[BE]S:UNIX_SV:*:*)
-	echo mips-dde-sysv${UNAME_RELEASE}
-	exit ;;
-    RM*:ReliantUNIX-*:*:*)
-	echo mips-sni-sysv4
-	exit ;;
-    RM*:SINIX-*:*:*)
-	echo mips-sni-sysv4
-	exit ;;
-    *:SINIX-*:*:*)
-	if uname -p 2>/dev/null >/dev/null ; then
-		UNAME_MACHINE=`(uname -p) 2>/dev/null`
-		echo ${UNAME_MACHINE}-sni-sysv4
-	else
-		echo ns32k-sni-sysv
-	fi
-	exit ;;
-    PENTIUM:*:4.0*:*)	# Unisys `ClearPath HMP IX 4000' SVR4/MP effort
-			# says <Richard.M.Bartel at ccMail.Census.GOV>
-	echo i586-unisys-sysv4
-	exit ;;
-    *:UNIX_System_V:4*:FTX*)
-	# From Gerald Hewes <hewes at openmarket.com>.
-	# How about differentiating between stratus architectures? -djm
-	echo hppa1.1-stratus-sysv4
-	exit ;;
-    *:*:*:FTX*)
-	# From seanf at swdc.stratus.com.
-	echo i860-stratus-sysv4
-	exit ;;
-    i*86:VOS:*:*)
-	# From Paul.Green at stratus.com.
-	echo ${UNAME_MACHINE}-stratus-vos
-	exit ;;
-    *:VOS:*:*)
-	# From Paul.Green at stratus.com.
-	echo hppa1.1-stratus-vos
-	exit ;;
-    mc68*:A/UX:*:*)
-	echo m68k-apple-aux${UNAME_RELEASE}
-	exit ;;
-    news*:NEWS-OS:6*:*)
-	echo mips-sony-newsos6
-	exit ;;
-    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
-	if [ -d /usr/nec ]; then
-		echo mips-nec-sysv${UNAME_RELEASE}
-	else
-		echo mips-unknown-sysv${UNAME_RELEASE}
-	fi
-	exit ;;
-    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
-	echo powerpc-be-beos
-	exit ;;
-    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
-	echo powerpc-apple-beos
-	exit ;;
-    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
-	echo i586-pc-beos
-	exit ;;
-    BePC:Haiku:*:*)	# Haiku running on Intel PC compatible.
-	echo i586-pc-haiku
-	exit ;;
-    SX-4:SUPER-UX:*:*)
-	echo sx4-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-5:SUPER-UX:*:*)
-	echo sx5-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-6:SUPER-UX:*:*)
-	echo sx6-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-7:SUPER-UX:*:*)
-	echo sx7-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-8:SUPER-UX:*:*)
-	echo sx8-nec-superux${UNAME_RELEASE}
-	exit ;;
-    SX-8R:SUPER-UX:*:*)
-	echo sx8r-nec-superux${UNAME_RELEASE}
-	exit ;;
-    Power*:Rhapsody:*:*)
-	echo powerpc-apple-rhapsody${UNAME_RELEASE}
-	exit ;;
-    *:Rhapsody:*:*)
-	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
-	exit ;;
-    *:Darwin:*:*)
-	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
-	case $UNAME_PROCESSOR in
-	    i386)
-		eval $set_cc_for_build
-		if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then
-		  if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \
-		      (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \
-		      grep IS_64BIT_ARCH >/dev/null
-		  then
-		      UNAME_PROCESSOR="x86_64"
-		  fi
-		fi ;;
-	    unknown) UNAME_PROCESSOR=powerpc ;;
-	esac
-	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
-	exit ;;
-    *:procnto*:*:* | *:QNX:[0123456789]*:*)
-	UNAME_PROCESSOR=`uname -p`
-	if test "$UNAME_PROCESSOR" = "x86"; then
-		UNAME_PROCESSOR=i386
-		UNAME_MACHINE=pc
-	fi
-	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
-	exit ;;
-    *:QNX:*:4*)
-	echo i386-pc-qnx
-	exit ;;
-    NEO-?:NONSTOP_KERNEL:*:*)
-	echo neo-tandem-nsk${UNAME_RELEASE}
-	exit ;;
-    NSE-?:NONSTOP_KERNEL:*:*)
-	echo nse-tandem-nsk${UNAME_RELEASE}
-	exit ;;
-    NSR-?:NONSTOP_KERNEL:*:*)
-	echo nsr-tandem-nsk${UNAME_RELEASE}
-	exit ;;
-    *:NonStop-UX:*:*)
-	echo mips-compaq-nonstopux
-	exit ;;
-    BS2000:POSIX*:*:*)
-	echo bs2000-siemens-sysv
-	exit ;;
-    DS/*:UNIX_System_V:*:*)
-	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
-	exit ;;
-    *:Plan9:*:*)
-	# "uname -m" is not consistent, so use $cputype instead. 386
-	# is converted to i386 for consistency with other x86
-	# operating systems.
-	if test "$cputype" = "386"; then
-	    UNAME_MACHINE=i386
-	else
-	    UNAME_MACHINE="$cputype"
-	fi
-	echo ${UNAME_MACHINE}-unknown-plan9
-	exit ;;
-    *:TOPS-10:*:*)
-	echo pdp10-unknown-tops10
-	exit ;;
-    *:TENEX:*:*)
-	echo pdp10-unknown-tenex
-	exit ;;
-    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
-	echo pdp10-dec-tops20
-	exit ;;
-    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
-	echo pdp10-xkl-tops20
-	exit ;;
-    *:TOPS-20:*:*)
-	echo pdp10-unknown-tops20
-	exit ;;
-    *:ITS:*:*)
-	echo pdp10-unknown-its
-	exit ;;
-    SEI:*:*:SEIUX)
-	echo mips-sei-seiux${UNAME_RELEASE}
-	exit ;;
-    *:DragonFly:*:*)
-	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
-	exit ;;
-    *:*VMS:*:*)
-	UNAME_MACHINE=`(uname -p) 2>/dev/null`
-	case "${UNAME_MACHINE}" in
-	    A*) echo alpha-dec-vms ; exit ;;
-	    I*) echo ia64-dec-vms ; exit ;;
-	    V*) echo vax-dec-vms ; exit ;;
-	esac ;;
-    *:XENIX:*:SysV)
-	echo i386-pc-xenix
-	exit ;;
-    i*86:skyos:*:*)
-	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
-	exit ;;
-    i*86:rdos:*:*)
-	echo ${UNAME_MACHINE}-pc-rdos
-	exit ;;
-    i*86:AROS:*:*)
-	echo ${UNAME_MACHINE}-pc-aros
-	exit ;;
-esac
-
-#echo '(No uname command or uname output not recognized.)' 1>&2
-#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
-
-eval $set_cc_for_build
-cat >$dummy.c <<EOF
-#ifdef _SEQUENT_
-# include <sys/types.h>
-# include <sys/utsname.h>
-#endif
-main ()
-{
-#if defined (sony)
-#if defined (MIPSEB)
-  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
-     I don't know....  */
-  printf ("mips-sony-bsd\n"); exit (0);
-#else
-#include <sys/param.h>
-  printf ("m68k-sony-newsos%s\n",
-#ifdef NEWSOS4
-	"4"
-#else
-	""
-#endif
-	); exit (0);
-#endif
-#endif
-
-#if defined (__arm) && defined (__acorn) && defined (__unix)
-  printf ("arm-acorn-riscix\n"); exit (0);
-#endif
-
-#if defined (hp300) && !defined (hpux)
-  printf ("m68k-hp-bsd\n"); exit (0);
-#endif
-
-#if defined (NeXT)
-#if !defined (__ARCHITECTURE__)
-#define __ARCHITECTURE__ "m68k"
-#endif
-  int version;
-  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
-  if (version < 4)
-    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
-  else
-    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
-  exit (0);
-#endif
-
-#if defined (MULTIMAX) || defined (n16)
-#if defined (UMAXV)
-  printf ("ns32k-encore-sysv\n"); exit (0);
-#else
-#if defined (CMU)
-  printf ("ns32k-encore-mach\n"); exit (0);
-#else
-  printf ("ns32k-encore-bsd\n"); exit (0);
-#endif
-#endif
-#endif
-
-#if defined (__386BSD__)
-  printf ("i386-pc-bsd\n"); exit (0);
-#endif
-
-#if defined (sequent)
-#if defined (i386)
-  printf ("i386-sequent-dynix\n"); exit (0);
-#endif
-#if defined (ns32000)
-  printf ("ns32k-sequent-dynix\n"); exit (0);
-#endif
-#endif
-
-#if defined (_SEQUENT_)
-    struct utsname un;
-
-    uname(&un);
-
-    if (strncmp(un.version, "V2", 2) == 0) {
-	printf ("i386-sequent-ptx2\n"); exit (0);
-    }
-    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
-	printf ("i386-sequent-ptx1\n"); exit (0);
-    }
-    printf ("i386-sequent-ptx\n"); exit (0);
-
-#endif
-
-#if defined (vax)
-# if !defined (ultrix)
-#  include <sys/param.h>
-#  if defined (BSD)
-#   if BSD == 43
-      printf ("vax-dec-bsd4.3\n"); exit (0);
-#   else
-#    if BSD == 199006
-      printf ("vax-dec-bsd4.3reno\n"); exit (0);
-#    else
-      printf ("vax-dec-bsd\n"); exit (0);
-#    endif
-#   endif
-#  else
-    printf ("vax-dec-bsd\n"); exit (0);
-#  endif
-# else
-    printf ("vax-dec-ultrix\n"); exit (0);
-# endif
-#endif
-
-#if defined (alliant) && defined (i860)
-  printf ("i860-alliant-bsd\n"); exit (0);
-#endif
-
-  exit (1);
-}
-EOF
-
-$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
-	{ echo "$SYSTEM_NAME"; exit; }
-
-# Apollos put the system type in the environment.
-
-test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
-
-# Convex versions that predate uname can use getsysinfo(1)
-
-if [ -x /usr/convex/getsysinfo ]
-then
-    case `getsysinfo -f cpu_type` in
-    c1*)
-	echo c1-convex-bsd
-	exit ;;
-    c2*)
-	if getsysinfo -f scalar_acc
-	then echo c32-convex-bsd
-	else echo c2-convex-bsd
-	fi
-	exit ;;
-    c34*)
-	echo c34-convex-bsd
-	exit ;;
-    c38*)
-	echo c38-convex-bsd
-	exit ;;
-    c4*)
-	echo c4-convex-bsd
-	exit ;;
-    esac
-fi
-
-cat >&2 <<EOF
-$0: unable to guess system type
-
-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://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD
-and
-  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
-pertinent to <config-patches at gnu.org> in order to provide the needed
-information to handle your system.
-
-config.guess timestamp = $timestamp
-
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
-
-hostinfo               = `(hostinfo) 2>/dev/null`
-/bin/universe          = `(/bin/universe) 2>/dev/null`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
-/bin/arch              = `(/bin/arch) 2>/dev/null`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
-
-UNAME_MACHINE = ${UNAME_MACHINE}
-UNAME_RELEASE = ${UNAME_RELEASE}
-UNAME_SYSTEM  = ${UNAME_SYSTEM}
-UNAME_VERSION = ${UNAME_VERSION}
-EOF
-
-exit 1
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/config.sub b/config.sub
deleted file mode 100755
index 5b87368..0000000
--- a/config.sub
+++ /dev/null
@@ -1,1767 +0,0 @@
-#! /bin/sh
-# Configuration validation subroutine script.
-#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-#   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010,
-#   2011 Free Software Foundation, Inc.
-
-timestamp='2011-10-08'
-
-# This file is (in principle) common to ALL GNU software.
-# The presence of a machine in this file suggests that SOME GNU software
-# can handle that machine.  It does not imply ALL GNU software can.
-#
-# This file is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
-# 02110-1301, USA.
-#
-# As a special exception to the GNU General Public License, if you
-# distribute this file as part of a program that contains a
-# configuration script generated by Autoconf, you may include it under
-# the same distribution terms that you use for the rest of that program.
-
-
-# Please send patches to <config-patches at gnu.org>.  Submit a context
-# diff and a properly formatted GNU ChangeLog entry.
-#
-# Configuration subroutine to validate and canonicalize a configuration type.
-# Supply the specified configuration type as an argument.
-# If it is invalid, we print an error message on stderr and exit with code 1.
-# Otherwise, we print the canonical config type on stdout and succeed.
-
-# You can get the latest version of this script from:
-# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD
-
-# This file is supposed to be the same for all GNU packages
-# and recognize all the CPU types, system types and aliases
-# that are meaningful with *any* GNU software.
-# Each package is responsible for reporting which valid configurations
-# it does not support.  The user should be able to distinguish
-# a failure to support a valid configuration from a meaningless
-# configuration.
-
-# The goal of this file is to map all the various variations of a given
-# machine specification into a single specification in the form:
-#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
-# or in some cases, the newer four-part form:
-#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
-# It is wrong to echo any other type of specification.
-
-me=`echo "$0" | sed -e 's,.*/,,'`
-
-usage="\
-Usage: $0 [OPTION] CPU-MFR-OPSYS
-       $0 [OPTION] ALIAS
-
-Canonicalize a configuration name.
-
-Operation modes:
-  -h, --help         print this help, then exit
-  -t, --time-stamp   print date of last modification, then exit
-  -v, --version      print version number, then exit
-
-Report bugs and patches to <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, 2006, 2007, 2008, 2009, 2010, 2011 Free
-Software Foundation, Inc.
-
-This is free software; see the source for copying conditions.  There is NO
-warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
-
-help="
-Try \`$me --help' for more information."
-
-# Parse command line
-while test $# -gt 0 ; do
-  case $1 in
-    --time-stamp | --time* | -t )
-       echo "$timestamp" ; exit ;;
-    --version | -v )
-       echo "$version" ; exit ;;
-    --help | --h* | -h )
-       echo "$usage"; exit ;;
-    -- )     # Stop option processing
-       shift; break ;;
-    - )	# Use stdin as input.
-       break ;;
-    -* )
-       echo "$me: invalid option $1$help"
-       exit 1 ;;
-
-    *local*)
-       # First pass through any local machine types.
-       echo $1
-       exit ;;
-
-    * )
-       break ;;
-  esac
-done
-
-case $# in
- 0) echo "$me: missing argument$help" >&2
-    exit 1;;
- 1) ;;
- *) echo "$me: too many arguments$help" >&2
-    exit 1;;
-esac
-
-# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
-# Here we must recognize all the valid KERNEL-OS combinations.
-maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
-case $maybe_os in
-  nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \
-  linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \
-  knetbsd*-gnu* | netbsd*-gnu* | \
-  kopensolaris*-gnu* | \
-  storm-chaos* | os2-emx* | rtmk-nova*)
-    os=-$maybe_os
-    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
-    ;;
-  *)
-    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
-    if [ $basic_machine != $1 ]
-    then os=`echo $1 | sed 's/.*-/-/'`
-    else os=; fi
-    ;;
-esac
-
-### Let's recognize common machines as not being operating systems so
-### that things like config.sub decstation-3100 work.  We also
-### recognize some manufacturers as not being operating systems, so we
-### can provide default operating systems below.
-case $os in
-	-sun*os*)
-		# Prevent following clause from handling this invalid input.
-		;;
-	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
-	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
-	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
-	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
-	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
-	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
-	-apple | -axis | -knuth | -cray | -microblaze)
-		os=
-		basic_machine=$1
-		;;
-	-bluegene*)
-		os=-cnk
-		;;
-	-sim | -cisco | -oki | -wec | -winbond)
-		os=
-		basic_machine=$1
-		;;
-	-scout)
-		;;
-	-wrs)
-		os=-vxworks
-		basic_machine=$1
-		;;
-	-chorusos*)
-		os=-chorusos
-		basic_machine=$1
-		;;
-	-chorusrdb)
-		os=-chorusrdb
-		basic_machine=$1
-		;;
-	-hiux*)
-		os=-hiuxwe2
-		;;
-	-sco6)
-		os=-sco5v6
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco5)
-		os=-sco3.2v5
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco4)
-		os=-sco3.2v4
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2.[4-9]*)
-		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco3.2v[4-9]*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco5v6*)
-		# Don't forget version if it is 3.2v4 or newer.
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-sco*)
-		os=-sco3.2v2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-udk*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-isc)
-		os=-isc2.2
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-clix*)
-		basic_machine=clipper-intergraph
-		;;
-	-isc*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
-		;;
-	-lynx*)
-		os=-lynxos
-		;;
-	-ptx*)
-		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
-		;;
-	-windowsnt*)
-		os=`echo $os | sed -e 's/windowsnt/winnt/'`
-		;;
-	-psos*)
-		os=-psos
-		;;
-	-mint | -mint[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-esac
-
-# Decode aliases for certain CPU-COMPANY combinations.
-case $basic_machine in
-	# Recognize the basic CPU types without company name.
-	# Some are omitted here because they have special meanings below.
-	1750a | 580 \
-	| a29k \
-	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
-	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
-	| am33_2.0 \
-	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \
-        | be32 | be64 \
-	| bfin \
-	| c4x | clipper \
-	| d10v | d30v | dlx | dsp16xx \
-	| epiphany \
-	| fido | fr30 | frv \
-	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
-	| hexagon \
-	| i370 | i860 | i960 | ia64 \
-	| ip2k | iq2000 \
-	| le32 | le64 \
-	| lm32 \
-	| m32c | m32r | m32rle | m68000 | m68k | m88k \
-	| maxq | mb | microblaze | mcore | mep | metag \
-	| mips | mipsbe | mipseb | mipsel | mipsle \
-	| mips16 \
-	| mips64 | mips64el \
-	| mips64octeon | mips64octeonel \
-	| mips64orion | mips64orionel \
-	| mips64r5900 | mips64r5900el \
-	| mips64vr | mips64vrel \
-	| mips64vr4100 | mips64vr4100el \
-	| mips64vr4300 | mips64vr4300el \
-	| mips64vr5000 | mips64vr5000el \
-	| mips64vr5900 | mips64vr5900el \
-	| mipsisa32 | mipsisa32el \
-	| mipsisa32r2 | mipsisa32r2el \
-	| mipsisa64 | mipsisa64el \
-	| mipsisa64r2 | mipsisa64r2el \
-	| mipsisa64sb1 | mipsisa64sb1el \
-	| mipsisa64sr71k | mipsisa64sr71kel \
-	| mipstx39 | mipstx39el \
-	| mn10200 | mn10300 \
-	| moxie \
-	| mt \
-	| msp430 \
-	| nds32 | nds32le | nds32be \
-	| nios | nios2 \
-	| ns16k | ns32k \
-	| open8 \
-	| or32 \
-	| pdp10 | pdp11 | pj | pjl \
-	| powerpc | powerpc64 | powerpc64le | powerpcle \
-	| pyramid \
-	| rx \
-	| score \
-	| sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \
-	| sh64 | sh64le \
-	| sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \
-	| sparcv8 | sparcv9 | sparcv9b | sparcv9v \
-	| spu \
-	| tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \
-	| ubicom32 \
-	| v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \
-	| we32k \
-	| x86 | xc16x | xstormy16 | xtensa \
-	| z8k | z80)
-		basic_machine=$basic_machine-unknown
-		;;
-	c54x)
-		basic_machine=tic54x-unknown
-		;;
-	c55x)
-		basic_machine=tic55x-unknown
-		;;
-	c6x)
-		basic_machine=tic6x-unknown
-		;;
-	m6811 | m68hc11 | m6812 | m68hc12 | picochip)
-		# Motorola 68HC11/12.
-		basic_machine=$basic_machine-unknown
-		os=-none
-		;;
-	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
-		;;
-	ms1)
-		basic_machine=mt-unknown
-		;;
-
-	strongarm | thumb | xscale)
-		basic_machine=arm-unknown
-		;;
-
-	xscaleeb)
-		basic_machine=armeb-unknown
-		;;
-
-	xscaleel)
-		basic_machine=armel-unknown
-		;;
-
-	# We use `pc' rather than `unknown'
-	# because (1) that's what they normally are, and
-	# (2) the word "unknown" tends to confuse beginning users.
-	i*86 | x86_64)
-	  basic_machine=$basic_machine-pc
-	  ;;
-	# Object if more than one company name word.
-	*-*-*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-	# Recognize the basic CPU types with company name.
-	580-* \
-	| a29k-* \
-	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
-	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
-	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
-	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
-	| avr-* | avr32-* \
-	| be32-* | be64-* \
-	| bfin-* | bs2000-* \
-	| c[123]* | c30-* | [cjt]90-* | c4x-* \
-	| clipper-* | craynv-* | cydra-* \
-	| d10v-* | d30v-* | dlx-* \
-	| elxsi-* \
-	| f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \
-	| h8300-* | h8500-* \
-	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
-	| hexagon-* \
-	| i*86-* | i860-* | i960-* | ia64-* \
-	| ip2k-* | iq2000-* \
-	| le32-* | le64-* \
-	| lm32-* \
-	| m32c-* | m32r-* | m32rle-* \
-	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-	| m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \
-	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
-	| mips16-* \
-	| mips64-* | mips64el-* \
-	| mips64octeon-* | mips64octeonel-* \
-	| mips64orion-* | mips64orionel-* \
-	| mips64r5900-* | mips64r5900el-* \
-	| mips64vr-* | mips64vrel-* \
-	| mips64vr4100-* | mips64vr4100el-* \
-	| mips64vr4300-* | mips64vr4300el-* \
-	| mips64vr5000-* | mips64vr5000el-* \
-	| mips64vr5900-* | mips64vr5900el-* \
-	| mipsisa32-* | mipsisa32el-* \
-	| mipsisa32r2-* | mipsisa32r2el-* \
-	| mipsisa64-* | mipsisa64el-* \
-	| mipsisa64r2-* | mipsisa64r2el-* \
-	| mipsisa64sb1-* | mipsisa64sb1el-* \
-	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
-	| mipstx39-* | mipstx39el-* \
-	| mmix-* \
-	| mt-* \
-	| msp430-* \
-	| nds32-* | nds32le-* | nds32be-* \
-	| nios-* | nios2-* \
-	| none-* | np1-* | ns16k-* | ns32k-* \
-	| open8-* \
-	| orion-* \
-	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
-	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \
-	| pyramid-* \
-	| romp-* | rs6000-* | rx-* \
-	| sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \
-	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
-	| sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \
-	| sparclite-* \
-	| sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \
-	| tahoe-* \
-	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
-	| tile*-* \
-	| tron-* \
-	| ubicom32-* \
-	| v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \
-	| vax-* \
-	| we32k-* \
-	| x86-* | x86_64-* | xc16x-* | xps100-* \
-	| xstormy16-* | xtensa*-* \
-	| ymp-* \
-	| z8k-* | z80-*)
-		;;
-	# Recognize the basic CPU types without company name, with glob match.
-	xtensa*)
-		basic_machine=$basic_machine-unknown
-		;;
-	# Recognize the various machine names and aliases which stand
-	# for a CPU type and a company and sometimes even an OS.
-	386bsd)
-		basic_machine=i386-unknown
-		os=-bsd
-		;;
-	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
-		basic_machine=m68000-att
-		;;
-	3b*)
-		basic_machine=we32k-att
-		;;
-	a29khif)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	abacus)
-		basic_machine=abacus-unknown
-		;;
-	adobe68k)
-		basic_machine=m68010-adobe
-		os=-scout
-		;;
-	alliant | fx80)
-		basic_machine=fx80-alliant
-		;;
-	altos | altos3068)
-		basic_machine=m68k-altos
-		;;
-	am29k)
-		basic_machine=a29k-none
-		os=-bsd
-		;;
-	amd64)
-		basic_machine=x86_64-pc
-		;;
-	amd64-*)
-		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	amdahl)
-		basic_machine=580-amdahl
-		os=-sysv
-		;;
-	amiga | amiga-*)
-		basic_machine=m68k-unknown
-		;;
-	amigaos | amigados)
-		basic_machine=m68k-unknown
-		os=-amigaos
-		;;
-	amigaunix | amix)
-		basic_machine=m68k-unknown
-		os=-sysv4
-		;;
-	apollo68)
-		basic_machine=m68k-apollo
-		os=-sysv
-		;;
-	apollo68bsd)
-		basic_machine=m68k-apollo
-		os=-bsd
-		;;
-	aros)
-		basic_machine=i386-pc
-		os=-aros
-		;;
-	aux)
-		basic_machine=m68k-apple
-		os=-aux
-		;;
-	balance)
-		basic_machine=ns32k-sequent
-		os=-dynix
-		;;
-	blackfin)
-		basic_machine=bfin-unknown
-		os=-linux
-		;;
-	blackfin-*)
-		basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
-	bluegene*)
-		basic_machine=powerpc-ibm
-		os=-cnk
-		;;
-	c54x-*)
-		basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	c55x-*)
-		basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	c6x-*)
-		basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	c90)
-		basic_machine=c90-cray
-		os=-unicos
-		;;
-	cegcc)
-		basic_machine=arm-unknown
-		os=-cegcc
-		;;
-	convex-c1)
-		basic_machine=c1-convex
-		os=-bsd
-		;;
-	convex-c2)
-		basic_machine=c2-convex
-		os=-bsd
-		;;
-	convex-c32)
-		basic_machine=c32-convex
-		os=-bsd
-		;;
-	convex-c34)
-		basic_machine=c34-convex
-		os=-bsd
-		;;
-	convex-c38)
-		basic_machine=c38-convex
-		os=-bsd
-		;;
-	cray | j90)
-		basic_machine=j90-cray
-		os=-unicos
-		;;
-	craynv)
-		basic_machine=craynv-cray
-		os=-unicosmp
-		;;
-	cr16 | cr16-*)
-		basic_machine=cr16-unknown
-		os=-elf
-		;;
-	crds | unos)
-		basic_machine=m68k-crds
-		;;
-	crisv32 | crisv32-* | etraxfs*)
-		basic_machine=crisv32-axis
-		;;
-	cris | cris-* | etrax*)
-		basic_machine=cris-axis
-		;;
-	crx)
-		basic_machine=crx-unknown
-		os=-elf
-		;;
-	da30 | da30-*)
-		basic_machine=m68k-da30
-		;;
-	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
-		basic_machine=mips-dec
-		;;
-	decsystem10* | dec10*)
-		basic_machine=pdp10-dec
-		os=-tops10
-		;;
-	decsystem20* | dec20*)
-		basic_machine=pdp10-dec
-		os=-tops20
-		;;
-	delta | 3300 | motorola-3300 | motorola-delta \
-	      | 3300-motorola | delta-motorola)
-		basic_machine=m68k-motorola
-		;;
-	delta88)
-		basic_machine=m88k-motorola
-		os=-sysv3
-		;;
-	dicos)
-		basic_machine=i686-pc
-		os=-dicos
-		;;
-	djgpp)
-		basic_machine=i586-pc
-		os=-msdosdjgpp
-		;;
-	dpx20 | dpx20-*)
-		basic_machine=rs6000-bull
-		os=-bosx
-		;;
-	dpx2* | dpx2*-bull)
-		basic_machine=m68k-bull
-		os=-sysv3
-		;;
-	ebmon29k)
-		basic_machine=a29k-amd
-		os=-ebmon
-		;;
-	elxsi)
-		basic_machine=elxsi-elxsi
-		os=-bsd
-		;;
-	encore | umax | mmax)
-		basic_machine=ns32k-encore
-		;;
-	es1800 | OSE68k | ose68k | ose | OSE)
-		basic_machine=m68k-ericsson
-		os=-ose
-		;;
-	fx2800)
-		basic_machine=i860-alliant
-		;;
-	genix)
-		basic_machine=ns32k-ns
-		;;
-	gmicro)
-		basic_machine=tron-gmicro
-		os=-sysv
-		;;
-	go32)
-		basic_machine=i386-pc
-		os=-go32
-		;;
-	h3050r* | hiux*)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	h8300hms)
-		basic_machine=h8300-hitachi
-		os=-hms
-		;;
-	h8300xray)
-		basic_machine=h8300-hitachi
-		os=-xray
-		;;
-	h8500hms)
-		basic_machine=h8500-hitachi
-		os=-hms
-		;;
-	harris)
-		basic_machine=m88k-harris
-		os=-sysv3
-		;;
-	hp300-*)
-		basic_machine=m68k-hp
-		;;
-	hp300bsd)
-		basic_machine=m68k-hp
-		os=-bsd
-		;;
-	hp300hpux)
-		basic_machine=m68k-hp
-		os=-hpux
-		;;
-	hp3k9[0-9][0-9] | hp9[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k2[0-9][0-9] | hp9k31[0-9])
-		basic_machine=m68000-hp
-		;;
-	hp9k3[2-9][0-9])
-		basic_machine=m68k-hp
-		;;
-	hp9k6[0-9][0-9] | hp6[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hp9k7[0-79][0-9] | hp7[0-79][0-9])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k78[0-9] | hp78[0-9])
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
-		# FIXME: really hppa2.0-hp
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][13679] | hp8[0-9][13679])
-		basic_machine=hppa1.1-hp
-		;;
-	hp9k8[0-9][0-9] | hp8[0-9][0-9])
-		basic_machine=hppa1.0-hp
-		;;
-	hppa-next)
-		os=-nextstep3
-		;;
-	hppaosf)
-		basic_machine=hppa1.1-hp
-		os=-osf
-		;;
-	hppro)
-		basic_machine=hppa1.1-hp
-		os=-proelf
-		;;
-	i370-ibm* | ibm*)
-		basic_machine=i370-ibm
-		;;
-# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
-	i*86v32)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv32
-		;;
-	i*86v4*)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv4
-		;;
-	i*86v)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-sysv
-		;;
-	i*86sol2)
-		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
-		os=-solaris2
-		;;
-	i386mach)
-		basic_machine=i386-mach
-		os=-mach
-		;;
-	i386-vsta | vsta)
-		basic_machine=i386-unknown
-		os=-vsta
-		;;
-	iris | iris4d)
-		basic_machine=mips-sgi
-		case $os in
-		    -irix*)
-			;;
-		    *)
-			os=-irix4
-			;;
-		esac
-		;;
-	isi68 | isi)
-		basic_machine=m68k-isi
-		os=-sysv
-		;;
-	m68knommu)
-		basic_machine=m68k-unknown
-		os=-linux
-		;;
-	m68knommu-*)
-		basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
-	m88k-omron*)
-		basic_machine=m88k-omron
-		;;
-	magnum | m3230)
-		basic_machine=mips-mips
-		os=-sysv
-		;;
-	merlin)
-		basic_machine=ns32k-utek
-		os=-sysv
-		;;
-	microblaze)
-		basic_machine=microblaze-xilinx
-		;;
-	mingw32)
-		basic_machine=i386-pc
-		os=-mingw32
-		;;
-	mingw32ce)
-		basic_machine=arm-unknown
-		os=-mingw32ce
-		;;
-	miniframe)
-		basic_machine=m68000-convergent
-		;;
-	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
-		basic_machine=m68k-atari
-		os=-mint
-		;;
-	mips3*-*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
-		;;
-	mips3*)
-		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
-		;;
-	monitor)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	morphos)
-		basic_machine=powerpc-unknown
-		os=-morphos
-		;;
-	msdos)
-		basic_machine=i386-pc
-		os=-msdos
-		;;
-	ms1-*)
-		basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'`
-		;;
-	mvs)
-		basic_machine=i370-ibm
-		os=-mvs
-		;;
-	nacl)
-		basic_machine=le32-unknown
-		os=-nacl
-		;;
-	ncr3000)
-		basic_machine=i486-ncr
-		os=-sysv4
-		;;
-	netbsd386)
-		basic_machine=i386-unknown
-		os=-netbsd
-		;;
-	netwinder)
-		basic_machine=armv4l-rebel
-		os=-linux
-		;;
-	news | news700 | news800 | news900)
-		basic_machine=m68k-sony
-		os=-newsos
-		;;
-	news1000)
-		basic_machine=m68030-sony
-		os=-newsos
-		;;
-	news-3600 | risc-news)
-		basic_machine=mips-sony
-		os=-newsos
-		;;
-	necv70)
-		basic_machine=v70-nec
-		os=-sysv
-		;;
-	next | m*-next )
-		basic_machine=m68k-next
-		case $os in
-		    -nextstep* )
-			;;
-		    -ns2*)
-		      os=-nextstep2
-			;;
-		    *)
-		      os=-nextstep3
-			;;
-		esac
-		;;
-	nh3000)
-		basic_machine=m68k-harris
-		os=-cxux
-		;;
-	nh[45]000)
-		basic_machine=m88k-harris
-		os=-cxux
-		;;
-	nindy960)
-		basic_machine=i960-intel
-		os=-nindy
-		;;
-	mon960)
-		basic_machine=i960-intel
-		os=-mon960
-		;;
-	nonstopux)
-		basic_machine=mips-compaq
-		os=-nonstopux
-		;;
-	np1)
-		basic_machine=np1-gould
-		;;
-	neo-tandem)
-		basic_machine=neo-tandem
-		;;
-	nse-tandem)
-		basic_machine=nse-tandem
-		;;
-	nsr-tandem)
-		basic_machine=nsr-tandem
-		;;
-	op50n-* | op60c-*)
-		basic_machine=hppa1.1-oki
-		os=-proelf
-		;;
-	openrisc | openrisc-*)
-		basic_machine=or32-unknown
-		;;
-	os400)
-		basic_machine=powerpc-ibm
-		os=-os400
-		;;
-	OSE68000 | ose68000)
-		basic_machine=m68000-ericsson
-		os=-ose
-		;;
-	os68k)
-		basic_machine=m68k-none
-		os=-os68k
-		;;
-	pa-hitachi)
-		basic_machine=hppa1.1-hitachi
-		os=-hiuxwe2
-		;;
-	paragon)
-		basic_machine=i860-intel
-		os=-osf
-		;;
-	parisc)
-		basic_machine=hppa-unknown
-		os=-linux
-		;;
-	parisc-*)
-		basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'`
-		os=-linux
-		;;
-	pbd)
-		basic_machine=sparc-tti
-		;;
-	pbb)
-		basic_machine=m68k-tti
-		;;
-	pc532 | pc532-*)
-		basic_machine=ns32k-pc532
-		;;
-	pc98)
-		basic_machine=i386-pc
-		;;
-	pc98-*)
-		basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentium | p5 | k5 | k6 | nexgen | viac3)
-		basic_machine=i586-pc
-		;;
-	pentiumpro | p6 | 6x86 | athlon | athlon_*)
-		basic_machine=i686-pc
-		;;
-	pentiumii | pentium2 | pentiumiii | pentium3)
-		basic_machine=i686-pc
-		;;
-	pentium4)
-		basic_machine=i786-pc
-		;;
-	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
-		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumpro-* | p6-* | 6x86-* | athlon-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
-		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pentium4-*)
-		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	pn)
-		basic_machine=pn-gould
-		;;
-	power)	basic_machine=power-ibm
-		;;
-	ppc | ppcbe)	basic_machine=powerpc-unknown
-		;;
-	ppc-* | ppcbe-*)
-		basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppcle | powerpclittle | ppc-le | powerpc-little)
-		basic_machine=powerpcle-unknown
-		;;
-	ppcle-* | powerpclittle-*)
-		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64)	basic_machine=powerpc64-unknown
-		;;
-	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
-		basic_machine=powerpc64le-unknown
-		;;
-	ppc64le-* | powerpc64little-*)
-		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	ps2)
-		basic_machine=i386-ibm
-		;;
-	pw32)
-		basic_machine=i586-unknown
-		os=-pw32
-		;;
-	rdos)
-		basic_machine=i386-pc
-		os=-rdos
-		;;
-	rom68k)
-		basic_machine=m68k-rom68k
-		os=-coff
-		;;
-	rm[46]00)
-		basic_machine=mips-siemens
-		;;
-	rtpc | rtpc-*)
-		basic_machine=romp-ibm
-		;;
-	s390 | s390-*)
-		basic_machine=s390-ibm
-		;;
-	s390x | s390x-*)
-		basic_machine=s390x-ibm
-		;;
-	sa29200)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	sb1)
-		basic_machine=mipsisa64sb1-unknown
-		;;
-	sb1el)
-		basic_machine=mipsisa64sb1el-unknown
-		;;
-	sde)
-		basic_machine=mipsisa32-sde
-		os=-elf
-		;;
-	sei)
-		basic_machine=mips-sei
-		os=-seiux
-		;;
-	sequent)
-		basic_machine=i386-sequent
-		;;
-	sh)
-		basic_machine=sh-hitachi
-		os=-hms
-		;;
-	sh5el)
-		basic_machine=sh5le-unknown
-		;;
-	sh64)
-		basic_machine=sh64-unknown
-		;;
-	sparclite-wrs | simso-wrs)
-		basic_machine=sparclite-wrs
-		os=-vxworks
-		;;
-	sps7)
-		basic_machine=m68k-bull
-		os=-sysv2
-		;;
-	spur)
-		basic_machine=spur-unknown
-		;;
-	st2000)
-		basic_machine=m68k-tandem
-		;;
-	stratus)
-		basic_machine=i860-stratus
-		os=-sysv4
-		;;
-	strongarm-* | thumb-*)
-		basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'`
-		;;
-	sun2)
-		basic_machine=m68000-sun
-		;;
-	sun2os3)
-		basic_machine=m68000-sun
-		os=-sunos3
-		;;
-	sun2os4)
-		basic_machine=m68000-sun
-		os=-sunos4
-		;;
-	sun3os3)
-		basic_machine=m68k-sun
-		os=-sunos3
-		;;
-	sun3os4)
-		basic_machine=m68k-sun
-		os=-sunos4
-		;;
-	sun4os3)
-		basic_machine=sparc-sun
-		os=-sunos3
-		;;
-	sun4os4)
-		basic_machine=sparc-sun
-		os=-sunos4
-		;;
-	sun4sol2)
-		basic_machine=sparc-sun
-		os=-solaris2
-		;;
-	sun3 | sun3-*)
-		basic_machine=m68k-sun
-		;;
-	sun4)
-		basic_machine=sparc-sun
-		;;
-	sun386 | sun386i | roadrunner)
-		basic_machine=i386-sun
-		;;
-	sv1)
-		basic_machine=sv1-cray
-		os=-unicos
-		;;
-	symmetry)
-		basic_machine=i386-sequent
-		os=-dynix
-		;;
-	t3e)
-		basic_machine=alphaev5-cray
-		os=-unicos
-		;;
-	t90)
-		basic_machine=t90-cray
-		os=-unicos
-		;;
-	tile*)
-		basic_machine=$basic_machine-unknown
-		os=-linux-gnu
-		;;
-	tx39)
-		basic_machine=mipstx39-unknown
-		;;
-	tx39el)
-		basic_machine=mipstx39el-unknown
-		;;
-	toad1)
-		basic_machine=pdp10-xkl
-		os=-tops20
-		;;
-	tower | tower-32)
-		basic_machine=m68k-ncr
-		;;
-	tpf)
-		basic_machine=s390x-ibm
-		os=-tpf
-		;;
-	udi29k)
-		basic_machine=a29k-amd
-		os=-udi
-		;;
-	ultra3)
-		basic_machine=a29k-nyu
-		os=-sym1
-		;;
-	v810 | necv810)
-		basic_machine=v810-nec
-		os=-none
-		;;
-	vaxv)
-		basic_machine=vax-dec
-		os=-sysv
-		;;
-	vms)
-		basic_machine=vax-dec
-		os=-vms
-		;;
-	vpp*|vx|vx-*)
-		basic_machine=f301-fujitsu
-		;;
-	vxworks960)
-		basic_machine=i960-wrs
-		os=-vxworks
-		;;
-	vxworks68)
-		basic_machine=m68k-wrs
-		os=-vxworks
-		;;
-	vxworks29k)
-		basic_machine=a29k-wrs
-		os=-vxworks
-		;;
-	w65*)
-		basic_machine=w65-wdc
-		os=-none
-		;;
-	w89k-*)
-		basic_machine=hppa1.1-winbond
-		os=-proelf
-		;;
-	xbox)
-		basic_machine=i686-pc
-		os=-mingw32
-		;;
-	xps | xps100)
-		basic_machine=xps100-honeywell
-		;;
-	xscale-* | xscalee[bl]-*)
-		basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'`
-		;;
-	ymp)
-		basic_machine=ymp-cray
-		os=-unicos
-		;;
-	z8k-*-coff)
-		basic_machine=z8k-unknown
-		os=-sim
-		;;
-	z80-*-coff)
-		basic_machine=z80-unknown
-		os=-sim
-		;;
-	none)
-		basic_machine=none-none
-		os=-none
-		;;
-
-# Here we handle the default manufacturer of certain CPU types.  It is in
-# some cases the only manufacturer, in others, it is the most popular.
-	w89k)
-		basic_machine=hppa1.1-winbond
-		;;
-	op50n)
-		basic_machine=hppa1.1-oki
-		;;
-	op60c)
-		basic_machine=hppa1.1-oki
-		;;
-	romp)
-		basic_machine=romp-ibm
-		;;
-	mmix)
-		basic_machine=mmix-knuth
-		;;
-	rs6000)
-		basic_machine=rs6000-ibm
-		;;
-	vax)
-		basic_machine=vax-dec
-		;;
-	pdp10)
-		# there are many clones, so DEC is not a safe bet
-		basic_machine=pdp10-unknown
-		;;
-	pdp11)
-		basic_machine=pdp11-dec
-		;;
-	we32k)
-		basic_machine=we32k-att
-		;;
-	sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele)
-		basic_machine=sh-unknown
-		;;
-	sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v)
-		basic_machine=sparc-sun
-		;;
-	cydra)
-		basic_machine=cydra-cydrome
-		;;
-	orion)
-		basic_machine=orion-highlevel
-		;;
-	orion105)
-		basic_machine=clipper-highlevel
-		;;
-	mac | mpw | mac-mpw)
-		basic_machine=m68k-apple
-		;;
-	pmac | pmac-mpw)
-		basic_machine=powerpc-apple
-		;;
-	*-unknown)
-		# Make sure to match an already-canonicalized machine name.
-		;;
-	*)
-		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
-		exit 1
-		;;
-esac
-
-# Here we canonicalize certain aliases for manufacturers.
-case $basic_machine in
-	*-digital*)
-		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
-		;;
-	*-commodore*)
-		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
-		;;
-	*)
-		;;
-esac
-
-# Decode manufacturer-specific aliases for certain operating systems.
-
-if [ x"$os" != x"" ]
-then
-case $os in
-	# First match some system type aliases
-	# that might get confused with valid system types.
-	# -solaris* is a basic system type, with this one exception.
-	-auroraux)
-		os=-auroraux
-		;;
-	-solaris1 | -solaris1.*)
-		os=`echo $os | sed -e 's|solaris1|sunos4|'`
-		;;
-	-solaris)
-		os=-solaris2
-		;;
-	-svr4*)
-		os=-sysv4
-		;;
-	-unixware*)
-		os=-sysv4.2uw
-		;;
-	-gnu/linux*)
-		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
-		;;
-	# First accept the basic system types.
-	# The portable systems comes first.
-	# Each alternative MUST END IN A *, to match a version number.
-	# -sysv* is not here because it comes later, after sysvr4.
-	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
-	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\
-	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \
-	      | -sym* | -kopensolaris* \
-	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
-	      | -aos* | -aros* \
-	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
-	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
-	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \
-	      | -openbsd* | -solidbsd* \
-	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
-	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
-	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
-	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
-	      | -chorusos* | -chorusrdb* | -cegcc* \
-	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
-	      | -mingw32* | -linux-gnu* | -linux-android* \
-	      | -linux-newlib* | -linux-uclibc* \
-	      | -uxpv* | -beos* | -mpeix* | -udk* \
-	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
-	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
-	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
-	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
-	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
-	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
-	      | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*)
-	# Remember, each alternative MUST END IN *, to match a version number.
-		;;
-	-qnx*)
-		case $basic_machine in
-		    x86-* | i*86-*)
-			;;
-		    *)
-			os=-nto$os
-			;;
-		esac
-		;;
-	-nto-qnx*)
-		;;
-	-nto*)
-		os=`echo $os | sed -e 's|nto|nto-qnx|'`
-		;;
-	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
-	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
-	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
-		;;
-	-mac*)
-		os=`echo $os | sed -e 's|mac|macos|'`
-		;;
-	-linux-dietlibc)
-		os=-linux-dietlibc
-		;;
-	-linux*)
-		os=`echo $os | sed -e 's|linux|linux-gnu|'`
-		;;
-	-sunos5*)
-		os=`echo $os | sed -e 's|sunos5|solaris2|'`
-		;;
-	-sunos6*)
-		os=`echo $os | sed -e 's|sunos6|solaris3|'`
-		;;
-	-opened*)
-		os=-openedition
-		;;
-	-os400*)
-		os=-os400
-		;;
-	-wince*)
-		os=-wince
-		;;
-	-osfrose*)
-		os=-osfrose
-		;;
-	-osf*)
-		os=-osf
-		;;
-	-utek*)
-		os=-bsd
-		;;
-	-dynix*)
-		os=-bsd
-		;;
-	-acis*)
-		os=-aos
-		;;
-	-atheos*)
-		os=-atheos
-		;;
-	-syllable*)
-		os=-syllable
-		;;
-	-386bsd)
-		os=-bsd
-		;;
-	-ctix* | -uts*)
-		os=-sysv
-		;;
-	-nova*)
-		os=-rtmk-nova
-		;;
-	-ns2 )
-		os=-nextstep2
-		;;
-	-nsk*)
-		os=-nsk
-		;;
-	# Preserve the version number of sinix5.
-	-sinix5.*)
-		os=`echo $os | sed -e 's|sinix|sysv|'`
-		;;
-	-sinix*)
-		os=-sysv4
-		;;
-	-tpf*)
-		os=-tpf
-		;;
-	-triton*)
-		os=-sysv3
-		;;
-	-oss*)
-		os=-sysv3
-		;;
-	-svr4)
-		os=-sysv4
-		;;
-	-svr3)
-		os=-sysv3
-		;;
-	-sysvr4)
-		os=-sysv4
-		;;
-	# This must come after -sysvr4.
-	-sysv*)
-		;;
-	-ose*)
-		os=-ose
-		;;
-	-es1800*)
-		os=-ose
-		;;
-	-xenix)
-		os=-xenix
-		;;
-	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-		os=-mint
-		;;
-	-aros*)
-		os=-aros
-		;;
-	-kaos*)
-		os=-kaos
-		;;
-	-zvmoe)
-		os=-zvmoe
-		;;
-	-dicos*)
-		os=-dicos
-		;;
-	-nacl*)
-		;;
-	-none)
-		;;
-	*)
-		# Get rid of the `-' at the beginning of $os.
-		os=`echo $os | sed 's/[^-]*-//'`
-		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
-		exit 1
-		;;
-esac
-else
-
-# Here we handle the default operating systems that come with various machines.
-# The value should be what the vendor currently ships out the door with their
-# machine or put another way, the most popular os provided with the machine.
-
-# Note that if you're going to try to match "-MANUFACTURER" here (say,
-# "-sun"), then you have to tell the case statement up towards the top
-# that MANUFACTURER isn't an operating system.  Otherwise, code above
-# will signal an error saying that MANUFACTURER isn't an operating
-# system, and we'll never get to this point.
-
-case $basic_machine in
-	score-*)
-		os=-elf
-		;;
-	spu-*)
-		os=-elf
-		;;
-	*-acorn)
-		os=-riscix1.2
-		;;
-	arm*-rebel)
-		os=-linux
-		;;
-	arm*-semi)
-		os=-aout
-		;;
-	c4x-* | tic4x-*)
-		os=-coff
-		;;
-	tic54x-*)
-		os=-coff
-		;;
-	tic55x-*)
-		os=-coff
-		;;
-	tic6x-*)
-		os=-coff
-		;;
-	# This must come before the *-dec entry.
-	pdp10-*)
-		os=-tops20
-		;;
-	pdp11-*)
-		os=-none
-		;;
-	*-dec | vax-*)
-		os=-ultrix4.2
-		;;
-	m68*-apollo)
-		os=-domain
-		;;
-	i386-sun)
-		os=-sunos4.0.2
-		;;
-	m68000-sun)
-		os=-sunos3
-		# This also exists in the configure program, but was not the
-		# default.
-		# os=-sunos4
-		;;
-	m68*-cisco)
-		os=-aout
-		;;
-	mep-*)
-		os=-elf
-		;;
-	mips*-cisco)
-		os=-elf
-		;;
-	mips*-*)
-		os=-elf
-		;;
-	or32-*)
-		os=-coff
-		;;
-	*-tti)	# must be before sparc entry or we get the wrong os.
-		os=-sysv3
-		;;
-	sparc-* | *-sun)
-		os=-sunos4.1.1
-		;;
-	*-be)
-		os=-beos
-		;;
-	*-haiku)
-		os=-haiku
-		;;
-	*-ibm)
-		os=-aix
-		;;
-	*-knuth)
-		os=-mmixware
-		;;
-	*-wec)
-		os=-proelf
-		;;
-	*-winbond)
-		os=-proelf
-		;;
-	*-oki)
-		os=-proelf
-		;;
-	*-hp)
-		os=-hpux
-		;;
-	*-hitachi)
-		os=-hiux
-		;;
-	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
-		os=-sysv
-		;;
-	*-cbm)
-		os=-amigaos
-		;;
-	*-dg)
-		os=-dgux
-		;;
-	*-dolphin)
-		os=-sysv3
-		;;
-	m68k-ccur)
-		os=-rtu
-		;;
-	m88k-omron*)
-		os=-luna
-		;;
-	*-next )
-		os=-nextstep
-		;;
-	*-sequent)
-		os=-ptx
-		;;
-	*-crds)
-		os=-unos
-		;;
-	*-ns)
-		os=-genix
-		;;
-	i370-*)
-		os=-mvs
-		;;
-	*-next)
-		os=-nextstep3
-		;;
-	*-gould)
-		os=-sysv
-		;;
-	*-highlevel)
-		os=-bsd
-		;;
-	*-encore)
-		os=-bsd
-		;;
-	*-sgi)
-		os=-irix
-		;;
-	*-siemens)
-		os=-sysv4
-		;;
-	*-masscomp)
-		os=-rtu
-		;;
-	f30[01]-fujitsu | f700-fujitsu)
-		os=-uxpv
-		;;
-	*-rom68k)
-		os=-coff
-		;;
-	*-*bug)
-		os=-coff
-		;;
-	*-apple)
-		os=-macos
-		;;
-	*-atari*)
-		os=-mint
-		;;
-	*)
-		os=-none
-		;;
-esac
-fi
-
-# Here we handle the case where we know the os, and the CPU type, but not the
-# manufacturer.  We pick the logical manufacturer.
-vendor=unknown
-case $basic_machine in
-	*-unknown)
-		case $os in
-			-riscix*)
-				vendor=acorn
-				;;
-			-sunos*)
-				vendor=sun
-				;;
-			-cnk*|-aix*)
-				vendor=ibm
-				;;
-			-beos*)
-				vendor=be
-				;;
-			-hpux*)
-				vendor=hp
-				;;
-			-mpeix*)
-				vendor=hp
-				;;
-			-hiux*)
-				vendor=hitachi
-				;;
-			-unos*)
-				vendor=crds
-				;;
-			-dgux*)
-				vendor=dg
-				;;
-			-luna*)
-				vendor=omron
-				;;
-			-genix*)
-				vendor=ns
-				;;
-			-mvs* | -opened*)
-				vendor=ibm
-				;;
-			-os400*)
-				vendor=ibm
-				;;
-			-ptx*)
-				vendor=sequent
-				;;
-			-tpf*)
-				vendor=ibm
-				;;
-			-vxsim* | -vxworks* | -windiss*)
-				vendor=wrs
-				;;
-			-aux*)
-				vendor=apple
-				;;
-			-hms*)
-				vendor=hitachi
-				;;
-			-mpw* | -macos*)
-				vendor=apple
-				;;
-			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
-				vendor=atari
-				;;
-			-vos*)
-				vendor=stratus
-				;;
-		esac
-		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
-		;;
-esac
-
-echo $basic_machine$os
-exit
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "timestamp='"
-# time-stamp-format: "%:y-%02m-%02d"
-# time-stamp-end: "'"
-# End:
diff --git a/configure b/configure
deleted file mode 100755
index 2a92f6f..0000000
--- a/configure
+++ /dev/null
@@ -1,23934 +0,0 @@
-#! /bin/sh
-# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.68.
-#
-#
-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
-# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software
-# Foundation, Inc.
-#
-#
-# This configure script is free software; the Free Software Foundation
-# gives unlimited permission to copy, distribute and modify it.
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-if test "x$CONFIG_SHELL" = x; then
-  as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-"
-  as_required="as_fn_return () { (exit \$1); }
-as_fn_success () { as_fn_return 0; }
-as_fn_failure () { as_fn_return 1; }
-as_fn_ret_success () { return 0; }
-as_fn_ret_failure () { return 1; }
-
-exitcode=0
-as_fn_success || { exitcode=1; echo as_fn_success failed.; }
-as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; }
-as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; }
-as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; }
-if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then :
-
-else
-  exitcode=1; echo positional parameters were not saved.
-fi
-test x\$exitcode = x0 || exit 1"
-  as_suggested="  as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO
-  as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO
-  eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" &&
-  test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1
-
-  test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || (
-    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
-    ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO
-    PATH=/empty FPATH=/empty; export PATH FPATH
-    test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\
-      || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1
-test \$(( 1 + 1 )) = 2 || exit 1"
-  if (eval "$as_required") 2>/dev/null; then :
-  as_have_required=yes
-else
-  as_have_required=no
-fi
-  if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then :
-
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-as_found=false
-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  as_found=:
-  case $as_dir in #(
-	 /*)
-	   for as_base in sh bash ksh sh5; do
-	     # Try only shells that exist, to save several forks.
-	     as_shell=$as_dir/$as_base
-	     if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&
-		    { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  CONFIG_SHELL=$as_shell as_have_required=yes
-		   if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then :
-  break 2
-fi
-fi
-	   done;;
-       esac
-  as_found=false
-done
-$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&
-	      { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then :
-  CONFIG_SHELL=$SHELL as_have_required=yes
-fi; }
-IFS=$as_save_IFS
-
-
-      if test "x$CONFIG_SHELL" != x; then :
-  # We cannot yet assume a decent shell, so we have to provide a
-	# neutralization value for shells without unset; and this also
-	# works around shells that cannot unset nonexistent variables.
-	# Preserve -v and -x to the replacement shell.
-	BASH_ENV=/dev/null
-	ENV=/dev/null
-	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
-	export CONFIG_SHELL
-	case $- in # ((((
-	  *v*x* | *x*v* ) as_opts=-vx ;;
-	  *v* ) as_opts=-v ;;
-	  *x* ) as_opts=-x ;;
-	  * ) as_opts= ;;
-	esac
-	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
-fi
-
-    if test x$as_have_required = xno; then :
-  $as_echo "$0: This script requires a shell more modern than all"
-  $as_echo "$0: the shells that I found on your system."
-  if test x${ZSH_VERSION+set} = xset ; then
-    $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should"
-    $as_echo "$0: be upgraded to zsh 4.3.4 or later."
-  else
-    $as_echo "$0: Please tell bug-autoconf at gnu.org about your system,
-$0: including any error possibly output before this
-$0: message. Then install a modern shell, or manually run
-$0: the script under such a shell if you do have one."
-  fi
-  exit 1
-fi
-fi
-fi
-SHELL=${CONFIG_SHELL-/bin/sh}
-export SHELL
-# Unset more variables known to interfere with behavior of common tools.
-CLICOLOR_FORCE= GREP_OPTIONS=
-unset CLICOLOR_FORCE GREP_OPTIONS
-
-## --------------------- ##
-## M4sh Shell Functions. ##
-## --------------------- ##
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-
-  as_lineno_1=$LINENO as_lineno_1a=$LINENO
-  as_lineno_2=$LINENO as_lineno_2a=$LINENO
-  eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" &&
-  test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || {
-  # Blame Lee E. McMahon (1931-1989) for sed's syntax.  :-)
-  sed -n '
-    p
-    /[$]LINENO/=
-  ' <$as_myself |
-    sed '
-      s/[$]LINENO.*/&-/
-      t lineno
-      b
-      :lineno
-      N
-      :loop
-      s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/
-      t loop
-      s/-\n.*//
-    ' >$as_me.lineno &&
-  chmod +x "$as_me.lineno" ||
-    { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; }
-
-  # Don't try to exec as it changes $[0], causing all sort of problems
-  # (the dirname of $[0] is not the place where we might find the
-  # original and so on.  Autoconf is especially sensitive to this).
-  . "./$as_me.lineno"
-  # Exit status is that of the last command.
-  exit
-}
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-SHELL=${CONFIG_SHELL-/bin/sh}
-
-
-test -n "$DJDIR" || exec 7<&0 </dev/null
-exec 6>&1
-
-# Name of the host.
-# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status,
-# so uname gets run too.
-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`
-
-#
-# Initializations.
-#
-ac_default_prefix=/usr/local
-ac_clean_files=
-ac_config_libobj_dir=.
-LIBOBJS=
-cross_compiling=no
-subdirs=
-MFLAGS=
-MAKEFLAGS=
-
-# Identity of this package.
-PACKAGE_NAME=
-PACKAGE_TARNAME=
-PACKAGE_VERSION=
-PACKAGE_STRING=
-PACKAGE_BUGREPORT=
-PACKAGE_URL=
-
-ac_unique_file="Makefile.in"
-# Factoring default headers for most tests.
-ac_includes_default="\
-#include <stdio.h>
-#ifdef HAVE_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-#ifdef HAVE_SYS_STAT_H
-# include <sys/stat.h>
-#endif
-#ifdef STDC_HEADERS
-# include <stdlib.h>
-# include <stddef.h>
-#else
-# ifdef HAVE_STDLIB_H
-#  include <stdlib.h>
-# endif
-#endif
-#ifdef HAVE_STRING_H
-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H
-#  include <memory.h>
-# endif
-# include <string.h>
-#endif
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_INTTYPES_H
-# include <inttypes.h>
-#endif
-#ifdef HAVE_STDINT_H
-# include <stdint.h>
-#endif
-#ifdef HAVE_UNISTD_H
-# include <unistd.h>
-#endif"
-
-ac_unique_file="mapserv.c"
-ac_subst_vars='LTLIBOBJS
-LIBOBJS
-RPATHS
-ALL_STATIC_LIB
-ALL_LIB
-ALL_INC
-ALL_ENABLED
-OS_INCLUDE_DIR
-PYTHON_MAPSCRIPT
-PYTHON
-SWIG_LIB
-SWIG
-JAVA_INCLUDE
-_ACJNI_JAVAC
-SO_COMMAND_NAME
-SO_EXT
-LD_SHARED
-C_PIC
-PHP_MAPSCRIPT
-USE_PHP_REGEX
-PHP_REGEX_OBJ
-PHP_REGEX_INC
-PHP_VERSION_FLAG
-PHPCONFIG
-DEBUG_FLAGS
-PROJ_FASTPATH_ENABLED
-USE_NINT
-USE_POINT_Z_M
-IGNORE_MISSING_DATA
-MS_LIB
-MS_INC
-APR_LIBS
-APR_INC
-APR_CFLAGS
-APRCONFIG
-HTTPD
-APACHE_LDFLAGS
-APACHE_LIBS
-APACHE_INC
-APACHECTL
-APACHE_BINDIR
-APACHE_SBINDIR
-APXS
-FASTCGI_LIB
-FASTCGI_INC
-FASTCGI_ENABLED
-LIBSVG_CAIRO_LIB
-LIBSVG_CAIRO_INC
-LIBSVG_CAIRO_ENABLED
-CAIRO_LIB
-CAIRO_INC
-CAIRO_ENABLED
-FRIBIDI_LIB
-FRIBIDI_INC
-FRIBIDI_ENABLED
-FRIBIDI_CONFIG
-EXSLT_LIB
-EXSLT_INC
-EXSLT_ENABLED
-XSLT_LIB
-XSLT_INC
-XSLT_ENABLED
-SOS_SVR_ENABLED
-WFS_LYR_ENABLED
-WMS_LYR_ENABLED
-XML2_LIB
-XML2_INC
-LIBXML2_CONFIG
-EXEMPI_LIB
-EXEMPI_INC
-EXEMPI_ENABLED
-CURL_LIB
-CURL_INC
-LIBCURL_CONFIG
-WCS_SVR_ENABLED
-WFS_SVR_ENABLED
-WMS_SVR_ENABLED
-ORACLESPATIAL_LIB
-ORACLESPATIAL_INC
-ORACLESPATIAL_ENABLED
-MYSQL_LIB
-MYSQL_INC
-MYSQL_ENABLED
-MY_CONFIG
-POSTGIS_LIB
-POSTGIS_INC
-POSTGIS_ENABLED
-PG_CONFIG
-GDAL_LIB
-GDAL_INC
-OGR_ENABLED
-GDAL_ENABLED
-GDAL_CONFIG
-GEOS_LIB
-GEOS_INC
-GEOS_ENABLED
-GEOS_CONFIG
-SDE_LIB
-SDE_INC
-SDE_ENABLED
-THREAD_LIB
-THREAD_FLAG
-PROJ_LIBS
-PROJ_INC
-PROJ_ENABLED
-OGL_LIB
-OGL_INC
-OGL_ENABLED
-FTGL_LIB
-FTGL_INC
-FTGL_ENABLED
-GDCONFIG
-GD_LIB
-GD_INC
-GD_ENABLED
-ICONV_LIB
-ICONV_INC
-ICONV_ENABLED
-JPEG_LIB
-JPEG_INC
-JPEG_ENABLED
-GIF_LIB
-GIF_INC
-GIF_ENABLED
-PNG_LIB
-PNG_INC
-PNG_ENABLED
-FT_LIB
-FT_INC
-FT_ENABLED
-FT_BIN
-PKG_CONFIG
-STRINGS
-XTRALIBS
-MS_VERSION
-INSTALL_DATA
-INSTALL_SCRIPT
-INSTALL_PROGRAM
-YFLAGS
-YACC
-LEXLIB
-LEX_OUTPUT_ROOT
-LEX
-CXXCPP
-ac_ct_CXX
-CXXFLAGS
-CXX
-CPP
-OTOOL64
-OTOOL
-LIPO
-NMEDIT
-DSYMUTIL
-MANIFEST_TOOL
-AWK
-RANLIB
-STRIP
-ac_ct_AR
-AR
-DLLTOOL
-OBJDUMP
-LN_S
-NM
-ac_ct_DUMPBIN
-DUMPBIN
-LD
-FGREP
-EGREP
-GREP
-SED
-OBJEXT
-EXEEXT
-ac_ct_CC
-CPPFLAGS
-LDFLAGS
-CFLAGS
-CC
-host_os
-host_vendor
-host_cpu
-host
-build_os
-build_vendor
-build_cpu
-build
-LIBTOOL
-target_alias
-host_alias
-build_alias
-LIBS
-ECHO_T
-ECHO_N
-ECHO_C
-DEFS
-mandir
-localedir
-libdir
-psdir
-pdfdir
-dvidir
-htmldir
-infodir
-docdir
-oldincludedir
-includedir
-localstatedir
-sharedstatedir
-sysconfdir
-datadir
-datarootdir
-libexecdir
-sbindir
-bindir
-program_transform_name
-prefix
-exec_prefix
-PACKAGE_URL
-PACKAGE_BUGREPORT
-PACKAGE_STRING
-PACKAGE_VERSION
-PACKAGE_TARNAME
-PACKAGE_NAME
-PATH_SEPARATOR
-SHELL'
-ac_subst_files=''
-ac_user_opts='
-enable_option_checking
-enable_static
-enable_shared
-with_pic
-enable_fast_install
-with_gnu_ld
-with_sysroot
-enable_libtool_lock
-with_pkg_config
-with_freetype
-with_png
-with_gif
-with_jpeg
-with_libiconv
-with_gd
-with_ftgl
-with_ogl
-with_expat
-with_proj
-with_threads
-with_sde
-with_sde_version
-with_geos
-with_ogr
-with_gdal
-with_postgis
-with_mysql
-with_oraclespatial
-with_wms
-with_wfs
-with_wcs
-with_wmsclient
-with_wfsclient
-with_sos
-with_curl_config
-with_kml
-with_exempi
-with_xml2_config
-with_xml_mapfile
-with_xslt
-with_exslt
-with_fribidi_config
-with_cairo
-with_libsvg_cairo
-with_fastcgi
-with_apache_module
-with_apxs
-with_apr_config
-enable_ignore_missing_data
-enable_point_z_m
-enable_fast_nint
-with_warnings
-enable_debug
-enable_proj_fastpath
-enable_cgi_cl_debug_args
-enable_gcov
-with_php
-enable_internal_ld_detect
-with_ld_shared
-with_java_include_os_name
-enable_python_mapscript
-with_python
-'
-      ac_precious_vars='build_alias
-host_alias
-target_alias
-CC
-CFLAGS
-LDFLAGS
-LIBS
-CPPFLAGS
-CPP
-CXX
-CXXFLAGS
-CCC
-CXXCPP
-YACC
-YFLAGS'
-
-
-# Initialize some variables set by options.
-ac_init_help=
-ac_init_version=false
-ac_unrecognized_opts=
-ac_unrecognized_sep=
-# The variables have the same names as the options, with
-# dashes changed to underlines.
-cache_file=/dev/null
-exec_prefix=NONE
-no_create=
-no_recursion=
-prefix=NONE
-program_prefix=NONE
-program_suffix=NONE
-program_transform_name=s,x,x,
-silent=
-site=
-srcdir=
-verbose=
-x_includes=NONE
-x_libraries=NONE
-
-# Installation directory options.
-# These are left unexpanded so users can "make install exec_prefix=/foo"
-# and all the variables that are supposed to be based on exec_prefix
-# by default will actually change.
-# Use braces instead of parens because sh, perl, etc. also accept them.
-# (The list follows the same order as the GNU Coding Standards.)
-bindir='${exec_prefix}/bin'
-sbindir='${exec_prefix}/sbin'
-libexecdir='${exec_prefix}/libexec'
-datarootdir='${prefix}/share'
-datadir='${datarootdir}'
-sysconfdir='${prefix}/etc'
-sharedstatedir='${prefix}/com'
-localstatedir='${prefix}/var'
-includedir='${prefix}/include'
-oldincludedir='/usr/include'
-docdir='${datarootdir}/doc/${PACKAGE}'
-infodir='${datarootdir}/info'
-htmldir='${docdir}'
-dvidir='${docdir}'
-pdfdir='${docdir}'
-psdir='${docdir}'
-libdir='${exec_prefix}/lib'
-localedir='${datarootdir}/locale'
-mandir='${datarootdir}/man'
-
-ac_prev=
-ac_dashdash=
-for ac_option
-do
-  # If the previous option needs an argument, assign it.
-  if test -n "$ac_prev"; then
-    eval $ac_prev=\$ac_option
-    ac_prev=
-    continue
-  fi
-
-  case $ac_option in
-  *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;
-  *=)   ac_optarg= ;;
-  *)    ac_optarg=yes ;;
-  esac
-
-  # Accept the important Cygnus configure options, so we can diagnose typos.
-
-  case $ac_dashdash$ac_option in
-  --)
-    ac_dashdash=yes ;;
-
-  -bindir | --bindir | --bindi | --bind | --bin | --bi)
-    ac_prev=bindir ;;
-  -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)
-    bindir=$ac_optarg ;;
-
-  -build | --build | --buil | --bui | --bu)
-    ac_prev=build_alias ;;
-  -build=* | --build=* | --buil=* | --bui=* | --bu=*)
-    build_alias=$ac_optarg ;;
-
-  -cache-file | --cache-file | --cache-fil | --cache-fi \
-  | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)
-    ac_prev=cache_file ;;
-  -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \
-  | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)
-    cache_file=$ac_optarg ;;
-
-  --config-cache | -C)
-    cache_file=config.cache ;;
-
-  -datadir | --datadir | --datadi | --datad)
-    ac_prev=datadir ;;
-  -datadir=* | --datadir=* | --datadi=* | --datad=*)
-    datadir=$ac_optarg ;;
-
-  -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \
-  | --dataroo | --dataro | --datar)
-    ac_prev=datarootdir ;;
-  -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \
-  | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)
-    datarootdir=$ac_optarg ;;
-
-  -disable-* | --disable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=no ;;
-
-  -docdir | --docdir | --docdi | --doc | --do)
-    ac_prev=docdir ;;
-  -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)
-    docdir=$ac_optarg ;;
-
-  -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)
-    ac_prev=dvidir ;;
-  -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)
-    dvidir=$ac_optarg ;;
-
-  -enable-* | --enable-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid feature name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"enable_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval enable_$ac_useropt=\$ac_optarg ;;
-
-  -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \
-  | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \
-  | --exec | --exe | --ex)
-    ac_prev=exec_prefix ;;
-  -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \
-  | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \
-  | --exec=* | --exe=* | --ex=*)
-    exec_prefix=$ac_optarg ;;
-
-  -gas | --gas | --ga | --g)
-    # Obsolete; use --with-gas.
-    with_gas=yes ;;
-
-  -help | --help | --hel | --he | -h)
-    ac_init_help=long ;;
-  -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)
-    ac_init_help=recursive ;;
-  -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)
-    ac_init_help=short ;;
-
-  -host | --host | --hos | --ho)
-    ac_prev=host_alias ;;
-  -host=* | --host=* | --hos=* | --ho=*)
-    host_alias=$ac_optarg ;;
-
-  -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)
-    ac_prev=htmldir ;;
-  -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \
-  | --ht=*)
-    htmldir=$ac_optarg ;;
-
-  -includedir | --includedir | --includedi | --included | --include \
-  | --includ | --inclu | --incl | --inc)
-    ac_prev=includedir ;;
-  -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \
-  | --includ=* | --inclu=* | --incl=* | --inc=*)
-    includedir=$ac_optarg ;;
-
-  -infodir | --infodir | --infodi | --infod | --info | --inf)
-    ac_prev=infodir ;;
-  -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)
-    infodir=$ac_optarg ;;
-
-  -libdir | --libdir | --libdi | --libd)
-    ac_prev=libdir ;;
-  -libdir=* | --libdir=* | --libdi=* | --libd=*)
-    libdir=$ac_optarg ;;
-
-  -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \
-  | --libexe | --libex | --libe)
-    ac_prev=libexecdir ;;
-  -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \
-  | --libexe=* | --libex=* | --libe=*)
-    libexecdir=$ac_optarg ;;
-
-  -localedir | --localedir | --localedi | --localed | --locale)
-    ac_prev=localedir ;;
-  -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)
-    localedir=$ac_optarg ;;
-
-  -localstatedir | --localstatedir | --localstatedi | --localstated \
-  | --localstate | --localstat | --localsta | --localst | --locals)
-    ac_prev=localstatedir ;;
-  -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \
-  | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)
-    localstatedir=$ac_optarg ;;
-
-  -mandir | --mandir | --mandi | --mand | --man | --ma | --m)
-    ac_prev=mandir ;;
-  -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)
-    mandir=$ac_optarg ;;
-
-  -nfp | --nfp | --nf)
-    # Obsolete; use --without-fp.
-    with_fp=no ;;
-
-  -no-create | --no-create | --no-creat | --no-crea | --no-cre \
-  | --no-cr | --no-c | -n)
-    no_create=yes ;;
-
-  -no-recursion | --no-recursion | --no-recursio | --no-recursi \
-  | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)
-    no_recursion=yes ;;
-
-  -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \
-  | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \
-  | --oldin | --oldi | --old | --ol | --o)
-    ac_prev=oldincludedir ;;
-  -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \
-  | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \
-  | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)
-    oldincludedir=$ac_optarg ;;
-
-  -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)
-    ac_prev=prefix ;;
-  -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)
-    prefix=$ac_optarg ;;
-
-  -program-prefix | --program-prefix | --program-prefi | --program-pref \
-  | --program-pre | --program-pr | --program-p)
-    ac_prev=program_prefix ;;
-  -program-prefix=* | --program-prefix=* | --program-prefi=* \
-  | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)
-    program_prefix=$ac_optarg ;;
-
-  -program-suffix | --program-suffix | --program-suffi | --program-suff \
-  | --program-suf | --program-su | --program-s)
-    ac_prev=program_suffix ;;
-  -program-suffix=* | --program-suffix=* | --program-suffi=* \
-  | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)
-    program_suffix=$ac_optarg ;;
-
-  -program-transform-name | --program-transform-name \
-  | --program-transform-nam | --program-transform-na \
-  | --program-transform-n | --program-transform- \
-  | --program-transform | --program-transfor \
-  | --program-transfo | --program-transf \
-  | --program-trans | --program-tran \
-  | --progr-tra | --program-tr | --program-t)
-    ac_prev=program_transform_name ;;
-  -program-transform-name=* | --program-transform-name=* \
-  | --program-transform-nam=* | --program-transform-na=* \
-  | --program-transform-n=* | --program-transform-=* \
-  | --program-transform=* | --program-transfor=* \
-  | --program-transfo=* | --program-transf=* \
-  | --program-trans=* | --program-tran=* \
-  | --progr-tra=* | --program-tr=* | --program-t=*)
-    program_transform_name=$ac_optarg ;;
-
-  -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)
-    ac_prev=pdfdir ;;
-  -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)
-    pdfdir=$ac_optarg ;;
-
-  -psdir | --psdir | --psdi | --psd | --ps)
-    ac_prev=psdir ;;
-  -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)
-    psdir=$ac_optarg ;;
-
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil)
-    silent=yes ;;
-
-  -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
-    ac_prev=sbindir ;;
-  -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
-  | --sbi=* | --sb=*)
-    sbindir=$ac_optarg ;;
-
-  -sharedstatedir | --sharedstatedir | --sharedstatedi \
-  | --sharedstated | --sharedstate | --sharedstat | --sharedsta \
-  | --sharedst | --shareds | --shared | --share | --shar \
-  | --sha | --sh)
-    ac_prev=sharedstatedir ;;
-  -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \
-  | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \
-  | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \
-  | --sha=* | --sh=*)
-    sharedstatedir=$ac_optarg ;;
-
-  -site | --site | --sit)
-    ac_prev=site ;;
-  -site=* | --site=* | --sit=*)
-    site=$ac_optarg ;;
-
-  -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)
-    ac_prev=srcdir ;;
-  -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)
-    srcdir=$ac_optarg ;;
-
-  -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \
-  | --syscon | --sysco | --sysc | --sys | --sy)
-    ac_prev=sysconfdir ;;
-  -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \
-  | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)
-    sysconfdir=$ac_optarg ;;
-
-  -target | --target | --targe | --targ | --tar | --ta | --t)
-    ac_prev=target_alias ;;
-  -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)
-    target_alias=$ac_optarg ;;
-
-  -v | -verbose | --verbose | --verbos | --verbo | --verb)
-    verbose=yes ;;
-
-  -version | --version | --versio | --versi | --vers | -V)
-    ac_init_version=: ;;
-
-  -with-* | --with-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=\$ac_optarg ;;
-
-  -without-* | --without-*)
-    ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`
-    # Reject names that are not valid shell variable names.
-    expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&
-      as_fn_error $? "invalid package name: $ac_useropt"
-    ac_useropt_orig=$ac_useropt
-    ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`
-    case $ac_user_opts in
-      *"
-"with_$ac_useropt"
-"*) ;;
-      *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"
-	 ac_unrecognized_sep=', ';;
-    esac
-    eval with_$ac_useropt=no ;;
-
-  --x)
-    # Obsolete; use --with-x.
-    with_x=yes ;;
-
-  -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \
-  | --x-incl | --x-inc | --x-in | --x-i)
-    ac_prev=x_includes ;;
-  -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \
-  | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)
-    x_includes=$ac_optarg ;;
-
-  -x-libraries | --x-libraries | --x-librarie | --x-librari \
-  | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)
-    ac_prev=x_libraries ;;
-  -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \
-  | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)
-    x_libraries=$ac_optarg ;;
-
-  -*) as_fn_error $? "unrecognized option: \`$ac_option'
-Try \`$0 --help' for more information"
-    ;;
-
-  *=*)
-    ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`
-    # Reject names that are not valid shell variable names.
-    case $ac_envvar in #(
-      '' | [0-9]* | *[!_$as_cr_alnum]* )
-      as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;
-    esac
-    eval $ac_envvar=\$ac_optarg
-    export $ac_envvar ;;
-
-  *)
-    # FIXME: should be removed in autoconf 3.0.
-    $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
-    expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
-      $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
-    ;;
-
-  esac
-done
-
-if test -n "$ac_prev"; then
-  ac_option=--`echo $ac_prev | sed 's/_/-/g'`
-  as_fn_error $? "missing argument to $ac_option"
-fi
-
-if test -n "$ac_unrecognized_opts"; then
-  case $enable_option_checking in
-    no) ;;
-    fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;;
-    *)     $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;
-  esac
-fi
-
-# Check all directory arguments for consistency.
-for ac_var in	exec_prefix prefix bindir sbindir libexecdir datarootdir \
-		datadir sysconfdir sharedstatedir localstatedir includedir \
-		oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
-		libdir localedir mandir
-do
-  eval ac_val=\$$ac_var
-  # Remove trailing slashes.
-  case $ac_val in
-    */ )
-      ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`
-      eval $ac_var=\$ac_val;;
-  esac
-  # Be sure to have absolute directory names.
-  case $ac_val in
-    [\\/$]* | ?:[\\/]* )  continue;;
-    NONE | '' ) case $ac_var in *prefix ) continue;; esac;;
-  esac
-  as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val"
-done
-
-# There might be people who depend on the old broken behavior: `$host'
-# used to hold the argument of --host etc.
-# FIXME: To remove some day.
-build=$build_alias
-host=$host_alias
-target=$target_alias
-
-# FIXME: To remove some day.
-if test "x$host_alias" != x; then
-  if test "x$build_alias" = x; then
-    cross_compiling=maybe
-    $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host.
-    If a cross compiler is detected then cross compile mode will be used" >&2
-  elif test "x$build_alias" != "x$host_alias"; then
-    cross_compiling=yes
-  fi
-fi
-
-ac_tool_prefix=
-test -n "$host_alias" && ac_tool_prefix=$host_alias-
-
-test "$silent" = yes && exec 6>/dev/null
-
-
-ac_pwd=`pwd` && test -n "$ac_pwd" &&
-ac_ls_di=`ls -di .` &&
-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||
-  as_fn_error $? "working directory cannot be determined"
-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||
-  as_fn_error $? "pwd does not report name of working directory"
-
-
-# Find the source files, if location was not specified.
-if test -z "$srcdir"; then
-  ac_srcdir_defaulted=yes
-  # Try the directory containing this script, then the parent directory.
-  ac_confdir=`$as_dirname -- "$as_myself" ||
-$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_myself" : 'X\(//\)[^/]' \| \
-	 X"$as_myself" : 'X\(//\)$' \| \
-	 X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_myself" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  srcdir=$ac_confdir
-  if test ! -r "$srcdir/$ac_unique_file"; then
-    srcdir=..
-  fi
-else
-  ac_srcdir_defaulted=no
-fi
-if test ! -r "$srcdir/$ac_unique_file"; then
-  test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."
-  as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir"
-fi
-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"
-ac_abs_confdir=`(
-	cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg"
-	pwd)`
-# When building in place, set srcdir=.
-if test "$ac_abs_confdir" = "$ac_pwd"; then
-  srcdir=.
-fi
-# Remove unnecessary trailing slashes from srcdir.
-# Double slashes in file names in object file debugging info
-# mess up M-x gdb in Emacs.
-case $srcdir in
-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;
-esac
-for ac_var in $ac_precious_vars; do
-  eval ac_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_env_${ac_var}_value=\$${ac_var}
-  eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}
-  eval ac_cv_env_${ac_var}_value=\$${ac_var}
-done
-
-#
-# Report the --help message.
-#
-if test "$ac_init_help" = "long"; then
-  # Omit some internal or obsolete options to make the list less imposing.
-  # This message is too long to be a string in the A/UX 3.1 sh.
-  cat <<_ACEOF
-\`configure' configures this package to adapt to many kinds of systems.
-
-Usage: $0 [OPTION]... [VAR=VALUE]...
-
-To assign environment variables (e.g., CC, CFLAGS...), specify them as
-VAR=VALUE.  See below for descriptions of some of the useful variables.
-
-Defaults for the options are specified in brackets.
-
-Configuration:
-  -h, --help              display this help and exit
-      --help=short        display options specific to this package
-      --help=recursive    display the short help of all the included packages
-  -V, --version           display version information and exit
-  -q, --quiet, --silent   do not print \`checking ...' messages
-      --cache-file=FILE   cache test results in FILE [disabled]
-  -C, --config-cache      alias for \`--cache-file=config.cache'
-  -n, --no-create         do not create output files
-      --srcdir=DIR        find the sources in DIR [configure dir or \`..']
-
-Installation directories:
-  --prefix=PREFIX         install architecture-independent files in PREFIX
-                          [$ac_default_prefix]
-  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
-                          [PREFIX]
-
-By default, \`make install' will install all the files in
-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc.  You can specify
-an installation prefix other than \`$ac_default_prefix' using \`--prefix',
-for instance \`--prefix=\$HOME'.
-
-For better control, use the options below.
-
-Fine tuning of the installation directories:
-  --bindir=DIR            user executables [EPREFIX/bin]
-  --sbindir=DIR           system admin executables [EPREFIX/sbin]
-  --libexecdir=DIR        program executables [EPREFIX/libexec]
-  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
-  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
-  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
-  --libdir=DIR            object code libraries [EPREFIX/lib]
-  --includedir=DIR        C header files [PREFIX/include]
-  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
-  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
-  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
-  --infodir=DIR           info documentation [DATAROOTDIR/info]
-  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
-  --mandir=DIR            man documentation [DATAROOTDIR/man]
-  --docdir=DIR            documentation root [DATAROOTDIR/doc/PACKAGE]
-  --htmldir=DIR           html documentation [DOCDIR]
-  --dvidir=DIR            dvi documentation [DOCDIR]
-  --pdfdir=DIR            pdf documentation [DOCDIR]
-  --psdir=DIR             ps documentation [DOCDIR]
-_ACEOF
-
-  cat <<\_ACEOF
-
-System types:
-  --build=BUILD     configure for building on BUILD [guessed]
-  --host=HOST       cross-compile to build programs to run on HOST [BUILD]
-_ACEOF
-fi
-
-if test -n "$ac_init_help"; then
-
-  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-static[=PKGS]  build static libraries [default=no]
-  --enable-shared[=PKGS]  build shared libraries [default=yes]
-  --enable-fast-install[=PKGS]
-                          optimize for fast installation [default=yes]
-  --disable-libtool-lock  avoid locking (might break parallel builds)
-  --enable-ignore-missing-data
-                          Ignore missing data file errors at runtime
-  --disable-ignore-missing-data
-                          Report all missing data files (enabled by default).
-  --enable-point-z-m      Use point Z and M parameters (disabled by default).
-  --disable-point-z-m     Disable support for point Z and M parameters.
-  --disable-fast-nint     Use safe MS_NINT with reliable rounding
-  --enable-debug          Include "-g" in CFLAGS for debugging.
-  --disable-debug         Do not include "-g" in CFLAGS (the default).
-  --enable-proj-fastpath  bypass proj.4 for epsg:4326 to epsg:3857
-                          reprojections
-  --enable-cgi-cl-debug-args
-                          Enable mapserv CGI command-line debug arguments
-                          (disabled by default). These command-line args may
-                          be insecure and should be enabled only on
-                          development servers and only if you understand the
-                          security implications.
-  --enable-gcov           Enable source code coverage testing using gcov
-  --enable-perlv-ld-detect
-                          (applies to --with-php only)
-                          Use perl -V output to figure the command to use to
-                          link php_mapscript.so.  Try this only if the default
-                          internal macro didn't work.
-  --enable-python-mapscript     build the python mapscript module.
-
-Optional Packages:
-  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-  --with-pic[=PKGS]       try to use only PIC/non-PIC objects [default=use
-                          both]
-  --with-gnu-ld           assume the C compiler uses GNU ld [default=no]
-  --with-sysroot=DIR Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).
-  --with-pkg-config[=PATH]
-                          Include pkg-config support (PATH is path to pkg-config)
-  --with-freetype=DIR     GD: Specify where FreeType 2.x is installed (DIR is
-                              path to freetype-config program or install dir).
-  --with-png              libpng location: [yes|/path/to/png/prefix]
-  --with-gif              libgif location: [yes|no|/path/to/gif/prefix]
-  --with-jpeg             libjpeg location: [yes|/path/to/jpeg/prefix]
-  --with-libiconv=DIR     Specify where libiconv is installed (DIR is path
-                          to libiconv install dir (prefix)).
-  --with-gd               libgd location: [yes|no|/path/to/gdlib-config]
-  --with-ftgl[=DIR]       Include OpenGl support (DIR is OpenGL's install dir).
-  --with-opengl[=DIR]     Include OpenGl support (DIR is OpenGL's install dir).
-  --with-expat=DIR          Specify expat location, needed for SVG symbol parsing
-  --with-proj[=DIR]       Include PROJ.4 support (DIR is PROJ.4's install dir).
-  --with-threads[=linkopt]Include thread safe support
-  --with-sde[=DIR]        Include ESRI SDE support (DIR is SDE's install dir).
-  --with-sde-version[=VERSION NUMBER]
-                          Set ESRI SDE version number (Default is 91).
-  --with-geos[=PATH]      Include GEOS support (PATH is path to geos-config)
-  --with-ogr[=PATH]       Include OGR support (PATH is path to gdal-config).
-  --with-gdal[=PATH]      Include GDAL support (PATH is path to gdal-config)
-  --with-postgis[=ARG]    Include PostGIS Support (ARG=yes/path to pg_config)
-  --with-mysql[=ARG]      Include Mysql Support (ARG=yes/path to mysql_config)
-  --with-oraclespatial[=ARG]
-                          Include OracleSpatial Support (ARG=yes/path to
-                          Oracle home)
-  --without-wms           Disable OGC WMS Compatibility (enabled by default).
-  --with-wfs              Enable OGC WFS Server Support (OGR+PROJ4 required).
-  --with-wcs              Enable OGC WCS Server Support (GDAL+PROJ4 required).
-  --with-wmsclient        Enable OGC WMS Client Connections (PROJ4, libcurl and
-                          GDAL required).
-  --with-wfsclient        Enable OGC WFS Client Connections (PROJ4, libcurl and
-                          OGR required).
-  --with-sos              Enable OGC SOS Server Support (libxml2 and PROJ4 and
-                          OGR required).
-  --with-curl-config=PATH Specify path to curl-config.
-  --with-kml=                KML output Support (ARG=yes/no).
-  --with-exempi=DIR Specify path to exempi.
-  --with-xml2-config=PATH Specify path to xml2-config.
-  --with-xml-mapfile=                Include xml-mapfile Support (ARG=yes/no).
-  --with-xslt=DIR         Include xslt Support (ARG=yes/path to
-                          to xslt install dir).
-  --with-exslt=DIR         Include exslt Support (ARG=yes/path to
-                           to exslt install dir).
-  --with-fribidi-config[=ARG]
-                          Include FriBidi Support (ARG=yes/path to
-                          fribidi-config or fribidi.pc)
-  --with-cairo[=ARG]      Include Cairo Support (ARG=yes/path to cairo.pc)
-  --with-libsvg-cairo[=ARG]      Include Cairo SVG Parser Support (ARG=yes/path to cairo.pc)
-  --with-fastcgi=path     Enable FastCGI, point to installed tree.
-  --with-apache-module    enable building mod_mapserver module
-  --with-apxs=/path/to/apxs     Apache 2 apxs tool location
-  --with-apr-config       path to apr-config program
-  --with-warnings[=flags] Enable strict warnings (or user defined warnings)
-  --with-php=yes|no|/path/to/php-config
-                          Specify location of php-config script.
-                          Required in order to compile the PHP/MapScript
-                          module.
-  --with-ld-shared=CMD    Specify link command to use to build shared libs
-  --without-ld-shared     Disable shared library support
-  --with-java-include-os-name=dirname
-                          (AUTODETECTED)
-                          Use this option only if building of Java Mapscript
-                          fails because os-dependent headers are not found.
-                          dirname is the name of subdirectory of the Java
-                          installation where os-dependent include files are
-                          found (for instance linux or solaris).
-                          Only used by Java mapscript.
-  --with-python[=PATH] Specify python binary (PATH is path to python)
-
-Some influential environment variables:
-  CC          C compiler command
-  CFLAGS      C compiler flags
-  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
-              nonstandard directory <lib dir>
-  LIBS        libraries to pass to the linker, e.g. -l<library>
-  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
-              you have headers in a nonstandard directory <include dir>
-  CPP         C preprocessor
-  CXX         C++ compiler command
-  CXXFLAGS    C++ compiler flags
-  CXXCPP      C++ preprocessor
-  YACC        The `Yet Another Compiler Compiler' implementation to use.
-              Defaults to the first program found out of: `bison -y', `byacc',
-              `yacc'.
-  YFLAGS      The list of arguments that will be passed by default to $YACC.
-              This script will default YFLAGS to the empty string to avoid a
-              default value of `-d' given by some make applications.
-
-Use these variables to override the choices made by `configure' or to help
-it to find libraries and programs with nonstandard names/locations.
-
-Report bugs to the package provider.
-_ACEOF
-ac_status=$?
-fi
-
-if test "$ac_init_help" = "recursive"; then
-  # If there are subdirs, report their specific --help.
-  for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue
-    test -d "$ac_dir" ||
-      { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||
-      continue
-    ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-    cd "$ac_dir" || { ac_status=$?; continue; }
-    # Check for guested configure.
-    if test -f "$ac_srcdir/configure.gnu"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure.gnu" --help=recursive
-    elif test -f "$ac_srcdir/configure"; then
-      echo &&
-      $SHELL "$ac_srcdir/configure" --help=recursive
-    else
-      $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2
-    fi || ac_status=$?
-    cd "$ac_pwd" || { ac_status=$?; break; }
-  done
-fi
-
-test -n "$ac_init_help" && exit $ac_status
-if $ac_init_version; then
-  cat <<\_ACEOF
-configure
-generated by GNU Autoconf 2.68
-
-Copyright (C) 2010 Free Software Foundation, Inc.
-This configure script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it.
-_ACEOF
-  exit
-fi
-
-## ------------------------ ##
-## Autoconf initialization. ##
-## ------------------------ ##
-
-# ac_fn_c_try_compile LINENO
-# --------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_compile
-
-# ac_fn_c_try_link LINENO
-# -----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_link
-
-# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists and can be compiled using the include files in
-# INCLUDES, setting the cache variable VAR accordingly.
-ac_fn_c_check_header_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_compile
-
-# ac_fn_c_try_cpp LINENO
-# ----------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_c_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_cpp
-
-# ac_fn_c_try_run LINENO
-# ----------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes
-# that executables *can* be run.
-ac_fn_c_try_run ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && { ac_try='./conftest$ac_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: program exited with status $ac_status" >&5
-       $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-       ac_retval=$ac_status
-fi
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_c_try_run
-
-# ac_fn_c_check_func LINENO FUNC VAR
-# ----------------------------------
-# Tests whether FUNC exists, setting the cache variable VAR accordingly
-ac_fn_c_check_func ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-/* Define $2 to an innocuous variant, in case <limits.h> declares $2.
-   For example, HP-UX 11i <limits.h> declares gettimeofday.  */
-#define $2 innocuous_$2
-
-/* System header to define __stub macros and hopefully few prototypes,
-    which can conflict with char $2 (); below.
-    Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-    <limits.h> exists even on freestanding compilers.  */
-
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-
-#undef $2
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char $2 ();
-/* The GNU C library defines this for functions which it implements
-    to always fail with ENOSYS.  Some functions are actually named
-    something starting with __ and the normal name is an alias.  */
-#if defined __stub_$2 || defined __stub___$2
-choke me
-#endif
-
-int
-main ()
-{
-return $2 ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$3=yes"
-else
-  eval "$3=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_func
-
-# ac_fn_cxx_try_compile LINENO
-# ----------------------------
-# Try to compile conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_compile ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext
-  if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest.$ac_objext; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_compile
-
-# ac_fn_cxx_try_cpp LINENO
-# ------------------------
-# Try to preprocess conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_cpp ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if { { ac_try="$ac_cpp conftest.$ac_ext"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } > conftest.i && {
-	 test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-    ac_retval=1
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_cpp
-
-# ac_fn_cxx_try_link LINENO
-# -------------------------
-# Try to link conftest.$ac_ext, and return whether this succeeded.
-ac_fn_cxx_try_link ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  rm -f conftest.$ac_objext conftest$ac_exeext
-  if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    grep -v '^ *+' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-    mv -f conftest.er1 conftest.err
-  fi
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && {
-	 test -z "$ac_cxx_werror_flag" ||
-	 test ! -s conftest.err
-       } && test -s conftest$ac_exeext && {
-	 test "$cross_compiling" = yes ||
-	 $as_test_x conftest$ac_exeext
-       }; then :
-  ac_retval=0
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-	ac_retval=1
-fi
-  # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information
-  # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would
-  # interfere with the next link command; also delete a directory that is
-  # left behind by Apple's compiler.  We do this before executing the actions.
-  rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-  as_fn_set_status $ac_retval
-
-} # ac_fn_cxx_try_link
-
-# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES
-# -------------------------------------------------------
-# Tests whether HEADER exists, giving a warning if it cannot be compiled using
-# the include files in INCLUDES and setting the cache variable VAR
-# accordingly.
-ac_fn_c_check_header_mongrel ()
-{
-  as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval \${$3+:} false; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-else
-  # Is the header compilable?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5
-$as_echo_n "checking $2 usability... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-$4
-#include <$2>
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_header_compiler=yes
-else
-  ac_header_compiler=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5
-$as_echo "$ac_header_compiler" >&6; }
-
-# Is the header present?
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5
-$as_echo_n "checking $2 presence... " >&6; }
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <$2>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  ac_header_preproc=yes
-else
-  ac_header_preproc=no
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5
-$as_echo "$ac_header_preproc" >&6; }
-
-# So?  What about this header?
-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #((
-  yes:no: )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5
-$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-  no:yes:* )
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5
-$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     check for missing prerequisite headers?" >&5
-$as_echo "$as_me: WARNING: $2:     check for missing prerequisite headers?" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5
-$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&5
-$as_echo "$as_me: WARNING: $2:     section \"Present But Cannot Be Compiled\"" >&2;}
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5
-$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;}
-    ;;
-esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
-$as_echo_n "checking for $2... " >&6; }
-if eval \${$3+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  eval "$3=\$ac_header_compiler"
-fi
-eval ac_res=\$$3
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-fi
-  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
-
-} # ac_fn_c_check_header_mongrel
-cat >config.log <<_ACEOF
-This file contains any messages produced by compilers while
-running configure, to aid debugging if configure makes a mistake.
-
-It was created by $as_me, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
-
-  $ $0 $@
-
-_ACEOF
-exec 5>>config.log
-{
-cat <<_ASUNAME
-## --------- ##
-## Platform. ##
-## --------- ##
-
-hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`
-uname -m = `(uname -m) 2>/dev/null || echo unknown`
-uname -r = `(uname -r) 2>/dev/null || echo unknown`
-uname -s = `(uname -s) 2>/dev/null || echo unknown`
-uname -v = `(uname -v) 2>/dev/null || echo unknown`
-
-/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`
-/bin/uname -X     = `(/bin/uname -X) 2>/dev/null     || echo unknown`
-
-/bin/arch              = `(/bin/arch) 2>/dev/null              || echo unknown`
-/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null       || echo unknown`
-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`
-/usr/bin/hostinfo      = `(/usr/bin/hostinfo) 2>/dev/null      || echo unknown`
-/bin/machine           = `(/bin/machine) 2>/dev/null           || echo unknown`
-/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null       || echo unknown`
-/bin/universe          = `(/bin/universe) 2>/dev/null          || echo unknown`
-
-_ASUNAME
-
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    $as_echo "PATH: $as_dir"
-  done
-IFS=$as_save_IFS
-
-} >&5
-
-cat >&5 <<_ACEOF
-
-
-## ----------- ##
-## Core tests. ##
-## ----------- ##
-
-_ACEOF
-
-
-# Keep a trace of the command line.
-# Strip out --no-create and --no-recursion so they do not pile up.
-# Strip out --silent because we don't want to record it for future runs.
-# Also quote any args containing shell meta-characters.
-# Make two passes to allow for proper duplicate-argument suppression.
-ac_configure_args=
-ac_configure_args0=
-ac_configure_args1=
-ac_must_keep_next=false
-for ac_pass in 1 2
-do
-  for ac_arg
-  do
-    case $ac_arg in
-    -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;
-    -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-    | -silent | --silent | --silen | --sile | --sil)
-      continue ;;
-    *\'*)
-      ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    esac
-    case $ac_pass in
-    1) as_fn_append ac_configure_args0 " '$ac_arg'" ;;
-    2)
-      as_fn_append ac_configure_args1 " '$ac_arg'"
-      if test $ac_must_keep_next = true; then
-	ac_must_keep_next=false # Got value, back to normal.
-      else
-	case $ac_arg in
-	  *=* | --config-cache | -C | -disable-* | --disable-* \
-	  | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \
-	  | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \
-	  | -with-* | --with-* | -without-* | --without-* | --x)
-	    case "$ac_configure_args0 " in
-	      "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;
-	    esac
-	    ;;
-	  -* ) ac_must_keep_next=true ;;
-	esac
-      fi
-      as_fn_append ac_configure_args " '$ac_arg'"
-      ;;
-    esac
-  done
-done
-{ ac_configure_args0=; unset ac_configure_args0;}
-{ ac_configure_args1=; unset ac_configure_args1;}
-
-# When interrupted or exit'd, cleanup temporary files, and complete
-# config.log.  We remove comments because anyway the quotes in there
-# would cause problems or look ugly.
-# WARNING: Use '\'' to represent an apostrophe within the trap.
-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.
-trap 'exit_status=$?
-  # Save into config.log some information that might help in debugging.
-  {
-    echo
-
-    $as_echo "## ---------------- ##
-## Cache variables. ##
-## ---------------- ##"
-    echo
-    # The following way of writing the cache mishandles newlines in values,
-(
-  for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-  (set) 2>&1 |
-    case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      sed -n \
-	"s/'\''/'\''\\\\'\'''\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"
-      ;; #(
-    *)
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-)
-    echo
-
-    $as_echo "## ----------------- ##
-## Output variables. ##
-## ----------------- ##"
-    echo
-    for ac_var in $ac_subst_vars
-    do
-      eval ac_val=\$$ac_var
-      case $ac_val in
-      *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-      esac
-      $as_echo "$ac_var='\''$ac_val'\''"
-    done | sort
-    echo
-
-    if test -n "$ac_subst_files"; then
-      $as_echo "## ------------------- ##
-## File substitutions. ##
-## ------------------- ##"
-      echo
-      for ac_var in $ac_subst_files
-      do
-	eval ac_val=\$$ac_var
-	case $ac_val in
-	*\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;
-	esac
-	$as_echo "$ac_var='\''$ac_val'\''"
-      done | sort
-      echo
-    fi
-
-    if test -s confdefs.h; then
-      $as_echo "## ----------- ##
-## confdefs.h. ##
-## ----------- ##"
-      echo
-      cat confdefs.h
-      echo
-    fi
-    test "$ac_signal" != 0 &&
-      $as_echo "$as_me: caught signal $ac_signal"
-    $as_echo "$as_me: exit $exit_status"
-  } >&5
-  rm -f core *.core core.conftest.* &&
-    rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&
-    exit $exit_status
-' 0
-for ac_signal in 1 2 13 15; do
-  trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal
-done
-ac_signal=0
-
-# confdefs.h avoids OS command line length limits that DEFS can exceed.
-rm -f -r conftest* confdefs.h
-
-$as_echo "/* confdefs.h */" > confdefs.h
-
-# Predefined preprocessor variables.
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_NAME "$PACKAGE_NAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_VERSION "$PACKAGE_VERSION"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_STRING "$PACKAGE_STRING"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"
-_ACEOF
-
-cat >>confdefs.h <<_ACEOF
-#define PACKAGE_URL "$PACKAGE_URL"
-_ACEOF
-
-
-# Let the site file select an alternate cache file if it wants to.
-# Prefer an explicitly selected file to automatically selected ones.
-ac_site_file1=NONE
-ac_site_file2=NONE
-if test -n "$CONFIG_SITE"; then
-  # We do not want a PATH search for config.site.
-  case $CONFIG_SITE in #((
-    -*)  ac_site_file1=./$CONFIG_SITE;;
-    */*) ac_site_file1=$CONFIG_SITE;;
-    *)   ac_site_file1=./$CONFIG_SITE;;
-  esac
-elif test "x$prefix" != xNONE; then
-  ac_site_file1=$prefix/share/config.site
-  ac_site_file2=$prefix/etc/config.site
-else
-  ac_site_file1=$ac_default_prefix/share/config.site
-  ac_site_file2=$ac_default_prefix/etc/config.site
-fi
-for ac_site_file in "$ac_site_file1" "$ac_site_file2"
-do
-  test "x$ac_site_file" = xNONE && continue
-  if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5
-$as_echo "$as_me: loading site script $ac_site_file" >&6;}
-    sed 's/^/| /' "$ac_site_file" >&5
-    . "$ac_site_file" \
-      || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5; }
-  fi
-done
-
-if test -r "$cache_file"; then
-  # Some versions of bash will fail to source /dev/null (special files
-  # actually), so we avoid doing that.  DJGPP emulates it as a regular file.
-  if test /dev/null != "$cache_file" && test -f "$cache_file"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5
-$as_echo "$as_me: loading cache $cache_file" >&6;}
-    case $cache_file in
-      [\\/]* | ?:[\\/]* ) . "$cache_file";;
-      *)                      . "./$cache_file";;
-    esac
-  fi
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5
-$as_echo "$as_me: creating cache $cache_file" >&6;}
-  >$cache_file
-fi
-
-# Check that the precious variables saved in the cache have kept the same
-# value.
-ac_cache_corrupted=false
-for ac_var in $ac_precious_vars; do
-  eval ac_old_set=\$ac_cv_env_${ac_var}_set
-  eval ac_new_set=\$ac_env_${ac_var}_set
-  eval ac_old_val=\$ac_cv_env_${ac_var}_value
-  eval ac_new_val=\$ac_env_${ac_var}_value
-  case $ac_old_set,$ac_new_set in
-    set,)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,set)
-      { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5
-$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}
-      ac_cache_corrupted=: ;;
-    ,);;
-    *)
-      if test "x$ac_old_val" != "x$ac_new_val"; then
-	# differences in whitespace do not lead to failure.
-	ac_old_val_w=`echo x $ac_old_val`
-	ac_new_val_w=`echo x $ac_new_val`
-	if test "$ac_old_val_w" != "$ac_new_val_w"; then
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5
-$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}
-	  ac_cache_corrupted=:
-	else
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5
-$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}
-	  eval $ac_var=\$ac_old_val
-	fi
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   former value:  \`$ac_old_val'" >&5
-$as_echo "$as_me:   former value:  \`$ac_old_val'" >&2;}
-	{ $as_echo "$as_me:${as_lineno-$LINENO}:   current value: \`$ac_new_val'" >&5
-$as_echo "$as_me:   current value: \`$ac_new_val'" >&2;}
-      fi;;
-  esac
-  # Pass precious variables to config.status.
-  if test "$ac_new_set" = set; then
-    case $ac_new_val in
-    *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;
-    *) ac_arg=$ac_var=$ac_new_val ;;
-    esac
-    case " $ac_configure_args " in
-      *" '$ac_arg' "*) ;; # Avoid dups.  Use of quotes ensures accuracy.
-      *) as_fn_append ac_configure_args " '$ac_arg'" ;;
-    esac
-  fi
-done
-if $ac_cache_corrupted; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-  { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5
-$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}
-  as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5
-fi
-## -------------------- ##
-## Main body of script. ##
-## -------------------- ##
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-ac_aux_dir=
-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do
-  if test -f "$ac_dir/install-sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install-sh -c"
-    break
-  elif test -f "$ac_dir/install.sh"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/install.sh -c"
-    break
-  elif test -f "$ac_dir/shtool"; then
-    ac_aux_dir=$ac_dir
-    ac_install_sh="$ac_aux_dir/shtool install -c"
-    break
-  fi
-done
-if test -z "$ac_aux_dir"; then
-  as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5
-fi
-
-# These three variables are undocumented and unsupported,
-# and are intended to be withdrawn in a future Autoconf release.
-# They can cause serious problems if a builder's source tree is in a directory
-# whose full name contains unusual characters.
-ac_config_guess="$SHELL $ac_aux_dir/config.guess"  # Please don't use this var.
-ac_config_sub="$SHELL $ac_aux_dir/config.sub"  # Please don't use this var.
-ac_configure="$SHELL $ac_aux_dir/configure"  # Please don't use this var.
-
-
-case `pwd` in
-  *\ * | *\	*)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5
-$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;;
-esac
-
-
-
-macro_version='2.4.2'
-macro_revision='1.3337'
-
-
-
-
-
-
-
-
-
-
-
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-# Make sure we can run config.sub.
-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||
-  as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5
-$as_echo_n "checking build system type... " >&6; }
-if ${ac_cv_build+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_build_alias=$build_alias
-test "x$ac_build_alias" = x &&
-  ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`
-test "x$ac_build_alias" = x &&
-  as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5
-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||
-  as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5
-$as_echo "$ac_cv_build" >&6; }
-case $ac_cv_build in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;;
-esac
-build=$ac_cv_build
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_build
-shift
-build_cpu=$1
-build_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-build_os=$*
-IFS=$ac_save_IFS
-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5
-$as_echo_n "checking host system type... " >&6; }
-if ${ac_cv_host+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test "x$host_alias" = x; then
-  ac_cv_host=$ac_cv_build
-else
-  ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||
-    as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5
-$as_echo "$ac_cv_host" >&6; }
-case $ac_cv_host in
-*-*-*) ;;
-*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;;
-esac
-host=$ac_cv_host
-ac_save_IFS=$IFS; IFS='-'
-set x $ac_cv_host
-shift
-host_cpu=$1
-host_vendor=$2
-shift; shift
-# Remember, the first character of IFS is used to create $*,
-# except with old shells:
-host_os=$*
-IFS=$ac_save_IFS
-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac
-
-
-# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\(["`$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-
-ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5
-$as_echo_n "checking how to print strings... " >&6; }
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
-   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='printf %s\n'
-else
-  # Use this function as a fallback that always works.
-  func_fallback_echo ()
-  {
-    eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-  }
-  ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO ""
-}
-
-case "$ECHO" in
-  printf*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: printf" >&5
-$as_echo "printf" >&6; } ;;
-  print*) { $as_echo "$as_me:${as_lineno-$LINENO}: result: print -r" >&5
-$as_echo "print -r" >&6; } ;;
-  *) { $as_echo "$as_me:${as_lineno-$LINENO}: result: cat" >&5
-$as_echo "cat" >&6; } ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"
-# Try to create an executable without -o first, disregard a.out.
-# It will help us diagnose broken compilers, and finding out an intuition
-# of exeext.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5
-$as_echo_n "checking whether the C compiler works... " >&6; }
-ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`
-
-# The possible output files:
-ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"
-
-ac_rmfiles=
-for ac_file in $ac_files
-do
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    * ) ac_rmfiles="$ac_rmfiles $ac_file";;
-  esac
-done
-rm -f $ac_rmfiles
-
-if { { ac_try="$ac_link_default"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link_default") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.
-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'
-# in a Makefile.  We should not override ac_cv_exeext if it was cached,
-# so that the user can short-circuit this test for compilers unknown to
-# Autoconf.
-for ac_file in $ac_files ''
-do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )
-	;;
-    [ab].out )
-	# We found the default executable, but exeext='' is most
-	# certainly right.
-	break;;
-    *.* )
-	if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;
-	then :; else
-	   ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	fi
-	# We set ac_cv_exeext here because the later test for it is not
-	# safe: cross compilers may not add the suffix if given an `-o'
-	# argument, so we may need to know it at that point already.
-	# Even if this section looks crufty: it has the advantage of
-	# actually working.
-	break;;
-    * )
-	break;;
-  esac
-done
-test "$ac_cv_exeext" = no && ac_cv_exeext=
-
-else
-  ac_file=''
-fi
-if test -z "$ac_file"; then :
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-$as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5
-$as_echo_n "checking for C compiler default output file name... " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5
-$as_echo "$ac_file" >&6; }
-ac_exeext=$ac_cv_exeext
-
-rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5
-$as_echo_n "checking for suffix of executables... " >&6; }
-if { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  # If both `conftest.exe' and `conftest' are `present' (well, observable)
-# catch `conftest.exe'.  For instance with Cygwin, `ls conftest' will
-# work properly (i.e., refer to `conftest.exe'), while it won't with
-# `rm'.
-for ac_file in conftest.exe conftest conftest.*; do
-  test -f "$ac_file" || continue
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;
-    *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`
-	  break;;
-    * ) break;;
-  esac
-done
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest conftest$ac_cv_exeext
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
-$as_echo "$ac_cv_exeext" >&6; }
-
-rm -f conftest.$ac_ext
-EXEEXT=$ac_cv_exeext
-ac_exeext=$EXEEXT
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdio.h>
-int
-main ()
-{
-FILE *f = fopen ("conftest.out", "w");
- return ferror (f) || fclose (f) != 0;
-
-  ;
-  return 0;
-}
-_ACEOF
-ac_clean_files="$ac_clean_files conftest.out"
-# Check that the compiler produces executables we can run.  If not, either
-# the compiler is broken, or we cross compile.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5
-$as_echo_n "checking whether we are cross compiling... " >&6; }
-if test "$cross_compiling" != yes; then
-  { { ac_try="$ac_link"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_link") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-  if { ac_try='./conftest$ac_cv_exeext'
-  { { case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_try") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; }; then
-    cross_compiling=no
-  else
-    if test "$cross_compiling" = maybe; then
-	cross_compiling=yes
-    else
-	{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot run C compiled programs.
-If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5; }
-    fi
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5
-$as_echo "$cross_compiling" >&6; }
-
-rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out
-ac_clean_files=$ac_clean_files_save
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
-$as_echo_n "checking for suffix of object files... " >&6; }
-if ${ac_cv_objext+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-rm -f conftest.o conftest.obj
-if { { ac_try="$ac_compile"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compile") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then :
-  for ac_file in conftest.o conftest.obj conftest.*; do
-  test -f "$ac_file" || continue;
-  case $ac_file in
-    *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;
-    *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`
-       break;;
-  esac
-done
-else
-  $as_echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-rm -f conftest.$ac_cv_objext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5
-$as_echo "$ac_cv_objext" >&6; }
-OBJEXT=$ac_cv_objext
-ac_objext=$OBJEXT
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-     for ac_i in 1 2 3 4 5 6 7; do
-       ac_script="$ac_script$as_nl$ac_script"
-     done
-     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     { ac_script=; unset ac_script;}
-     if test -z "$SED"; then
-  ac_path_SED_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
-# Check for GNU ac_path_SED and select it if it is found.
-  # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
-  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo '' >> "conftest.nl"
-    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_SED_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_SED="$ac_path_SED"
-      ac_path_SED_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_SED_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_SED"; then
-    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
-  fi
-else
-  ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
-  rm -f conftest.sed
-
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
-$as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if ${ac_cv_path_GREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$GREP"; then
-  ac_path_GREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in grep ggrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue
-# Check for GNU ac_path_GREP and select it if it is found.
-  # Check for GNU $ac_path_GREP
-case `"$ac_path_GREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'GREP' >> "conftest.nl"
-    "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_GREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_GREP="$ac_path_GREP"
-      ac_path_GREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_GREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_GREP"; then
-    as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_GREP=$GREP
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5
-$as_echo "$ac_cv_path_GREP" >&6; }
- GREP="$ac_cv_path_GREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
-$as_echo_n "checking for egrep... " >&6; }
-if ${ac_cv_path_EGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
-   then ac_cv_path_EGREP="$GREP -E"
-   else
-     if test -z "$EGREP"; then
-  ac_path_EGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in egrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue
-# Check for GNU ac_path_EGREP and select it if it is found.
-  # Check for GNU $ac_path_EGREP
-case `"$ac_path_EGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'EGREP' >> "conftest.nl"
-    "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_EGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_EGREP="$ac_path_EGREP"
-      ac_path_EGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_EGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_EGREP"; then
-    as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_EGREP=$EGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5
-$as_echo "$ac_cv_path_EGREP" >&6; }
- EGREP="$ac_cv_path_EGREP"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5
-$as_echo_n "checking for fgrep... " >&6; }
-if ${ac_cv_path_FGREP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1
-   then ac_cv_path_FGREP="$GREP -F"
-   else
-     if test -z "$FGREP"; then
-  ac_path_FGREP_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in fgrep; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue
-# Check for GNU ac_path_FGREP and select it if it is found.
-  # Check for GNU $ac_path_FGREP
-case `"$ac_path_FGREP" --version 2>&1` in
-*GNU*)
-  ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo 'FGREP' >> "conftest.nl"
-    "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_FGREP_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_FGREP="$ac_path_FGREP"
-      ac_path_FGREP_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_FGREP_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_FGREP"; then
-    as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5
-  fi
-else
-  ac_cv_path_FGREP=$FGREP
-fi
-
-   fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5
-$as_echo "$ac_cv_path_FGREP" >&6; }
- FGREP="$ac_cv_path_FGREP"
-
-
-test -z "$GREP" && GREP=grep
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5
-$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; }
-if ${lt_cv_path_NM+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5
-$as_echo "$lt_cv_path_NM" >&6; }
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$DUMPBIN"; then :
-    # Let the user override the test.
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in dumpbin "link -dump"
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DUMPBIN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DUMPBIN"; then
-  ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DUMPBIN=$ac_cv_prog_DUMPBIN
-if test -n "$DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5
-$as_echo "$DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$DUMPBIN" && break
-  done
-fi
-if test -z "$DUMPBIN"; then
-  ac_ct_DUMPBIN=$DUMPBIN
-  for ac_prog in dumpbin "link -dump"
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DUMPBIN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DUMPBIN"; then
-  ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DUMPBIN="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN
-if test -n "$ac_ct_DUMPBIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5
-$as_echo "$ac_ct_DUMPBIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_DUMPBIN" && break
-done
-
-  if test "x$ac_ct_DUMPBIN" = x; then
-    DUMPBIN=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DUMPBIN=$ac_ct_DUMPBIN
-  fi
-fi
-
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
-    *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
-      ;;
-    *)
-      DUMPBIN=:
-      ;;
-    esac
-  fi
-
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5
-$as_echo_n "checking the name lister ($NM) interface... " >&6; }
-if ${lt_cv_nm_interface+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&5
-  (eval echo "\"\$as_me:$LINENO: output\"" >&5)
-  cat conftest.out >&5
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5
-$as_echo "$lt_cv_nm_interface" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5
-$as_echo_n "checking whether ln -s works... " >&6; }
-LN_S=$as_ln_s
-if test "$LN_S" = "ln -s"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5
-$as_echo "no, using $LN_S" >&6; }
-fi
-
-# find the maximum length of command line arguments
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5
-$as_echo_n "checking the maximum length of command line arguments... " >&6; }
-if ${lt_cv_sys_max_cmd_len+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-    i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  mint*)
-    # On MiNT this can take a long time and run out of memory.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  os2*)
-    # The test takes a long time on OS/2.
-    lt_cv_sys_max_cmd_len=8192
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[	 ]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
-	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-
-fi
-
-if test -n $lt_cv_sys_max_cmd_len ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5
-$as_echo "$lt_cv_sys_max_cmd_len" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5
-$as_echo "none" >&6; }
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-
-
-
-
-
-
-: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5
-$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; }
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5
-$as_echo "$xsi_shell" >&6; }
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5
-$as_echo_n "checking whether the shell understands \"+=\"... " >&6; }
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5
-$as_echo "$lt_shell_append" >&6; }
-
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-
-
-
-
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5
-$as_echo_n "checking how to convert $build file names to $host format... " >&6; }
-if ${lt_cv_to_host_file_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-        ;;
-    esac
-    ;;
-  *-*-cygwin* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_noop
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-        ;;
-    esac
-    ;;
-  * ) # unhandled hosts (and "normal" native builds)
-    lt_cv_to_host_file_cmd=func_convert_file_noop
-    ;;
-esac
-
-fi
-
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5
-$as_echo "$lt_cv_to_host_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5
-$as_echo_n "checking how to convert $build file names to toolchain format... " >&6; }
-if ${lt_cv_to_tool_file_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  #assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-        ;;
-    esac
-    ;;
-esac
-
-fi
-
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5
-$as_echo "$lt_cv_to_tool_file_cmd" >&6; }
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
-$as_echo_n "checking for $LD option to reload object files... " >&6; }
-if ${lt_cv_ld_reload_flag+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_reload_flag='-r'
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5
-$as_echo "$lt_cv_ld_reload_flag" >&6; }
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
-      reload_cmds=false
-    fi
-    ;;
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args.
-set dummy ${ac_tool_prefix}objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OBJDUMP"; then
-  ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OBJDUMP=$ac_cv_prog_OBJDUMP
-if test -n "$OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5
-$as_echo "$OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OBJDUMP"; then
-  ac_ct_OBJDUMP=$OBJDUMP
-  # Extract the first word of "objdump", so it can be a program name with args.
-set dummy objdump; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OBJDUMP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OBJDUMP"; then
-  ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OBJDUMP="objdump"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP
-if test -n "$ac_ct_OBJDUMP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5
-$as_echo "$ac_ct_OBJDUMP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OBJDUMP" = x; then
-    OBJDUMP="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OBJDUMP=$ac_ct_OBJDUMP
-  fi
-else
-  OBJDUMP="$ac_cv_prog_OBJDUMP"
-fi
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5
-$as_echo_n "checking how to recognize dependent libraries... " >&6; }
-if ${lt_cv_deplibs_check_method+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[4-9]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[45]*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    # Keep this pattern in sync with the one in func_win32_libid.
-    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-cegcc*)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-haiku*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[3-9]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd* | netbsdelf*-gnu)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5
-$as_echo "$lt_cv_deplibs_check_method" >&6; }
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
-  case $host_os in
-  mingw* | pw32*)
-    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-      want_nocaseglob=yes
-    else
-      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"`
-    fi
-    ;;
-  esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DLLTOOL"; then
-  ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DLLTOOL=$ac_cv_prog_DLLTOOL
-if test -n "$DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5
-$as_echo "$DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DLLTOOL"; then
-  ac_ct_DLLTOOL=$DLLTOOL
-  # Extract the first word of "dlltool", so it can be a program name with args.
-set dummy dlltool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DLLTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DLLTOOL"; then
-  ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DLLTOOL="dlltool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL
-if test -n "$ac_ct_DLLTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5
-$as_echo "$ac_ct_DLLTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DLLTOOL" = x; then
-    DLLTOOL="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DLLTOOL=$ac_ct_DLLTOOL
-  fi
-else
-  DLLTOOL="$ac_cv_prog_DLLTOOL"
-fi
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5
-$as_echo_n "checking how to associate runtime and link libraries... " >&6; }
-if ${lt_cv_sharedlib_from_linklib_cmd+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
-  case `$DLLTOOL --help 2>&1` in
-  *--identify-strict*)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-    ;;
-  *)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
-    ;;
-  esac
-  ;;
-*)
-  # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
-  ;;
-esac
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5
-$as_echo "$lt_cv_sharedlib_from_linklib_cmd" >&6; }
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  for ac_prog in ar
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AR"; then
-  ac_cv_prog_AR="$AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AR="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AR=$ac_cv_prog_AR
-if test -n "$AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5
-$as_echo "$AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$AR" && break
-  done
-fi
-if test -z "$AR"; then
-  ac_ct_AR=$AR
-  for ac_prog in ar
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_AR+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_AR"; then
-  ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_AR="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_AR=$ac_cv_prog_ac_ct_AR
-if test -n "$ac_ct_AR"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5
-$as_echo "$ac_ct_AR" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_AR" && break
-done
-
-  if test "x$ac_ct_AR" = x; then
-    AR="false"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    AR=$ac_ct_AR
-  fi
-fi
-
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5
-$as_echo_n "checking for archiver @FILE support... " >&6; }
-if ${lt_cv_ar_at_file+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ar_at_file=no
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  echo conftest.$ac_objext > conftest.lst
-      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5'
-      { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
-  (eval $lt_ar_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-      if test "$ac_status" -eq 0; then
-	# Ensure the archiver fails upon bogus file names.
-	rm -f conftest.$ac_objext libconftest.a
-	{ { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5
-  (eval $lt_ar_try) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-	if test "$ac_status" -ne 0; then
-          lt_cv_ar_at_file=@
-        fi
-      fi
-      rm -f conftest.* libconftest.a
-
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5
-$as_echo "$lt_cv_ar_at_file" >&6; }
-
-if test "x$lt_cv_ar_at_file" = xno; then
-  archiver_list_spec=
-else
-  archiver_list_spec=$lt_cv_ar_at_file
-fi
-
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args.
-set dummy ${ac_tool_prefix}strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$STRIP"; then
-  ac_cv_prog_STRIP="$STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_STRIP="${ac_tool_prefix}strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-STRIP=$ac_cv_prog_STRIP
-if test -n "$STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5
-$as_echo "$STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_STRIP"; then
-  ac_ct_STRIP=$STRIP
-  # Extract the first word of "strip", so it can be a program name with args.
-set dummy strip; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_STRIP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_STRIP"; then
-  ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_STRIP="strip"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP
-if test -n "$ac_ct_STRIP"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5
-$as_echo "$ac_ct_STRIP" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_STRIP" = x; then
-    STRIP=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    STRIP=$ac_ct_STRIP
-  fi
-else
-  STRIP="$ac_cv_prog_STRIP"
-fi
-
-test -z "$STRIP" && STRIP=:
-
-
-
-
-
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args.
-set dummy ${ac_tool_prefix}ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$RANLIB"; then
-  ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-RANLIB=$ac_cv_prog_RANLIB
-if test -n "$RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5
-$as_echo "$RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_RANLIB"; then
-  ac_ct_RANLIB=$RANLIB
-  # Extract the first word of "ranlib", so it can be a program name with args.
-set dummy ranlib; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_RANLIB+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_RANLIB"; then
-  ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_RANLIB="ranlib"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB
-if test -n "$ac_ct_RANLIB"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5
-$as_echo "$ac_ct_RANLIB" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_RANLIB" = x; then
-    RANLIB=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    RANLIB=$ac_ct_RANLIB
-  fi
-else
-  RANLIB="$ac_cv_prog_RANLIB"
-fi
-
-test -z "$RANLIB" && RANLIB=:
-
-
-
-
-
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
-  darwin*)
-    lock_old_archive_extraction=yes ;;
-  *)
-    lock_old_archive_extraction=no ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-for ac_prog in gawk mawk nawk awk
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_AWK+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$AWK"; then
-  ac_cv_prog_AWK="$AWK" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_AWK="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-AWK=$ac_cv_prog_AWK
-if test -n "$AWK"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5
-$as_echo "$AWK" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$AWK" && break
-done
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5
-$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; }
-if ${lt_cv_sys_global_symbol_pipe+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[BCDEGRST]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([_A-Za-z][_A-Za-z0-9]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[BCDT]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[ABCDGISTW]'
-  ;;
-hpux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[ABCDEGRST]'
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[BCDEGRST]'
-  ;;
-osf*)
-  symcode='[BCDEGQRST]'
-  ;;
-solaris*)
-  symcode='[BDRT]'
-  ;;
-sco3.2v5*)
-  symcode='[DT]'
-  ;;
-sysv4.2uw2*)
-  symcode='[DT]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[ABDT]'
-  ;;
-sysv4)
-  symcode='[DFNSTU]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[ABCDGIRSTW]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\)[ ]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK '"\
-"     {last_section=section; section=\$ 3};"\
-"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[	 ]\($symcode$symcode*\)[	 ][	 ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist\""; } >&5
-  (eval $NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
-   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data.  */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
-	  cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols.  */
-LT_DLSYM_CONST struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_globsym_save_LIBS=$LIBS
-	  lt_globsym_save_CFLAGS=$CFLAGS
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag"
-	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS=$lt_globsym_save_LIBS
-	  CFLAGS=$lt_globsym_save_CFLAGS
-	else
-	  echo "cannot find nm_test_func in $nlist" >&5
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&5
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5
-    fi
-  else
-    echo "$progname: failed program was:" >&5
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-
-fi
-
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5
-$as_echo "failed" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5
-$as_echo "ok" >&6; }
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-  nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then
-  nm_file_list_spec='@'
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5
-$as_echo_n "checking for sysroot... " >&6; }
-
-# Check whether --with-sysroot was given.
-if test "${with_sysroot+set}" = set; then :
-  withval=$with_sysroot;
-else
-  with_sysroot=no
-fi
-
-
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
-   if test "$GCC" = yes; then
-     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-   fi
-   ;; #(
- /*)
-   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-   ;; #(
- no|'')
-   ;; #(
- *)
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${with_sysroot}" >&5
-$as_echo "${with_sysroot}" >&6; }
-   as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5
-   ;;
-esac
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5
-$as_echo "${lt_sysroot:-no}" >&6; }
-
-
-
-
-
-# Check whether --enable-libtool-lock was given.
-if test "${enable_libtool_lock+set}" = set; then :
-  enableval=$enable_libtool_lock;
-fi
-
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE="32"
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE="64"
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '#line '$LINENO' "configure"' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
-	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5
-$as_echo_n "checking whether the C compiler needs -belf... " >&6; }
-if ${lt_cv_cc_needs_belf+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-     cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_cc_needs_belf=yes
-else
-  lt_cv_cc_needs_belf=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-     ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5
-$as_echo "$lt_cv_cc_needs_belf" >&6; }
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*)
-        case $host in
-        i?86-*-solaris*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        sparc*-*-solaris*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-        esac
-        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
-        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
-        fi
-        ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
-
-need_locks="$enable_libtool_lock"
-
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args.
-set dummy ${ac_tool_prefix}mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_MANIFEST_TOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$MANIFEST_TOOL"; then
-  ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL
-if test -n "$MANIFEST_TOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5
-$as_echo "$MANIFEST_TOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_MANIFEST_TOOL"; then
-  ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL
-  # Extract the first word of "mt", so it can be a program name with args.
-set dummy mt; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_MANIFEST_TOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_MANIFEST_TOOL"; then
-  ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_MANIFEST_TOOL="mt"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL
-if test -n "$ac_ct_MANIFEST_TOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5
-$as_echo "$ac_ct_MANIFEST_TOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_MANIFEST_TOOL" = x; then
-    MANIFEST_TOOL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL
-  fi
-else
-  MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL"
-fi
-
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5
-$as_echo_n "checking if $MANIFEST_TOOL is a manifest tool... " >&6; }
-if ${lt_cv_path_mainfest_tool+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_path_mainfest_tool=no
-  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5
-  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-  cat conftest.err >&5
-  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-    lt_cv_path_mainfest_tool=yes
-  fi
-  rm -f conftest*
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5
-$as_echo "$lt_cv_path_mainfest_tool" >&6; }
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
-  MANIFEST_TOOL=:
-fi
-
-
-
-
-
-
-  case $host_os in
-    rhapsody* | darwin*)
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args.
-set dummy ${ac_tool_prefix}dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_DSYMUTIL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$DSYMUTIL"; then
-  ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-DSYMUTIL=$ac_cv_prog_DSYMUTIL
-if test -n "$DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5
-$as_echo "$DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_DSYMUTIL"; then
-  ac_ct_DSYMUTIL=$DSYMUTIL
-  # Extract the first word of "dsymutil", so it can be a program name with args.
-set dummy dsymutil; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_DSYMUTIL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_DSYMUTIL"; then
-  ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_DSYMUTIL="dsymutil"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL
-if test -n "$ac_ct_DSYMUTIL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5
-$as_echo "$ac_ct_DSYMUTIL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_DSYMUTIL" = x; then
-    DSYMUTIL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    DSYMUTIL=$ac_ct_DSYMUTIL
-  fi
-else
-  DSYMUTIL="$ac_cv_prog_DSYMUTIL"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args.
-set dummy ${ac_tool_prefix}nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_NMEDIT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$NMEDIT"; then
-  ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-NMEDIT=$ac_cv_prog_NMEDIT
-if test -n "$NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5
-$as_echo "$NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_NMEDIT"; then
-  ac_ct_NMEDIT=$NMEDIT
-  # Extract the first word of "nmedit", so it can be a program name with args.
-set dummy nmedit; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_NMEDIT+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_NMEDIT"; then
-  ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_NMEDIT="nmedit"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT
-if test -n "$ac_ct_NMEDIT"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5
-$as_echo "$ac_ct_NMEDIT" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_NMEDIT" = x; then
-    NMEDIT=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    NMEDIT=$ac_ct_NMEDIT
-  fi
-else
-  NMEDIT="$ac_cv_prog_NMEDIT"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args.
-set dummy ${ac_tool_prefix}lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LIPO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LIPO"; then
-  ac_cv_prog_LIPO="$LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_LIPO="${ac_tool_prefix}lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-LIPO=$ac_cv_prog_LIPO
-if test -n "$LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5
-$as_echo "$LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_LIPO"; then
-  ac_ct_LIPO=$LIPO
-  # Extract the first word of "lipo", so it can be a program name with args.
-set dummy lipo; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_LIPO+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_LIPO"; then
-  ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_LIPO="lipo"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO
-if test -n "$ac_ct_LIPO"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5
-$as_echo "$ac_ct_LIPO" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_LIPO" = x; then
-    LIPO=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    LIPO=$ac_ct_LIPO
-  fi
-else
-  LIPO="$ac_cv_prog_LIPO"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL"; then
-  ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OTOOL="${ac_tool_prefix}otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL=$ac_cv_prog_OTOOL
-if test -n "$OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5
-$as_echo "$OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL"; then
-  ac_ct_OTOOL=$OTOOL
-  # Extract the first word of "otool", so it can be a program name with args.
-set dummy otool; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL"; then
-  ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OTOOL="otool"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL
-if test -n "$ac_ct_OTOOL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5
-$as_echo "$ac_ct_OTOOL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OTOOL" = x; then
-    OTOOL=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL=$ac_ct_OTOOL
-  fi
-else
-  OTOOL="$ac_cv_prog_OTOOL"
-fi
-
-    if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args.
-set dummy ${ac_tool_prefix}otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_OTOOL64+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$OTOOL64"; then
-  ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-OTOOL64=$ac_cv_prog_OTOOL64
-if test -n "$OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5
-$as_echo "$OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_OTOOL64"; then
-  ac_ct_OTOOL64=$OTOOL64
-  # Extract the first word of "otool64", so it can be a program name with args.
-set dummy otool64; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_OTOOL64+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_OTOOL64"; then
-  ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_OTOOL64="otool64"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64
-if test -n "$ac_ct_OTOOL64"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5
-$as_echo "$ac_ct_OTOOL64" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_OTOOL64" = x; then
-    OTOOL64=":"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    OTOOL64=$ac_ct_OTOOL64
-  fi
-else
-  OTOOL64="$ac_cv_prog_OTOOL64"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5
-$as_echo_n "checking for -single_module linker flag... " >&6; }
-if ${lt_cv_apple_cc_single_mod+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&5
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	# If there is a non-empty error log, and "single_module"
-	# appears in it, assume the flag caused a linker warning
-        if test -s conftest.err && $GREP single_module conftest.err; then
-	  cat conftest.err >&5
-	# Otherwise, if the output was created with a 0 exit code from
-	# the compiler, it worked.
-	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&5
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5
-$as_echo "$lt_cv_apple_cc_single_mod" >&6; }
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5
-$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; }
-if ${lt_cv_ld_exported_symbols_list+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_ld_exported_symbols_list=yes
-else
-  lt_cv_ld_exported_symbols_list=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-	LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5
-$as_echo "$lt_cv_ld_exported_symbols_list" >&6; }
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5
-$as_echo_n "checking for -force_load linker flag... " >&6; }
-if ${lt_cv_ld_force_load+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_ld_force_load=no
-      cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5
-      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5
-      echo "$AR cru libconftest.a conftest.o" >&5
-      $AR cru libconftest.a conftest.o 2>&5
-      echo "$RANLIB libconftest.a" >&5
-      $RANLIB libconftest.a 2>&5
-      cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5
-      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
-      _lt_result=$?
-      if test -s conftest.err && $GREP force_load conftest.err; then
-	cat conftest.err >&5
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
-	lt_cv_ld_force_load=yes
-      else
-	cat conftest.err >&5
-      fi
-        rm -f conftest.err libconftest.a conftest conftest.c
-        rm -rf conftest.dSYM
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5
-$as_echo "$lt_cv_ld_force_load" >&6; }
-    case $host_os in
-    rhapsody* | darwin1.[012])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[91]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[012]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5
-$as_echo_n "checking how to run the C preprocessor... " >&6; }
-# On Suns, sometimes $CPP names a directory.
-if test -n "$CPP" && test -d "$CPP"; then
-  CPP=
-fi
-if test -z "$CPP"; then
-  if ${ac_cv_prog_CPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CPP needs to be expanded
-    for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CPP=$CPP
-
-fi
-  CPP=$ac_cv_prog_CPP
-else
-  ac_cv_prog_CPP=$CPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5
-$as_echo "$CPP" >&6; }
-ac_preproc_ok=false
-for ac_c_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_c_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-# On IRIX 5.3, sys/types and inttypes.h are conflicting.
-for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \
-		  inttypes.h stdint.h unistd.h
-do :
-  as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`
-ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default
-"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  cat >>confdefs.h <<_ACEOF
-#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1
-_ACEOF
-
-fi
-
-done
-
-
-for ac_header in dlfcn.h
-do :
-  ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default
-"
-if test "x$ac_cv_header_dlfcn_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_DLFCN_H 1
-_ACEOF
-
-fi
-
-done
-
-
-
-
-
-# Set options
-# Check whether --enable-static was given.
-if test "${enable_static+set}" = set; then :
-  enableval=$enable_static; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_static=no
-fi
-
-
-
-
-
-
-
-
-
-
-        enable_dlopen=no
-
-
-  enable_win32_dll=no
-
-
-            # Check whether --enable-shared was given.
-if test "${enable_shared+set}" = set; then :
-  enableval=$enable_shared; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_shared=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-pic was given.
-if test "${with_pic+set}" = set; then :
-  withval=$with_pic; lt_p=${PACKAGE-default}
-    case $withval in
-    yes|no) pic_mode=$withval ;;
-    *)
-      pic_mode=default
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for lt_pkg in $withval; do
-	IFS="$lt_save_ifs"
-	if test "X$lt_pkg" = "X$lt_p"; then
-	  pic_mode=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  pic_mode=default
-fi
-
-
-test -z "$pic_mode" && pic_mode=default
-
-
-
-
-
-
-
-  # Check whether --enable-fast-install was given.
-if test "${enable_fast_install+set}" = set; then :
-  enableval=$enable_fast_install; p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac
-else
-  enable_fast_install=yes
-fi
-
-
-
-
-
-
-
-
-
-
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-test -z "$LN_S" && LN_S="ln -s"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-if test -n "${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5
-$as_echo_n "checking for objdir... " >&6; }
-if ${lt_cv_objdir+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5
-$as_echo "$lt_cv_objdir" >&6; }
-objdir=$lt_cv_objdir
-
-
-
-
-
-cat >>confdefs.h <<_ACEOF
-#define LT_OBJDIR "$lt_cv_objdir/"
-_ACEOF
-
-
-
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5
-$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/${ac_tool_prefix}file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-
-
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5
-$as_echo_n "checking for file... " >&6; }
-if ${lt_cv_path_MAGIC_CMD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MAGIC_CMD in
-[\\/*] |  ?:[\\/]*)
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  ac_dummy="/usr/bin$PATH_SEPARATOR$PATH"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/file; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/file"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac
-fi
-
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5
-$as_echo "$MAGIC_CMD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  else
-    MAGIC_CMD=:
-  fi
-fi
-
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-
-lt_save_CC="$CC"
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-objext=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-if test -n "$compiler"; then
-
-lt_prog_compiler_no_builtin_flag=
-
-if test "$GCC" = yes; then
-  case $cc_basename in
-  nvcc*)
-    lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;;
-  *)
-    lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;;
-  esac
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5
-$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; }
-if ${lt_cv_prog_compiler_rtti_exceptions+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_rtti_exceptions=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="-fno-rtti -fno-exceptions"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_rtti_exceptions=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5
-$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; }
-
-if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then
-    lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions"
-else
-    :
-fi
-
-fi
-
-
-
-
-
-
-  lt_prog_compiler_wl=
-lt_prog_compiler_pic=
-lt_prog_compiler_static=
-
-
-  if test "$GCC" = yes; then
-    lt_prog_compiler_wl='-Wl,'
-    lt_prog_compiler_static='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic='-fno-common'
-      ;;
-
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      lt_prog_compiler_static=
-      ;;
-
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='-fPIC'
-	;;
-      esac
-      ;;
-
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      lt_prog_compiler_can_build_shared=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic=-Kconform_pic
-      fi
-      ;;
-
-    *)
-      lt_prog_compiler_pic='-fPIC'
-      ;;
-    esac
-
-    case $cc_basename in
-    nvcc*) # Cuda Compiler Driver 2.2
-      lt_prog_compiler_wl='-Xlinker '
-      if test -n "$lt_prog_compiler_pic"; then
-        lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic"
-      fi
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      lt_prog_compiler_wl='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static='-Bstatic'
-      else
-	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      lt_prog_compiler_pic='-DDLL_EXPORT'
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	lt_prog_compiler_pic='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      lt_prog_compiler_static='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      lt_prog_compiler_wl='-Wl,'
-      # PIC (with -KPIC) is the default.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
-      ecc*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-KPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fPIC'
-	lt_prog_compiler_static='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='--shared'
-	lt_prog_compiler_static='--static'
-	;;
-      nagfor*)
-	# NAG Fortran compiler
-	lt_prog_compiler_wl='-Wl,-Wl,,'
-	lt_prog_compiler_pic='-PIC'
-	lt_prog_compiler_static='-Bstatic'
-	;;
-      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-fpic'
-	lt_prog_compiler_static='-Bstatic'
-        ;;
-      ccc*)
-        lt_prog_compiler_wl='-Wl,'
-        # All Alpha code is PIC.
-        lt_prog_compiler_static='-non_shared'
-        ;;
-      xl* | bgxl* | bgf* | mpixl*)
-	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
-	lt_prog_compiler_wl='-Wl,'
-	lt_prog_compiler_pic='-qpic'
-	lt_prog_compiler_static='-qstaticlink'
-	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl=''
-	  ;;
-	*Sun\ F* | *Sun*Fortran*)
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl='-Qoption ld '
-	  ;;
-	*Sun\ C*)
-	  # Sun C 5.9
-	  lt_prog_compiler_pic='-KPIC'
-	  lt_prog_compiler_static='-Bstatic'
-	  lt_prog_compiler_wl='-Wl,'
-	  ;;
-        *Intel*\ [CF]*Compiler*)
-	  lt_prog_compiler_wl='-Wl,'
-	  lt_prog_compiler_pic='-fPIC'
-	  lt_prog_compiler_static='-static'
-	  ;;
-	*Portland\ Group*)
-	  lt_prog_compiler_wl='-Wl,'
-	  lt_prog_compiler_pic='-fpic'
-	  lt_prog_compiler_static='-Bstatic'
-	  ;;
-	esac
-	;;
-      esac
-      ;;
-
-    newsos6)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      lt_prog_compiler_wl='-Wl,'
-      # All OSF/1 code is PIC.
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    rdos*)
-      lt_prog_compiler_static='-non_shared'
-      ;;
-
-    solaris*)
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
-	lt_prog_compiler_wl='-Qoption ld ';;
-      *)
-	lt_prog_compiler_wl='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      lt_prog_compiler_wl='-Qoption ld '
-      lt_prog_compiler_pic='-PIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	lt_prog_compiler_pic='-Kconform_pic'
-	lt_prog_compiler_static='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-KPIC'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    unicos*)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_can_build_shared=no
-      ;;
-
-    uts4*)
-      lt_prog_compiler_pic='-pic'
-      lt_prog_compiler_static='-Bstatic'
-      ;;
-
-    *)
-      lt_prog_compiler_can_build_shared=no
-      ;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic=
-    ;;
-  *)
-    lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC"
-    ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic=$lt_prog_compiler_pic
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5
-$as_echo "$lt_cv_prog_compiler_pic" >&6; }
-lt_prog_compiler_pic=$lt_cv_prog_compiler_pic
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5
-$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; }
-if ${lt_cv_prog_compiler_pic_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_works=no
-   ac_outfile=conftest.$ac_objext
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$lt_prog_compiler_pic -DPIC"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_pic_works" = xyes; then
-    case $lt_prog_compiler_pic in
-     "" | " "*) ;;
-     *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;;
-     esac
-else
-    lt_prog_compiler_pic=
-     lt_prog_compiler_can_build_shared=no
-fi
-
-fi
-
-
-
-
-
-
-
-
-
-
-
-#
-# Check to make sure the static flag actually works.
-#
-wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_static_works=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $lt_tmp_static_flag"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works=yes
-       fi
-     else
-       lt_cv_prog_compiler_static_works=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5
-$as_echo "$lt_cv_prog_compiler_static_works" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works" = xyes; then
-    :
-else
-    lt_prog_compiler_static=
-fi
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5
-$as_echo "$lt_cv_prog_compiler_c_o" >&6; }
-
-
-
-
-hard_links="nottested"
-if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  runpath_var=
-  allow_undefined_flag=
-  always_export_symbols=no
-  archive_cmds=
-  archive_expsym_cmds=
-  compiler_needs_object=no
-  enable_shared_with_static_runtimes=no
-  export_dynamic_flag_spec=
-  export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  hardcode_automatic=no
-  hardcode_direct=no
-  hardcode_direct_absolute=no
-  hardcode_libdir_flag_spec=
-  hardcode_libdir_separator=
-  hardcode_minus_L=no
-  hardcode_shlibpath_var=unsupported
-  inherit_rpath=no
-  link_all_deplibs=unknown
-  module_cmds=
-  module_expsym_cmds=
-  old_archive_from_new_cmds=
-  old_archive_from_expsyms_cmds=
-  thread_safe_flag_spec=
-  whole_archive_flag_spec=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  include_expsyms=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  linux* | k*bsd*-gnu | gnu*)
-    link_all_deplibs=no
-    ;;
-  esac
-
-  ld_shlibs=yes
-
-  # On some targets, GNU ld is compatible enough with the native linker
-  # that we're better off using the native interface for both.
-  lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
-    case $host_os in
-      aix*)
-	# The AIX port of GNU ld has always aspired to compatibility
-	# with the native linker.  However, as the warning in the GNU ld
-	# block says, versions before 2.19.5* couldn't really create working
-	# shared libraries, regardless of the interface used.
-	case `$LD -v 2>&1` in
-	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
-	  *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;;
-	  *\ \(GNU\ Binutils\)\ [3-9]*) ;;
-	  *)
-	    lt_use_gnu_ld_interface=yes
-	    ;;
-	esac
-	;;
-      *)
-	lt_use_gnu_ld_interface=yes
-	;;
-    esac
-  fi
-
-  if test "$lt_use_gnu_ld_interface" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-    export_dynamic_flag_spec='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      whole_archive_flag_spec=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[3-9]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	allow_undefined_flag=unsupported
-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless,
-      # as there is no search path for DLLs.
-      hardcode_libdir_flag_spec='-L$libdir'
-      export_dynamic_flag_spec='${wl}--export-all-symbols'
-      allow_undefined_flag=unsupported
-      always_export_symbols=no
-      enable_shared_with_static_runtimes=yes
-      export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-      exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    haiku*)
-      archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      link_all_deplibs=yes
-      ;;
-
-    interix[3-9]*)
-      hardcode_direct=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-      export_dynamic_flag_spec='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
-      then
-	tmp_addflag=' $pic_flag'
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95* | pgfortran*)
-					# Portland Group f77 and f90 compilers
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  whole_archive_flag_spec=
-	  tmp_sharedflag='--shared' ;;
-	xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	nvcc*)	# Cuda Compiler Driver 2.2
-	  whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  compiler_needs_object=yes
-	  ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  compiler_needs_object=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-        if test "x$supports_anon_versioning" = xyes; then
-          archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-        fi
-
-	case $cc_basename in
-	xlf* | bgf* | bgxlf* | mpixlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive'
-	  hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-	  archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
-	    archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        ld_shlibs=no
-      fi
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*)
-	ld_shlibs=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-	    archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    ld_shlibs=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	ld_shlibs=no
-      fi
-      ;;
-    esac
-
-    if test "$ld_shlibs" = no; then
-      runpath_var=
-      hardcode_libdir_flag_spec=
-      export_dynamic_flag_spec=
-      whole_archive_flag_spec=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      allow_undefined_flag=unsupported
-      always_export_symbols=yes
-      archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      hardcode_minus_L=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	hardcode_direct=unsupported
-      fi
-      ;;
-
-    aix[4-9]*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	# Also, AIX nm treats weak defined symbols like other global
-	# defined symbols, whereas GNU nm marks them as "W".
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	else
-	  export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  ;;
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      archive_cmds=''
-      hardcode_direct=yes
-      hardcode_direct_absolute=yes
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      file_list_spec='${wl}-f,'
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[012]|aix4.[012].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  hardcode_direct=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  hardcode_minus_L=yes
-	  hardcode_libdir_flag_spec='-L$libdir'
-	  hardcode_libdir_separator=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
-	fi
-	link_all_deplibs=no
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-	  fi
-	fi
-      fi
-
-      export_dynamic_flag_spec='${wl}-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      always_export_symbols=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	allow_undefined_flag='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  if ${lt_cv_aix_libpath_+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
-  fi
-
-fi
-
-  aix_libpath=$lt_cv_aix_libpath_
-fi
-
-        hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-        archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-	if test "$host_cpu" = ia64; then
-	  hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib'
-	  allow_undefined_flag="-z nodefs"
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  if ${lt_cv_aix_libpath_+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath_"; then
-    lt_cv_aix_libpath_="/usr/lib:/lib"
-  fi
-
-fi
-
-  aix_libpath=$lt_cv_aix_libpath_
-fi
-
-	 hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  no_undefined_flag=' ${wl}-bernotok'
-	  allow_undefined_flag=' ${wl}-berok'
-	  if test "$with_gnu_ld" = yes; then
-	    # We only use this code for GNU lds that support --whole-archive.
-	    whole_archive_flag_spec='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	  else
-	    # Exported symbols can be pulled into shared objects from archives
-	    whole_archive_flag_spec='$convenience'
-	  fi
-	  archive_cmds_need_lc=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            archive_expsym_cmds=''
-        ;;
-      m68k)
-            archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            hardcode_libdir_flag_spec='-L$libdir'
-            hardcode_minus_L=yes
-        ;;
-      esac
-      ;;
-
-    bsdi[45]*)
-      export_dynamic_flag_spec=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      case $cc_basename in
-      cl*)
-	# Native MSVC
-	hardcode_libdir_flag_spec=' '
-	allow_undefined_flag=unsupported
-	always_export_symbols=yes
-	file_list_spec='@'
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	  else
-	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	  fi~
-	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	  linknames='
-	# The linker will not automatically build a static lib if we build a DLL.
-	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
-	enable_shared_with_static_runtimes=yes
-	exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-	export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols'
-	# Don't use ranlib
-	old_postinstall_cmds='chmod 644 $oldlib'
-	postlink_cmds='lt_outputfile="@OUTPUT@"~
-	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-	  case $lt_outputfile in
-	    *.exe|*.EXE) ;;
-	    *)
-	      lt_outputfile="$lt_outputfile.exe"
-	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-	      ;;
-	  esac~
-	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	    $RM "$lt_outputfile.manifest";
-	  fi'
-	;;
-      *)
-	# Assume MSVC wrapper
-	hardcode_libdir_flag_spec=' '
-	allow_undefined_flag=unsupported
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-	# The linker will automatically build a .lib file if we build a DLL.
-	old_archive_from_new_cmds='true'
-	# FIXME: Should let the user specify the lib program.
-	old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs'
-	enable_shared_with_static_runtimes=yes
-	;;
-      esac
-      ;;
-
-    darwin* | rhapsody*)
-
-
-  archive_cmds_need_lc=no
-  hardcode_direct=no
-  hardcode_automatic=yes
-  hardcode_shlibpath_var=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    whole_archive_flag_spec='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
-  else
-    whole_archive_flag_spec=''
-  fi
-  link_all_deplibs=yes
-  allow_undefined_flag="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=func_echo_all
-    archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-
-  else
-  ld_shlibs=no
-  fi
-
-      ;;
-
-    dgux*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2.*)
-      archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_direct=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      hardcode_minus_L=yes
-      export_dynamic_flag_spec='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator=:
-	hardcode_direct=yes
-	hardcode_direct_absolute=yes
-	export_dynamic_flag_spec='${wl}-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	hardcode_minus_L=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-
-	  # Older versions of the 11.00 compiler do not understand -b yet
-	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-	  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5
-$as_echo_n "checking if $CC understands -b... " >&6; }
-if ${lt_cv_prog_compiler__b+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler__b=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS -b"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler__b=yes
-       fi
-     else
-       lt_cv_prog_compiler__b=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5
-$as_echo "$lt_cv_prog_compiler__b" >&6; }
-
-if test x"$lt_cv_prog_compiler__b" = xyes; then
-    archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-else
-    archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-fi
-
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir'
-	hardcode_libdir_separator=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  hardcode_direct=no
-	  hardcode_shlibpath_var=no
-	  ;;
-	*)
-	  hardcode_direct=yes
-	  hardcode_direct_absolute=yes
-	  export_dynamic_flag_spec='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  hardcode_minus_L=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-	# This should be the same for all languages, so no per-tag cache variable.
-	{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5
-$as_echo_n "checking whether the $host_os linker accepts -exported_symbol... " >&6; }
-if ${lt_cv_irix_exported_symbol+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  save_LDFLAGS="$LDFLAGS"
-	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-	   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-int foo (void) { return 0; }
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  lt_cv_irix_exported_symbol=yes
-else
-  lt_cv_irix_exported_symbol=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-           LDFLAGS="$save_LDFLAGS"
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5
-$as_echo "$lt_cv_irix_exported_symbol" >&6; }
-	if test "$lt_cv_irix_exported_symbol" = yes; then
-          archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-	fi
-      else
-	archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      inherit_rpath=yes
-      link_all_deplibs=yes
-      ;;
-
-    netbsd* | netbsdelf*-gnu)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_direct=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    newsos6)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_direct=yes
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      hardcode_shlibpath_var=no
-      ;;
-
-    *nto* | *qnx*)
-      ;;
-
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-	hardcode_direct=yes
-	hardcode_shlibpath_var=no
-	hardcode_direct_absolute=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	  archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	  export_dynamic_flag_spec='${wl}-E'
-	else
-	  case $host_os in
-	   openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*)
-	     archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     hardcode_libdir_flag_spec='-R$libdir'
-	     ;;
-	   *)
-	     archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     hardcode_libdir_flag_spec='${wl}-rpath,$libdir'
-	     ;;
-	  esac
-	fi
-      else
-	ld_shlibs=no
-      fi
-      ;;
-
-    os2*)
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_minus_L=yes
-      allow_undefined_flag=unsupported
-      archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      hardcode_libdir_separator=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir'
-      else
-	allow_undefined_flag=' -expect_unresolved \*'
-	archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	hardcode_libdir_flag_spec='-rpath $libdir'
-      fi
-      archive_cmds_need_lc='no'
-      hardcode_libdir_separator=:
-      ;;
-
-    solaris*)
-      no_undefined_flag=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	archive_cmds='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='${wl}'
-	  archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      hardcode_libdir_flag_spec='-R$libdir'
-      hardcode_shlibpath_var=no
-      case $host_os in
-      solaris2.[0-5] | solaris2.[0-5].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	else
-	  whole_archive_flag_spec='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      link_all_deplibs=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_direct=yes
-      hardcode_minus_L=yes
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  reload_cmds='$CC -r -o $output$reload_objs'
-	  hardcode_direct=no
-        ;;
-	motorola)
-	  archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  hardcode_direct=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      hardcode_shlibpath_var=no
-      ;;
-
-    sysv4.3*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_shlibpath_var=no
-      export_dynamic_flag_spec='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	hardcode_shlibpath_var=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	ld_shlibs=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag='${wl}-z,text'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      no_undefined_flag='${wl}-z,text'
-      allow_undefined_flag='${wl}-z,nodefs'
-      archive_cmds_need_lc=no
-      hardcode_shlibpath_var=no
-      hardcode_libdir_flag_spec='${wl}-R,$libdir'
-      hardcode_libdir_separator=':'
-      link_all_deplibs=yes
-      export_dynamic_flag_spec='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      hardcode_libdir_flag_spec='-L$libdir'
-      hardcode_shlibpath_var=no
-      ;;
-
-    *)
-      ld_shlibs=no
-      ;;
-    esac
-
-    if test x$host_vendor = xsni; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	export_dynamic_flag_spec='${wl}-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5
-$as_echo "$ld_shlibs" >&6; }
-test "$ld_shlibs" = no && can_build_shared=no
-
-with_gnu_ld=$with_gnu_ld
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  $RM conftest*
-	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-	  soname=conftest
-	  lib=conftest
-	  libobjs=conftest.$ac_objext
-	  deplibs=
-	  wl=$lt_prog_compiler_wl
-	  pic_flag=$lt_prog_compiler_pic
-	  compiler_flags=-v
-	  linker_flags=-v
-	  verstring=
-	  output_objdir=.
-	  libname=conftest
-	  lt_save_allow_undefined_flag=$allow_undefined_flag
-	  allow_undefined_flag=
-	  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5
-  (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-	  then
-	    lt_cv_archive_cmds_need_lc=no
-	  else
-	    lt_cv_archive_cmds_need_lc=yes
-	  fi
-	  allow_undefined_flag=$lt_save_allow_undefined_flag
-	else
-	  cat conftest.err 1>&5
-	fi
-	$RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc" >&6; }
-      archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([A-Za-z]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
-  case $lt_search_path_spec in
-  *\;*)
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
-    ;;
-  *)
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
-    ;;
-  esac
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[lt_foo]++; }
-  if (lt_freq[lt_foo] == 1) { print lt_foo; }
-}'`
-  # AWK program above erroneously prepends '/' to C:/dos/paths
-  # for these hosts.
-  case $host_os in
-    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([A-Za-z]:\),\1,g'` ;;
-  esac
-  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[4-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$cc_basename in
-  yes,*)
-    # gcc
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
-      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    dynamic_linker='Win32 ld.exe'
-    ;;
-
-  *,cl*)
-    # Native MSVC
-    libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
-
-    case $build_os in
-    mingw*)
-      sys_lib_search_path_spec=
-      lt_save_ifs=$IFS
-      IFS=';'
-      for lt_path in $LIB
-      do
-        IFS=$lt_save_ifs
-        # Let DOS variable expansion print the short 8.3 style file name.
-        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-      done
-      IFS=$lt_save_ifs
-      # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
-      ;;
-    cygwin*)
-      # Convert to unix form, then to dos form, then back to unix form
-      # but this time dos style (no spaces!) so that the unix form looks
-      # like /cygdrive/c/PROGRA~1:/cygdr...
-      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      ;;
-    *)
-      sys_lib_search_path_spec="$LIB"
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      # FIXME: find the short name or the path components, as spaces are
-      # common. (e.g. "Program Files" -> "PROGRA~1")
-      ;;
-    esac
-
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-    dynamic_linker='Win32 link.exe'
-    ;;
-
-  *)
-    # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    dynamic_linker='Win32 ld.exe'
-    ;;
-  esac
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[23].*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2.*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-haiku*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-  postinstall_cmds='chmod 555 $lib'
-  # or fails outright, so override atomically:
-  install_override_mode=555
-  ;;
-
-interix[3-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux # correct to gnu/linux during the next big refactor
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-
-  # Some binutils ld are patched to set DT_RUNPATH
-  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_shlibpath_overrides_runpath=no
-    save_LDFLAGS=$LDFLAGS
-    save_libdir=$libdir
-    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \
-	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\""
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    LDFLAGS=$save_LDFLAGS
-    libdir=$save_libdir
-
-fi
-
-  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action=
-if test -n "$hardcode_libdir_flag_spec" ||
-   test -n "$runpath_var" ||
-   test "X$hardcode_automatic" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no &&
-     test "$hardcode_minus_L" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5
-$as_echo "$hardcode_action" >&6; }
-
-if test "$hardcode_action" = relink ||
-   test "$inherit_rpath" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-
-
-  if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-
-fi
-
-    ;;
-
-  *)
-    ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load"
-if test "x$ac_cv_func_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5
-$as_echo_n "checking for shl_load in -ldld... " >&6; }
-if ${ac_cv_lib_dld_shl_load+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char shl_load ();
-int
-main ()
-{
-return shl_load ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_shl_load=yes
-else
-  ac_cv_lib_dld_shl_load=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5
-$as_echo "$ac_cv_lib_dld_shl_load" >&6; }
-if test "x$ac_cv_lib_dld_shl_load" = xyes; then :
-  lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"
-else
-  ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen"
-if test "x$ac_cv_func_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5
-$as_echo_n "checking for dlopen in -lsvld... " >&6; }
-if ${ac_cv_lib_svld_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsvld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_svld_dlopen=yes
-else
-  ac_cv_lib_svld_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5
-$as_echo "$ac_cv_lib_svld_dlopen" >&6; }
-if test "x$ac_cv_lib_svld_dlopen" = xyes; then :
-  lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5
-$as_echo_n "checking for dld_link in -ldld... " >&6; }
-if ${ac_cv_lib_dld_dld_link+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldld  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dld_link ();
-int
-main ()
-{
-return dld_link ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dld_dld_link=yes
-else
-  ac_cv_lib_dld_dld_link=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5
-$as_echo "$ac_cv_lib_dld_dld_link" >&6; }
-if test "x$ac_cv_lib_dld_dld_link" = xyes; then :
-  lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-
-fi
-
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5
-$as_echo_n "checking whether a program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else
-        {
-	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-          else puts (dlerror ());
-	}
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5
-$as_echo "$lt_cv_dlopen_self" >&6; }
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5
-$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; }
-if ${lt_cv_dlopen_self_static+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  	  if test "$cross_compiling" = yes; then :
-  lt_cv_dlopen_self_static=cross
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else
-        {
-	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-          else puts (dlerror ());
-	}
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}
-_LT_EOF
-  if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5
-  (eval $ac_link) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&5 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;;
-      x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;;
-    esac
-  else :
-    # compilation failed
-    lt_cv_dlopen_self_static=no
-  fi
-fi
-rm -fr conftest*
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5
-$as_echo "$lt_cv_dlopen_self_static" >&6; }
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-striplib=
-old_striplib=
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5
-$as_echo_n "checking whether stripping libraries is possible... " >&6; }
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    fi
-    ;;
-  *)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-    ;;
-  esac
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-  # Report which library types will actually be built
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5
-$as_echo_n "checking if libtool supports shared libraries... " >&6; }
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5
-$as_echo "$can_build_shared" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5
-$as_echo_n "checking whether to build shared libraries... " >&6; }
-  test "$can_build_shared" = "no" && enable_shared=no
-
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[4-9]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    fi
-    ;;
-  esac
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5
-$as_echo "$enable_shared" >&6; }
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5
-$as_echo_n "checking whether to build static libraries... " >&6; }
-  # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5
-$as_echo "$enable_static" >&6; }
-
-
-
-
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-CC="$lt_save_CC"
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-        ac_config_commands="$ac_config_commands libtool"
-
-
-
-
-# Only expand once:
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-# macro that is used to parse a --with-apxs parameter
-
-
-
-
-
-# ===========================================================================
-#    http://www.gnu.org/software/autoconf-archive/ax_jni_include_dir.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_JNI_INCLUDE_DIR
-#
-# DESCRIPTION
-#
-#   AX_JNI_INCLUDE_DIR finds include directories needed for compiling
-#   programs using the JNI interface.
-#
-#   JNI include directories are usually in the java distribution This is
-#   deduced from the value of JAVAC. When this macro completes, a list of
-#   directories is left in the variable JNI_INCLUDE_DIRS.
-#
-#   Example usage follows:
-#
-#     AX_JNI_INCLUDE_DIR
-#
-#     for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
-#     do
-#             CPPFLAGS="$CPPFLAGS -I$JNI_INCLUDE_DIR"
-#     done
-#
-#   If you want to force a specific compiler:
-#
-#   - at the configure.in level, set JAVAC=yourcompiler before calling
-#   AX_JNI_INCLUDE_DIR
-#
-#   - at the configure level, setenv JAVAC
-#
-#   Note: This macro can work with the autoconf M4 macros for Java programs.
-#   This particular macro is not part of the original set of macros.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Don Anderson <dda at sleepycat.com>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 7
-
-# This is what autoupdate's m4 run will expand.  It fires
-# the warning (with _au_warn_XXX), outputs it into the
-# updated configure.ac (with AC_DIAGNOSE), and then outputs
-# the replacement expansion.
-
-
-# This is an auxiliary macro that is also run when
-# autoupdate runs m4.  It simply calls m4_warning, but
-# we need a wrapper so that each warning is emitted only
-# once.  We break the quoting in m4_warning's argument in
-# order to expand this macro's arguments, not AU_DEFUN's.
-
-
-# Finally, this is the expansion that is picked up by
-# autoconf.  It tells the user to run autoupdate, and
-# then outputs the replacement expansion.  We do not care
-# about autoupdate's warning because that contains
-# information on what to do *after* running autoupdate.
-
-
-
-# _ACJNI_FOLLOW_SYMLINKS <path>
-# Follows symbolic links on <path>,
-# finally setting variable _ACJNI_FOLLOWED
-# ----------------------------------------
-# _ACJNI
-
-# ===========================================================================
-#        http://www.gnu.org/software/autoconf-archive/ax_pkg_swig.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_PKG_SWIG([major.minor.micro], [action-if-found], [action-if-not-found])
-#
-# DESCRIPTION
-#
-#   This macro searches for a SWIG installation on your system. If found,
-#   then SWIG is AC_SUBST'd; if not found, then $SWIG is empty.  If SWIG is
-#   found, then SWIG_LIB is set to the SWIG library path, and AC_SUBST'd.
-#
-#   You can use the optional first argument to check if the version of the
-#   available SWIG is greater than or equal to the value of the argument. It
-#   should have the format: N[.N[.N]] (N is a number between 0 and 999. Only
-#   the first N is mandatory.) If the version argument is given (e.g.
-#   1.3.17), AX_PKG_SWIG checks that the swig package is this version number
-#   or higher.
-#
-#   As usual, action-if-found is executed if SWIG is found, otherwise
-#   action-if-not-found is executed.
-#
-#   In configure.in, use as:
-#
-#     AX_PKG_SWIG(1.3.17, [], [ AC_MSG_ERROR([SWIG is required to build..]) ])
-#     AX_SWIG_ENABLE_CXX
-#     AX_SWIG_MULTI_MODULE_SUPPORT
-#     AX_SWIG_PYTHON
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Sebastian Huber <sebastian-huber at web.de>
-#   Copyright (c) 2008 Alan W. Irwin <irwin at beluga.phys.uvic.ca>
-#   Copyright (c) 2008 Rafael Laboissiere <rafael at laboissiere.net>
-#   Copyright (c) 2008 Andrew Collier <colliera at ukzn.ac.za>
-#   Copyright (c) 2011 Murray Cumming <murrayc at openismus.com>
-#
-#   This program is free software; you can redistribute it and/or modify it
-#   under the terms of the GNU General Public License as published by the
-#   Free Software Foundation; either version 2 of the License, or (at your
-#   option) any later version.
-#
-#   This program is distributed in the hope that it will be useful, but
-#   WITHOUT ANY WARRANTY; without even the implied warranty of
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-#   Public License for more details.
-#
-#   You should have received a copy of the GNU General Public License along
-#   with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#   As a special exception, the respective Autoconf Macro's copyright owner
-#   gives unlimited permission to copy, distribute and modify the configure
-#   scripts that are the output of Autoconf when processing the Macro. You
-#   need not follow the terms of the GNU General Public License when using
-#   or distributing such scripts, even though portions of the text of the
-#   Macro appear in them. The GNU General Public License (GPL) does govern
-#   all other use of the material that constitutes the Autoconf Macro.
-#
-#   This special exception to the GPL applies to versions of the Autoconf
-#   Macro released by the Autoconf Archive. When you make and distribute a
-#   modified version of the Autoconf Macro, you may extend this special
-#   exception to the GPL to apply to your modified version as well.
-
-#serial 8
-
-
-
-
-
-
-
-
-
-
-
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-if test -n "$ac_tool_prefix"; then
-  # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$ac_cv_prog_CC"; then
-  ac_ct_CC=$CC
-  # Extract the first word of "gcc", so it can be a program name with args.
-set dummy gcc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="gcc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-else
-  CC="$ac_cv_prog_CC"
-fi
-
-if test -z "$CC"; then
-          if test -n "$ac_tool_prefix"; then
-    # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.
-set dummy ${ac_tool_prefix}cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="${ac_tool_prefix}cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-fi
-if test -z "$CC"; then
-  # Extract the first word of "cc", so it can be a program name with args.
-set dummy cc; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-  ac_prog_rejected=no
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then
-       ac_prog_rejected=yes
-       continue
-     fi
-    ac_cv_prog_CC="cc"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-if test $ac_prog_rejected = yes; then
-  # We found a bogon in the path, so make sure we never use it.
-  set dummy $ac_cv_prog_CC
-  shift
-  if test $# != 0; then
-    # We chose a different compiler from the bogus one.
-    # However, it has the same basename, so the bogon will be chosen
-    # first if we set CC to just the basename; use the full file name.
-    shift
-    ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"
-  fi
-fi
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-fi
-if test -z "$CC"; then
-  if test -n "$ac_tool_prefix"; then
-  for ac_prog in cl.exe
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CC"; then
-  ac_cv_prog_CC="$CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_CC="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CC=$ac_cv_prog_CC
-if test -n "$CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5
-$as_echo "$CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CC" && break
-  done
-fi
-if test -z "$CC"; then
-  ac_ct_CC=$CC
-  for ac_prog in cl.exe
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$ac_ct_CC"; then
-  ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.
-else
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_prog_ac_ct_CC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CC=$ac_cv_prog_ac_ct_CC
-if test -n "$ac_ct_CC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5
-$as_echo "$ac_ct_CC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CC" && break
-done
-
-  if test "x$ac_ct_CC" = x; then
-    CC=""
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CC=$ac_ct_CC
-  fi
-fi
-
-fi
-
-
-test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5; }
-
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
-$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if ${ac_cv_c_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_c_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5
-$as_echo "$ac_cv_c_compiler_gnu" >&6; }
-if test $ac_compiler_gnu = yes; then
-  GCC=yes
-else
-  GCC=
-fi
-ac_test_CFLAGS=${CFLAGS+set}
-ac_save_CFLAGS=$CFLAGS
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
-$as_echo_n "checking whether $CC accepts -g... " >&6; }
-if ${ac_cv_prog_cc_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_c_werror_flag=$ac_c_werror_flag
-   ac_c_werror_flag=yes
-   ac_cv_prog_cc_g=no
-   CFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-else
-  CFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-
-else
-  ac_c_werror_flag=$ac_save_c_werror_flag
-	 CFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_c_werror_flag=$ac_save_c_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5
-$as_echo "$ac_cv_prog_cc_g" >&6; }
-if test "$ac_test_CFLAGS" = set; then
-  CFLAGS=$ac_save_CFLAGS
-elif test $ac_cv_prog_cc_g = yes; then
-  if test "$GCC" = yes; then
-    CFLAGS="-g -O2"
-  else
-    CFLAGS="-g"
-  fi
-else
-  if test "$GCC" = yes; then
-    CFLAGS="-O2"
-  else
-    CFLAGS=
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
-$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if ${ac_cv_prog_cc_c89+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_prog_cc_c89=no
-ac_save_CC=$CC
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdarg.h>
-#include <stdio.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh.  */
-struct buf { int x; };
-FILE * (*rcsopen) (struct buf *, struct stat *, int);
-static char *e (p, i)
-     char **p;
-     int i;
-{
-  return p[i];
-}
-static char *f (char * (*g) (char **, int), char **p, ...)
-{
-  char *s;
-  va_list v;
-  va_start (v,p);
-  s = g (p, va_arg (v,int));
-  va_end (v);
-  return s;
-}
-
-/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default.  It has
-   function prototypes and stuff, but not '\xHH' hex character constants.
-   These don't provoke an error unfortunately, instead are silently treated
-   as 'x'.  The following induces an error, until -std is added to get
-   proper ANSI mode.  Curiously '\x00'!='x' always comes out true, for an
-   array size at least.  It's necessary to write '\x00'==0 to get something
-   that's true only with -std.  */
-int osf4_cc_array ['\x00' == 0 ? 1 : -1];
-
-/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters
-   inside strings and character constants.  */
-#define FOO(x) 'x'
-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];
-
-int test (int i, double x);
-struct s1 {int (*f) (int a);};
-struct s2 {int (*f) (double a);};
-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);
-int argc;
-char **argv;
-int
-main ()
-{
-return f (e, argv, 0) != argv[0]  ||  f (e, argv, 1) != argv[1];
-  ;
-  return 0;
-}
-_ACEOF
-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \
-	-Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"
-do
-  CC="$ac_save_CC $ac_arg"
-  if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_prog_cc_c89=$ac_arg
-fi
-rm -f core conftest.err conftest.$ac_objext
-  test "x$ac_cv_prog_cc_c89" != "xno" && break
-done
-rm -f conftest.$ac_ext
-CC=$ac_save_CC
-
-fi
-# AC_CACHE_VAL
-case "x$ac_cv_prog_cc_c89" in
-  x)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5
-$as_echo "none needed" >&6; } ;;
-  xno)
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5
-$as_echo "unsupported" >&6; } ;;
-  *)
-    CC="$CC $ac_cv_prog_cc_c89"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5
-$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;
-esac
-if test "x$ac_cv_prog_cc_c89" != xno; then :
-
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-ac_ext=cpp
-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
-if test -z "$CXX"; then
-  if test -n "$CCC"; then
-    CXX=$CCC
-  else
-    if test -n "$ac_tool_prefix"; then
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-  do
-    # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.
-set dummy $ac_tool_prefix$ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$CXX"; then
-  ac_cv_prog_CXX="$CXX" # 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_CXX="$ac_tool_prefix$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-CXX=$ac_cv_prog_CXX
-if test -n "$CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5
-$as_echo "$CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    test -n "$CXX" && break
-  done
-fi
-if test -z "$CXX"; then
-  ac_ct_CXX=$CXX
-  for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_ac_ct_CXX+:} false; then :
-  $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.
-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_CXX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-ac_ct_CXX=$ac_cv_prog_ac_ct_CXX
-if test -n "$ac_ct_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5
-$as_echo "$ac_ct_CXX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$ac_ct_CXX" && break
-done
-
-  if test "x$ac_ct_CXX" = x; then
-    CXX="g++"
-  else
-    case $cross_compiling:$ac_tool_warned in
-yes:)
-{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5
-$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}
-ac_tool_warned=yes ;;
-esac
-    CXX=$ac_ct_CXX
-  fi
-fi
-
-  fi
-fi
-# Provide some information about the compiler.
-$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5
-set X $ac_compile
-ac_compiler=$2
-for ac_option in --version -v -V -qversion; do
-  { { ac_try="$ac_compiler $ac_option >&5"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$ac_compiler $ac_option >&5") 2>conftest.err
-  ac_status=$?
-  if test -s conftest.err; then
-    sed '10a\
-... rest of stderr output deleted ...
-         10q' conftest.err >conftest.er1
-    cat conftest.er1 >&5
-  fi
-  rm -f conftest.er1 conftest.err
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-done
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5
-$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; }
-if ${ac_cv_cxx_compiler_gnu+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-#ifndef __GNUC__
-       choke me
-#endif
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_compiler_gnu=yes
-else
-  ac_compiler_gnu=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-ac_cv_cxx_compiler_gnu=$ac_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$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
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5
-$as_echo_n "checking whether $CXX accepts -g... " >&6; }
-if ${ac_cv_prog_cxx_g+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_save_cxx_werror_flag=$ac_cxx_werror_flag
-   ac_cxx_werror_flag=yes
-   ac_cv_prog_cxx_g=no
-   CXXFLAGS="-g"
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-else
-  CXXFLAGS=""
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-
-else
-  ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-	 CXXFLAGS="-g"
-	 cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_prog_cxx_g=yes
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-   ac_cxx_werror_flag=$ac_save_cxx_werror_flag
-fi
-{ $as_echo "$as_me:${as_lineno-$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
-  if test "$GXX" = yes; then
-    CXXFLAGS="-g -O2"
-  else
-    CXXFLAGS="-g"
-  fi
-else
-  if test "$GXX" = yes; then
-    CXXFLAGS="-O2"
-  else
-    CXXFLAGS=
-  fi
-fi
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-
-func_stripname_cnf ()
-{
-  case ${2} in
-  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-  esac
-} # func_stripname_cnf
-
-      if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  ac_ext=cpp
-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
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5
-$as_echo_n "checking how to run the C++ preprocessor... " >&6; }
-if test -z "$CXXCPP"; then
-  if ${ac_cv_prog_CXXCPP+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-      # Double quotes because CXXCPP needs to be expanded
-    for CXXCPP in "$CXX -E" "/lib/cpp"
-    do
-      ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-  break
-fi
-
-    done
-    ac_cv_prog_CXXCPP=$CXXCPP
-
-fi
-  CXXCPP=$ac_cv_prog_CXXCPP
-else
-  ac_cv_prog_CXXCPP=$CXXCPP
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5
-$as_echo "$CXXCPP" >&6; }
-ac_preproc_ok=false
-for ac_cxx_preproc_warn_flag in '' yes
-do
-  # Use a header file that comes with gcc, so configuring glibc
-  # with a fresh cross-compiler works.
-  # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since
-  # <limits.h> exists even on freestanding compilers.
-  # On the NeXT, cc -E runs the code through the compiler's parser,
-  # not just through cpp. "Syntax error" is here to catch this case.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#ifdef __STDC__
-# include <limits.h>
-#else
-# include <assert.h>
-#endif
-		     Syntax error
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-
-else
-  # Broken: fails on valid input.
-continue
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-  # OK, works on sane cases.  Now check whether nonexistent headers
-  # can be detected and how.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ac_nonexistent.h>
-_ACEOF
-if ac_fn_cxx_try_cpp "$LINENO"; then :
-  # Broken: success on invalid input.
-continue
-else
-  # Passes both tests.
-ac_preproc_ok=:
-break
-fi
-rm -f conftest.err conftest.i conftest.$ac_ext
-
-done
-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.
-rm -f conftest.i conftest.err conftest.$ac_ext
-if $ac_preproc_ok; then :
-
-else
-  { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
-$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
-as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5; }
-fi
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-else
-  _lt_caught_CXX_error=yes
-fi
-
-ac_ext=cpp
-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
-
-archive_cmds_need_lc_CXX=no
-allow_undefined_flag_CXX=
-always_export_symbols_CXX=no
-archive_expsym_cmds_CXX=
-compiler_needs_object_CXX=no
-export_dynamic_flag_spec_CXX=
-hardcode_direct_CXX=no
-hardcode_direct_absolute_CXX=no
-hardcode_libdir_flag_spec_CXX=
-hardcode_libdir_separator_CXX=
-hardcode_minus_L_CXX=no
-hardcode_shlibpath_var_CXX=unsupported
-hardcode_automatic_CXX=no
-inherit_rpath_CXX=no
-module_cmds_CXX=
-module_expsym_cmds_CXX=
-link_all_deplibs_CXX=unknown
-old_archive_cmds_CXX=$old_archive_cmds
-reload_flag_CXX=$reload_flag
-reload_cmds_CXX=$reload_cmds
-no_undefined_flag_CXX=
-whole_archive_flag_spec_CXX=
-enable_shared_with_static_runtimes_CXX=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-objext_CXX=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-
-
-
-
-
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-
-
-  # save warnings/boilerplate of simple test code
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-
-  ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_CFLAGS=$CFLAGS
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  CFLAGS=$CXXFLAGS
-  compiler=$CC
-  compiler_CXX=$CC
-  for cc_temp in $compiler""; do
-  case $cc_temp in
-    compile | *[\\/]compile | ccache | *[\\/]ccache ) ;;
-    distcc | *[\\/]distcc | purify | *[\\/]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin'
-    else
-      lt_prog_compiler_no_builtin_flag_CXX=
-    fi
-
-    if test "$GXX" = yes; then
-      # Set up default GNU C++ configuration
-
-
-
-# Check whether --with-gnu-ld was given.
-if test "${with_gnu_ld+set}" = set; then :
-  withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes
-else
-  with_gnu_ld=no
-fi
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5
-$as_echo_n "checking for ld used by $CC... " >&6; }
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [\\/]* | ?:[\\/]*)
-      re_direlt='/[^/][^/]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5
-$as_echo_n "checking for GNU ld... " >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5
-$as_echo_n "checking for non-GNU ld... " >&6; }
-fi
-if ${lt_cv_path_LD+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi
-fi
-
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5
-$as_echo "$LD" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5
-$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; }
-if ${lt_cv_prog_gnu_ld+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  # I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_gnu_ld" >&5
-$as_echo "$lt_cv_prog_gnu_ld" >&6; }
-with_gnu_ld=$lt_cv_prog_gnu_ld
-
-
-
-
-
-
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-        export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-        else
-          whole_archive_flag_spec_CXX=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-    ld_shlibs_CXX=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-      aix[4-9]*)
-        if test "$host_cpu" = ia64; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=""
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
-          case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        archive_cmds_CXX=''
-        hardcode_direct_CXX=yes
-        hardcode_direct_absolute_CXX=yes
-        hardcode_libdir_separator_CXX=':'
-        link_all_deplibs_CXX=yes
-        file_list_spec_CXX='${wl}-f,'
-
-        if test "$GXX" = yes; then
-          case $host_os in aix4.[012]|aix4.[012].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    hardcode_direct_CXX=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    hardcode_minus_L_CXX=yes
-	    hardcode_libdir_flag_spec_CXX='-L$libdir'
-	    hardcode_libdir_separator_CXX=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
-	  fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
-	    else
-	      shared_flag='${wl}-bM:SRE'
-	    fi
-          fi
-        fi
-
-        export_dynamic_flag_spec_CXX='${wl}-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        always_export_symbols_CXX=yes
-        if test "$aix_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          allow_undefined_flag_CXX='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  if ${lt_cv_aix_libpath__CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX="/usr/lib:/lib"
-  fi
-
-fi
-
-  aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
-          hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-          archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; then
-	    hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib'
-	    allow_undefined_flag_CXX="-z nodefs"
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  if ${lt_cv_aix_libpath__CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
-  lt_aix_libpath_sed='
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }'
-  lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-  if test -z "$lt_cv_aix_libpath__CXX"; then
-    lt_cv_aix_libpath__CXX="/usr/lib:/lib"
-  fi
-
-fi
-
-  aix_libpath=$lt_cv_aix_libpath__CXX
-fi
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    no_undefined_flag_CXX=' ${wl}-bernotok'
-	    allow_undefined_flag_CXX=' ${wl}-berok'
-	    if test "$with_gnu_ld" = yes; then
-	      # We only use this code for GNU lds that support --whole-archive.
-	      whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    else
-	      # Exported symbols can be pulled into shared objects from archives
-	      whole_archive_flag_spec_CXX='$convenience'
-	    fi
-	    archive_cmds_need_lc_CXX=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  allow_undefined_flag_CXX=unsupported
-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  ld_shlibs_CXX=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-	case $GXX,$cc_basename in
-	,cl* | no,cl*)
-	  # Native MSVC
-	  # hardcode_libdir_flag_spec is actually meaningless, as there is
-	  # no search path for DLLs.
-	  hardcode_libdir_flag_spec_CXX=' '
-	  allow_undefined_flag_CXX=unsupported
-	  always_export_symbols_CXX=yes
-	  file_list_spec_CXX='@'
-	  # Tell ltmain to make .lib files, not .a files.
-	  libext=lib
-	  # Tell ltmain to make .dll files, not .so files.
-	  shrext_cmds=".dll"
-	  # FIXME: Setting linknames here is a bad hack.
-	  archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	  archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	    else
-	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	    fi~
-	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	    linknames='
-	  # The linker will not automatically build a static lib if we build a DLL.
-	  # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true'
-	  enable_shared_with_static_runtimes_CXX=yes
-	  # Don't use ranlib
-	  old_postinstall_cmds_CXX='chmod 644 $oldlib'
-	  postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~
-	    lt_tool_outputfile="@TOOL_OUTPUT@"~
-	    case $lt_outputfile in
-	      *.exe|*.EXE) ;;
-	      *)
-		lt_outputfile="$lt_outputfile.exe"
-		lt_tool_outputfile="$lt_tool_outputfile.exe"
-		;;
-	    esac~
-	    func_to_tool_file "$lt_outputfile"~
-	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	      $RM "$lt_outputfile.manifest";
-	    fi'
-	  ;;
-	*)
-	  # g++
-	  # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless,
-	  # as there is no search path for DLLs.
-	  hardcode_libdir_flag_spec_CXX='-L$libdir'
-	  export_dynamic_flag_spec_CXX='${wl}--export-all-symbols'
-	  allow_undefined_flag_CXX=unsupported
-	  always_export_symbols_CXX=no
-	  enable_shared_with_static_runtimes_CXX=yes
-
-	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-	    archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	    # If the export-symbols file already is a .def file (1st line
-	    # is EXPORTS), use it as is; otherwise, prepend...
-	    archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      cp $export_symbols $output_objdir/$soname.def;
-	    else
-	      echo EXPORTS > $output_objdir/$soname.def;
-	      cat $export_symbols >> $output_objdir/$soname.def;
-	    fi~
-	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	  else
-	    ld_shlibs_CXX=no
-	  fi
-	  ;;
-	esac
-	;;
-      darwin* | rhapsody*)
-
-
-  archive_cmds_need_lc_CXX=no
-  hardcode_direct_CXX=no
-  hardcode_automatic_CXX=yes
-  hardcode_shlibpath_var_CXX=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-
-  else
-    whole_archive_flag_spec_CXX=''
-  fi
-  link_all_deplibs_CXX=yes
-  allow_undefined_flag_CXX="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=func_echo_all
-    archive_cmds_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
-
-  else
-  ld_shlibs_CXX=no
-  fi
-
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      freebsd2.*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        ld_shlibs_CXX=no
-        ;;
-
-      freebsd-elf*)
-        archive_cmds_need_lc_CXX=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        ld_shlibs_CXX=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      haiku*)
-        archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        link_all_deplibs_CXX=yes
-        ;;
-
-      hpux9*)
-        hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-        hardcode_libdir_separator_CXX=:
-        export_dynamic_flag_spec_CXX='${wl}-E'
-        hardcode_direct_CXX=yes
-        hardcode_minus_L_CXX=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            ld_shlibs_CXX=no
-            ;;
-          aCC*)
-            archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-            ;;
-          *)
-            if test "$GXX" = yes; then
-              archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              ld_shlibs_CXX=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir'
-	  hardcode_libdir_separator_CXX=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      export_dynamic_flag_spec_CXX='${wl}-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            hardcode_direct_CXX=no
-            hardcode_shlibpath_var_CXX=no
-            ;;
-          *)
-            hardcode_direct_CXX=yes
-            hardcode_direct_absolute_CXX=yes
-            hardcode_minus_L_CXX=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
-	        case $host_cpu in
-	          hppa*64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            archive_cmds_CXX='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[3-9]*)
-	hardcode_direct_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	export_dynamic_flag_spec_CXX='${wl}-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	      else
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
-	      fi
-	    fi
-	    link_all_deplibs_CXX=yes
-	    ;;
-        esac
-        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-        hardcode_libdir_separator_CXX=:
-        inherit_rpath_CXX=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    archive_cmds_need_lc_CXX=no
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [1-5].* | *pgcpp\ [1-5].*)
-	      prelink_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
-	      old_archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-		$RANLIB $oldlib'
-	      archive_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      archive_expsym_cmds_CXX='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 and above use weak symbols
-	      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'
-	      ;;
-	    esac
-
-	    hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
-	    ;;
-	  xl* | mpixl* | bgxl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	    export_dynamic_flag_spec_CXX='${wl}--export-dynamic'
-	    archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
-	      archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      no_undefined_flag_CXX=' -zdefs'
-	      archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-	      hardcode_libdir_flag_spec_CXX='-R$libdir'
-	      whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	      compiler_needs_object_CXX=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='func_echo_all'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	ld_shlibs_CXX=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  archive_cmds_CXX='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  hardcode_libdir_flag_spec_CXX='-R$libdir'
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        ld_shlibs_CXX=yes
-	;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	ld_shlibs_CXX=no
-	;;
-
-      openbsd*)
-	if test -f /usr/libexec/ld.so; then
-	  hardcode_direct_CXX=yes
-	  hardcode_shlibpath_var_CXX=no
-	  hardcode_direct_absolute_CXX=yes
-	  archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    export_dynamic_flag_spec_CXX='${wl}-E'
-	    whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=func_echo_all
-	else
-	  ld_shlibs_CXX=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir'
-	    hardcode_libdir_separator_CXX=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-		;;
-	      *)
-	        allow_undefined_flag_CXX=' -expect_unresolved \*'
-	        archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
-	        hardcode_libdir_flag_spec_CXX='-rpath $libdir'
-		;;
-	    esac
-
-	    hardcode_libdir_separator_CXX=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*'
-	      case $host in
-	        osf3*)
-	          archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	        *)
-	          archive_cmds_CXX='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir'
-	      hardcode_libdir_separator_CXX=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      ld_shlibs_CXX=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            archive_cmds_need_lc_CXX=yes
-	    no_undefined_flag_CXX=' -zdefs'
-	    archive_cmds_CXX='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    hardcode_libdir_flag_spec_CXX='-R$libdir'
-	    hardcode_shlibpath_var_CXX=no
-	    case $host_os in
-	      solaris2.[0-5] | solaris2.[0-5].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    link_all_deplibs_CXX=yes
-
-	    output_verbose_link_cmd='func_echo_all'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      no_undefined_flag_CXX=' ${wl}-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	        # platform.
-	        archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      fi
-
-	      hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir'
-	      case $host_os in
-		solaris2.[0-5] | solaris2.[0-5].*) ;;
-		*)
-		  whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*)
-      no_undefined_flag_CXX='${wl}-z,text'
-      archive_cmds_need_lc_CXX=no
-      hardcode_shlibpath_var_CXX=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	no_undefined_flag_CXX='${wl}-z,text'
-	allow_undefined_flag_CXX='${wl}-z,nodefs'
-	archive_cmds_need_lc_CXX=no
-	hardcode_shlibpath_var_CXX=no
-	hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir'
-	hardcode_libdir_separator_CXX=':'
-	link_all_deplibs_CXX=yes
-	export_dynamic_flag_spec_CXX='${wl}-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~
-	      '"$old_archive_cmds_CXX"
-	    reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~
-	      '"$reload_cmds_CXX"
-	    ;;
-	  *)
-	    archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    ld_shlibs_CXX=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        ld_shlibs_CXX=no
-        ;;
-    esac
-
-    { $as_echo "$as_me:${as_lineno-$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"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    # Dependencies to place before and after the object being linked:
-predep_objects_CXX=
-postdep_objects_CXX=
-predeps_CXX=
-postdeps_CXX=
-compiler_lib_search_path_CXX=
-
-cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }; then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case ${prev}${p} in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-	 prev=$p
-	 continue
-       fi
-
-       # Expand the sysroot to ease extracting the directories later.
-       if test -z "$prev"; then
-         case $p in
-         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
-         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
-         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
-         esac
-       fi
-       case $p in
-       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
-       esac
-       if test "$pre_test_object_deps_done" = no; then
-	 case ${prev} in
-	 -L | -R)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$compiler_lib_search_path_CXX"; then
-	     compiler_lib_search_path_CXX="${prev}${p}"
-	   else
-	     compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$postdeps_CXX"; then
-	   postdeps_CXX="${prev}${p}"
-	 else
-	   postdeps_CXX="${postdeps_CXX} ${prev}${p}"
-	 fi
-       fi
-       prev=
-       ;;
-
-    *.lto.$objext) ;; # Ignore GCC LTO objects
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$predep_objects_CXX"; then
-	   predep_objects_CXX="$p"
-	 else
-	   predep_objects_CXX="$predep_objects_CXX $p"
-	 fi
-       else
-	 if test -z "$postdep_objects_CXX"; then
-	   postdep_objects_CXX="$p"
-	 else
-	   postdep_objects_CXX="$postdep_objects_CXX $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling CXX test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-case $host_os in
-interix[3-9]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  predep_objects_CXX=
-  postdep_objects_CXX=
-  postdeps_CXX=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC* | sunCC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      postdeps_CXX='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-esac
-
-
-case " $postdeps_CXX " in
-*" -lc "*) archive_cmds_need_lc_CXX=no ;;
-esac
- 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
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    lt_prog_compiler_wl_CXX=
-lt_prog_compiler_pic_CXX=
-lt_prog_compiler_static_CXX=
-
-
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    lt_prog_compiler_wl_CXX='-Wl,'
-    lt_prog_compiler_static_CXX='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	lt_prog_compiler_static_CXX='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            lt_prog_compiler_pic_CXX='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      lt_prog_compiler_pic_CXX='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      lt_prog_compiler_pic_CXX=
-      ;;
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      lt_prog_compiler_static_CXX=
-      ;;
-    interix[3-9]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	lt_prog_compiler_pic_CXX=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	lt_prog_compiler_pic_CXX='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      lt_prog_compiler_pic_CXX='-fPIC -shared'
-      ;;
-    *)
-      lt_prog_compiler_pic_CXX='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[4-9]*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  lt_prog_compiler_static_CXX='-Bstatic'
-	else
-	  lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      mingw* | cygwin* | os2* | pw32* | cegcc*)
-	# This hack is so that the source file can tell whether it is being
-	# built for inclusion in a dll (and should export symbols for example).
-	lt_prog_compiler_pic_CXX='-DDLL_EXPORT'
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
-	      lt_prog_compiler_pic_CXX='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='${wl}-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      lt_prog_compiler_pic_CXX='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fPIC'
-	    lt_prog_compiler_static_CXX='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-fpic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  xlc* | xlC* | bgxl[cC]* | mpixl[cC]*)
-	    # IBM XL 8.0, 9.0 on PPC and BlueGene
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-qpic'
-	    lt_prog_compiler_static_CXX='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      lt_prog_compiler_pic_CXX='-KPIC'
-	      lt_prog_compiler_static_CXX='-Bstatic'
-	      lt_prog_compiler_wl_CXX='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    lt_prog_compiler_pic_CXX='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd* | netbsdelf*-gnu)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        lt_prog_compiler_pic_CXX='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    lt_prog_compiler_wl_CXX='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    lt_prog_compiler_pic_CXX=
-	    lt_prog_compiler_static_CXX='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    lt_prog_compiler_wl_CXX='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    lt_prog_compiler_pic_CXX='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    lt_prog_compiler_pic_CXX='-pic'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    lt_prog_compiler_pic_CXX='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    lt_prog_compiler_wl_CXX='-Wl,'
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    lt_prog_compiler_static_CXX='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    lt_prog_compiler_pic_CXX='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	lt_prog_compiler_can_build_shared_CXX=no
-	;;
-    esac
-  fi
-
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    lt_prog_compiler_pic_CXX=
-    ;;
-  *)
-    lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC"
-    ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5
-$as_echo_n "checking for $compiler option to produce PIC... " >&6; }
-if ${lt_cv_prog_compiler_pic_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_CXX" >&6; }
-lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$lt_prog_compiler_pic_CXX"; then
-  { $as_echo "$as_me:${as_lineno-$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 ${lt_cv_prog_compiler_pic_works_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_pic_works_CXX=yes
-     fi
-   fi
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; }
-
-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" ;;
-     esac
-else
-    lt_prog_compiler_pic_CXX=
-     lt_prog_compiler_can_build_shared_CXX=no
-fi
-
-fi
-
-
-
-
-
-#
-# 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\"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5
-$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; }
-if ${lt_cv_prog_compiler_static_works_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  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
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         lt_cv_prog_compiler_static_works_CXX=yes
-       fi
-     else
-       lt_cv_prog_compiler_static_works_CXX=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; }
-
-if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then
-    :
-else
-    lt_prog_compiler_static_CXX=
-fi
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5
-$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; }
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5
-$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; }
-if ${lt_cv_prog_compiler_c_o_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_prog_compiler_c_o_CXX=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&5
-   echo "$as_me:$LINENO: \$? = $ac_status" >&5
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       lt_cv_prog_compiler_c_o_CXX=yes
-     fi
-   fi
-   chmod u+w . 2>&5
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_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
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5
-$as_echo_n "checking if we can lock with hard links... " >&6; }
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5
-$as_echo "$hard_links" >&6; }
-  if test "$hard_links" = no; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5
-$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;}
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5
-$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; }
-
-  export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'
-  case $host_os in
-  aix[4-9]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    export_symbols_cmds_CXX="$ltdll_cmds"
-    ;;
-  cygwin* | mingw* | cegcc*)
-    case $cc_basename in
-    cl*)
-      exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-      ;;
-    *)
-      export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols'
-      exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'
-      ;;
-    esac
-    ;;
-  linux* | k*bsd*-gnu | gnu*)
-    link_all_deplibs_CXX=no
-    ;;
-  *)
-    export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-    ;;
-  esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5
-$as_echo "$ld_shlibs_CXX" >&6; }
-test "$ld_shlibs_CXX" = no && can_build_shared=no
-
-with_gnu_ld_CXX=$with_gnu_ld
-
-
-
-
-
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$archive_cmds_need_lc_CXX" in
-x|xyes)
-  # Assume -lc should be added
-  archive_cmds_need_lc_CXX=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $archive_cmds_CXX in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5
-$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; }
-if ${lt_cv_archive_cmds_need_lc_CXX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  $RM conftest*
-	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-	if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5
-  (eval $ac_compile) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; } 2>conftest.err; then
-	  soname=conftest
-	  lib=conftest
-	  libobjs=conftest.$ac_objext
-	  deplibs=
-	  wl=$lt_prog_compiler_wl_CXX
-	  pic_flag=$lt_prog_compiler_pic_CXX
-	  compiler_flags=-v
-	  linker_flags=-v
-	  verstring=
-	  output_objdir=.
-	  libname=conftest
-	  lt_save_allow_undefined_flag=$allow_undefined_flag_CXX
-	  allow_undefined_flag_CXX=
-	  if { { eval echo "\"\$as_me\":${as_lineno-$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=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-	  then
-	    lt_cv_archive_cmds_need_lc_CXX=no
-	  else
-	    lt_cv_archive_cmds_need_lc_CXX=yes
-	  fi
-	  allow_undefined_flag_CXX=$lt_save_allow_undefined_flag
-	else
-	  cat conftest.err 1>&5
-	fi
-	$RM conftest*
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5
-$as_echo "$lt_cv_archive_cmds_need_lc_CXX" >&6; }
-      archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5
-$as_echo_n "checking dynamic linker characteristics... " >&6; }
-
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[4-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[01] | aix4.[01].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[45]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$cc_basename in
-  yes,*)
-    # gcc
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    dynamic_linker='Win32 ld.exe'
-    ;;
-
-  *,cl*)
-    # Native MSVC
-    libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
-
-    case $build_os in
-    mingw*)
-      sys_lib_search_path_spec=
-      lt_save_ifs=$IFS
-      IFS=';'
-      for lt_path in $LIB
-      do
-        IFS=$lt_save_ifs
-        # Let DOS variable expansion print the short 8.3 style file name.
-        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-      done
-      IFS=$lt_save_ifs
-      # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'`
-      ;;
-    cygwin*)
-      # Convert to unix form, then to dos form, then back to unix form
-      # but this time dos style (no spaces!) so that the unix form looks
-      # like /cygdrive/c/PROGRA~1:/cygdr...
-      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      ;;
-    *)
-      sys_lib_search_path_spec="$LIB"
-      if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then
-        # It is most probably a Windows format PATH.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      # FIXME: find the short name or the path components, as spaces are
-      # common. (e.g. "Program Files" -> "PROGRA~1")
-      ;;
-    esac
-
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-    dynamic_linker='Win32 link.exe'
-    ;;
-
-  *)
-    # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    dynamic_linker='Win32 ld.exe'
-    ;;
-  esac
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[23].*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2.*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[01]* | freebsdelf3.[01]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[2-9]* | freebsdelf3.[2-9]* | \
-  freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-haiku*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-  postinstall_cmds='chmod 555 $lib'
-  # or fails outright, so override atomically:
-  install_override_mode=555
-  ;;
-
-interix[3-9]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux # correct to gnu/linux during the next big refactor
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-
-  # Some binutils ld are patched to set DT_RUNPATH
-  if ${lt_cv_shlibpath_overrides_runpath+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  lt_cv_shlibpath_overrides_runpath=no
-    save_LDFLAGS=$LDFLAGS
-    save_libdir=$libdir
-    eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \
-	 LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\""
-    cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-  if  ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then :
-  lt_cv_shlibpath_overrides_runpath=yes
-fi
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-    LDFLAGS=$save_LDFLAGS
-    libdir=$save_libdir
-
-fi
-
-  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsdelf*-gnu)
-  version_type=linux
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='NetBSD ld.elf_so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[89] | openbsd2.[89].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5
-$as_echo "$dynamic_linker" >&6; }
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5
-$as_echo_n "checking how to hardcode library paths into programs... " >&6; }
-hardcode_action_CXX=
-if test -n "$hardcode_libdir_flag_spec_CXX" ||
-   test -n "$runpath_var_CXX" ||
-   test "X$hardcode_automatic_CXX" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$hardcode_direct_CXX" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no &&
-     test "$hardcode_minus_L_CXX" != no; then
-    # Linking always hardcodes the temporary library directory.
-    hardcode_action_CXX=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    hardcode_action_CXX=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  hardcode_action_CXX=unsupported
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5
-$as_echo "$hardcode_action_CXX" >&6; }
-
-if test "$hardcode_action_CXX" = relink ||
-   test "$inherit_rpath_CXX" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-
-
-
-
-
-
-
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C++ compiler works" >&5
-$as_echo_n "checking whether the C++ compiler works... " >&6; }
-if ${rw_cv_prog_cxx_works+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_ext=cpp
-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
-
-                cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_link "$LINENO"; then :
-
-else
-  as_fn_error $? "$CXX cannot compile" "$LINENO" 5
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-                ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $rw_cv_prog_cxx_works" >&5
-$as_echo "$rw_cv_prog_cxx_works" >&6; }
-
-for ac_prog in flex lex
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_LEX+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$LEX"; then
-  ac_cv_prog_LEX="$LEX" # 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_LEX="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-LEX=$ac_cv_prog_LEX
-if test -n "$LEX"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LEX" >&5
-$as_echo "$LEX" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$LEX" && break
-done
-test -n "$LEX" || LEX=":"
-
-if test "x$LEX" != "x:"; then
-  cat >conftest.l <<_ACEOF
-%%
-a { ECHO; }
-b { REJECT; }
-c { yymore (); }
-d { yyless (1); }
-e { yyless (input () != 0); }
-f { unput (yytext[0]); }
-. { BEGIN INITIAL; }
-%%
-#ifdef YYTEXT_POINTER
-extern char *yytext;
-#endif
-int
-main (void)
-{
-  return ! yylex () + ! yywrap ();
-}
-_ACEOF
-{ { ac_try="$LEX conftest.l"
-case "(($ac_try" in
-  *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;
-  *) ac_try_echo=$ac_try;;
-esac
-eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\""
-$as_echo "$ac_try_echo"; } >&5
-  (eval "$LEX conftest.l") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking lex output file root" >&5
-$as_echo_n "checking lex output file root... " >&6; }
-if ${ac_cv_prog_lex_root+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-if test -f lex.yy.c; then
-  ac_cv_prog_lex_root=lex.yy
-elif test -f lexyy.c; then
-  ac_cv_prog_lex_root=lexyy
-else
-  as_fn_error $? "cannot find output from $LEX; giving up" "$LINENO" 5
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_root" >&5
-$as_echo "$ac_cv_prog_lex_root" >&6; }
-LEX_OUTPUT_ROOT=$ac_cv_prog_lex_root
-
-if test -z "${LEXLIB+set}"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking lex library" >&5
-$as_echo_n "checking lex library... " >&6; }
-if ${ac_cv_lib_lex+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-
-    ac_save_LIBS=$LIBS
-    ac_cv_lib_lex='none needed'
-    for ac_lib in '' -lfl -ll; do
-      LIBS="$ac_lib $ac_save_LIBS"
-      cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_lex=$ac_lib
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-      test "$ac_cv_lib_lex" != 'none needed' && break
-    done
-    LIBS=$ac_save_LIBS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_lex" >&5
-$as_echo "$ac_cv_lib_lex" >&6; }
-  test "$ac_cv_lib_lex" != 'none needed' && LEXLIB=$ac_cv_lib_lex
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether yytext is a pointer" >&5
-$as_echo_n "checking whether yytext is a pointer... " >&6; }
-if ${ac_cv_prog_lex_yytext_pointer+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  # POSIX says lex can declare yytext either as a pointer or an array; the
-# default is implementation-dependent.  Figure out which it is, since
-# not all implementations provide the %pointer and %array declarations.
-ac_cv_prog_lex_yytext_pointer=no
-ac_save_LIBS=$LIBS
-LIBS="$LEXLIB $ac_save_LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-  #define YYTEXT_POINTER 1
-`cat $LEX_OUTPUT_ROOT.c`
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_prog_lex_yytext_pointer=yes
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_save_LIBS
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_lex_yytext_pointer" >&5
-$as_echo "$ac_cv_prog_lex_yytext_pointer" >&6; }
-if test $ac_cv_prog_lex_yytext_pointer = yes; then
-
-$as_echo "#define YYTEXT_POINTER 1" >>confdefs.h
-
-fi
-rm -f conftest.l $LEX_OUTPUT_ROOT.c
-
-fi
-for ac_prog in 'bison -y' byacc
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_prog_YACC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  if test -n "$YACC"; then
-  ac_cv_prog_YACC="$YACC" # 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_YACC="$ac_prog"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-fi
-fi
-YACC=$ac_cv_prog_YACC
-if test -n "$YACC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $YACC" >&5
-$as_echo "$YACC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$YACC" && break
-done
-test -n "$YACC" || YACC="yacc"
-
-
-# Find a good install program.  We prefer a C program (faster),
-# so one script is as good as another.  But avoid the broken or
-# incompatible versions:
-# SysV /etc/install, /usr/sbin/install
-# SunOS /usr/etc/install
-# IRIX /sbin/install
-# AIX /bin/install
-# AmigaOS /C/install, which installs bootblocks on floppy discs
-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag
-# AFS /usr/afsws/bin/install, which mishandles nonexistent args
-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
-# OS/2's system install, which has a completely different semantic
-# ./install, which can be erroneously created by make from ./install.sh.
-# Reject install programs that cannot install multiple files.
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5
-$as_echo_n "checking for a BSD-compatible install... " >&6; }
-if test -z "$INSTALL"; then
-if ${ac_cv_path_install+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    # Account for people who put trailing slashes in PATH elements.
-case $as_dir/ in #((
-  ./ | .// | /[cC]/* | \
-  /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \
-  ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \
-  /usr/ucb/* ) ;;
-  *)
-    # OSF1 and SCO ODT 3.0 have their own names for install.
-    # Don't use installbsd from OSF since it installs stuff as root
-    # by default.
-    for ac_prog in ginstall scoinst install; do
-      for ac_exec_ext in '' $ac_executable_extensions; do
-	if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then
-	  if test $ac_prog = install &&
-	    grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # AIX install.  It has an incompatible calling convention.
-	    :
-	  elif test $ac_prog = install &&
-	    grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then
-	    # program-specific install script used by HP pwplus--don't use.
-	    :
-	  else
-	    rm -rf conftest.one conftest.two conftest.dir
-	    echo one > conftest.one
-	    echo two > conftest.two
-	    mkdir conftest.dir
-	    if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&
-	      test -s conftest.one && test -s conftest.two &&
-	      test -s conftest.dir/conftest.one &&
-	      test -s conftest.dir/conftest.two
-	    then
-	      ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"
-	      break 3
-	    fi
-	  fi
-	fi
-      done
-    done
-    ;;
-esac
-
-  done
-IFS=$as_save_IFS
-
-rm -rf conftest.one conftest.two conftest.dir
-
-fi
-  if test "${ac_cv_path_install+set}" = set; then
-    INSTALL=$ac_cv_path_install
-  else
-    # As a last resort, use the slow shell script.  Don't cache a
-    # value for INSTALL within a source directory, because that will
-    # break other packages using the cache if that directory is
-    # removed, or if the value is a relative name.
-    INSTALL=$ac_install_sh
-  fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5
-$as_echo "$INSTALL" >&6; }
-
-# Use test -z because SunOS4 sh mishandles braces in ${var-val}.
-# It thinks the first close brace ends the variable substitution.
-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'
-
-test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'
-
-test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5
-$as_echo_n "checking for a sed that does not truncate output... " >&6; }
-if ${ac_cv_path_SED+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-            ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/
-     for ac_i in 1 2 3 4 5 6 7; do
-       ac_script="$ac_script$as_nl$ac_script"
-     done
-     echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed
-     { ac_script=; unset ac_script;}
-     if test -z "$SED"; then
-  ac_path_SED_found=false
-  # Loop through the user's path and test for each of PROGNAME-LIST
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      ac_path_SED="$as_dir/$ac_prog$ac_exec_ext"
-      { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue
-# Check for GNU ac_path_SED and select it if it is found.
-  # Check for GNU $ac_path_SED
-case `"$ac_path_SED" --version 2>&1` in
-*GNU*)
-  ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;;
-*)
-  ac_count=0
-  $as_echo_n 0123456789 >"conftest.in"
-  while :
-  do
-    cat "conftest.in" "conftest.in" >"conftest.tmp"
-    mv "conftest.tmp" "conftest.in"
-    cp "conftest.in" "conftest.nl"
-    $as_echo '' >> "conftest.nl"
-    "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break
-    diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break
-    as_fn_arith $ac_count + 1 && ac_count=$as_val
-    if test $ac_count -gt ${ac_path_SED_max-0}; then
-      # Best one so far, save it but keep looking for a better one
-      ac_cv_path_SED="$ac_path_SED"
-      ac_path_SED_max=$ac_count
-    fi
-    # 10*(2^10) chars as input seems more than enough
-    test $ac_count -gt 10 && break
-  done
-  rm -f conftest.in conftest.tmp conftest.nl conftest.out;;
-esac
-
-      $ac_path_SED_found && break 3
-    done
-  done
-  done
-IFS=$as_save_IFS
-  if test -z "$ac_cv_path_SED"; then
-    as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5
-  fi
-else
-  ac_cv_path_SED=$SED
-fi
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5
-$as_echo "$ac_cv_path_SED" >&6; }
- SED="$ac_cv_path_SED"
-  rm -f conftest.sed
-
-
-MS_VERSION=`grep 'MS_VERSION ' mapserver.h | grep '#define' | cut -d\" -f2`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: MapServer Version from mapserver.h: '$MS_VERSION'" >&5
-$as_echo "MapServer Version from mapserver.h: '$MS_VERSION'" >&6; }
-MS_VERSION="$MS_VERSION"
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for exp in -lm" >&5
-$as_echo_n "checking for exp in -lm... " >&6; }
-if ${ac_cv_lib_m_exp+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lm  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char exp ();
-int
-main ()
-{
-return exp ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_m_exp=yes
-else
-  ac_cv_lib_m_exp=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_exp" >&5
-$as_echo "$ac_cv_lib_m_exp" >&6; }
-if test "x$ac_cv_lib_m_exp" = xyes; then :
-  XTRALIBS="$XTRALIBS -lm"
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5
-$as_echo_n "checking for dlopen in -ldl... " >&6; }
-if ${ac_cv_lib_dl_dlopen+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char dlopen ();
-int
-main ()
-{
-return dlopen ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_dlopen=yes
-else
-  ac_cv_lib_dl_dlopen=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5
-$as_echo "$ac_cv_lib_dl_dlopen" >&6; }
-if test "x$ac_cv_lib_dl_dlopen" = xyes; then :
-  XTRALIBS="$XTRALIBS -ldl"
-fi
-
-XTRALIBS=$XTRALIBS
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __gxx_personality_v0 in -lstdc++" >&5
-$as_echo_n "checking for __gxx_personality_v0 in -lstdc++... " >&6; }
-if ${ac_cv_lib_stdcpp___gxx_personality_v0+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lstdc++  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char __gxx_personality_v0 ();
-int
-main ()
-{
-return __gxx_personality_v0 ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_stdcpp___gxx_personality_v0=yes
-else
-  ac_cv_lib_stdcpp___gxx_personality_v0=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_stdcpp___gxx_personality_v0" >&5
-$as_echo "$ac_cv_lib_stdcpp___gxx_personality_v0" >&6; }
-if test "x$ac_cv_lib_stdcpp___gxx_personality_v0" = xyes; then :
-  XTRALIBS="$XTRALIBS -lstdc++"
-fi
-
-XTRALIBS=$XTRALIBS
-
-
-LIBS="$XTRALIBS $LIBS"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
-$as_echo_n "checking for ANSI C header files... " >&6; }
-if ${ac_cv_header_stdc+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-#include <stdarg.h>
-#include <string.h>
-#include <float.h>
-
-int
-main ()
-{
-
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_header_stdc=yes
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-
-if test $ac_cv_header_stdc = yes; then
-  # SunOS 4.x string.h does not declare mem*, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <string.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "memchr" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <stdlib.h>
-
-_ACEOF
-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |
-  $EGREP "free" >/dev/null 2>&1; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f conftest*
-
-fi
-
-if test $ac_cv_header_stdc = yes; then
-  # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.
-  if test "$cross_compiling" = yes; then :
-  :
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-#include <ctype.h>
-#include <stdlib.h>
-#if ((' ' & 0x0FF) == 0x020)
-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')
-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))
-#else
-# define ISLOWER(c) \
-		   (('a' <= (c) && (c) <= 'i') \
-		     || ('j' <= (c) && (c) <= 'r') \
-		     || ('s' <= (c) && (c) <= 'z'))
-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))
-#endif
-
-#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))
-int
-main ()
-{
-  int i;
-  for (i = 0; i < 256; i++)
-    if (XOR (islower (i), ISLOWER (i))
-	|| toupper (i) != TOUPPER (i))
-      return 2;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_run "$LINENO"; then :
-
-else
-  ac_cv_header_stdc=no
-fi
-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \
-  conftest.$ac_objext conftest.beam conftest.$ac_ext
-fi
-
-fi
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5
-$as_echo "$ac_cv_header_stdc" >&6; }
-if test $ac_cv_header_stdc = yes; then
-
-$as_echo "#define STDC_HEADERS 1" >>confdefs.h
-
-fi
-
-
-ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp"
-if test "x$ac_cv_func_strcasecmp" = xyes; then :
-
-else
-  STRINGS="-DNEED_STRCASECMP $STRINGS"
-fi
-
-ac_fn_c_check_func "$LINENO" "strncasecmp" "ac_cv_func_strncasecmp"
-if test "x$ac_cv_func_strncasecmp" = xyes; then :
-
-else
-  STRINGS="-DNEED_STRNCASECMP $STRINGS"
-fi
-
-ac_fn_c_check_func "$LINENO" "strdup" "ac_cv_func_strdup"
-if test "x$ac_cv_func_strdup" = xyes; then :
-
-else
-  STRINGS="-DNEED_STRDUP $STRINGS"
-fi
-
-ac_fn_c_check_func "$LINENO" "strrstr" "ac_cv_func_strrstr"
-if test "x$ac_cv_func_strrstr" = xyes; then :
-
-else
-  STRINGS="-DNEED_STRRSTR $STRINGS"
-fi
-
-ac_fn_c_check_func "$LINENO" "strcasestr" "ac_cv_func_strcasestr"
-if test "x$ac_cv_func_strcasestr" = xyes; then :
-
-else
-  STRINGS="-DNEED_STRCASESTR $STRINGS"
-fi
-
-ac_fn_c_check_func "$LINENO" "strlcat" "ac_cv_func_strlcat"
-if test "x$ac_cv_func_strlcat" = xyes; then :
-
-else
-  STRINGS="-DNEED_STRLCAT $STRINGS"
-fi
-
-ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy"
-if test "x$ac_cv_func_strlcpy" = xyes; then :
-
-else
-  STRINGS="-DNEED_STRLCPY $STRINGS"
-fi
-
-ac_fn_c_check_func "$LINENO" "vsnprintf" "ac_cv_func_vsnprintf"
-if test "x$ac_cv_func_vsnprintf" = xyes; then :
-  STRINGS="-DHAVE_VSNPRINTF $STRINGS"
-fi
-
-STRINGS=$STRINGS
-
-ALL_ENABLED="$STRINGS $ALL_ENABLED"
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if pkg-config path is provided" >&5
-$as_echo_n "checking if pkg-config path is provided... " >&6; }
-
-
-# Check whether --with-pkg-config was given.
-if test "${with_pkg_config+set}" = set; then :
-  withval=$with_pkg_config;
-fi
-
-
-if test -n "$with_pkg_config" -a "$with_pkg_config" != "no" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-  PKG_CONFIG=$with_pkg_config
-else
-  PKG_CONFIG="yes"
-fi
-
-if test "$PKG_CONFIG" = "yes" ; then
-
-   # Extract the first word of "pkg-config", so it can be a program name with args.
-set dummy pkg-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PKG_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PKG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_PKG_CONFIG" && ac_cv_path_PKG_CONFIG="no"
-  ;;
-esac
-fi
-PKG_CONFIG=$ac_cv_path_PKG_CONFIG
-if test -n "$PKG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5
-$as_echo "$PKG_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-   if test "$PKG_CONFIG" = "no" ; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: couldn't find pkg-config in default path. Please specify full path to pkg-config if needed" >&5
-$as_echo "couldn't find pkg-config in default path. Please specify full path to pkg-config if needed" >&6; }
-   fi
-
-elif test -f "$PKG_CONFIG" -a -x "$PKG_CONFIG" ; then
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: user supplied pkg-config ($PKG_CONFIG)" >&5
-$as_echo "user supplied pkg-config ($PKG_CONFIG)" >&6; }
-else
-     as_fn_error $? "'$PKG_CONFIG' is not an executable.  Make sure you use --with-pkg-config=/path/to/pkg-config" "$LINENO" 5
-fi
-
-
-
-unset ac_cv_lib_freetype_FT_Init_FreeType
-unset ac_cv_lib_ttf_TT_Init_FreeType
-
-
-# Check whether --with-freetype was given.
-if test "${with_freetype+set}" = set; then :
-  withval=$with_freetype; FT_DIR=$withval
-else
-  FT_DIR=''
-fi
-
-
-FT_LDFLAGS=''
-FT_CFLAGS=''
-FT_BIN=''
-
-if test "x$FT_DIR" = "xno" ; then
-    as_fn_error $? "Freetype support disabled but is now mandatory. Rerun without --without-freetype or --with-freetype=no" "$LINENO" 5
-fi
-
-
-if test -z "$FT_DIR" -o "$FT_DIR" = "yes" ; then
-        # Extract the first word of "freetype-config", so it can be a program name with args.
-set dummy freetype-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FT_BIN+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $FT_BIN in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_FT_BIN="$FT_BIN" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_FT_BIN="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_FT_BIN" && ac_cv_path_FT_BIN=""""
-  ;;
-esac
-fi
-FT_BIN=$ac_cv_path_FT_BIN
-if test -n "$FT_BIN"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FT_BIN" >&5
-$as_echo "$FT_BIN" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-    if test "x$FT_BIN" = "xno" ; then
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Freetype2.x in system locations" >&5
-$as_echo_n "checking for Freetype2.x in system locations... " >&6; }
-        test -f /usr/include/ft2build.h -a -d /usr/include/freetype2 && FT_CFLAGS=-I/usr/include/freetype2
-        test -f /usr/local/include/ft2build.h -a -d /usr/local/include/freetype2 && FT_CFLAGS=-I/usr/local/include -I/usr/local/include/freetype2
-        FT_LDFLAGS="-lfreetype -lz"
-        fi
-else
-
-  if test -z "$FT_DIR" || echo "$FT_DIR" | grep '^/' >/dev/null ; then
-    FT_DIR="$FT_DIR"
-  else
-    FT_DIR="`pwd`/$FT_DIR"
-  fi
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Freetype2.x in $FT_DIR" >&5
-$as_echo_n "checking for Freetype2.x in $FT_DIR... " >&6; }
-    test -x "$FT_DIR" -a "freetype-config" = "`basename $FT_DIR ''`" && FT_BIN="$FT_DIR"
-    test -x "$FT_DIR/freetype-config" && FT_BIN="$FT_DIR/freetype-config"
-    test -x "$FT_DIR/bin/freetype-config" && FT_BIN="$FT_DIR/bin/freetype-config"
-    if test "x$FT_BIN" = "x"; then
-        test -f $FT_DIR/ft2build.h -a -d $FT_DIR/freetype2 && FT_CFLAGS="-I$FT_DIR -I$FT_DIR/freetype2"
-        test -f $FT_DIR/include/ft2build.h -a -d $FT_DIR/include/freetype2 && FT_CFLAGS="-I$FT_DIR/include -I$FT_DIR/include/freetype2"
-        test -f $FT_DIR/lib/libfreetype.a -o -f $FT_DIR/lib/libfreetype.so -o -f $FT_DIR/lib/libfreetype.sl -o -f $FT_DIR/lib/libfreetype.dylib && FT_LDFLAGS="-L$FT_DIR/lib"
-        test -f $FT_DIR/lib64/libfreetype.a -o -f $FT_DIR/lib64/libfreetype.so -o -f $FT_DIR/lib64/libfreetype.sl && FT_LDFLAGS="-L$FT_DIR/lib64"
-        test -f $FT_DIR/libfreetype.a -o -f $FT_DIR/libfreetype.so -o -f $FT_DIR/libfreetype.sl -o -f $FT_DIR/libfreetype.dylib && FT_LDFLAGS="-L$FT_DIR"
-        fi
-fi
-
-if test "x$FT_BIN" != "x" ; then
-        FT_LDFLAGS=`$FT_BIN --libs`
-        FT_CFLAGS=`$FT_BIN --cflags`
-fi
-
-
-_cppflags="$CPPFLAGS"
-_ldflags="$LDFLAGS"
-_libs="$LIBS"
-CPPFLAGS="$FT_CFLAGS $CPPFLAGS"
-LDFLAGS="$FT_LDFLAGS $LDFLAGS"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for FT_Init_FreeType in -lfreetype" >&5
-$as_echo_n "checking for FT_Init_FreeType in -lfreetype... " >&6; }
-if ${ac_cv_lib_freetype_FT_Init_FreeType+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lfreetype  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char FT_Init_FreeType ();
-int
-main ()
-{
-return FT_Init_FreeType ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_freetype_FT_Init_FreeType=yes
-else
-  ac_cv_lib_freetype_FT_Init_FreeType=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_freetype_FT_Init_FreeType" >&5
-$as_echo "$ac_cv_lib_freetype_FT_Init_FreeType" >&6; }
-if test "x$ac_cv_lib_freetype_FT_Init_FreeType" = xyes; then :
-  :
-else
-  as_fn_error $? "unable to link - reconfigure with correct --with-freetype=dir " "$LINENO" 5
-fi
-
-
-for ac_header in ft2build.h
-do :
-  ac_fn_c_check_header_mongrel "$LINENO" "ft2build.h" "ac_cv_header_ft2build_h" "$ac_includes_default"
-if test "x$ac_cv_header_ft2build_h" = xyes; then :
-  cat >>confdefs.h <<_ACEOF
-#define HAVE_FT2BUILD_H 1
-_ACEOF
- :
-else
-  as_fn_error $? "ft2build.h header not found - reconfigure with correct --with-freetype=dir " "$LINENO" 5
-fi
-
-done
-
-
-CPPFLAGS=$_cppflags
-LDFLAGS=$_ldflags
-LIBS=$_libs
-FT_ENABLED="-DUSE_FREETYPE"
-FT_ENABLED=$FT_ENABLED
-
-FT_INC=$FT_CFLAGS
-
-FT_LIB=$FT_LDFLAGS
-
-ALL_ENABLED="$FT_ENABLED $ALL_ENABLED"
-ALL_INC="$FT_CFLAGS $ALL_INC"
-ALL_LIB="$FT_LDFLAGS $ALL_LIB"
-
-
-
-
-
-
-
-
-
-
-
-# Check whether --with-png was given.
-if test "${with_png+set}" = set; then :
-  withval=$with_png;
-else
-  with_png=yes
-fi
-
-   if test x"$with_png" == "xno"; then
-      as_fn_error $? "png support cannot be disabled" "$LINENO" 5
-   fi
-
-   if test -z "$with_png" -o "$with_png" == "yes" -o "$with_png" == "/usr"; then
-      ac_fn_c_check_header_mongrel "$LINENO" "png.h" "ac_cv_header_png_h" "$ac_includes_default"
-if test "x$ac_cv_header_png_h" = xyes; then :
-  :
-else
-  as_fn_error $? "png.h header not found. install png development package, or reconfigure with --with-png=/path/to/png/prefix" "$LINENO" 5
-fi
-
-
-      ac_fn_c_check_header_mongrel "$LINENO" "setjmp.h" "ac_cv_header_setjmp_h" "$ac_includes_default"
-if test "x$ac_cv_header_setjmp_h" = xyes; then :
-  :
-else
-  as_fn_error $? "setjmp.h header not found. install png development package, or reconfigure with --with-png=/path/to/png/prefix" "$LINENO" 5
-fi
-
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_init_io in -lpng" >&5
-$as_echo_n "checking for png_init_io in -lpng... " >&6; }
-if ${ac_cv_lib_png_png_init_io+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpng  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char png_init_io ();
-int
-main ()
-{
-return png_init_io ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_png_png_init_io=yes
-else
-  ac_cv_lib_png_png_init_io=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_png_init_io" >&5
-$as_echo "$ac_cv_lib_png_png_init_io" >&6; }
-if test "x$ac_cv_lib_png_png_init_io" = xyes; then :
-  :
-else
-  as_fn_error $? "libpng library not found. install png development package, or reconfigure with --with-png=/path/to/png/prefix" "$LINENO" 5
-fi
-
-
-   else
-      old_LDFLAGS="$LDFLAGS"
-      old_CPPFLAGS="$CPPFLAGS"
-
-      CPPFLAGS="-I$with_png/include"
-      LDFLAGS="-L$with_png/lib"
-
-      ac_fn_c_check_header_mongrel "$LINENO" "png.h" "ac_cv_header_png_h" "$ac_includes_default"
-if test "x$ac_cv_header_png_h" = xyes; then :
-  :
-else
-  as_fn_error $? "png.h header not found in $with_png. install png development package, or reconfigure with --with-png=/path/to/png/prefix" "$LINENO" 5
-fi
-
-
-      ac_fn_c_check_header_mongrel "$LINENO" "setjmp.h" "ac_cv_header_setjmp_h" "$ac_includes_default"
-if test "x$ac_cv_header_setjmp_h" = xyes; then :
-  :
-else
-  as_fn_error $? "setjmp.h header not found. install png development package, or reconfigure with --with-png=/path/to/png/prefix" "$LINENO" 5
-fi
-
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for png_init_io in -lpng" >&5
-$as_echo_n "checking for png_init_io in -lpng... " >&6; }
-if ${ac_cv_lib_png_png_init_io+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpng  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char png_init_io ();
-int
-main ()
-{
-return png_init_io ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_png_png_init_io=yes
-else
-  ac_cv_lib_png_png_init_io=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_png_png_init_io" >&5
-$as_echo "$ac_cv_lib_png_png_init_io" >&6; }
-if test "x$ac_cv_lib_png_png_init_io" = xyes; then :
-  :
-else
-  as_fn_error $? "libpng library not found in $with_png. install png development package, or reconfigure with --with-png=/path/to/png/prefix" "$LINENO" 5
-fi
-
-      PNG_INC="$CPPFLAGS"
-      PNG_LIB="$LDFLAGS"
-      CPPFLAGS="$old_CPPFLAGS"
-      LDFLAGS="$old_LDFLAGS"
-   fi
-   PNG_ENABLED="-DUSE_PNG"
-
-   ALL_ENABLED="$PNG_ENABLED $ALL_ENABLED"
-   ALL_INC="$ALL_INC $PNG_INC"
-   ALL_LIB="$ALL_LIB $PNG_LIB -lpng"
-   PNG_ENABLED="$PNG_ENABLED"
-
-   PNG_INC="$PNG_INC"
-
-   PNG_LIB="$PNG_LIB -lpng"
-
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should include GIF support" >&5
-$as_echo_n "checking whether we should include GIF support... " >&6; }
-
-
-
-
-# Check whether --with-gif was given.
-if test "${with_gif+set}" = set; then :
-  withval=$with_gif;
-else
-  with_gif=yes
-fi
-
-   if test x"$with_gif" == "xno"; then
-      GIF_ENABLED=""
-
-      GIF_INC=""
-
-      GIF_LIB=""
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-   else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-      if test -z "$with_gif" -o "$with_gif" == "yes" -o "$with_gif" == "/usr"; then
-         ac_fn_c_check_header_mongrel "$LINENO" "gif_lib.h" "ac_cv_header_gif_lib_h" "$ac_includes_default"
-if test "x$ac_cv_header_gif_lib_h" = xyes; then :
-  :
-else
-  as_fn_error $? "gif_lib.h header not found. install gif development package, or reconfigure with --with-gif=/path/to/gif/prefix" "$LINENO" 5
-fi
-
-
-         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DGifOpenFileHandle in -lgif" >&5
-$as_echo_n "checking for DGifOpenFileHandle in -lgif... " >&6; }
-if ${ac_cv_lib_gif_DGifOpenFileHandle+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgif  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char DGifOpenFileHandle ();
-int
-main ()
-{
-return DGifOpenFileHandle ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_gif_DGifOpenFileHandle=yes
-else
-  ac_cv_lib_gif_DGifOpenFileHandle=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_DGifOpenFileHandle" >&5
-$as_echo "$ac_cv_lib_gif_DGifOpenFileHandle" >&6; }
-if test "x$ac_cv_lib_gif_DGifOpenFileHandle" = xyes; then :
-  :
-else
-  as_fn_error $? "libgif library not found. install gif development package, or reconfigure with --with-gif=/path/to/gif/prefix" "$LINENO" 5
-fi
-
-
-      else
-         old_LDFLAGS="$LDFLAGS"
-         old_CPPFLAGS="$CPPFLAGS"
-
-         CPPFLAGS="-I$with_gif/include"
-         LDFLAGS="-L$with_gif/lib"
-
-         ac_fn_c_check_header_mongrel "$LINENO" "gif_lib.h" "ac_cv_header_gif_lib_h" "$ac_includes_default"
-if test "x$ac_cv_header_gif_lib_h" = xyes; then :
-  :
-else
-  as_fn_error $? "gif_lib.h header not found in $with_gif. install gif development package, or reconfigure with --with-gif=/path/to/gif/prefix" "$LINENO" 5
-fi
-
-
-         { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DGifOpenFileHandle in -lgif" >&5
-$as_echo_n "checking for DGifOpenFileHandle in -lgif... " >&6; }
-if ${ac_cv_lib_gif_DGifOpenFileHandle+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lgif  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char DGifOpenFileHandle ();
-int
-main ()
-{
-return DGifOpenFileHandle ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_gif_DGifOpenFileHandle=yes
-else
-  ac_cv_lib_gif_DGifOpenFileHandle=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gif_DGifOpenFileHandle" >&5
-$as_echo "$ac_cv_lib_gif_DGifOpenFileHandle" >&6; }
-if test "x$ac_cv_lib_gif_DGifOpenFileHandle" = xyes; then :
-  :
-else
-  as_fn_error $? "libgif library not found in $with_gif. install gif development package, or reconfigure with --with-gif=/path/to/gif/prefix" "$LINENO" 5
-fi
-
-         GIF_INC="$CPPFLAGS"
-         GIF_LIB="$LDFLAGS"
-         CPPFLAGS="$old_CPPFLAGS"
-         LDFLAGS="$old_LDFLAGS"
-      fi
-      GIF_ENABLED="-DUSE_GIF"
-
-      ALL_ENABLED="$GIF_ENABLED $ALL_ENABLED"
-      ALL_INC="$ALL_INC $GIF_INC"
-      ALL_LIB="$ALL_LIB $GIF_LIB -lgif"
-      GIF_ENABLED="$GIF_ENABLED"
-
-      GIF_INC="$GIF_INC"
-
-      GIF_LIB="$GIF_LIB -lgif"
-
-   fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg library location (mandatory)..." >&5
-$as_echo "$as_me: checking for jpeg library location (mandatory)..." >&6;}
-
-
-# Check whether --with-jpeg was given.
-if test "${with_jpeg+set}" = set; then :
-  withval=$with_jpeg;
-else
-  with_jpeg=yes
-fi
-
-   if test x"$with_jpeg" == "xno"; then
-      as_fn_error $? "jpeg support cannot be disabled" "$LINENO" 5
-   fi
-
-   if test -z "$with_jpeg" -o "$with_jpeg" == "yes" -o "$with_jpeg" == "/usr"; then
-      ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default"
-if test "x$ac_cv_header_jpeglib_h" = xyes; then :
-  :
-else
-  as_fn_error $? "jpeglib.h header not found. install jpeg development package, or reconfigure with --with-jpeg=/path/to/jpeg/prefix" "$LINENO" 5
-fi
-
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_read_header in -ljpeg" >&5
-$as_echo_n "checking for jpeg_read_header in -ljpeg... " >&6; }
-if ${ac_cv_lib_jpeg_jpeg_read_header+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ljpeg  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char jpeg_read_header ();
-int
-main ()
-{
-return jpeg_read_header ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_jpeg_jpeg_read_header=yes
-else
-  ac_cv_lib_jpeg_jpeg_read_header=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_read_header" >&5
-$as_echo "$ac_cv_lib_jpeg_jpeg_read_header" >&6; }
-if test "x$ac_cv_lib_jpeg_jpeg_read_header" = xyes; then :
-  :
-else
-  as_fn_error $? "libjpeg library not found. install jpeg development package, or reconfigure with --with-jpeg=/path/to/jpeg/prefix" "$LINENO" 5
-fi
-
-
-   else
-      old_LDFLAGS="$LDFLAGS"
-      old_CPPFLAGS="$CPPFLAGS"
-
-      CPPFLAGS="-I$with_jpeg/include"
-      LDFLAGS="-L$with_jpeg/lib"
-
-      ac_fn_c_check_header_mongrel "$LINENO" "jpeglib.h" "ac_cv_header_jpeglib_h" "$ac_includes_default"
-if test "x$ac_cv_header_jpeglib_h" = xyes; then :
-  :
-else
-  as_fn_error $? "jpeglib.h header not found in $with_jpeg. install jpeg development package, or reconfigure with --with-jpeg=/path/to/jpeg/prefix" "$LINENO" 5
-fi
-
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jpeg_read_header in -ljpeg" >&5
-$as_echo_n "checking for jpeg_read_header in -ljpeg... " >&6; }
-if ${ac_cv_lib_jpeg_jpeg_read_header+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ljpeg  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char jpeg_read_header ();
-int
-main ()
-{
-return jpeg_read_header ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_jpeg_jpeg_read_header=yes
-else
-  ac_cv_lib_jpeg_jpeg_read_header=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jpeg_jpeg_read_header" >&5
-$as_echo "$ac_cv_lib_jpeg_jpeg_read_header" >&6; }
-if test "x$ac_cv_lib_jpeg_jpeg_read_header" = xyes; then :
-  :
-else
-  as_fn_error $? "libjpeg library not found in $with_jpeg. install jpeg development package, or reconfigure with --with-jpeg=/path/to/jpeg/prefix" "$LINENO" 5
-fi
-
-      JPEG_INC="$CPPFLAGS"
-      JPEG_LIB="$LDFLAGS"
-      CPPFLAGS="$old_CPPFLAGS"
-      LDFLAGS="$old_LDFLAGS"
-   fi
-   JPEG_ENABLED="-DUSE_JPEG"
-
-   ALL_ENABLED="$JPEG_ENABLED $ALL_ENABLED"
-   ALL_INC="$ALL_INC $JPEG_INC"
-   ALL_LIB="$ALL_LIB $JPEG_LIB -ljpeg"
-   JPEG_ENABLED="$JPEG_ENABLED"
-
-   JPEG_INC="$JPEG_INC"
-
-   JPEG_LIB="$JPEG_LIB -ljpeg"
-
-
-
-
-
-
-unset ac_cv_lib_iconv_libiconv_open
-unset ac_cv_lib_iconv_iconv_open
-unset ac_cv_lib_c_iconv_open
-
-
-# Check whether --with-libiconv was given.
-if test "${with_libiconv+set}" = set; then :
-  withval=$with_libiconv; ICONV_DIR=$withval
-else
-  ICONV_DIR=''
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where libiconv is installed..." >&5
-$as_echo "$as_me: checking where libiconv is installed..." >&6;}
-
-ICONV_LIB=''
-
-if test -n "$ICONV_DIR" -a "$ICONV_DIR" != "yes" ; then
-
-
-  if test -z "$ICONV_DIR" || echo "$ICONV_DIR" | grep '^/' >/dev/null ; then
-    ICONV_DIR="$ICONV_DIR"
-  else
-    ICONV_DIR="`pwd`/$ICONV_DIR"
-  fi
-
-
-  test -f $ICONV_DIR/include/iconv.h && ICONV_LIBDIR="$ICONV_DIR/lib" && ICONV_INCDIR="$ICONV_DIR/include"
-  test -f $ICONV_DIR/lib/libiconv.a -o -f $ICONV_DIR/lib/libiconv.so -o -f $ICONV_DIR/lib/libiconv.sl -o -f $ICONV_DIR/lib/libiconv.dylib && ICONV_LIBDIR="$ICONV_DIR/lib" && ICONV_INCDIR="$ICONV_DIR/include"
-  test -f $ICONV_DIR/lib64/libiconv.a -o -f $ICONV_DIR/lib64/libiconv.so -o -f $ICONV_DIR/lib64/libiconv.sl && ICONV_LIBDIR="$ICONV_DIR/lib64" && ICONV_INCDIR="$ICONV_DIR/include"
-
-            { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv_open in -lc" >&5
-$as_echo_n "checking for iconv_open in -lc... " >&6; }
-if ${ac_cv_lib_c_iconv_open+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc "-L$ICONV_LIBDIR" $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char iconv_open ();
-int
-main ()
-{
-return iconv_open ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_c_iconv_open=yes
-else
-  ac_cv_lib_c_iconv_open=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_iconv_open" >&5
-$as_echo "$ac_cv_lib_c_iconv_open" >&6; }
-if test "x$ac_cv_lib_c_iconv_open" = xyes; then :
-  ICONV_LIB="-L$ICONV_LIBDIR -lc"
-fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libiconv_open in -liconv" >&5
-$as_echo_n "checking for libiconv_open in -liconv... " >&6; }
-if ${ac_cv_lib_iconv_libiconv_open+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-liconv "-L$ICONV_LIBDIR" $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char libiconv_open ();
-int
-main ()
-{
-return libiconv_open ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_iconv_libiconv_open=yes
-else
-  ac_cv_lib_iconv_libiconv_open=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iconv_libiconv_open" >&5
-$as_echo "$ac_cv_lib_iconv_libiconv_open" >&6; }
-if test "x$ac_cv_lib_iconv_libiconv_open" = xyes; then :
-  ICONV_LIB="-L$ICONV_LIBDIR -liconv"
-fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv_open in -liconv" >&5
-$as_echo_n "checking for iconv_open in -liconv... " >&6; }
-if ${ac_cv_lib_iconv_iconv_open+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-liconv "-L$ICONV_LIBDIR" $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char iconv_open ();
-int
-main ()
-{
-return iconv_open ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_iconv_iconv_open=yes
-else
-  ac_cv_lib_iconv_iconv_open=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iconv_iconv_open" >&5
-$as_echo "$ac_cv_lib_iconv_iconv_open" >&6; }
-if test "x$ac_cv_lib_iconv_iconv_open" = xyes; then :
-  ICONV_LIB="-L$ICONV_LIBDIR -liconv"
-fi
-
-
-fi
-
-if test -n "$ICONV_LIB" ; then
-  if test -n "$ICONV_INCDIR"; then
-     ICONV_INC="-I$ICONV_INCDIR"
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         using libiconv from $ICONV_LIB" >&5
-$as_echo "        using libiconv from $ICONV_LIB" >&6; }
-
-  if test ""$ICONV_DIR"" != "/usr/lib"; then
-
-  if test -z ""$ICONV_DIR"" || echo ""$ICONV_DIR"" | grep '^/' >/dev/null ; then
-    ai_p=""$ICONV_DIR""
-  else
-    ai_p="`pwd`/"$ICONV_DIR""
-  fi
-
-
-  unique=`echo $ac_n "$ai_p$ac_c" | tr -c -d a-zA-Z0-9`
-  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "LIBPATH$unique=set"
-
-      EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
-        RPATHS="$RPATHS ${ld_runpath_switch}$ai_p"
-
-  fi
-
-  fi
-
-
-else
-
-
-  unset ac_cv_lib_iconv_libiconv_open
-  unset ac_cv_lib_c_iconv_open
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv_open in -lc" >&5
-$as_echo_n "checking for iconv_open in -lc... " >&6; }
-if ${ac_cv_lib_c_iconv_open+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lc  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char iconv_open ();
-int
-main ()
-{
-return iconv_open ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_c_iconv_open=yes
-else
-  ac_cv_lib_c_iconv_open=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_c_iconv_open" >&5
-$as_echo "$ac_cv_lib_c_iconv_open" >&6; }
-if test "x$ac_cv_lib_c_iconv_open" = xyes; then :
-  ICONV_LIB="-lc"
-fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libiconv_open in -liconv" >&5
-$as_echo_n "checking for libiconv_open in -liconv... " >&6; }
-if ${ac_cv_lib_iconv_libiconv_open+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-liconv  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char libiconv_open ();
-int
-main ()
-{
-return libiconv_open ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_iconv_libiconv_open=yes
-else
-  ac_cv_lib_iconv_libiconv_open=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iconv_libiconv_open" >&5
-$as_echo "$ac_cv_lib_iconv_libiconv_open" >&6; }
-if test "x$ac_cv_lib_iconv_libiconv_open" = xyes; then :
-  ICONV_LIB="-liconv"
-fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv_open in -liconv" >&5
-$as_echo_n "checking for iconv_open in -liconv... " >&6; }
-if ${ac_cv_lib_iconv_iconv_open+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-liconv  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char iconv_open ();
-int
-main ()
-{
-return iconv_open ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_iconv_iconv_open=yes
-else
-  ac_cv_lib_iconv_iconv_open=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_iconv_iconv_open" >&5
-$as_echo "$ac_cv_lib_iconv_iconv_open" >&6; }
-if test "x$ac_cv_lib_iconv_iconv_open" = xyes; then :
-  ICONV_LIB="-liconv"
-fi
-
-
-  if test -n "$ICONV_LIB" ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:         using libiconv from system libs." >&5
-$as_echo "        using libiconv from system libs." >&6; }
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:         libiconv library cannot be found, possibly needed for GD" >&5
-$as_echo "        libiconv library cannot be found, possibly needed for GD" >&6; }
-  fi
-
-fi
-
-if test -n "$ICONV_LIB" ; then
-  ICONV_ENABLED="-DUSE_ICONV"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         libiconv found. Enabling internationalization ($ICONV_ENABLED)" >&5
-$as_echo "        libiconv found. Enabling internationalization ($ICONV_ENABLED)" >&6; }
-fi
-
-
-ICONV_ENABLED=$ICONV_ENABLED
-
-ICONV_INC=$ICONV_INC
-
-ICONV_LIB=$ICONV_LIB
-
-
-ALL_ENABLED="$ICONV_ENABLED $ALL_ENABLED"
-ALL_INC="$ICONV_INC $ALL_INC"
-ALL_LIB="$ICONV_LIB $ALL_LIB"
-
-
-
-
-
-
-
-
-# Check whether --with-gd was given.
-if test "${with_gd+set}" = set; then :
-  withval=$with_gd;
-else
-  with_gd=no
-fi
-
-
-   if test x"$with_gd" == "xno"; then
-      GD_ENABLED=""
-
-      GD_INC=""
-
-      GD_LIB=""
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: GD support not requested, disabling" >&5
-$as_echo "GD support not requested, disabling" >&6; }
-   else
-      if test "$with_gd" == "yes"; then
-         # Extract the first word of "gdlib-config", so it can be a program name with args.
-set dummy gdlib-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GDCONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $GDCONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GDCONFIG="$GDCONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_GDCONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_GDCONFIG" && ac_cv_path_GDCONFIG="no"
-  ;;
-esac
-fi
-GDCONFIG=$ac_cv_path_GDCONFIG
-if test -n "$GDCONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDCONFIG" >&5
-$as_echo "$GDCONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-         if test "$GDCONFIG" == "no"; then
-            as_fn_error $? "gdlib-config not found in path, reconfigure with --with-gd=/path/to/gdlib-config" "$LINENO" 5
-         fi
-      else
-         if test ! -f "$with_gd"; then
-            if test ! -d "$with_gd"; then
-               as_fn_error $? "cannot find $with_gd" "$LINENO" 5
-            fi
-            if test ! -f "$with_gd/bin/gdlib-config"; then
-               as_fn_error $? "gdlib-config not found in $with_gd (tried $with_gd/bin/gdlib-config)" "$LINENO" 5
-            else
-               GDCONFIG="$with_gd/bin/gdlib-config"
-            fi
-         else
-            GDCONFIG="$with_gd"
-         fi
-         # Extract the first word of "$GDCONFIG", so it can be a program name with args.
-set dummy $GDCONFIG; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GDCONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $GDCONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GDCONFIG="$GDCONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_GDCONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_GDCONFIG" && ac_cv_path_GDCONFIG="no"
-  ;;
-esac
-fi
-GDCONFIG=$ac_cv_path_GDCONFIG
-if test -n "$GDCONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDCONFIG" >&5
-$as_echo "$GDCONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-         if test "$GDCONFIG" == "no"; then
-            as_fn_error $? "gdlib-config not usable, reconfigure with --with-gd=(yes|no|/path/to/gdlib-config)" "$LINENO" 5
-         fi
-      fi
-
-      GDMAJOR=`$GDCONFIG --majorversion`
-      GDMINOR=`$GDCONFIG --minorversion`
-      GDREV=`$GDCONFIG --revision`
-      GDVERSION=`$GDCONFIG --version`
-      GDFEATURES=`$GDCONFIG --features`
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: using libgd $GDVERSION from $GDCONFIG" >&5
-$as_echo "using libgd $GDVERSION from $GDCONFIG" >&6; }
-
-      if test -z "`echo $GDFEATURES | grep 'GD_PNG'`"  ; then
-         as_fn_error $? "supplied GD is missing PNG support" "$LINENO" 5
-      else
-         GD_ENABLED="$GD_ENABLED -DUSE_GD_PNG"
-      fi
-      if test -z "`echo $GDFEATURES | grep 'GD_JPEG'`"  ; then
-         as_fn_error $? "supplied GD is missing JPEG support" "$LINENO" 5
-      else
-         GD_ENABLED="$GD_ENABLED -DUSE_GD_JPEG"
-      fi
-      if test -z "`echo $GDFEATURES | grep 'GD_GIF'`"  ; then
-         as_fn_error $? "supplied GD is missing GIF support" "$LINENO" 5
-      else
-         GD_ENABLED="$GD_ENABLED -DUSE_GD_GIF"
-      fi
-      if test -z "`echo $GDFEATURES | grep 'GD_FREETYPE'`"  ; then
-         as_fn_error $? "supplied GD is missing FT support" "$LINENO" 5
-      fi
-
-
-
-      if test $GDMAJOR -lt 2 -o $GDMINOR -lt 0 -o $GDREV -lt 28 ; then
-         as_fn_error $? "GD version $GDVERSION too old. need at least 2.0.28" "$LINENO" 5
-      fi
-
-
-
-            GD_INC=`$GDCONFIG --includedir`
-      if test "x$GD_INC" != "x/usr/include" -a "x$GD_INC" != "x/usr/include/" -a -n "$GD_INC"; then
-         GD_INC="-I$GD_INC"
-      else
-         GD_INC=""
-      fi
-
-            GD_LIB=`$GDCONFIG --libdir`
-      if test "x$GD_LIB" != "x/usr/lib" -a "x$GD_LIB" != "x/usr/lib/" -a -n "$GD_LIB"; then
-         GD_LIB="-L$GD_LIB"
-      else
-         GD_LIB=""
-      fi
-
-      GD_ENABLED="-DUSE_GD $GD_ENABLED"
-      ALL_ENABLED="$GD_ENABLED $ALL_ENABLED"
-      GD_ENABLED="$GD_ENABLED"
-
-      ALL_INC="$ALL_INC $GD_INC"
-      ALL_LIB="$ALL_LIB $GD_LIB -lgd"
-      GD_INC="$GD_INC"
-
-      GD_LIB="$GD_LIB -lgd"
-
-   fi
-
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if FTGL support requested" >&5
-$as_echo_n "checking if FTGL support requested... " >&6; }
-
-# Check whether --with-ftgl was given.
-if test "${with_ftgl+set}" = set; then :
-  withval=$with_ftgl;
-fi
-
-
-if test "$with_ftgl" = "yes" ; then
-  with_ftgl="/usr"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for ftgl libs in /usr" >&5
-$as_echo "looking for ftgl libs in /usr" >&6; }
-fi
-if test -n "$with_ftgl" -a "$with_ftgl" != "no" ; then
-
-
-  if test -z "$with_ftgl" || echo "$with_ftgl" | grep '^/' >/dev/null ; then
-    FTGL_DIR="$with_ftgl"
-  else
-    FTGL_DIR="`pwd`/$with_ftgl"
-  fi
-
-
-  FTGL_FLAG=""
-  if  test -f $FTGL_DIR/include/FTGL/ftgl.h -a -f $FTGL_DIR/include/FTGL/FTGLTextureFont.h ; then
-      FTGL_INCLUDE="-I$FTGL_DIR/include/FTGL/"
-  elif  test -f $FTGL_DIR/include/FTGL/FTGL.h -a -f $FTGL_DIR/include/FTGL/FTGLTextureFont.h ; then
-      FTGL_INCLUDE="-I$FTGL_DIR/include/FTGL/"
-      FTGL_FLAG="-DUSE_FTGL_2_1_2"
-  fi
-
-  if test -z "$FTGL_INCLUDE" ; then
-      as_fn_error $? "\"could not find ftgl.h/FTGL.h in $FTGL_DIR/include/FTGL.\"" "$LINENO" 5
-  fi
-
-  test -f $FTGL_DIR/lib/libftgl.so && FTGL_LIBDIR="$FTGL_DIR/lib"
-  test -f $FTGL_DIR/lib/libftgl.dylib && FTGL_LIBDIR="$FTGL_DIR/lib"
-  test -f $FTGL_DIR/lib64/libftgl.so && FTGL_LIBDIR="$FTGL_DIR/lib64"
-
-  if test -z "$FTGL_LIBDIR" ; then
-      as_fn_error $? "\"could not find libftgl in $FTGL_DIR.\"" "$LINENO" 5
-  fi
-
-
-
-    FTGL_ENABLED="-DUSE_FTGL $FTGL_FLAG"
-  FTGL_INC="$FTGL_INCLUDE"
-  FTGL_LIB="-L$FTGL_LIBDIR -lftgl"
-
-  if test ""$FTGL_LIBDIR"" != "/usr/lib"; then
-
-  if test -z ""$FTGL_LIBDIR"" || echo ""$FTGL_LIBDIR"" | grep '^/' >/dev/null ; then
-    ai_p=""$FTGL_LIBDIR""
-  else
-    ai_p="`pwd`/"$FTGL_LIBDIR""
-  fi
-
-
-  unique=`echo $ac_n "$ai_p$ac_c" | tr -c -d a-zA-Z0-9`
-  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "LIBPATH$unique=set"
-
-      EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
-        RPATHS="$RPATHS ${ld_runpath_switch}$ai_p"
-
-  fi
-
-  fi
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using ftgl from $FTGL_DIR" >&5
-$as_echo "using ftgl from $FTGL_DIR" >&6; }
-
-else
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-fi
-
-FTGL_ENABLED=$FTGL_ENABLED
-
-FTGL_INC=$FTGL_INC
-
-FTGL_LIB=$FTGL_LIB
-
-
-
-ALL_ENABLED="$FTGL_ENABLED $ALL_ENABLED"
-ALL_INC="$FTGL_INC $ALL_INC"
-ALL_LIB="$FTGL_LIB $ALL_LIB"
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if OGL support requested" >&5
-$as_echo_n "checking if OGL support requested... " >&6; }
-
-# Check whether --with-ogl was given.
-if test "${with_ogl+set}" = set; then :
-  withval=$with_ogl;
-fi
-
-
-if test "$with_opengl" = "yes" ; then
-
-  with_opengl="/usr"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: looking for opengl libs in /usr" >&5
-$as_echo "looking for opengl libs in /usr" >&6; }
-fi
-if test -n "$with_opengl" -a "$with_opengl" != "no" ; then
-
-  if test -z "$FTGL_LIB" ; then
-     as_fn_error $? "FTGL required for opengl support - please configure --with-ftgl." "$LINENO" 5
-  fi
-
-
-  if test -z "$with_opengl" || echo "$with_opengl" | grep '^/' >/dev/null ; then
-    OGL_DIR="$with_opengl"
-  else
-    OGL_DIR="`pwd`/$with_opengl"
-  fi
-
-
-  test -f $OGL_DIR/include/GL/gl.h -a -f $OGL_DIR/include/GL/glx.h -a -f $OGL_DIR/include/GL/glu.h && OGL_INCLUDE="-I$OGL_DIR/include"
-
-  if test -z "$OGL_INCLUDE" ; then
-      as_fn_error $? "\"could not find gl.h in $OGL_DIR/include/.\"" "$LINENO" 5
-  fi
-
-  test -f $OGL_DIR/lib/libGL.so -a -f $OGL_DIR/lib/libGLU.so && OGL_LIBDIR="$OGL_DIR/lib"
-  test -f $OGL_DIR/lib/libGL.dylib -a -f $OGL_DIR/lib/libGLU.dylib && OGL_LIBDIR="$OGL_DIR/lib"
-  test -f $OGL_DIR/lib64/libGL.so -a -f $OGL_DIR/lib64/libGLU.so && OGL_LIBDIR="$OGL_DIR/lib64"
-
-  if test -z "$OGL_LIBDIR" ; then
-      as_fn_error $? "\"could not find libGL or libGLU in $OGL_DIR/lib/ or $OGL_DIR/lib64/.\"" "$LINENO" 5
-  fi
-
-
-
-    OGL_ENABLED="-DUSE_OGL"
-  OGL_INC="$OGL_INCLUDE"
-  OGL_LIB="-L$OGL_LIBDIR -lGL -lGLU"
-
-  if test ""$OGL_LIBDIR"" != "/usr/lib"; then
-
-  if test -z ""$OGL_LIBDIR"" || echo ""$OGL_LIBDIR"" | grep '^/' >/dev/null ; then
-    ai_p=""$OGL_LIBDIR""
-  else
-    ai_p="`pwd`/"$OGL_LIBDIR""
-  fi
-
-
-  unique=`echo $ac_n "$ai_p$ac_c" | tr -c -d a-zA-Z0-9`
-  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "LIBPATH$unique=set"
-
-      EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
-        RPATHS="$RPATHS ${ld_runpath_switch}$ai_p"
-
-  fi
-
-  fi
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: using opengl from $OGL_DIR" >&5
-$as_echo "using opengl from $OGL_DIR" >&6; }
-
-else
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-fi
-
-OGL_ENABLED=$OGL_ENABLED
-
-OGL_INC=$OGL_INC
-
-OGL_LIB=$OGL_LIB
-
-
-
-ALL_ENABLED="$OGL_ENABLED $ALL_ENABLED"
-ALL_INC="$OGL_INC $ALL_INC"
-ALL_LIB="$OGL_LIB $ALL_LIB"
-
-
-
-
-
-# Check whether --with-expat was given.
-if test "${with_expat+set}" = set; then :
-  withval=$with_expat; EXPAT_DIR=$withval
-else
-  EXPAT_DIR=''
-fi
-
-
-
-  if test -z "$EXPAT_DIR" || echo "$EXPAT_DIR" | grep '^/' >/dev/null ; then
-    EXPAT_DIR="$EXPAT_DIR"
-  else
-    EXPAT_DIR="`pwd`/$EXPAT_DIR"
-  fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking where EXPAT is installed..." >&5
-$as_echo "$as_me: checking where EXPAT is installed..." >&6;}
-EXPAT_LIB=''
-EXPAT_INC=''
-EXPAT_FOUND='no'
-
-
-if test -n "$EXPAT_DIR" ; then
-    test -f $EXPAT_DIR/lib/libexpat.a -o -f $EXPAT_DIR/lib/libexpat.so -o -f $EXPAT_DIR/lib/libexpat.sl -o -f $EXPAT_DIR/lib/libexpat.dylib && EXPAT_LIBDIR="$EXPAT_DIR/lib"
-    test -f $EXPAT_DIR/lib64/libexpat.a -o -f $EXPAT_DIR/lib64/libexpat.so -o -f $EXPAT_DIR/lib64/libexpat.sl -o -f $EXPAT_DIR/libexpat.dylib && EXPAT_LIBDIR="$EXPAT_DIR/lib64"
-    test -f $EXPAT_DIR/libexpat.a -o -f $EXPAT_DIR/libexpat.so -o -f $EXPAT_DIR/libexpat.sl -o -f $EXPAT_DIR/libexpat.dylib && EXPAT_LIBDIR="$EXPAT_DIR"
-    test -f $EXPAT_DIR/include/expat.h && EXPAT_INCDIR="$EXPAT_DIR/include"
-    test -f $EXPAT_DIR/lib/expat.h && EXPAT_INCDIR="$EXPAT_DIR/lib"
-    test -f $EXPAT_DIR/expat.h && EXPAT_INCDIR="$EXPAT_DIR"
-
-    if test -n "$EXPAT_LIBDIR" ; then
-      EXPAT_LIB="-L$EXPAT_LIBDIR -lexpat"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result:         using libexpat from $EXPAT_LIB" >&5
-$as_echo "        using libexpat from $EXPAT_LIB" >&6; }
-
-  if test ""$EXPAT_LIBDIR"" != "/usr/lib"; then
-
-  if test -z ""$EXPAT_LIBDIR"" || echo ""$EXPAT_LIBDIR"" | grep '^/' >/dev/null ; then
-    ai_p=""$EXPAT_LIBDIR""
-  else
-    ai_p="`pwd`/"$EXPAT_LIBDIR""
-  fi
-
-
-  unique=`echo $ac_n "$ai_p$ac_c" | tr -c -d a-zA-Z0-9`
-  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "LIBPATH$unique=set"
-
-      EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
-        RPATHS="$RPATHS ${ld_runpath_switch}$ai_p"
-
-  fi
-
-  fi
-
-    else
-      as_fn_error $? "cannot find expat lib in $EXPAT_DIR" "$LINENO" 5
-    fi
-
-    if test -n "$EXPAT_INCDIR" ; then
-      as_ac_Header=`$as_echo "ac_cv_header_$EXPAT_INCDIR/expat.h" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$EXPAT_INCDIR/expat.h" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  EXPAT_INC=-I$EXPAT_INCDIR
-else
-  as_fn_error $? "cannot find expat headers" "$LINENO" 5
-fi
-
-
-      ALL_INC="$EXPAT_INC $ALL_INC"
-    else
-        as_fn_error $? "cannot find expat headers in $EXPAT_DIR" "$LINENO" 5
-    fi
-    EXPAT_FOUND="yes"
-else
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for XML_ParserCreate in -lexpat" >&5
-$as_echo_n "checking for XML_ParserCreate in -lexpat... " >&6; }
-if ${ac_cv_lib_expat_XML_ParserCreate+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lexpat  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char XML_ParserCreate ();
-int
-main ()
-{
-return XML_ParserCreate ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_expat_XML_ParserCreate=yes
-else
-  ac_cv_lib_expat_XML_ParserCreate=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_expat_XML_ParserCreate" >&5
-$as_echo "$ac_cv_lib_expat_XML_ParserCreate" >&6; }
-if test "x$ac_cv_lib_expat_XML_ParserCreate" = xyes; then :
-  EXPAT_LIB="-lexpat"
-fi
-
-  ac_fn_c_check_header_mongrel "$LINENO" "expat.h" "ac_cv_header_expat_h" "$ac_includes_default"
-if test "x$ac_cv_header_expat_h" = xyes; then :
-
-else
-  EXPAT_HEADER_FOUND="no"
-fi
-
-
-  if test -n "$EXPAT_LIB" -a "$EXPAT_HEADER_FOUND" != "no"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:         using libexpat from system libs." >&5
-$as_echo "        using libexpat from system libs." >&6; }
-    EXPAT_FOUND='yes'
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:         not found in system libs. svg symbol support will be disabled" >&5
-$as_echo "        not found in system libs. svg symbol support will be disabled" >&6; }
-    EXPAT_FOUND='no'
-  fi
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for AGG support" >&5
-$as_echo_n "checking for AGG support... " >&6; }
-AGG_ENABLED="internal"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:         internal" >&5
-$as_echo "        internal" >&6; }
-
-
-
-unset ac_cv_lib_proj_pj_init
-unset ac_cv_lib_proj_pj_transform
-unset ac_cv_lib_proj_pj_latlong_from_proj
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should include PROJ.4 support..." >&5
-$as_echo "$as_me: checking whether we should include PROJ.4 support..." >&6;}
-
-# Check whether --with-proj was given.
-if test "${with_proj+set}" = set; then :
-  withval=$with_proj;
-fi
-
-
-if test "$with_proj" = "yes" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pj_init in -lproj" >&5
-$as_echo_n "checking for pj_init in -lproj... " >&6; }
-if ${ac_cv_lib_proj_pj_init+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lproj  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pj_init ();
-int
-main ()
-{
-return pj_init ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_proj_pj_init=yes
-else
-  ac_cv_lib_proj_pj_init=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_proj_pj_init" >&5
-$as_echo "$ac_cv_lib_proj_pj_init" >&6; }
-if test "x$ac_cv_lib_proj_pj_init" = xyes; then :
-  PROJ_ENABLED=-DUSE_PROJ
-fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pj_transform in -lproj" >&5
-$as_echo_n "checking for pj_transform in -lproj... " >&6; }
-if ${ac_cv_lib_proj_pj_transform+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lproj  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pj_transform ();
-int
-main ()
-{
-return pj_transform ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_proj_pj_transform=yes
-else
-  ac_cv_lib_proj_pj_transform=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_proj_pj_transform" >&5
-$as_echo "$ac_cv_lib_proj_pj_transform" >&6; }
-if test "x$ac_cv_lib_proj_pj_transform" = xyes; then :
-  PJ_TRANSFORM=yes
-else
-  PJ_TRANSFORM=no
-fi
-
-
-  if test -n "$PROJ_ENABLED" -a "$PJ_TRANSFORM" = "no"; then
-      as_fn_error $? "This version of PROJ is too old.  PROJ4.4.2 or later is required." "$LINENO" 5
-  elif test -n "$PROJ_ENABLED" -a "$PJ_TRANSFORM" = "yes"; then
-      PROJ_LIBS="-lproj"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result:         using PROJ.4 from system libs." >&5
-$as_echo "        using PROJ.4 from system libs." >&6; }
-  else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:         PROJ.4 not found in system libs... use --with-proj=DIR." >&5
-$as_echo "$as_me: WARNING:         PROJ.4 not found in system libs... use --with-proj=DIR." >&2;}
-  fi
-
-elif test -n "$with_proj" -a "$with_proj" != "no" ; then
-
-
-  if test -z "$with_proj" || echo "$with_proj" | grep '^/' >/dev/null ; then
-    PROJ_DIR="$with_proj"
-  else
-    PROJ_DIR="`pwd`/$with_proj"
-  fi
-
-  test -f $PROJ_DIR/include/proj_api.h && PROJ_INCLUDE="$PROJ_DIR/include"
-  test -f $PROJ_DIR/include/proj/proj_api.h && PROJ_INCLUDE="$PROJ_DIR/include/proj"
-  test -f $PROJ_DIR/src/proj_api.h && PROJ_INCLUDE="$PROJ_DIR/src"
-  test -f $PROJ_DIR/proj_api.h && PROJ_INCLUDE="$PROJ_DIR"
-
-  test -f $PROJ_DIR/src/.libs/libproj.a && PROJ_LIBDIR="$PROJ_DIR/src/.libs"
-  test -f $PROJ_DIR/lib/libproj.a && PROJ_LIBDIR="$PROJ_DIR/lib"
-  test -f $PROJ_DIR/lib64/libproj.a && PROJ_LIBDIR="$PROJ_DIR/lib64"
-  test -f $PROJ_DIR/libproj.a && PROJ_LIBDIR="$PROJ_DIR"
-
-  test -f $PROJ_DIR/src/.libs/libproj.so -o -f $PROJ_DIR/src/.libs/libproj.sl -o -f $PROJ_DIR/src/.libs/libproj.dylib && PROJ_LIBDIR="$PROJ_DIR/src/.libs"
-  test -f $PROJ_DIR/lib/libproj.so -o -f $PROJ_DIR/lib/libproj.sl -o -f $PROJ_DIR/lib/libproj.dylib && PROJ_LIBDIR="$PROJ_DIR/lib"
-  test -f $PROJ_DIR/lib64/libproj.so -o -f $PROJ_DIR/lib64/libproj.sl && PROJ_LIBDIR="$PROJ_DIR/lib64"
-  test -f $PROJ_DIR/libproj.so -o -f $PROJ_DIR/libproj.sl -o -f $PROJ_DIR/libproj.dylib && PROJ_LIBDIR="$PROJ_DIR"
-
-  if test -n "$PROJ_INCLUDE" -a -n "$PROJ_LIBDIR" ; then
-      PROJ_INC=-I$PROJ_INCLUDE
-      PROJ_LIBS="-L$PROJ_LIBDIR -lproj"
-
-  if test ""$PROJ_LIBDIR"" != "/usr/lib"; then
-
-  if test -z ""$PROJ_LIBDIR"" || echo ""$PROJ_LIBDIR"" | grep '^/' >/dev/null ; then
-    ai_p=""$PROJ_LIBDIR""
-  else
-    ai_p="`pwd`/"$PROJ_LIBDIR""
-  fi
-
-
-  unique=`echo $ac_n "$ai_p$ac_c" | tr -c -d a-zA-Z0-9`
-  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "LIBPATH$unique=set"
-
-      EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
-        RPATHS="$RPATHS ${ld_runpath_switch}$ai_p"
-
-  fi
-
-  fi
-
-  else
-      as_fn_error $? "\"Could not find proj_api.h or libproj.a/libproj.so in $PROJ_DIR.\"" "$LINENO" 5
-  fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pj_transform in -lproj" >&5
-$as_echo_n "checking for pj_transform in -lproj... " >&6; }
-if ${ac_cv_lib_proj_pj_transform+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lproj $PROJ_LIBS $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pj_transform ();
-int
-main ()
-{
-return pj_transform ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_proj_pj_transform=yes
-else
-  ac_cv_lib_proj_pj_transform=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_proj_pj_transform" >&5
-$as_echo "$ac_cv_lib_proj_pj_transform" >&6; }
-if test "x$ac_cv_lib_proj_pj_transform" = xyes; then :
-  PJ_TRANSFORM=yes
-else
-  PJ_TRANSFORM=no
-fi
-
-  if test "$PJ_TRANSFORM" = "no"; then
-      as_fn_error $? "This version of PROJ is too old.  PROJ4.4.2 or later is required." "$LINENO" 5
-  fi
-
-  PROJ_ENABLED=-DUSE_PROJ
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         using PROJ.4 from $PROJ_DIR." >&5
-$as_echo "        using PROJ.4 from $PROJ_DIR." >&6; }
-
-else
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         PROJ.4 support not requested." >&5
-$as_echo "        PROJ.4 support not requested." >&6; }
-fi
-
-PROJ_ENABLED=$PROJ_ENABLED
-
-PROJ_INC=$PROJ_INC
-
-PROJ_LIBS=$PROJ_LIBS
-
-
-ALL_ENABLED="$PROJ_ENABLED $ALL_ENABLED"
-ALL_INC="$PROJ_INC $ALL_INC"
-ALL_LIB="$PROJ_LIBS $ALL_LIB"
-
-
-THREAD_LIB=""
-THREAD_FLAG=""
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should include thread safe support..." >&5
-$as_echo "$as_me: checking whether we should include thread safe support..." >&6;}
-
-# Check whether --with-threads was given.
-if test "${with_threads+set}" = set; then :
-  withval=$with_threads;
-fi
-
-
-if test "$with_threads" = "yes" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_create in -lpthread" >&5
-$as_echo_n "checking for pthread_create in -lpthread... " >&6; }
-if ${ac_cv_lib_pthread_pthread_create+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char pthread_create ();
-int
-main ()
-{
-return pthread_create ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pthread_pthread_create=yes
-else
-  ac_cv_lib_pthread_pthread_create=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_pthread_create" >&5
-$as_echo "$ac_cv_lib_pthread_pthread_create" >&6; }
-if test "x$ac_cv_lib_pthread_pthread_create" = xyes; then :
-  THREAD_FLAG=-DUSE_THREAD
-fi
-
-
-  if test -n "$THREAD_FLAG" ; then
-      THREAD_LIB="-lpthread"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result:         using -lpthread from system libs." >&5
-$as_echo "        using -lpthread from system libs." >&6; }
-  else
-      as_fn_error $? "        -lpthread not found, use --with-thread=<pthread link options>" "$LINENO" 5
-  fi
-
-elif test -n "$with_threads" -a "$with_threads" != "no" ; then
-
-  THREAD_FLAG=-DUSE_THREAD
-  THREAD_LIB="$with_threads"
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         using threads with link options \"$THREAD_LIB\"." >&5
-$as_echo "        using threads with link options \"$THREAD_LIB\"." >&6; }
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         thread safe support disabled." >&5
-$as_echo "        thread safe support disabled." >&6; }
-fi
-
-THREAD_FLAG=$THREAD_FLAG
-
-THREAD_LIB=$THREAD_LIB
-
-
-ALL_ENABLED="$THREAD_FLAG $ALL_ENABLED"
-ALL_LIB="$THREAD_LIB $ALL_LIB"
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for __sync_fetch_and_add" >&5
-$as_echo_n "checking for __sync_fetch_and_add... " >&6; }
-if ${ac_cv_func_sync_fetch_and_add+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-long x=0,y=0;for(x=0;x<5;x++){if(y>1) break; y=__sync_fetch_and_add(&x,1);}
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_func_sync_fetch_and_add=yes
-else
-  ac_cv_func_sync_fetch_and_add=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_sync_fetch_and_add" >&5
-$as_echo "$ac_cv_func_sync_fetch_and_add" >&6; }
-if test "$ac_cv_func_sync_fetch_and_add" = yes; then
-  ALL_ENABLED="-DHAVE_SYNC_FETCH_AND_ADD $ALL_ENABLED"
-
-$as_echo "#define HAVE_SYNC_FETCH_AND_ADD 1" >>confdefs.h
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should include ESRI SDE support..." >&5
-$as_echo "$as_me: checking whether we should include ESRI SDE support..." >&6;}
-
-# Check whether --with-sde was given.
-if test "${with_sde+set}" = set; then :
-  withval=$with_sde;
-fi
-
-
-
-# Check whether --with-sde-version was given.
-if test "${with_sde_version+set}" = set; then :
-  withval=$with_sde_version; SDE_VERSION=$with_sde_version
-else
-  SDE_VERSION=91
-fi
-
-
-if test -z "$SDE_VERSION" -o `expr "$SDE_VERSION" \>\= 92` = 1; then
-SDE_VERSION=""
-fi
-if test "$with_sde" = "yes" ; then
-
-  as_ac_Lib=`$as_echo "ac_cv_lib_sde$SDE_VERSION''_SE_connection_create" | $as_tr_sh`
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SE_connection_create in -lsde$SDE_VERSION" >&5
-$as_echo_n "checking for SE_connection_create in -lsde$SDE_VERSION... " >&6; }
-if eval \${$as_ac_Lib+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsde$SDE_VERSION  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char SE_connection_create ();
-int
-main ()
-{
-return SE_connection_create ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  eval "$as_ac_Lib=yes"
-else
-  eval "$as_ac_Lib=no"
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-eval ac_res=\$$as_ac_Lib
-	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
-$as_echo "$ac_res" >&6; }
-if eval test \"x\$"$as_ac_Lib"\" = x"yes"; then :
-  SDE_ENABLED=-DUSE_SDE
-fi
-
-
-  if test -n "$SDE_ENABLED" ; then
-      SDE_LIB="-lsde$SDE_VERSION -lpe$SDE_VERSION -lsg$SDE_VERSION"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5
-$as_echo_n "checking for main in -lpthread... " >&6; }
-if ${ac_cv_lib_pthread_main+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pthread_main=yes
-else
-  ac_cv_lib_pthread_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_main" >&5
-$as_echo "$ac_cv_lib_pthread_main" >&6; }
-if test "x$ac_cv_lib_pthread_main" = xyes; then :
-  SDE_LIB="$SDE_LIB -lpthread"
-fi
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lsocket" >&5
-$as_echo_n "checking for main in -lsocket... " >&6; }
-if ${ac_cv_lib_socket_main+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_socket_main=yes
-else
-  ac_cv_lib_socket_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_main" >&5
-$as_echo "$ac_cv_lib_socket_main" >&6; }
-if test "x$ac_cv_lib_socket_main" = xyes; then :
-  SDE_LIB="$SDE_LIB -lsocket"
-fi
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldl" >&5
-$as_echo_n "checking for main in -ldl... " >&6; }
-if ${ac_cv_lib_dl_main+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_main=yes
-else
-  ac_cv_lib_dl_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_main" >&5
-$as_echo "$ac_cv_lib_dl_main" >&6; }
-if test "x$ac_cv_lib_dl_main" = xyes; then :
-  SDE_LIB="$SDE_LIB -ldl"
-fi
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result:         using ESRI SDE from system libs." >&5
-$as_echo "        using ESRI SDE from system libs." >&6; }
-  else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:         ESRI SDE not found in system libs... use --with-sde=DIR." >&5
-$as_echo "$as_me: WARNING:         ESRI SDE not found in system libs... use --with-sde=DIR." >&2;}
-  fi
-
-elif test -n "$with_sde" -a "$with_sde" != "no" ; then
-
-
-  if test -z "$with_sde" || echo "$with_sde" | grep '^/' >/dev/null ; then
-    SDE_DIR="$with_sde"
-  else
-    SDE_DIR="`pwd`/$with_sde"
-  fi
-
-
-  test -f $SDE_DIR/arcsde/coverages/include/sdetype.h && SDE_INCDIR="$SDE_DIR/arcsde/coverages/include"
-  test -f $SDE_DIR/include/sdetype.h && SDE_INCDIR="$SDE_DIR/include"
-  test -f $SDE_DIR/sdetype.h && SDE_INCDIR="$SDE_DIR"
-
-  test -f $SDE_DIR/lib/libsde$SDE_VERSION.a && SDE_LIBDIR="$SDE_DIR/lib"
-  test -f $SDE_DIR/lib64/libsde$SDE_VERSION.a && SDE_LIBDIR="$SDE_DIR/lib64"
-  test -f $SDE_DIR/libsde$SDE_VERSION.a && SDE_LIBDIR="$SDE_DIR"
-
-  test -f $SDE_DIR/lib/libsde$SDE_VERSION.so -o -f $SDE_DIR/lib/libsde$SDE_VERSION.sl && SDE_LIBDIR="$SDE_DIR/lib"
-  test -f $SDE_DIR/lib64/libsde$SDE_VERSION.so -o -f $SDE_DIR/lib64/libsde$SDE_VERSION.sl && SDE_LIBDIR="$SDE_DIR/lib64"
-  test -f $SDE_DIR/libsde$SDE_VERSION.so -o -f $SDE_DIR/libsde$SDE_VERSION.sl && SDE_LIBDIR="$SDE_DIR"
-
-  if test -n "$SDE_INCDIR" -a -n "$SDE_LIBDIR" ; then
-      SDE_INC=-I$SDE_INCDIR
-      SDE_LIB="-L$SDE_LIBDIR -lsde$SDE_VERSION -lpe$SDE_VERSION -lsg$SDE_VERSION"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lpthread" >&5
-$as_echo_n "checking for main in -lpthread... " >&6; }
-if ${ac_cv_lib_pthread_main+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpthread  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pthread_main=yes
-else
-  ac_cv_lib_pthread_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pthread_main" >&5
-$as_echo "$ac_cv_lib_pthread_main" >&6; }
-if test "x$ac_cv_lib_pthread_main" = xyes; then :
-  SDE_LIB="$SDE_LIB -lpthread"
-fi
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lsocket" >&5
-$as_echo_n "checking for main in -lsocket... " >&6; }
-if ${ac_cv_lib_socket_main+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lsocket  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_socket_main=yes
-else
-  ac_cv_lib_socket_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_main" >&5
-$as_echo "$ac_cv_lib_socket_main" >&6; }
-if test "x$ac_cv_lib_socket_main" = xyes; then :
-  SDE_LIB="$SDE_LIB -lsocket"
-fi
-
-      { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -ldl" >&5
-$as_echo_n "checking for main in -ldl... " >&6; }
-if ${ac_cv_lib_dl_main+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-ldl  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-
-int
-main ()
-{
-return main ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_dl_main=yes
-else
-  ac_cv_lib_dl_main=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_main" >&5
-$as_echo "$ac_cv_lib_dl_main" >&6; }
-if test "x$ac_cv_lib_dl_main" = xyes; then :
-  SDE_LIB="$SDE_LIB -ldl"
-fi
-
-
-  if test ""$SDE_LIBDIR"" != "/usr/lib"; then
-
-  if test -z ""$SDE_LIBDIR"" || echo ""$SDE_LIBDIR"" | grep '^/' >/dev/null ; then
-    ai_p=""$SDE_LIBDIR""
-  else
-    ai_p="`pwd`/"$SDE_LIBDIR""
-  fi
-
-
-  unique=`echo $ac_n "$ai_p$ac_c" | tr -c -d a-zA-Z0-9`
-  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "LIBPATH$unique=set"
-
-      EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
-        RPATHS="$RPATHS ${ld_runpath_switch}$ai_p"
-
-  fi
-
-  fi
-
-  else
-      as_fn_error $? "\"Could not find sdetype.h or libsde$SDE_VERSION.a/libsde$SDE_VERSION.so in $SDE_DIR.\"" "$LINENO" 5
-  fi
-
-  SDE_ENABLED=-DUSE_SDE
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         using ESRI SDE from $SDE_DIR." >&5
-$as_echo "        using ESRI SDE from $SDE_DIR." >&6; }
-
-else
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         ESRI SDE support not requested." >&5
-$as_echo "        ESRI SDE support not requested." >&6; }
-fi
-
-SDE_ENABLED=$SDE_ENABLED
-
-SDE_INC=$SDE_INC
-
-SDE_LIB=$SDE_LIB
-
-
-ALL_ENABLED="$SDE_ENABLED $ALL_ENABLED"
-ALL_INC="$SDE_INC $ALL_INC"
-ALL_LIB="$SDE_LIB $ALL_LIB"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if GEOS support requested" >&5
-$as_echo_n "checking if GEOS support requested... " >&6; }
-
-
-# Check whether --with-geos was given.
-if test "${with_geos+set}" = set; then :
-  withval=$with_geos;
-fi
-
-
-if test -n "$with_geos" -a "$with_geos" != "no" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-  GEOS_CONFIG=$with_geos
-
-  if test "$GEOS_CONFIG" = "yes" ; then
-
-    # Extract the first word of "geos-config", so it can be a program name with args.
-set dummy geos-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GEOS_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $GEOS_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GEOS_CONFIG="$GEOS_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_GEOS_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_GEOS_CONFIG" && ac_cv_path_GEOS_CONFIG="no"
-  ;;
-esac
-fi
-GEOS_CONFIG=$ac_cv_path_GEOS_CONFIG
-if test -n "$GEOS_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GEOS_CONFIG" >&5
-$as_echo "$GEOS_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-    if test "$GEOS_CONFIG" = "no" ; then
-      as_fn_error $? "couldn't find geos-config in default path. Please specify full path to geos-config" "$LINENO" 5
-    fi
-
-  elif test -f "$GEOS_CONFIG" -a -x "$GEOS_CONFIG" ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: user supplied geos-config ($GEOS_CONFIG)" >&5
-$as_echo "user supplied geos-config ($GEOS_CONFIG)" >&6; }
-  else
-    as_fn_error $? "'$GEOS_CONFIG' is not an executable.  Make sure you use --with-geos=/path/to/geos-config" "$LINENO" 5
-  fi
-
-
-  min_geos_version=3.0.0
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GEOS version >= $min_geos_version" >&5
-$as_echo_n "checking for GEOS version >= $min_geos_version... " >&6; }
-
-  geos_major_version=`$GEOS_CONFIG --version | \
-       sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
-  geos_minor_version=`$GEOS_CONFIG --version | \
-       sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
-  geos_micro_version=`$GEOS_CONFIG --version | \
-       sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'`
-
-  req_major=`echo $min_geos_version | \
-       sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\1/'`
-  req_minor=`echo $min_geos_version | \
-       sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\2/'`
-  req_micro=`echo $min_geos_version | \
-       sed 's/\([0-9]*\)\.\([0-9]*\)\.\([0-9]*\).*/\3/'`
-
-  ac_req_version=`expr $req_major \* 100000 \+  $req_minor \* 100 \+ $req_micro`
-  ac_geos_version=`expr $geos_major_version \* 100000 \+  $geos_minor_version \* 100 \+ $geos_micro_version`
-
-  if test $ac_req_version -le $ac_geos_version; then
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes. Found version ${geos_major_version}.${geos_minor_version}.${geos_micro_version}" >&5
-$as_echo "yes. Found version ${geos_major_version}.${geos_minor_version}.${geos_micro_version}" >&6; }
-  else
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-     as_fn_error $? "geos-config reports version ${geos_major_version}.${geos_minor_version}.${geos_micro_version}, need at least $min_geos_version or configure --without-geos" "$LINENO" 5
-  fi
-
-
-
-  GEOS_ENABLED=-DUSE_GEOS
-
-  GEOS_INCDIR=`$GEOS_CONFIG --includes`
-  GEOS_INC="-I$GEOS_INCDIR"
-    if test $ac_geos_version -ge 300300; then
-     GEOS_LIB="`$GEOS_CONFIG --clibs`"
-  else
-     GEOS_LIB="`$GEOS_CONFIG --libs`_c"
-  fi
-
-  GEOS_ENABLED=$GEOS_ENABLED
-
-  GEOS_INC=$GEOS_INC
-
-  GEOS_LIB=$GEOS_LIB
-
-
-  ALL_ENABLED="$GEOS_ENABLED $ALL_ENABLED"
-  ALL_INC="$GEOS_INC $ALL_INC"
-  ALL_LIB="$GEOS_LIB $ALL_LIB"
-
-else
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should include OGR support..." >&5
-$as_echo "$as_me: checking whether we should include OGR support..." >&6;}
-
-# Check whether --with-ogr was given.
-if test "${with_ogr+set}" = set; then :
-  withval=$with_ogr;
-fi
-
-
-if test "`basename xx/$with_ogr`" = "gdal-config" ; then
-  GDAL_CONFIG="$with_ogr"
-fi
-
-if test "$with_ogr" = "yes" ; then
- # Extract the first word of "gdal-config", so it can be a program name with args.
-set dummy gdal-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GDAL_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $GDAL_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GDAL_CONFIG="$GDAL_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_GDAL_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_GDAL_CONFIG" && ac_cv_path_GDAL_CONFIG="no"
-  ;;
-esac
-fi
-GDAL_CONFIG=$ac_cv_path_GDAL_CONFIG
-if test -n "$GDAL_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDAL_CONFIG" >&5
-$as_echo "$GDAL_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-
-  if test "$GDAL_CONFIG" = "no" ; then
-    as_fn_error $? "couldn't find gdal-config" "$LINENO" 5
-  fi
-fi
-
-if test -n "$GDAL_CONFIG" -a "$with_ogr" != "no" ; then
-
-
-  if test x`$GDAL_CONFIG --ogr-enabled` = "xyes" ; then
-      OGR_ENABLED=-DUSE_OGR
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGR enabled ($OGR_ENABLED)." >&5
-$as_echo "        OGR enabled ($OGR_ENABLED)." >&6; }
-  else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING:         OGR not available." >&5
-$as_echo "$as_me: WARNING:         OGR not available." >&2;}
-  fi
-
-else
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGR support not requested." >&5
-$as_echo "        OGR support not requested." >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if GDAL support requested" >&5
-$as_echo_n "checking if GDAL support requested... " >&6; }
-
-
-# Check whether --with-gdal was given.
-if test "${with_gdal+set}" = set; then :
-  withval=$with_gdal;
-fi
-
-
-if test "$with_gdal" = "yes" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-  if test "`basename xx/$with_gdal`" = "gdal-config" ; then
-    GDAL_CONFIG="$with_gdal"
-  fi
-
-  if test -z "$GDAL_CONFIG" ; then
-    # Extract the first word of "gdal-config", so it can be a program name with args.
-set dummy gdal-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_GDAL_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $GDAL_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_GDAL_CONFIG="$GDAL_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_GDAL_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_GDAL_CONFIG" && ac_cv_path_GDAL_CONFIG="no"
-  ;;
-esac
-fi
-GDAL_CONFIG=$ac_cv_path_GDAL_CONFIG
-if test -n "$GDAL_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GDAL_CONFIG" >&5
-$as_echo "$GDAL_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-
-  if test "$GDAL_CONFIG" = "no" ; then
-    as_fn_error $? "couldn't find gdal-config" "$LINENO" 5
-  fi
-
-  GDAL_ENABLED=-DUSE_GDAL
-
-elif test -n "$with_gdal" -a "$with_gdal" != "no" ; then
-
-  GDAL_CONFIG=$with_gdal
-
-  if test -f "$GDAL_CONFIG" -a -x "$GDAL_CONFIG" ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, user supplied gdal-config ($GDAL_CONFIG)" >&5
-$as_echo "yes, user supplied gdal-config ($GDAL_CONFIG)" >&6; }
-  else
-    as_fn_error $? "'$GDAL_CONFIG' is not an executable.  Make sure you use --with-gdal=/path/to/gdal-config" "$LINENO" 5
-  fi
-
-  GDAL_ENABLED=-DUSE_GDAL
-
-else
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-
-fi
-
-
-if test -n "$GDAL_ENABLED" -o "$OGR_ENABLED"; then
-
-  GDAL_LIB=`$GDAL_CONFIG --libs`
-  GDAL_INC=`$GDAL_CONFIG --cflags`
-
-fi
-
-GDAL_ENABLED=$GDAL_ENABLED
-
-OGR_ENABLED=$OGR_ENABLED
-
-GDAL_INC=$GDAL_INC
-
-GDAL_LIB=$GDAL_LIB
-
-
-ALL_ENABLED="$GDAL_ENABLED $OGR_ENABLED $ALL_ENABLED"
-ALL_INC="$GDAL_INC $ALL_INC"
-ALL_LIB="$GDAL_LIB $ALL_LIB"
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if PostGIS support requested" >&5
-$as_echo_n "checking if PostGIS support requested... " >&6; }
-
-
-# Check whether --with-postgis was given.
-if test "${with_postgis+set}" = set; then :
-  withval=$with_postgis;
-fi
-
-
-if test "$with_postgis" = "no" -o "$with_postgis" = "" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  PG_CONFIG="no"
-elif test "$with_postgis" = "yes" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  # Extract the first word of "pg_config", so it can be a program name with args.
-set dummy pg_config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PG_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PG_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PG_CONFIG="$PG_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PG_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_PG_CONFIG" && ac_cv_path_PG_CONFIG="no"
-  ;;
-esac
-fi
-PG_CONFIG=$ac_cv_path_PG_CONFIG
-if test -n "$PG_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PG_CONFIG" >&5
-$as_echo "$PG_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-else
-  PG_CONFIG=$with_postgis
-fi
-
-if test "$PG_CONFIG" = "no" ; then
-  POSTGIS_ENABLED=
-  POSTGIS_INC=
-  POSTGIS_LIB=
-else
-  POSTGIS_ENABLED=
-
-  if test -f "$PG_CONFIG" -a -x "$PG_CONFIG" ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, user supplied pg_config ($PG_CONFIG)" >&5
-$as_echo "yes, user supplied pg_config ($PG_CONFIG)" >&6; }
-  else
-    as_fn_error $? "'$PG_CONFIG' is not an executable.  Make sure you use --with-postgis=/path/to/pg_config" "$LINENO" 5
-  fi
-
-  POSTGIS_EXTRALIBS="`$PG_CONFIG --libs`"
-    if test $? -ne 0 ; then
-      POSTGIS_EXTRALIBS=
-  fi
-
-  POSTGIS_INC="-I`$PG_CONFIG --includedir`"
-
-  old_LDFLAGS="$LDFLAGS"
-
-  POSTGIS_LIB="-L`$PG_CONFIG --libdir` -lpq"
-  LDFLAGS="$LDFLAGS $POSTGIS_LIB"
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PQconnectdb in -lpq" >&5
-$as_echo_n "checking for PQconnectdb in -lpq... " >&6; }
-if ${ac_cv_lib_pq_PQconnectdb+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpq  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char PQconnectdb ();
-int
-main ()
-{
-return PQconnectdb ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pq_PQconnectdb=yes
-else
-  ac_cv_lib_pq_PQconnectdb=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQconnectdb" >&5
-$as_echo "$ac_cv_lib_pq_PQconnectdb" >&6; }
-if test "x$ac_cv_lib_pq_PQconnectdb" = xyes; then :
-  POSTGIS_ENABLED="-DUSE_POSTGIS"
-fi
-
-
-    if test  "$POSTGIS_ENABLED"x = x ; then
-    POSTGIS_LIB="$POSTGIS_LIB $POSTGIS_EXTRALIBS"
-    LDFLAGS="$old_LDFLAGS $POSTGIS_LIB"
-    unset ac_cv_lib_pq_PQconnectdb
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PQconnectdb in -lpq" >&5
-$as_echo_n "checking for PQconnectdb in -lpq... " >&6; }
-if ${ac_cv_lib_pq_PQconnectdb+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpq  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char PQconnectdb ();
-int
-main ()
-{
-return PQconnectdb ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pq_PQconnectdb=yes
-else
-  ac_cv_lib_pq_PQconnectdb=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQconnectdb" >&5
-$as_echo "$ac_cv_lib_pq_PQconnectdb" >&6; }
-if test "x$ac_cv_lib_pq_PQconnectdb" = xyes; then :
-  POSTGIS_ENABLED="-DUSE_POSTGIS"
-fi
-
-  fi
-
-    if test "$POSTGIS_ENABLED" = "-DUSE_POSTGIS" ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PQserverVersion in -lpq" >&5
-$as_echo_n "checking for PQserverVersion in -lpq... " >&6; }
-if ${ac_cv_lib_pq_PQserverVersion+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lpq  $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char PQserverVersion ();
-int
-main ()
-{
-return PQserverVersion ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_pq_PQserverVersion=yes
-else
-  ac_cv_lib_pq_PQserverVersion=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_pq_PQserverVersion" >&5
-$as_echo "$ac_cv_lib_pq_PQserverVersion" >&6; }
-if test "x$ac_cv_lib_pq_PQserverVersion" = xyes; then :
-  POSTGIS_ENABLED="$POSTGIS_ENABLED -DPOSTGIS_HAS_SERVER_VERSION"
-fi
-
-  fi
-
-  LDFLAGS="$old_LDFLAGS"
-
-fi
-
-POSTGIS_ENABLED=$POSTGIS_ENABLED
-
-POSTGIS_INC=$POSTGIS_INC
-
-POSTGIS_LIB=$POSTGIS_LIB
-
-
-ALL_ENABLED="$POSTGIS_ENABLED $ALL_ENABLED"
-ALL_INC="$POSTGIS_INC $ALL_INC"
-ALL_LIB="$POSTGIS_LIB $ALL_LIB"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if Mysql support requested" >&5
-$as_echo_n "checking if Mysql support requested... " >&6; }
-
-
-# Check whether --with-mysql was given.
-if test "${with_mysql+set}" = set; then :
-  withval=$with_mysql;
-fi
-
-
-if test "$with_mysql" = "no" -o "$with_mysql" = "" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  MY_CONFIG="no"
-elif test "$with_mysql" = "yes" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  # Extract the first word of "mysql_config", so it can be a program name with args.
-set dummy mysql_config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_MY_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $MY_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_MY_CONFIG="$MY_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_MY_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_MY_CONFIG" && ac_cv_path_MY_CONFIG="no"
-  ;;
-esac
-fi
-MY_CONFIG=$ac_cv_path_MY_CONFIG
-if test -n "$MY_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MY_CONFIG" >&5
-$as_echo "$MY_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-else
-  MY_CONFIG=$with_mysql
-fi
-
-if test "$MY_CONFIG" = "no" ; then
-  MYSQL_ENABLED=
-  MYSQL_INC=
-  MYSQL_LIB=
-else
-  if test -f "$MY_CONFIG" -a -x "$MY_CONFIG" ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, user supplied mysql_config ($MY_CONFIG)" >&5
-$as_echo "yes, user supplied mysql_config ($MY_CONFIG)" >&6; }
-  else
-    as_fn_error $? "'$MY_CONFIG' is not an executable.  Make sure you use --with-mysql=/path/to/mysql_config" "$LINENO" 5
-  fi
-
-  MYSQL_ENABLED=-DUSE_MYSQL
-  MYSQL_LIB="`$MY_CONFIG --libs` -lmysqlclient"
-#  MYSQL_LIB="-L/usr/lib/mysql -lmysqlclient"
-  MYSQL_INC="`$MY_CONFIG --cflags`"
-#  MYSQL_INC="-I/usr/include/mysql"
-fi
-
-MYSQL_ENABLED=$MYSQL_ENABLED
-
-MYSQL_INC=$MYSQL_INC
-
-MYSQL_LIB=$MYSQL_LIB
-
-
-ALL_ENABLED="$MYSQL_ENABLED $ALL_ENABLED"
-ALL_INC="$MYSQL_INC $ALL_INC"
-ALL_LIB="$MYSQL_LIB $ALL_LIB"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if OracleSpatial support requested" >&5
-$as_echo_n "checking if OracleSpatial support requested... " >&6; }
-
-# Check whether --with-oraclespatial was given.
-if test "${with_oraclespatial+set}" = set; then :
-  withval=$with_oraclespatial;
-fi
-
-
-if test "$with_oraclespatial" = "no" -o "$with_oraclespatial" = ""; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  ORA_HOME="no"
-elif test "$with_oraclespatial" = "yes"; then
-  if test -d "$ORACLE_HOME"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, set from ORACLE_HOME environment variable" >&5
-$as_echo "yes, set from ORACLE_HOME environment variable" >&6; }
-    ORA_HOME="$ORACLE_HOME"
-  else
-    ORA_HOME="no"
-    as_fn_error $? "ORACLE_HOME variable is not properly set" "$LINENO" 5
-  fi
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, user supplied ORACLE_HOME" >&5
-$as_echo "yes, user supplied ORACLE_HOME" >&6; }
-  ORA_HOME=$with_oraclespatial
-fi
-
-if test "$ORA_HOME" = "no" ; then
-  ORACLESPATIAL_ENABLED=
-  ORACLESPATIAL_INC=
-  ORACLESPATIAL_LIB=
-else
-
-    test -f $ORA_HOME/lib/libclntsh.so -o -f $ORA_HOME/lib/libclntsh.dylib && ORA_LIBDIR="$ORA_HOME/lib"
-  test -f $ORA_HOME/libclntsh.so -o -f $ORA_HOME/libclntsh.dylib && ORA_LIBDIR="$ORA_HOME"
-  test -f $ORA_HOME/lib/oracle/10*/client/lib/libclntsh.so && ORA_LIBDIR=`dirname $ORA_HOME/lib/oracle/10*/client/lib/libclntsh.so`
-  test -f $ORA_HOME/lib/oracle/10*/client/lib/libclntsh.dylib && ORA_LIBDIR=`dirname $ORA_HOME/lib/oracle/10*/client/lib/libclntsh.dylib`
-
-  if test -z "$ORA_LIBDIR" ; then
-    as_fn_error $? "Oracle Spatial: libclntsh.so not found." "$LINENO" 5
-  fi
-
-    test -f $ORA_HOME/include/oci.h && ORA_INCDIR="$ORA_HOME/include"
-  test -f $ORA_HOME/sdk/include/oci.h && ORA_INCDIR="$ORA_HOME/sdk/include"
-  test -f $ORA_HOME/rdbms/public/oci.h && ORA_INCDIR="$ORA_HOME/rdbms/public"
-  test -f $ORA_HOME/rdbms/demo/oci.h && ORA_INCDIR="$ORA_HOME/rdbms/public"
-  test -f $ORA_HOME/include/oracle/10*/client/oci.h && ORA_INCDIR=`dirname $ORA_HOME/include/oracle/10*/client/oci.h`
-
-  if test -z "$ORA_INCDIR" ; then
-    as_fn_error $? "Oracle Spatial: oci.h not found." "$LINENO" 5
-  fi
-
-  ORACLESPATIAL_ENABLED=-DUSE_ORACLESPATIAL
-  ORACLESPATIAL_LIB="-L$ORA_LIBDIR -lclntsh"
-  ORACLESPATIAL_INC="-I$ORA_INCDIR -I$ORA_HOME/rdbms/demo -I$ORA_HOME/rdbms/public"
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         Oracle Spatial found in $ORA_HOME." >&5
-$as_echo "        Oracle Spatial found in $ORA_HOME." >&6; }
-
-fi
-
-ORACLESPATIAL_ENABLED=$ORACLESPATIAL_ENABLED
-
-ORACLESPATIAL_INC=$ORACLESPATIAL_INC
-
-ORACLESPATIAL_LIB=$ORACLESPATIAL_LIB
-
-
-ALL_ENABLED="$ORACLESPATIAL_ENABLED $ALL_ENABLED"
-ALL_INC="$ORACLESPATIAL_INC $ALL_INC"
-ALL_LIB="$ORACLESPATIAL_LIB $ALL_LIB"
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should include WMS Server support..." >&5
-$as_echo "$as_me: checking whether we should include WMS Server support..." >&6;}
-
-# Check whether --with-wms was given.
-if test "${with_wms+set}" = set; then :
-  withval=$with_wms;
-fi
-
-
-if test "$with_wms" = "no" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WMS Compatibility disabled by --without-wms." >&5
-$as_echo "        OGC WMS Compatibility disabled by --without-wms." >&6; }
-
-elif test -z "$PROJ_ENABLED" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WMS Compatibility not enabled (PROJ.4 is required for WMS)." >&5
-$as_echo "        OGC WMS Compatibility not enabled (PROJ.4 is required for WMS)." >&6; }
-
-else
-
-  WMS_SVR_ENABLED="-DUSE_WMS_SVR"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WMS compatibility enabled ($WMS_SVR_ENABLED)." >&5
-$as_echo "        OGC WMS compatibility enabled ($WMS_SVR_ENABLED)." >&6; }
-
-fi
-
-WMS_SVR_ENABLED=$WMS_SVR_ENABLED
-
-
-ALL_ENABLED="$WMS_SVR_ENABLED $ALL_ENABLED"
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should include WFS Server support..." >&5
-$as_echo "$as_me: checking whether we should include WFS Server support..." >&6;}
-
-# Check whether --with-wfs was given.
-if test "${with_wfs+set}" = set; then :
-  withval=$with_wfs;
-fi
-
-
-if test "$with_wfs" != "yes" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WFS Server support not requested." >&5
-$as_echo "        OGC WFS Server support not requested." >&6; }
-
-elif test -z "$OGR_ENABLED" ; then
-
-  as_fn_error $? "OGC WFS Server support cannot be enabled: missing OGR which is required)." "$LINENO" 5
-
-elif test -z "$PROJ_ENABLED" ; then
-
-  as_fn_error $? "OGC WFS Server support cannot be enabled: missing PROJ4 which is required)." "$LINENO" 5
-
-elif test "$with_wfs" = "yes" ; then
-
-  WFS_SVR_ENABLED="-DUSE_WFS_SVR"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WFS Server support enabled ($WFS_SVR_ENABLED)." >&5
-$as_echo "        OGC WFS Server support enabled ($WFS_SVR_ENABLED)." >&6; }
-
-fi
-
-WFS_SVR_ENABLED=$WFS_SVR_ENABLED
-
-
-ALL_ENABLED="$WFS_SVR_ENABLED $ALL_ENABLED"
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should include WCS Server support..." >&5
-$as_echo "$as_me: checking whether we should include WCS Server support..." >&6;}
-
-# Check whether --with-wcs was given.
-if test "${with_wcs+set}" = set; then :
-  withval=$with_wcs;
-fi
-
-
-if test "$with_wcs" != "yes" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WCS Server support not requested." >&5
-$as_echo "        OGC WCS Server support not requested." >&6; }
-elif test -z "$GDAL_ENABLED" ; then
-  as_fn_error $? "OGC WCS Server support cannot be enabled: missing GDAL which is required)." "$LINENO" 5
-elif test -z "$PROJ_ENABLED" ; then
-  as_fn_error $? "OGC WCS Server support cannot be enabled: missing PROJ4 which is required)." "$LINENO" 5
-elif test "$with_wcs" = "yes" ; then
-  WCS_SVR_ENABLED="-DUSE_WCS_SVR"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WCS Server support enabled ($WCS_SVR_ENABLED)." >&5
-$as_echo "        OGC WCS Server support enabled ($WCS_SVR_ENABLED)." >&6; }
-fi
-
-WCS_SVR_ENABLED=$WCS_SVR_ENABLED
-
-ALL_ENABLED="$WCS_SVR_ENABLED $ALL_ENABLED"
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should include WMS Client Connections support..." >&5
-$as_echo "$as_me: checking whether we should include WMS Client Connections support..." >&6;}
-
-# Check whether --with-wmsclient was given.
-if test "${with_wmsclient+set}" = set; then :
-  withval=$with_wmsclient;
-fi
-
-
-if test "$with_wmsclient" = "no" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WMS Client Layers disabled by --without-wmsclient." >&5
-$as_echo "        OGC WMS Client Layers disabled by --without-wmsclient." >&6; }
-
-elif test -z "$PROJ_ENABLED" -o -z "$GDAL_ENABLED"; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WMS Client Connections not enabled (PROJ.4, libcurl and GDAL required)." >&5
-$as_echo "        OGC WMS Client Connections not enabled (PROJ.4, libcurl and GDAL required)." >&6; }
-
-elif test "$with_wmsclient" = "yes" ; then
-
-    WMS_REQUESTED="yes"
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should include WFS Client Connections support..." >&5
-$as_echo "$as_me: checking whether we should include WFS Client Connections support..." >&6;}
-
-# Check whether --with-wfsclient was given.
-if test "${with_wfsclient+set}" = set; then :
-  withval=$with_wfsclient;
-fi
-
-
-if test "$with_wfsclient" = "no" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WFS Client Layers disabled by --without-wfsclient." >&5
-$as_echo "        OGC WFS Client Layers disabled by --without-wfsclient." >&6; }
-
-elif test -z "$PROJ_ENABLED" -o -z "$OGR_ENABLED"; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WFS Client Connections not enabled (PROJ.4, libcurl and OGR required)." >&5
-$as_echo "        OGC WFS Client Connections not enabled (PROJ.4, libcurl and OGR required)." >&6; }
-
-elif test "$with_wfsclient" = "yes" ; then
-
-    WFS_REQUESTED="yes"
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should include OGC SOS Server support..." >&5
-$as_echo "$as_me: checking whether we should include OGC SOS Server support..." >&6;}
-
-# Check whether --with-sos was given.
-if test "${with_sos+set}" = set; then :
-  withval=$with_sos;
-fi
-
-
-if test "x$with_sos" != "xyes" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC SOS Server support not requested." >&5
-$as_echo "        OGC SOS Server support not requested." >&6; }
-
-else
-
-  if test -z "$PROJ_ENABLED" ; then
-    as_fn_error $? "        OGC SOS Support requested, but PROJ.4 required and missing." "$LINENO" 5
-  fi
-  if test -z "$OGR_ENABLED" ; then
-    as_fn_error $? "        OGC SOS Support requested, but OGR required and missing." "$LINENO" 5
-  fi
-
-    SOS_REQUESTED="yes"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC SOS Server support requested." >&5
-$as_echo "        OGC SOS Server support requested." >&6; }
-
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for curl-config" >&5
-$as_echo_n "checking for curl-config... " >&6; }
-
-# Check whether --with-curl-config was given.
-if test "${with_curl_config+set}" = set; then :
-  withval=$with_curl_config;
-fi
-
-
-unset ac_cv_path_LIBCURL_CONFIG
-
-if test "$WMS_REQUESTED" = "yes" -o "$WFS_REQUESTED" = "yes" ; then
-
-  if test "`basename xx/$with_curl_config`" = "curl-config" ; then
-    LIBCURL_CONFIG="$with_curl_config"
-    if test -f "$LIBCURL_CONFIG" -a -x "$LIBCURL_CONFIG" ; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, user supplied curl-config ($LIBCURL_CONFIG)" >&5
-$as_echo "yes, user supplied curl-config ($LIBCURL_CONFIG)" >&6; }
-    else
-      as_fn_error $? "'$LIBCURL_CONFIG' is not an executable.  Make sure you use --with-curl-config=/path/to/curl-config" "$LINENO" 5
-    fi
-  else
-    # Extract the first word of "curl-config", so it can be a program name with args.
-set dummy curl-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_LIBCURL_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $LIBCURL_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_LIBCURL_CONFIG="$LIBCURL_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_LIBCURL_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_LIBCURL_CONFIG" && ac_cv_path_LIBCURL_CONFIG="no"
-  ;;
-esac
-fi
-LIBCURL_CONFIG=$ac_cv_path_LIBCURL_CONFIG
-if test -n "$LIBCURL_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBCURL_CONFIG" >&5
-$as_echo "$LIBCURL_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-
-  if test "$LIBCURL_CONFIG" = "no" ; then
-    as_fn_error $? "couldn't find curl-config, try using --with-curl-config=PATH" "$LINENO" 5
-  fi
-
-  CURL_VERNUM=`$LIBCURL_CONFIG --vernum`
-  CURL_VER=`$LIBCURL_CONFIG --version | awk '{print $2}'`
-  CURL_FLAGS=""
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         found libcurl version $CURL_VER" >&5
-$as_echo "        found libcurl version $CURL_VER" >&6; }
-
-    if test -z "$CURL_VERNUM" -o `expr "0x$CURL_VERNUM" \< "0x070a01"` = 1; then
-    as_fn_error $? "libcurl version 7.10.1 or more recent is required." "$LINENO" 5
-  fi
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURLOPT_PROXYAUTH support" >&5
-$as_echo_n "checking for CURLOPT_PROXYAUTH support... " >&6; }
-  if test -z "$CURL_VERNUM" -o `expr "0x$CURL_VERNUM" \>= "0x070a07"` = 1; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes." >&5
-$as_echo "yes." >&6; }
-    CURL_FLAGS="-DUSE_CURLOPT_PROXYAUTH"
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no." >&5
-$as_echo "no." >&6; }
-  fi
-
-      if test "$WMS_REQUESTED" = "yes" ; then
-    WMS_LYR_ENABLED="-DUSE_WMS_LYR"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WMS Client Connections enabled ($WMS_LYR_ENABLED)." >&5
-$as_echo "        OGC WMS Client Connections enabled ($WMS_LYR_ENABLED)." >&6; }
-  fi
-
-  if test "$WFS_REQUESTED" = "yes" ; then
-    WFS_LYR_ENABLED="-DUSE_WFS_LYR"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:         OGC WFS Client Connections enabled ($WFS_LYR_ENABLED)." >&5
-$as_echo "        OGC WFS Client Connections enabled ($WFS_LYR_ENABLED)." >&6; }
-  fi
-
-  CURL_INC=`$LIBCURL_CONFIG --cflags`
-  CURL_LIB=`$LIBCURL_CONFIG --libs`
-  CURL_ENABLED="-DUSE_CURL $CURL_FLAGS"
-
-fi
-
-CURL_INC=$CURL_INC
-
-CURL_LIB=$CURL_LIB
-
-
-ALL_INC="$CURL_INC $ALL_INC"
-ALL_LIB="$CURL_LIB $ALL_LIB"
-
-
-
-# Check whether --with-kml was given.
-if test "${with_kml+set}" = set; then :
-  withval=$with_kml;
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if KML output is requested" >&5
-$as_echo_n "checking if KML output is requested... " >&6; }
-KML_REQUESTED=""
-
-if test "$with_kml" = "yes"; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-    KML_REQUESTED="yes"
-else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if exempi support requested" >&5
-$as_echo_n "checking if exempi support requested... " >&6; }
-
-# Check whether --with-exempi was given.
-if test "${with_exempi+set}" = set; then :
-  withval=$with_exempi;
-fi
-
-
-if test -n "$with_exempi" -a "$with_exempi" != "no" ; then
-
-  if test "$with_exempi" = "yes" ; then
-    if test -f /usr/include/exempi-2.0/exempi/xmp.h; then
-        EXEMPI_INC="-I/usr/include/exempi-2.0/exempi"
-        EXEMPI_LIB="-lexempi"
-    else
-        ac_fn_c_check_header_mongrel "$LINENO" "xmp.h" "ac_cv_header_xmp_h" "$ac_includes_default"
-if test "x$ac_cv_header_xmp_h" = xyes; then :
-
-else
-  as_fn_error $? "cannot find xmp.h" "$LINENO" 5
-fi
-
-
-        EXEMPI_INC=""
-        EXEMPI_LIB="-lexempi"
-    fi
-  else
-    xmp_dir=$with_exempi
-    xmp_include=$xmp_dir/include
-    xmp_lib=$xmp_dir/lib
-    xmp_found=
-    for xmp_subdir in / /exempi /exempi-2.0/exempi; do
-      as_ac_Header=`$as_echo "ac_cv_header_$xmp_include$xmp_subdir/xmp.h" | $as_tr_sh`
-ac_fn_c_check_header_mongrel "$LINENO" "$xmp_include$xmp_subdir/xmp.h" "$as_ac_Header" "$ac_includes_default"
-if eval test \"x\$"$as_ac_Header"\" = x"yes"; then :
-  xmp_found=$xmp_subdir
-fi
-
-
-    done
-    if test "x$xmp_found" = "x" ; then
-      as_fn_error $? "cannot find xmp.h in $xmp_include" "$LINENO" 5
-    else
-      EXEMPI_INC="-I$xmp_include$xmp_subdir"
-    fi
-    EXEMPI_LIB="-L$xmp_lib -lexempi"
-  fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xmp_init in -lexempi" >&5
-$as_echo_n "checking for xmp_init in -lexempi... " >&6; }
-if ${ac_cv_lib_exempi_xmp_init+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lexempi $EXEMPI_LIB $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char xmp_init ();
-int
-main ()
-{
-return xmp_init ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_exempi_xmp_init=yes
-else
-  ac_cv_lib_exempi_xmp_init=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_exempi_xmp_init" >&5
-$as_echo "$ac_cv_lib_exempi_xmp_init" >&6; }
-if test "x$ac_cv_lib_exempi_xmp_init" = xyes; then :
-  EXEMPI_ENABLED=-DUSE_EXEMPI
-fi
-
-
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-EXEMPI_ENABLED=$EXEMPI_ENABLED
-
-EXEMPI_INC=$EXEMPI_INC
-
-EXEMPI_LIB=$EXEMPI_LIB
-
-ALL_ENABLED="$EXEMPI_ENABLED $ALL_ENABLED"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml2" >&5
-$as_echo_n "checking for libxml2... " >&6; }
-
-
-# Check whether --with-xml2-config was given.
-if test "${with_xml2_config+set}" = set; then :
-  withval=$with_xml2_config;
-fi
-
-
-unset ac_cv_path_LIBXML2_CONFIG
-
-
-if test -z "$with_xml2_config" ; then
-  if test "x$SOS_REQUESTED" = "xyes" ; then
-    with_xml2_config=yes
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: libxml2 required." >&5
-$as_echo "libxml2 required." >&6; }
-  elif test "x$KML_REQUESTED" = "xyes" ; then
-    with_xml2_config=yes
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: libxml2 required." >&5
-$as_echo "libxml2 required." >&6; }
-  elif test "x$WCS_SVR_ENABLED" != "x" ; then
-    with_xml2_config=yes
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: libxml2 requested for WCS Server." >&5
-$as_echo "libxml2 requested for WCS Server." >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:       If unavailable disable using --without-xml2-config," >&5
-$as_echo "      If unavailable disable using --without-xml2-config," >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:       but WCS 1.1 support will be disabled." >&5
-$as_echo "      but WCS 1.1 support will be disabled." >&6; }
-  elif test "x$WFS_SVR_ENABLED" != "x" ; then
-    with_xml2_config=yes
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: libxml2 requested for WFS Server." >&5
-$as_echo "libxml2 requested for WFS Server." >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:       If unavailable disable using --without-xml2-config," >&5
-$as_echo "      If unavailable disable using --without-xml2-config," >&6; }
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result:       but WFS 1.1 support will be disabled." >&5
-$as_echo "      but WFS 1.1 support will be disabled." >&6; }
-  else
-    with_xml2_config=no
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: libxml2 not required." >&5
-$as_echo "libxml2 not required." >&6; }
-  fi
-fi
-
-if test "$with_xml2_config" != "no" ; then
-
-  if test "`basename xx/$with_xml2_config`" = "xml2-config" ; then
-    LIBXML2_CONFIG="$with_xml2_config"
-    if test -f "$LIBXML2_CONFIG" -a -x "$LIBXML2_CONFIG" ; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, user supplied xml2-config ($LIBXML2_CONFIG)" >&5
-$as_echo "yes, user supplied xml2-config ($LIBXML2_CONFIG)" >&6; }
-    else
-      as_fn_error $? "'$LIBXML2_CONFIG' is not an executable.  Make sure you use --with-xml2-config=/path/to/xml2-config" "$LINENO" 5
-    fi
-  else
-    # Extract the first word of "xml2-config", so it can be a program name with args.
-set dummy xml2-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_LIBXML2_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $LIBXML2_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_LIBXML2_CONFIG="$LIBXML2_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_LIBXML2_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_LIBXML2_CONFIG" && ac_cv_path_LIBXML2_CONFIG="no"
-  ;;
-esac
-fi
-LIBXML2_CONFIG=$ac_cv_path_LIBXML2_CONFIG
-if test -n "$LIBXML2_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXML2_CONFIG" >&5
-$as_echo "$LIBXML2_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  fi
-
-  if test "$LIBXML2_CONFIG" = "no" ; then
-   as_fn_error $? "couldn't find xml2-config, try using --with-xml2-config=PATH" "$LINENO" 5
-  fi
-
-  XML2_VER=`$LIBXML2_CONFIG --version`
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         found libxml2 version $XML2_VER" >&5
-$as_echo "        found libxml2 version $XML2_VER" >&6; }
-
-  XML2_INC=`$LIBXML2_CONFIG --cflags`
-  XML2_LIB=`$LIBXML2_CONFIG --libs`
-  XML2_ENABLED=-DUSE_LIBXML2
-
-  if test "$SOS_REQUESTED" = "yes" ; then
-    SOS_SVR_ENABLED="-DUSE_SOS_SVR"
-  fi
-  if test "$KML_REQUESTED" = "yes" ; then
-    KML_ENABLED="-DUSE_KML"
-  fi
-fi
-
-XML2_INC=$XML2_INC
-
-XML2_LIB=$XML2_LIB
-
-
-ALL_INC="$XML2_INC $ALL_INC"
-ALL_LIB="$XML2_LIB $ALL_LIB"
-
-
-WMS_LYR_ENABLED=$WMS_LYR_ENABLED
-
-WFS_LYR_ENABLED=$WFS_LYR_ENABLED
-
-SOS_SVR_ENABLED=$SOS_SVR_ENABLED
-
-
-ALL_ENABLED="$WMS_LYR_ENABLED $WFS_LYR_ENABLED $SOS_SVR_ENABLED $XML2_ENABLED $CURL_ENABLED $KML_ENABLED $ALL_ENABLED"
-
-
-
-
-# Check whether --with-xml-mapfile was given.
-if test "${with_xml_mapfile+set}" = set; then :
-  withval=$with_xml_mapfile; XMLMAPFILE_REQUESTED=""
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if xml-mapfile is requested" >&5
-$as_echo_n "checking if xml-mapfile is requested... " >&6; }
-XMLMAPFILE_ENABLED=""
-
-if test "$with_xml_mapfile" = "yes"; then
-  XMLMAPFILE_ENABLED="-DUSE_XMLMAPFILE"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes.. xslt and exslt support needed" >&5
-$as_echo "yes.. xslt and exslt support needed" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-ALL_ENABLED="$XMLMAPFILE_ENABLED $ALL_ENABLED"
-
-
-
-# Check whether --with-xslt was given.
-if test "${with_xslt+set}" = set; then :
-  withval=$with_xslt; XSLT_DIR=$withval
-else
-  XSLT_DIR=''
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if xslt is requested" >&5
-$as_echo_n "checking if xslt is requested... " >&6; }
-XSLT_LIB=''
-
-if test -z "$XMLMAPFILE_ENABLED" -a \( "$with_xslt" = "no" -o "$with_xslt" = ""  \); then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-else
-
-  if test "$XSLT_DIR" = "yes" -o "$XSLT_DIR" = ""; then
-     XSLT_DIR="/usr"
-  fi
-
-  test -f $XSLT_DIR/include/libxslt/xslt.h && XSLT_INCDIR="$XSLT_DIR/include"
-  test -f $XSLT_DIR/lib/libxslt.so && XSLT_LIBDIR="$XSLT_DIR/lib"
-  test -f $XSLT_DIR/lib64/libxslt.so && XSLT_LIBDIR="$XSLT_DIR/lib64"
-  test -f $XSLT_DIR/lib/x86_64-linux-gnu/libxslt.so && XSLT_LIBDIR="$XSLT_DIR/lib/x86_64-linux-gnu"
-
-  if test -n "$XSLT_LIBDIR" -a -n "$XSLT_INCDIR" ; then
-                XSLT_ENABLED="-DUSE_XSLT"
-    XSLT_INC="-I$XSLT_INCDIR"
-    XSLT_LIB="-L$XSLT_LIBDIR -lxslt"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: using xslt from $XSLT_LIB ($XSLT_ENABLED)" >&5
-$as_echo "using xslt from $XSLT_LIB ($XSLT_ENABLED)" >&6; }
-
-  if test ""$XSLT_DIR"" != "/usr/lib"; then
-
-  if test -z ""$XSLT_DIR"" || echo ""$XSLT_DIR"" | grep '^/' >/dev/null ; then
-    ai_p=""$XSLT_DIR""
-  else
-    ai_p="`pwd`/"$XSLT_DIR""
-  fi
-
-
-  unique=`echo $ac_n "$ai_p$ac_c" | tr -c -d a-zA-Z0-9`
-  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "LIBPATH$unique=set"
-
-      EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
-        RPATHS="$RPATHS ${ld_runpath_switch}$ai_p"
-
-  fi
-
-  fi
-
-
-  else
-    as_fn_error $? "'$XSLT_DIR' not a valid installation path of xslt." "$LINENO" 5
-  fi
-fi
-
-XSLT_ENABLED=$XSLT_ENABLED
-
-XSLT_INC=$XSLT_INC
-
-XSLT_LIB=$XSLT_LIB
-
-
-ALL_ENABLED="$XSLT_ENABLED $ALL_ENABLED"
-ALL_INC="$XSLT_INC $ALL_INC"
-ALL_LIB="$XSLT_LIB $ALL_LIB"
-
-
-
-# Check whether --with-exslt was given.
-if test "${with_exslt+set}" = set; then :
-  withval=$with_exslt; EXSLT_DIR=$withval
-else
-  EXSLT_DIR=''
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if exslt is requested" >&5
-$as_echo_n "checking if exslt is requested... " >&6; }
-EXSLT_LIB=''
-
-if test -z "$XMLMAPFILE_ENABLED" -a \( "$with_exslt" = "no" -o "$with_exslt" = ""  \); then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-else
-
-  if test "$EXSLT_DIR" = "yes" -o "$EXSLT_DIR" = ""; then
-     EXSLT_DIR="/usr"
-  fi
-
-  test -f $EXSLT_DIR/include/libexslt/exslt.h && EXSLT_INCDIR="$EXSLT_DIR/include"
-  test -f $EXSLT_DIR/lib/libexslt.so && EXSLT_LIBDIR="$EXSLT_DIR/lib"
-  test -f $EXSLT_DIR/lib64/libexslt.so && EXSLT_LIBDIR="$EXSLT_DIR/lib64"
-  test -f $EXSLT_DIR/lib/x86_64-linux-gnu/libexslt.so && EXSLT_LIBDIR="$EXSLT_DIR/lib/x86_64-linux-gnu"
-
-  if test -n "$EXSLT_LIBDIR" -a -n "$EXSLT_INCDIR" ; then
-                EXSLT_ENABLED="-DUSE_EXSLT"
-    EXSLT_INC="-I$EXSLT_INCDIR"
-    EXSLT_LIB="-L$EXSLT_LIBDIR -lexslt"
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: using exslt from $EXSLT_LIB ($EXSLT_ENABLED)" >&5
-$as_echo "using exslt from $EXSLT_LIB ($EXSLT_ENABLED)" >&6; }
-
-  if test ""$EXSLT_DIR"" != "/usr/lib"; then
-
-  if test -z ""$EXSLT_DIR"" || echo ""$EXSLT_DIR"" | grep '^/' >/dev/null ; then
-    ai_p=""$EXSLT_DIR""
-  else
-    ai_p="`pwd`/"$EXSLT_DIR""
-  fi
-
-
-  unique=`echo $ac_n "$ai_p$ac_c" | tr -c -d a-zA-Z0-9`
-  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "LIBPATH$unique=set"
-
-      EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
-        RPATHS="$RPATHS ${ld_runpath_switch}$ai_p"
-
-  fi
-
-  fi
-
-  else
-    as_fn_error $? "'$EXSLT_DIR' not a valid installation path of exslt." "$LINENO" 5
-  fi
-fi
-
-EXSLT_ENABLED=$EXSLT_ENABLED
-
-EXSLT_INC=$EXSLT_INC
-
-EXSLT_LIB=$EXSLT_LIB
-
-
-ALL_ENABLED="$EXSLT_ENABLED $ALL_ENABLED"
-ALL_INC="$EXSLT_INC $ALL_INC"
-ALL_LIB="$EXSLT_LIB $ALL_LIB"
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if FriBidi support requested" >&5
-$as_echo_n "checking if FriBidi support requested... " >&6; }
-
-
-# Check whether --with-fribidi-config was given.
-if test "${with_fribidi_config+set}" = set; then :
-  withval=$with_fribidi_config;
-fi
-
-
-if test "$with_fribidi_config" = "no" -o "$with_fribidi_config" = "" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  FRIBIDI_CONFIG="no"
-
-elif test "$with_fribidi_config" = "yes" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  # Extract the first word of "fribidi-config", so it can be a program name with args.
-set dummy fribidi-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_FRIBIDI_CONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $FRIBIDI_CONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_FRIBIDI_CONFIG="$FRIBIDI_CONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_FRIBIDI_CONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_FRIBIDI_CONFIG" && ac_cv_path_FRIBIDI_CONFIG="no"
-  ;;
-esac
-fi
-FRIBIDI_CONFIG=$ac_cv_path_FRIBIDI_CONFIG
-if test -n "$FRIBIDI_CONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FRIBIDI_CONFIG" >&5
-$as_echo "$FRIBIDI_CONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  FRIBIDI_PKG_CONFIG="no"
-  if test "$FRIBIDI_CONFIG" = "no" -a "$PKG_CONFIG" != "no" ; then
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for fribidi pkg-config path" >&5
-$as_echo_n "checking for fribidi pkg-config path... " >&6; }
-     `$PKG_CONFIG --silence-errors --libs fribidi >> /dev/null`
-     if test $? -eq 0 ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-        FRIBIDI_PKG_CONFIG="yes"
-        FRIBIDI_CONFIG="fribidi"
-     else
-       { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-     fi
-  fi
-else
-  FRIBIDI_CONFIG=$with_fribidi_config
-fi
-
-if test "$FRIBIDI_CONFIG" = "no" ; then
-  FRIBIDI_ENABLED=
-  FRIBIDI_INC=
-  FRIBIDI_LIB=
-else
-  if test "$FRIBIDI_PKG_CONFIG" = "yes" -o ${FRIBIDI_CONFIG: -3} = ".pc" ; then
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, user supplied path to fribidi.pc" >&5
-$as_echo "yes, user supplied path to fribidi.pc" >&6; }
-     FRIBIDI_ENABLED="-DUSE_FRIBIDI -DUSE_FRIBIDI2"
-     FRIBIDI_LIB=`$PKG_CONFIG --libs $FRIBIDI_CONFIG`
-     FRIBIDI_INC=`$PKG_CONFIG --cflags $FRIBIDI_CONFIG`
-  else
-     if test -f "$FRIBIDI_CONFIG" -a -x "$FRIBIDI_CONFIG" ; then
-       { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, user supplied fribidi-config ($FRIBIDI_CONFIG)" >&5
-$as_echo "yes, user supplied fribidi-config ($FRIBIDI_CONFIG)" >&6; }
-     else
-       as_fn_error $? "'$FRIBIDI_CONFIG' is not an executable.  Make sure you use --with-fribidi-config=/path/to/fribidi-config or fribidi.pc" "$LINENO" 5
-     fi
-     FRIBIDI_ENABLED=-DUSE_FRIBIDI
-     FRIBIDI_LIB=`$FRIBIDI_CONFIG --libs`
-     FRIBIDI_INC=`$FRIBIDI_CONFIG --cflags`
-  fi
-fi
-
-FRIBIDI_ENABLED=$FRIBIDI_ENABLED
-
-FRIBIDI_INC=$FRIBIDI_INC
-
-FRIBIDI_LIB=$FRIBIDI_LIB
-
-
-ALL_ENABLED="$FRIBIDI_ENABLED $ALL_ENABLED"
-ALL_INC="$FRIBIDI_INC $ALL_INC"
-ALL_LIB="$FRIBIDI_LIB $ALL_LIB"
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if Cairo support requested" >&5
-$as_echo_n "checking if Cairo support requested... " >&6; }
-
-
-# Check whether --with-cairo was given.
-if test "${with_cairo+set}" = set; then :
-  withval=$with_cairo;
-fi
-
-
-if test "$with_cairo" = "no" -o "$with_cairo" = "" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  CAIRO_CONFIG="no"
-
-elif test "$with_cairo" = "yes" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  if test "$PKG_CONFIG" != "no" ; then
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cairo pkg-config path" >&5
-$as_echo_n "checking for cairo pkg-config path... " >&6; }
-     `$PKG_CONFIG --silence-errors -- cairo cairo-ft cairo-svg cairo-pdf cairo-png >> /dev/null`
-     if test $? -eq 0 ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-        CAIRO_CONFIG="cairo cairo-ft cairo-svg cairo-pdf cairo-png"
-     else
-       as_fn_error $? "cairo support requested, but not found.Try installing the cairo development headers" "$LINENO" 5
-     fi
-  else
-    as_fn_error $? "pkg-config required for cairo support, try using --with-pkg-config=PATH" "$LINENO" 5
-  fi
-else
-  CAIRO_CONFIG=$with_cairo
-fi
-
-if test "$CAIRO_CONFIG" = "no" ; then
-  CAIRO_ENABLED=
-  CAIRO_INC=
-  CAIRO_LIB=
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, pkg-config defaults, or user supplied path to cairo.pc" >&5
-$as_echo "yes, pkg-config defaults, or user supplied path to cairo.pc" >&6; }
-  CAIRO_ENABLED="-DUSE_CAIRO"
-  CAIRO_LIB=`$PKG_CONFIG --libs $CAIRO_CONFIG`
-  CAIRO_INC=`$PKG_CONFIG --cflags $CAIRO_CONFIG`
-fi
-
-CAIRO_ENABLED=$CAIRO_ENABLED
-
-CAIRO_INC=$CAIRO_INC
-
-CAIRO_LIB=$CAIRO_LIB
-
-
-ALL_ENABLED="$CAIRO_ENABLED $ALL_ENABLED"
-ALL_INC="$CAIRO_INC $ALL_INC"
-ALL_LIB="$CAIRO_LIB $ALL_LIB"
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if Cairo svg parser support requested" >&5
-$as_echo_n "checking if Cairo svg parser support requested... " >&6; }
-
-LIBSVG_CAIRO_ENABLED=$LIBSVG_CAIRO_ENABLED
-
-LIBSVG_CAIRO_INC=$LIBSVG_CAIRO_INC
-
-LIBSVG_CAIRO_LIB=$LIBSVG_CAIRO_LIB
-
-
-
-# Check whether --with-libsvg-cairo was given.
-if test "${with_libsvg_cairo+set}" = set; then :
-  withval=$with_libsvg_cairo;
-fi
-
-
-if test "$with_libsvg_cairo" = "no" -o "$with_libsvg_cairo" = "" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  LIBSVG_CAIRO_CONFIG="no"
-
-elif test "$with_libsvg_cairo" = "yes" ; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  if test "$PKG_CONFIG" != "no" ; then
-     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for libsvg-cairo pkg-config path" >&5
-$as_echo_n "checking for libsvg-cairo pkg-config path... " >&6; }
-     `$PKG_CONFIG --silence-errors -- libsvg-cairo >> /dev/null`
-     if test $? -eq 0 ; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-        LIBSVG_CAIRO_CONFIG="libsvg-cairo"
-     else
-       as_fn_error $? "libsvg-cairo support requested, but not found." "$LINENO" 5
-     fi
-  else
-    as_fn_error $? "pkg-config required for libsvg-cairo support, try using --with-pkg-config=PATH" "$LINENO" 5
-  fi
-else
-  LIBSVG_CAIRO_CONFIG=$with_libsvg_cairo
-fi
-
-if test "$LIBSVG_CAIRO_CONFIG" = "no" ; then
-  LIBSVG_CAIRO_ENABLED=
-  LIBSVG_CAIRO_INC=
-  LIBSVG_CAIRO_LIB=
-else
-  if test -z "$CAIRO_ENABLED"; then
-       as_fn_error $? "libsvg-cairo support requires cairo support. (hint: rerun with --with-cairo)" "$LINENO" 5
-  fi
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes, pkg-config defaults, or user supplied path to cairo.pc" >&5
-$as_echo "yes, pkg-config defaults, or user supplied path to cairo.pc" >&6; }
-  LIBSVG_CAIRO_ENABLED="-DUSE_SVG_CAIRO"
-  LIBSVG_CAIRO_LIB=`$PKG_CONFIG --libs $LIBSVG_CAIRO_CONFIG`
-  LIBSVG_CAIRO_INC=`$PKG_CONFIG --cflags $LIBSVG_CAIRO_CONFIG`
-fi
-
-LIBSVG_CAIRO_ENABLED=$LIBSVG_CAIRO_ENABLED
-
-LIBSVG_CAIRO_INC=$LIBSVG_CAIRO_INC
-
-LIBSVG_CAIRO_LIB=$LIBSVG_CAIRO_LIB
-
-
-ALL_ENABLED="$LIBSVG_CAIRO_ENABLED $ALL_ENABLED"
-ALL_INC="$LIBSVG_CAIRO_INC $ALL_INC"
-ALL_LIB="$LIBSVG_CAIRO_LIB $ALL_LIB"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking FastCGI support" >&5
-$as_echo_n "checking FastCGI support... " >&6; }
-
-# Check whether --with-fastcgi was given.
-if test "${with_fastcgi+set}" = set; then :
-  withval=$with_fastcgi;
-fi
-
-
-if test "$with_fastcgi" = "no" -o "$with_fastcgi" = "" ; then
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: not requested." >&5
-$as_echo "not requested." >&6; }
-
-else
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: requested." >&5
-$as_echo "requested." >&6; }
-
-  if test "$with_fastcgi" = "yes" ; then
-    FASTCGI_INC=""
-    FASTCGI_LIB="-lfcgi"
-  else
-    FASTCGI_INC="-I$with_fastcgi/include -I$with_fastcgi/include/fastcgi"
-    FASTCGI_LIB="-L$with_fastcgi/lib -lfcgi"
-  fi
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FCGI_Accept in -lfcgi" >&5
-$as_echo_n "checking for FCGI_Accept in -lfcgi... " >&6; }
-if ${ac_cv_lib_fcgi_FCGI_Accept+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_check_lib_save_LIBS=$LIBS
-LIBS="-lfcgi $FASTCGI_LIB $LIBS"
-cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-/* Override any GCC internal prototype to avoid an error.
-   Use char because int might match the return type of a GCC
-   builtin and then its argument prototype would still apply.  */
-#ifdef __cplusplus
-extern "C"
-#endif
-char FCGI_Accept ();
-int
-main ()
-{
-return FCGI_Accept ();
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_link "$LINENO"; then :
-  ac_cv_lib_fcgi_FCGI_Accept=yes
-else
-  ac_cv_lib_fcgi_FCGI_Accept=no
-fi
-rm -f core conftest.err conftest.$ac_objext \
-    conftest$ac_exeext conftest.$ac_ext
-LIBS=$ac_check_lib_save_LIBS
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_fcgi_FCGI_Accept" >&5
-$as_echo "$ac_cv_lib_fcgi_FCGI_Accept" >&6; }
-if test "x$ac_cv_lib_fcgi_FCGI_Accept" = xyes; then :
-  FASTCGI_ENABLED=-DUSE_FASTCGI
-fi
-
-
-  if test "x$FASTCGI_ENABLED" = "x" ; then
-    as_fn_error $? "Unable to link against $FASTCGI_LIB" "$LINENO" 5
-  fi
-
-fi
-
-FASTCGI_ENABLED=$FASTCGI_ENABLED
-
-FASTCGI_INC=$FASTCGI_INC
-
-FASTCGI_LIB=$FASTCGI_LIB
-
-
-ALL_ENABLED="$FASTCGI_ENABLED $ALL_ENABLED"
-ALL_INC="$FASTCGI_INC $ALL_INC"
-ALL_LIB="$FASTCGI_LIB $ALL_LIB"
-
-
-# Check whether --with-apache-module was given.
-if test "${with_apache_module+set}" = set; then :
-  withval=$with_apache_module;
-else
-  with_apache_module=no
-
-fi
-
-   if test "$with_apache_module" = "yes"; then
-
-
-
-
-# Check whether --with-apxs was given.
-if test "${with_apxs+set}" = set; then :
-  withval=$with_apxs;
-else
-  with_apxs="yes"
-
-fi
-
-
-    if test "$with_apxs" = "yes"; then
-        # Extract the first word of "apxs2", so it can be a program name with args.
-set dummy apxs2; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_APXS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $APXS in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_APXS="$APXS" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_APXS="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-APXS=$ac_cv_path_APXS
-if test -n "$APXS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $APXS" >&5
-$as_echo "$APXS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-        if test -z "$APXS"; then
-            # Extract the first word of "apxs", so it can be a program name with args.
-set dummy apxs; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_APXS+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $APXS in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_APXS="$APXS" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_APXS="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-APXS=$ac_cv_path_APXS
-if test -n "$APXS"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $APXS" >&5
-$as_echo "$APXS" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-        fi
-    elif test "$with_apxs" = "no"; then
-        as_fn_error $? "apxs is required and cannot be disabled" "$LINENO" 5
-    else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apxs usability in $with_apxs" >&5
-$as_echo_n "checking for apxs usability in $with_apxs... " >&6; }
-        if test -x "$with_apxs"; then
-            APXS=$with_apxs
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-        else
-            as_fn_error $? "$with_apxs not found or not executable" "$LINENO" 5
-        fi
-    fi
-    if test -z "$APXS"; then
-        as_fn_error $? "apxs utility not found. use --with-apxs to specify its location." "$LINENO" 5
-    fi
-
-    APACHE_SBINDIR=`$APXS -q SBINDIR`
-    APACHE_BINDIR=`$APXS -q BINDIR`
-
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apachectl utility" >&5
-$as_echo_n "checking for apachectl utility... " >&6; }
-    APACHECTL=
-    if test -x "$APACHE_SBINDIR/apachectl" ; then
-      APACHECTL="$APACHE_SBINDIR/apachectl"
-    else
-      if test -x "$APACHE_SBINDIR/apache2ctl" ; then
-        APACHECTL="$APACHE_SBINDIR/apache2ctl"
-      else
-        # Extract the first word of "apachectl", so it can be a program name with args.
-set dummy apachectl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_APACHECTL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $APACHECTL in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_APACHECTL="$APACHECTL" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_APACHECTL="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-APACHECTL=$ac_cv_path_APACHECTL
-if test -n "$APACHECTL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $APACHECTL" >&5
-$as_echo "$APACHECTL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-        if test -z "$APACHECTL"; then
-          # Extract the first word of "apache2ctl", so it can be a program name with args.
-set dummy apache2ctl; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_APACHECTL+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $APACHECTL in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_APACHECTL="$APACHECTL" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_APACHECTL="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-APACHECTL=$ac_cv_path_APACHECTL
-if test -n "$APACHECTL"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $APACHECTL" >&5
-$as_echo "$APACHECTL" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-        fi
-      fi
-    fi
-
-    if test -z "$APACHECTL"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: Unable to find apachectl utility, you will not be able to restart
-                   and install module with the created Makefile" >&5
-$as_echo "Unable to find apachectl utility, you will not be able to restart
-                   and install module with the created Makefile" >&6; }
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: $APACHECTL" >&5
-$as_echo "$APACHECTL" >&6; }
-    fi
-
-    APACHE_INC=-I`$APXS -q INCLUDEDIR`
-
-    APACHE_LIBS=`$APXS -q LIBS`
-
-    APACHE_LDFLAGS=`$APXS -q LDFLAGS`
-
-    SBINDIR=`$APXS -q SBINDIR`
-    TARGET=`$APXS -q TARGET`
-    HTTPD="$SBINDIR/$TARGET"
-    HTTPD="$HTTPD"
-
-
-
-
-
-
-# Check whether --with-apr_config was given.
-if test "${with_apr_config+set}" = set; then :
-  withval=$with_apr_config;
-else
-  with_apr_config=yes
-
-fi
-
-    if test "$with_apr_config" = "yes"; then
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apr-config in default locations" >&5
-$as_echo_n "checking for apr-config in default locations... " >&6; }
-        if test -n "$APXS"; then
-            APXSFULL=`which "$APXS"`
-            APXSDIR=`dirname "$APXSFULL"`
-            if test -x "$APXSDIR/apr-config"; then
-                APRCONFIG="$APXSDIR/apr-config"
-            elif test -x "$APACHE_SBINDIR/apr-config"; then
-                APRCONFIG="$APACHE_SBINDIR/apr-config"
-            elif test -x "$APACHE_BINDIR/apr-config"; then
-                APRCONFIG="$APACHE_BINDIR/apr-config"
-            elif test -x "$APXSDIR/apr-1-config"; then
-                APRCONFIG="$APXSDIR/apr-1-config"
-            elif test -x "$APACHE_SBINDIR/apr-1-config"; then
-                APRCONFIG="$APACHE_SBINDIR/apr-1-config"
-            elif test -x "$APACHE_BINDIR/apr-1-config"; then
-                APRCONFIG="$APACHE_BINDIR/apr-1-config"
-            fi
-        fi
-        if test -z "$APRCONFIG"; then
-            # Extract the first word of "apr-config", so it can be a program name with args.
-set dummy apr-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_APRCONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $APRCONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_APRCONFIG="$APRCONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_APRCONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-APRCONFIG=$ac_cv_path_APRCONFIG
-if test -n "$APRCONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $APRCONFIG" >&5
-$as_echo "$APRCONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-        fi
-        if test -z "$APRCONFIG"; then
-            # Extract the first word of "apr-1-config", so it can be a program name with args.
-set dummy apr-1-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_APRCONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $APRCONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_APRCONFIG="$APRCONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_APRCONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-APRCONFIG=$ac_cv_path_APRCONFIG
-if test -n "$APRCONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $APRCONFIG" >&5
-$as_echo "$APRCONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-        fi
-        if test -n "$APRCONFIG"; then
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: using $APRCONFIG, use --with-apr-config=/path/to/apr-(1-)config to modify" >&5
-$as_echo "using $APRCONFIG, use --with-apr-config=/path/to/apr-(1-)config to modify" >&6; }
-        else
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5
-$as_echo "not found" >&6; }
-        fi
-    elif test "$with_apr_config" = "no"; then
-        as_fn_error $? "apr-config is required and cannot be disabled" "$LINENO" 5
-    else
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking for apr-config usability in $with_apr_config" >&5
-$as_echo_n "checking for apr-config usability in $with_apr_config... " >&6; }
-        if test -x "$with_apr_config"; then
-            APRCONFIG=$with_apr_config
-            { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-        else
-            as_fn_error $? "$with_apr_config not found or not executable" "$LINENO" 5
-        fi
-    fi
-    if test -z "$APRCONFIG"; then
-        as_fn_error $? "apr-config utility not found. use --with-apr-config to specify its location." "$LINENO" 5
-    fi
-
-    APR_CFLAGS=`$APRCONFIG --cppflags --cflags`
-
-    APR_INC=`$APRCONFIG --includes`
-
-    APR_LIBS=`$APRCONFIG --link-libtool`
-
-
-      if test -z "$APRCONFIG"; then
-         as_fn_error $? "apr-config utility not found. use --with-apr-config to specify its location." "$LINENO" 5
-      else
-         ALL_ENABLED="-DMOD_WMS_ENABLED $ALL_ENABLED"
-      fi
-   fi
-
-
-
-
-MS_DIR="`pwd`"
-MS_INC="-I$MS_DIR"
-MS_LIB="-L$MS_DIR -lmapserver"
-
-  if test ""$MS_DIR"" != "/usr/lib"; then
-
-  if test -z ""$MS_DIR"" || echo ""$MS_DIR"" | grep '^/' >/dev/null ; then
-    ai_p=""$MS_DIR""
-  else
-    ai_p="`pwd`/"$MS_DIR""
-  fi
-
-
-  unique=`echo $ac_n "$ai_p$ac_c" | tr -c -d a-zA-Z0-9`
-  cmd="echo $ac_n \"\$LIBPATH$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "LIBPATH$unique=set"
-
-      EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
-        RPATHS="$RPATHS ${ld_runpath_switch}$ai_p"
-
-  fi
-
-  fi
-
-MS_INC=$MS_INC
-
-MS_LIB=$MS_LIB
-
-
-
-# Check whether --enable-ignore-missing-data was given.
-if test "${enable_ignore_missing_data+set}" = set; then :
-  enableval=$enable_ignore_missing_data;
-fi
-
-if test "$enable_ignore_missing_data" = "yes" ; then
-
-  IGNORE_MISSING_DATA="-DIGNORE_MISSING_DATA"
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling with -DIGNORE_MISSING_DATA." >&5
-$as_echo "Compiling with -DIGNORE_MISSING_DATA." >&6; }
-fi
-IGNORE_MISSING_DATA=$IGNORE_MISSING_DATA
-
-ALL_ENABLED="$IGNORE_MISSING_DATA $ALL_ENABLED"
-
-
-# Check whether --enable-point-z-m was given.
-if test "${enable_point_z_m+set}" = set; then :
-  enableval=$enable_point_z_m;
-fi
-
-if test "$enable_point_z_m" = "yes" ; then
-
-  USE_POINT_Z_M="-DUSE_POINT_Z_M"
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling with -DUSE_POINT_Z_M." >&5
-$as_echo "Compiling with -DUSE_POINT_Z_M." >&6; }
-fi
-USE_POINT_Z_M=$USE_POINT_Z_M
-
-ALL_ENABLED="$USE_POINT_Z_M $ALL_ENABLED"
-
-
-
-# Check whether --enable-fast-nint was given.
-if test "${enable_fast_nint+set}" = set; then :
-  enableval=$enable_fast_nint;
-fi
-
-
-if test "$enable_fast_nint" = "no" ; then
-
-  USE_NINT="-DUSE_GENERIC_MS_NINT"
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling with safe MS_NINT" >&5
-$as_echo "Compiling with safe MS_NINT" >&6; }
-else
-  USE_NINT=""
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: Compiling with fast MS_NINT" >&5
-$as_echo "Compiling with fast MS_NINT" >&6; }
-fi
-USE_NINT=$USE_NINT
-
-ALL_ENABLED="$USE_NINT $ALL_ENABLED"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking compiler warnings" >&5
-$as_echo_n "checking compiler warnings... " >&6; }
-
-
-# Check whether --with-warnings was given.
-if test "${with_warnings+set}" = set; then :
-  withval=$with_warnings;
-fi
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking C_WFLAGS for maximum warnings" >&5
-$as_echo_n "checking C_WFLAGS for maximum warnings... " >&6; }
-if ${ac_cv_cflags_warn_all+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_cflags_warn_all="no, unknown"
-
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
- ac_save_CFLAGS="$CFLAGS"
-for ac_arg in "-pedantic -Wdeclaration-after-statement %        -Wall -Wdeclaration-after-statement"    "-pedantic  % -Wall"          "-xstrconst % -v"             "-std1      % -verbose -w0 -warnprotos"    "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd"    "-ansi -ansiE % -fullwarn"    "+ESlit     % +w1"            "-Xc        % -pvctl,fullmsg"    "-h conform % -h msglevel 2"    #
-do CFLAGS="$ac_save_CFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_c_try_compile "$LINENO"; then :
-  ac_cv_cflags_warn_all=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
- CFLAGS="$ac_save_CFLAGS"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cflags_warn_all" >&5
-$as_echo "$ac_cv_cflags_warn_all" >&6; }
-case ".$ac_cv_cflags_warn_all" in
-     .ok|.ok,*)  ;;
-   .|.no|.no,*)
- ;;
-   *)
-   if echo " $C_WFLAGS " | grep " $ac_cv_cflags_warn_all " 2>&1 >/dev/null
-   then { { $as_echo "$as_me:${as_lineno-$LINENO}: : C_WFLAGS does contain \$ac_cv_cflags_warn_all"; } >&5
-  (: C_WFLAGS does contain $ac_cv_cflags_warn_all) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-   else { { $as_echo "$as_me:${as_lineno-$LINENO}: : C_WFLAGS=\"\$C_WFLAGS \$ac_cv_cflags_warn_all\""; } >&5
-  (: C_WFLAGS="$C_WFLAGS $ac_cv_cflags_warn_all") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-                      C_WFLAGS="$C_WFLAGS $ac_cv_cflags_warn_all"
-   fi
- ;;
-esac
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking CXX_WFLAGS for maximum warnings" >&5
-$as_echo_n "checking CXX_WFLAGS for maximum warnings... " >&6; }
-if ${ac_cv_cxxflags_warn_all+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  ac_cv_cxxflags_warn_all="no, unknown"
-
- ac_ext=cpp
-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
-
- ac_save_CXXFLAGS="$CXXFLAGS"
-for ac_arg in "-pedantic  % -Wall"          "-xstrconst % -v"             "-std1      % -verbose -w0 -warnprotos"    "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd"    "-ansi -ansiE % -fullwarn"    "+ESlit     % +w1"            "-Xc        % -pvctl,fullmsg"    "-h conform % -h msglevel 2"    #
-do CXXFLAGS="$ac_save_CXXFLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
-   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
-/* end confdefs.h.  */
-
-int
-main ()
-{
-return 0;
-  ;
-  return 0;
-}
-_ACEOF
-if ac_fn_cxx_try_compile "$LINENO"; then :
-  ac_cv_cxxflags_warn_all=`echo $ac_arg | sed -e 's,.*% *,,'` ; break
-fi
-rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
-done
- CXXFLAGS="$ac_save_CXXFLAGS"
- ac_ext=c
-ac_cpp='$CPP $CPPFLAGS'
-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'
-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'
-ac_compiler_gnu=$ac_cv_c_compiler_gnu
-
-
-fi
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxxflags_warn_all" >&5
-$as_echo "$ac_cv_cxxflags_warn_all" >&6; }
-case ".$ac_cv_cxxflags_warn_all" in
-     .ok|.ok,*)  ;;
-   .|.no|.no,*)
- ;;
-   *)
-   if echo " $CXX_WFLAGS " | grep " $ac_cv_cxxflags_warn_all " 2>&1 >/dev/null
-   then { { $as_echo "$as_me:${as_lineno-$LINENO}: : CXX_WFLAGS does contain \$ac_cv_cxxflags_warn_all"; } >&5
-  (: CXX_WFLAGS does contain $ac_cv_cxxflags_warn_all) 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-   else { { $as_echo "$as_me:${as_lineno-$LINENO}: : CXX_WFLAGS=\"\$CXX_WFLAGS \$ac_cv_cxxflags_warn_all\""; } >&5
-  (: CXX_WFLAGS="$CXX_WFLAGS $ac_cv_cxxflags_warn_all") 2>&5
-  ac_status=$?
-  $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
-  test $ac_status = 0; }
-                      CXX_WFLAGS="$CXX_WFLAGS $ac_cv_cxxflags_warn_all"
-   fi
- ;;
-esac
-
-
-if test "$with_warnings" = "yes" ; then
-  if test "$GCC" = "yes" ; then
-    WFLAGS="-W -Wcast-align -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -Wreturn-type"
-    C_WFLAGS="$C_WFLAGS -Wmissing-declarations"
-
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: strict" >&5
-$as_echo "strict" >&6; }
-  else
-    WFLAGS=""
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
-$as_echo "disabled" >&6; }
-  fi
-
-elif test "$with_warnings" = "no" ; then
-  WFLAGS=""
-  C_WFLAGS=""
-  CXX_WFLAGS=""
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: disabled" >&5
-$as_echo "disabled" >&6; }
-
-elif test "$with_warnings" != "" ; then
-  WFLAGS="$with_warnings"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: user defined" >&5
-$as_echo "user defined" >&6; }
-fi
-
-CFLAGS="$CFLAGS $WFLAGS $C_WFLAGS"
-CXXFLAGS="$CXXFLAGS $WFLAGS $CXX_WFLAGS"
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should enable debug features..." >&5
-$as_echo "$as_me: checking whether we should enable debug features..." >&6;}
-# Check whether --enable-debug was given.
-if test "${enable_debug+set}" = set; then :
-  enableval=$enable_debug;
-fi
-
-
-if test "$enable_debug" = "yes" ; then
-    CXXFLAGS=`echo "$CXXFLAGS " | sed 's/-O[123] / /'`
-  CFLAGS=`echo "$CFLAGS " | sed 's/-O[123] / /'`
-
-  REPORT_ENABLE_DEBUG="-g "
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         Enabling debug features: -g in CFLAGS." >&5
-$as_echo "        Enabling debug features: -g in CFLAGS." >&6; }
-
-else
-  CXXFLAGS=`echo "$CXXFLAGS -DNDEBUG " | sed "s/-g //"`
-  CFLAGS=`echo "$CFLAGS -DNDEBUG " | sed "s/-g //"`
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable proj shortcuts..." >&5
-$as_echo "$as_me: checking whether to enable proj shortcuts..." >&6;}
-# Check whether --enable-proj-fastpath was given.
-if test "${enable_proj_fastpath+set}" = set; then :
-  enableval=$enable_proj_fastpath;
-fi
-
-
-if test "$enable_proj_fastpath" = "yes" ; then
-   PROJ_FASTPATH_ENABLED="-DUSE_PROJ_FASTPATHS"
-   ALL_ENABLED="$PROJ_FASTPATH_ENABLED $ALL_ENABLED"
-fi
-PROJ_FASTPATH_ENABLED=$PROJ_FASTPATH_ENABLED
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should enable mapserv CGI command-line debug arguments..." >&5
-$as_echo "$as_me: checking whether we should enable mapserv CGI command-line debug arguments..." >&6;}
-# Check whether --enable-cgi-cl-debug-args was given.
-if test "${enable_cgi_cl_debug_args+set}" = set; then :
-  enableval=$enable_cgi_cl_debug_args;
-fi
-
-
-if test "$enable_cgi_cl_debug_args" = "yes" ; then
-  DEBUG_FLAGS="$DEBUG_FLAGS -DMS_ENABLE_CGI_CL_DEBUG_ARGS"
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         Enabling (potentially insecure) mapserv CGI command-line debug arguments: -DMS_ENABLE_CGI_CL_DEBUG_ARGS." >&5
-$as_echo "        Enabling (potentially insecure) mapserv CGI command-line debug arguments: -DMS_ENABLE_CGI_CL_DEBUG_ARGS." >&6; }
-fi
-
-DEBUG_FLAGS=$DEBUG_FLAGS
-
-ALL_ENABLED="$DEBUG_FLAGS $ALL_ENABLED"
-
-
-
-# Check whether --enable-gcov was given.
-if test "${enable_gcov+set}" = set; then :
-  enableval=$enable_gcov; CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
- PHP_LD_XTRAFLAGS="$PHP_LD_XTRAFLAGS -fprofile-arcs -ftest-coverage"
-fi
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PHP/MapScript module options..." >&5
-$as_echo "$as_me: checking for PHP/MapScript module options..." >&6;}
-
-# Check whether --with-php was given.
-if test "${with_php+set}" = set; then :
-  withval=$with_php;
-else
-  with_php=no
-fi
-
-
-# Check whether --enable-internal-ld-detect was given.
-if test "${enable_internal_ld_detect+set}" = set; then :
-  enableval=$enable_internal_ld_detect;
-fi
-
-
-if test "$with_php" != "no" ; then
-  if test -d "$with_php"; then
-      as_fn_error $? "--with-php now expects an optional path to php-config, not a directory" "$LINENO" 5
-  fi
-  if test "$with_php" == "yes" ; then
-      # Extract the first word of "php-config", so it can be a program name with args.
-set dummy php-config; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PHPCONFIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PHPCONFIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PHPCONFIG="$PHPCONFIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PHPCONFIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path_PHPCONFIG" && ac_cv_path_PHPCONFIG="no"
-  ;;
-esac
-fi
-PHPCONFIG=$ac_cv_path_PHPCONFIG
-if test -n "$PHPCONFIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PHPCONFIG" >&5
-$as_echo "$PHPCONFIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-      if test "x$PHPCONFIG" == "xno"; then
-         as_fn_error $? "php-config not found on path, please give its full location" "$LINENO" 5
-      fi
-  else
-      PHPCONFIG="$with_php"
-  fi
-  if test ! -f "$PHPCONFIG"; then
-      as_fn_error $? "$PHPCONFIG not found" "$LINENO" 5
-  fi
-
-  PHPINCDIR=`$PHPCONFIG --include-dir`
-
-          { $as_echo "$as_me:${as_lineno-$LINENO}: checking for location of php_config.h" >&5
-$as_echo_n "checking for location of php_config.h... " >&6; }
-    test -f "$PHPINCDIR/main/php_config.h" && PHP_CONFIG_H="$PHPINCDIR/main/php_config.h"
-
-  if test -n "$PHP_CONFIG_H" ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PHP_CONFIG_H" >&5
-$as_echo "$PHP_CONFIG_H" >&6; }
-  else
-    as_fn_error $? "
-!!! Could not find php_config.h and php_version.h in $PHPINCDIR.          !!!
-!!! Has PHP been installed yet?                                      !!!" "$LINENO" 5
-  fi
-
-
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we have PHP 5.2.0+" >&5
-$as_echo_n "checking if we have PHP 5.2.0+... " >&6; }
-  PHP_VERSION=`$PHPCONFIG --vernum`
-  if test -z "$PHP_VERSION" || test $PHP_VERSION -lt 50200; then
-    as_fn_error $? "
-!!! PHP MapScript now requires PHP 5.2.0 or more recent.              !!!
-!!! Support for PHP3 has been dropped after MapServer version 3.5.    !!!
-!!! Support for PHP4 has been dropped after MapServer version 5.6.    !!!" "$LINENO" 5
-  else
-     { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-  fi
-
-          { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we should use PHP's regex" >&5
-$as_echo_n "checking whether we should use PHP's regex... " >&6; }
-  if test -n "`grep 'define REGEX 1' $PHP_CONFIG_H`"  ; then
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-
-            test -f "$PHPINCDIR/regex/regex_extra.h" && PHP_NO_SOURCE="1"
-        if test -n "$PHP_NO_SOURCE" ; then
-                    USE_PHP_REGEX="-DUSE_PHP_REGEX"
-          PHP_REGEX_INC="-I$PHPINCDIR"
-          PHP_REGEX_OBJ=php_regex.lo
-          { $as_echo "$as_me:${as_lineno-$LINENO}: result:         found regex_extra.h - building PHP MapScript with PHP's bundled regex " >&5
-$as_echo "        found regex_extra.h - building PHP MapScript with PHP's bundled regex " >&6; }
-        else
-                    test -f "$PHPINCDIR/ext/ereg/regex/regex.h" && PHP_NO_SOURCE="1"
-          if test -n "$PHP_NO_SOURCE" ; then
-                    USE_PHP_REGEX="-DUSE_PHP_REGEX"
-          PHP_REGEX_INC="-I$PHPINCDIR/ext/ereg/"
-          PHP_REGEX_OBJ=php_regex.lo
-          { $as_echo "$as_me:${as_lineno-$LINENO}: result:         found regex.h - building PHP MapScript with PHP's bundled regex " >&5
-$as_echo "        found regex.h - building PHP MapScript with PHP's bundled regex " >&6; }
-          else
-            as_fn_error $? "
-!!! PHP uses its bundled regex library but regex/regex_extra.h (PHP <=5.2) or !!!
-!!! ext/ereg/regex/regex.h (PHP >=5.3) cannot be found.                                  !!!" "$LINENO" 5
-          fi
-	fi
-
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-  fi
-
-
-  PHP_MAPSCRIPT="php_mapscript"
-  PHP_VERSION_FLAG="-DPHP_VERSION_ID=$PHP_VERSION"
-
-  PHPCONFIG=$PHPCONFIG
-
-  PHP_REGEX_INC=$PHP_REGEX_INC
-
-  PHP_REGEX_OBJ=$PHP_REGEX_OBJ
-
-  USE_PHP_REGEX=$USE_PHP_REGEX
-
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         PHP/MapScript module configured." >&5
-$as_echo "        PHP/MapScript module configured." >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         PHP/MapScript module not configured." >&5
-$as_echo "        PHP/MapScript module not configured." >&6; }
-fi
-
-PHP_MAPSCRIPT=$PHP_MAPSCRIPT
-
-
-
-if test "x$LD_SHARED" = "x" ; then
-
-	echo 'void f(){}' > conftest.c
-	if test -z "`${CC} -fPIC -c conftest.c 2>&1`"; then
-	  C_PIC=-fPIC
-	else
-	  C_PIC=
-	fi
-	rm -f conftest*
-
-	C_PIC=$C_PIC
-
-
-
-
-  echo 'void g(); int main(){ g(); return 0; }' > conftest1.c
-
-  echo '#include <stdio.h>' > conftest2.c
-  echo 'void g(); void g(){printf("");}' >> conftest2.c
-  ${CC} ${C_PIC} -c conftest2.c
-  SO_EXT="so"
-  SO_COMMAND_NAME="-soname"
-  export SO_EXT
-  export SO_COMMAND_NAME
-  LD_SHARED="/bin/true"
-  if test ! -z "`uname -a | grep IRIX`" ; then
-    IRIX_ALL=-all
-  else
-    IRIX_ALL=
-  fi
-
-
-# Check whether --with-ld-shared was given.
-if test "${with_ld_shared+set}" = set; then :
-  withval=$with_ld_shared;
-fi
-
-
-      if test "$with_ld_shared" != "" -a "$with_ld_shared" != "yes"; then
-    if test "$with_ld_shared" = "no" ; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: user disabled shared library support." >&5
-$as_echo "user disabled shared library support." >&6; }
-    else
-      { $as_echo "$as_me:${as_lineno-$LINENO}: result: using user supplied .so link command ... $with_ld_shared" >&5
-$as_echo "using user supplied .so link command ... $with_ld_shared" >&6; }
-    fi
-    LD_SHARED="$with_ld_shared"
-  fi
-
-    if test ! -z "`uname -a | grep CYGWIN`" \
-        -a "$LD_SHARED" = "/bin/true" ; then
-    if test -z "`gcc -shared conftest2.o -o libconftest.dll`" ; then
-      if test -z "`${CC} conftest1.c -L./ -lconftest -o conftest1 2>&1`"; then
-        LD_LIBRARY_PATH_OLD="$LD_LIBRARY_PATH"
-        if test -z "$LD_LIBRARY_PATH" ; then
-          LD_LIBRARY_PATH="`pwd`"
-        else
-          LD_LIBRARY_PATH="`pwd`:$LD_LIBRARY_PATH"
-        fi
-        export LD_LIBRARY_PATH
-        if test -z "`./conftest1 2>&1`" ; then
-          echo "checking for Cygwin gcc -shared ... yes"
-          LD_SHARED="c++ -shared"
-          SO_EXT="dll"
-        fi
-        LD_LIBRARY_PATH="$LD_LIBRARY_PATH_OLD"
-      fi
-    fi
-  fi
-
-
-    if test ! -z "`uname | grep Darwin`" \
-          -a "$LD_SHARED" = "/bin/true" ; then
-    if test -z "`${CXX} -dynamiclib conftest2.o -o libconftest.so 2>&1`" ; then
-      ${CC} -c conftest1.c
-      if test -z "`${CXX} conftest1.o libconftest.so -o conftest1 2>&1`"; then
-        DYLD_LIBRARY_PATH_OLD="$DYLD_LIBRARY_PATH"
-        if test -z "$DYLD_LIBRARY_PATH" ; then
-          DYLD_LIBRARY_PATH="`pwd`"
-        else
-          DYLD_LIBRARY_PATH="`pwd`:$DYLD_LIBRARY_PATH"
-        fi
-        export DYLD_LIBRARY_PATH
-        if test -z "`./conftest1 2>&1`" ; then
-          echo "checking for ${CXX} -dynamiclib ... yes"
-          LD_SHARED="${CXX} -dynamiclib -single_module -flat_namespace -undefined suppress"
-	  SO_EXT=dylib
-          SO_COMMAND_NAME='-dylib_install_name'
-        fi
-        DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH_OLD"
-      fi
-      rm -f conftest1.o
-    fi
-  fi
-
-  if test "$LD_SHARED" = "/bin/true" \
-	-a -z "`${CXX} -shared $IRIX_ALL conftest2.o -o libconftest.so 2>&1|grep -v WARNING`" ; then
-    if test -z "`${CC} conftest1.c libconftest.so -o conftest1 2>&1`"; then
-      LD_LIBRARY_PATH_OLD="$LD_LIBRARY_PATH"
-      if test -z "$LD_LIBRARY_PATH" ; then
-        LD_LIBRARY_PATH="`pwd`"
-      else
-        LD_LIBRARY_PATH="`pwd`:$LD_LIBRARY_PATH"
-      fi
-      export LD_LIBRARY_PATH
-      if test -z "`./conftest1 2>&1`" ; then
-        echo "checking for ${CXX} -shared ... yes"
-        LD_SHARED="${CXX} -shared $IRIX_ALL"
-      else
-        echo "checking for ${CXX} -shared ... no(3)"
-      fi
-      LD_LIBRARY_PATH="$LD_LIBRARY_PATH_OLD"
-    else
-      echo "checking for ${CXX} -shared ... no(2)"
-    fi
-  else
-    if test "$LD_SHARED" = "/bin/true" ; then
-      echo "checking for ${CXX} -shared ... no(1)"
-    fi
-  fi
-
-  if test "$LD_SHARED" = "/bin/true" \
-          -a -z "`ld -shared conftest2.o -o libconftest.so 2>&1`" ; then
-    if test -z "`${CC} conftest1.c libconftest.so -o conftest1 2>&1`"; then
-      LD_LIBRARY_PATH_OLD="$LD_LIBRARY_PATH"
-      if test -z "$LD_LIBRARY_PATH" ; then
-        LD_LIBRARY_PATH="`pwd`"
-      else
-        LD_LIBRARY_PATH="`pwd`:$LD_LIBRARY_PATH"
-      fi
-      export LD_LIBRARY_PATH
-      if test -z "`./conftest1 2>&1`" ; then
-        echo "checking for ld -shared ... yes"
-        LD_SHARED="ld -shared"
-      fi
-      LD_LIBRARY_PATH="$LD_LIBRARY_PATH_OLD"
-    fi
-  fi
-
-  if test "$LD_SHARED" = "/bin/true" ; then
-    echo "checking for ld -shared ... no"
-    if test ! -x /bin/true ; then
-      LD_SHARED=/usr/bin/true
-    fi
-  fi
-  if test "$LD_SHARED" = "no" ; then
-    if test -x /bin/true ; then
-      LD_SHARED=/bin/true
-    else
-      LD_SHARED=/usr/bin/true
-    fi
-  fi
-
-  rm -f conftest* libconftest*
-
-  LD_SHARED=$LD_SHARED
-
-  SO_EXT=$SO_EXT
-
-  SO_COMMAND_NAME=$SO_COMMAND_NAME
-
-
-fi
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if --with-java-include-os-name specified" >&5
-$as_echo_n "checking if --with-java-include-os-name specified... " >&6; }
-
-# Check whether --with-java-include-os-name was given.
-if test "${with_java_include_os_name+set}" = set; then :
-  withval=$with_java_include_os_name;
-fi
-
-if test -n "${with_java_include_os_name}" ; then
-OS_INCLUDE_DIR="${with_java_include_os_name}"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes ($OS_INCLUDE_DIR)" >&5
-$as_echo "yes ($OS_INCLUDE_DIR)" >&6; }
-else
-OUR_OSNAME=`uname -s`
-case "${OUR_OSNAME}" in
-[Ll]inux) OS_INCLUDE_DIR="linux" ;;
-[sS]olaris*) OS_INCLUDE_DIR="solaris" ;;
-[sS]unOS*) OS_INCLUDE_DIR="solaris" ;;
-[Ww]in*) OS_INCLUDE_DIR="win32" ;;
-*) OS_INCLUDE_DIR="linux" ;;
-esac
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no, autodetected $OS_INCLUDE_DIR" >&5
-$as_echo "no, autodetected $OS_INCLUDE_DIR" >&6; }
-fi
-
-if test -z $JAVAC; then
-   JAVAC="javac"
-fi
-
-
-JNI_INCLUDE_DIRS=""
-
-test "x$JAVAC" = x && as_fn_error $? "'\$JAVAC' undefined" "$LINENO" 5
-# Extract the first word of "$JAVAC", so it can be a program name with args.
-set dummy $JAVAC; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path__ACJNI_JAVAC+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $_ACJNI_JAVAC in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path__ACJNI_JAVAC="$_ACJNI_JAVAC" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path__ACJNI_JAVAC="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  test -z "$ac_cv_path__ACJNI_JAVAC" && ac_cv_path__ACJNI_JAVAC="no"
-  ;;
-esac
-fi
-_ACJNI_JAVAC=$ac_cv_path__ACJNI_JAVAC
-if test -n "$_ACJNI_JAVAC"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_ACJNI_JAVAC" >&5
-$as_echo "$_ACJNI_JAVAC" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-if test "x$_ACJNI_JAVAC" = xno; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: $JAVAC could not be found in path" >&5
-$as_echo "$JAVAC could not be found in path" >&6; }
-else
-
-# find the include directory relative to the javac executable
-_cur=""$_ACJNI_JAVAC""
-while ls -ld "$_cur" 2>/dev/null | grep " -> " >/dev/null; do
-        { $as_echo "$as_me:${as_lineno-$LINENO}: checking symlink for $_cur" >&5
-$as_echo_n "checking symlink for $_cur... " >&6; }
-        _slink=`ls -ld "$_cur" | sed 's/.* -> //'`
-        case "$_slink" in
-        /*) _cur="$_slink";;
-        # 'X' avoids triggering unwanted echo options.
-        *) _cur=`echo "X$_cur" | sed -e 's/^X//' -e 's:[^/]*$::'`"$_slink";;
-        esac
-        { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cur" >&5
-$as_echo "$_cur" >&6; }
-done
-_ACJNI_FOLLOWED="$_cur"
-
-   _JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[^/]*$::'`
-   case "$host_os" in
-           darwin*)        _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[^/]*$::'`
-                           _JINC="$_JTOPDIR/Headers";;
-           *)              _JINC="$_JTOPDIR/include";;
-   esac
-   $as_echo "$as_me:${as_lineno-$LINENO}: _JTOPDIR=$_JTOPDIR" >&5
-   $as_echo "$as_me:${as_lineno-$LINENO}: _JINC=$_JINC" >&5
-
-   # On Mac OS X 10.6.4, jni.h is a symlink:
-   # /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/jni.h
-   # -> ../../CurrentJDK/Headers/jni.h.
-   if test -f "$_JINC/jni.h" || test -L "$_JINC/jni.h"; then
-           JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JINC"
-   else
-           _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[^/]*$::'`
-           if test -f "$_JTOPDIR/include/jni.h"; then
-                   JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include"
-           else
-                   as_fn_error $? "cannot find java include files" "$LINENO" 5
-           fi
-   fi
-
-   # get the likely subdirectories for system specific java includes
-   case "$host_os" in
-   bsdi*)          _JNI_INC_SUBDIRS="bsdos";;
-   linux*)         _JNI_INC_SUBDIRS="linux genunix";;
-   osf*)           _JNI_INC_SUBDIRS="alpha";;
-   solaris*)       _JNI_INC_SUBDIRS="solaris";;
-   mingw*)		_JNI_INC_SUBDIRS="win32";;
-   cygwin*)	_JNI_INC_SUBDIRS="win32";;
-   *)              _JNI_INC_SUBDIRS="genunix";;
-   esac
-
-   # add any subdirectories that are present
-   for JINCSUBDIR in $_JNI_INC_SUBDIRS
-   do
-       if test -d "$_JTOPDIR/include/$JINCSUBDIR"; then
-            JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include/$JINCSUBDIR"
-       fi
-   done
-fi
-
-for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
-do
-   JAVA_INCLUDE="$JAVA_INCLUDE -I$JNI_INCLUDE_DIR"
-done
-JAVA_INCLUDE=$JAVA_INCLUDE
-
-
-
-
-
-# Check whether --enable-python-mapscript was given.
-if test "${enable_python_mapscript+set}" = set; then :
-  enableval=$enable_python_mapscript;
-else
-  enable_python_mapscript=no
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we should build python mapscript" >&5
-$as_echo_n "checking if we should build python mapscript... " >&6; }
-if test "$enable_python_mapscript" = "yes" ; then
-
-        # Ubuntu has swig 2.0 as /usr/bin/swig2.0
-        for ac_prog in swig swig2.0
-do
-  # Extract the first word of "$ac_prog", so it can be a program name with args.
-set dummy $ac_prog; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_SWIG+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $SWIG in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_SWIG="$SWIG" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_SWIG="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-SWIG=$ac_cv_path_SWIG
-if test -n "$SWIG"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG" >&5
-$as_echo "$SWIG" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-  test -n "$SWIG" && break
-done
-
-        if test -z "$SWIG" ; then
-                :
-        elif test -n "2.0.0" ; then
-                { $as_echo "$as_me:${as_lineno-$LINENO}: checking SWIG version" >&5
-$as_echo_n "checking SWIG version... " >&6; }
-                swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`
-                { $as_echo "$as_me:${as_lineno-$LINENO}: result: $swig_version" >&5
-$as_echo "$swig_version" >&6; }
-                if test -n "$swig_version" ; then
-                        # Calculate the required version number components
-                        required=2.0.0
-                        required_major=`echo $required | sed 's/[^0-9].*//'`
-                        if test -z "$required_major" ; then
-                                required_major=0
-                        fi
-                        required=`echo $required | sed 's/[0-9]*[^0-9]//'`
-                        required_minor=`echo $required | sed 's/[^0-9].*//'`
-                        if test -z "$required_minor" ; then
-                                required_minor=0
-                        fi
-                        required=`echo $required | sed 's/[0-9]*[^0-9]//'`
-                        required_patch=`echo $required | sed 's/[^0-9].*//'`
-                        if test -z "$required_patch" ; then
-                                required_patch=0
-                        fi
-                        # Calculate the available version number components
-                        available=$swig_version
-                        available_major=`echo $available | sed 's/[^0-9].*//'`
-                        if test -z "$available_major" ; then
-                                available_major=0
-                        fi
-                        available=`echo $available | sed 's/[0-9]*[^0-9]//'`
-                        available_minor=`echo $available | sed 's/[^0-9].*//'`
-                        if test -z "$available_minor" ; then
-                                available_minor=0
-                        fi
-                        available=`echo $available | sed 's/[0-9]*[^0-9]//'`
-                        available_patch=`echo $available | sed 's/[^0-9].*//'`
-                        if test -z "$available_patch" ; then
-                                available_patch=0
-                        fi
-                        # Convert the version tuple into a single number for easier comparison.
-                        # Using base 100 should be safe since SWIG internally uses BCD values
-                        # to encode its version number.
-                        required_swig_vernum=`expr $required_major \* 10000 \
-                            \+ $required_minor \* 100 \+ $required_patch`
-                        available_swig_vernum=`expr $available_major \* 10000 \
-                            \+ $available_minor \* 100 \+ $available_patch`
-
-                        if test $available_swig_vernum -lt $required_swig_vernum; then
-                                { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SWIG version >= 2.0.0 is required.  You have $swig_version." >&5
-$as_echo "$as_me: WARNING: SWIG version >= 2.0.0 is required.  You have $swig_version." >&2;}
-                                SWIG=''
-
-                        else
-                                { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SWIG library" >&5
-$as_echo_n "checking for SWIG library... " >&6; }
-                                SWIG_LIB=`$SWIG -swiglib`
-                                { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SWIG_LIB" >&5
-$as_echo "$SWIG_LIB" >&6; }
-
-                        fi
-                else
-                        { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine SWIG version" >&5
-$as_echo "$as_me: WARNING: cannot determine SWIG version" >&2;}
-                        SWIG=''
-
-                fi
-        fi
-
-
-  if test -z $SWIG; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: swig not found, you will not be able to build/update wrappers" >&5
-$as_echo "$as_me: WARNING: swig not found, you will not be able to build/update wrappers" >&2;}
-  fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if python path is provided" >&5
-$as_echo_n "checking if python path is provided... " >&6; }
-
-
-# Check whether --with-python was given.
-if test "${with_python+set}" = set; then :
-  withval=$with_python;
-else
-  with_python=yes
-fi
-
-
-if test -n "$with_python" -a "$with_python" != "yes" ; then
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
-   if test -x "$with_python"; then
-      PYTHON=$with_python
-   else
-      as_fn_error $? "$with_python does not seem to be an executable" "$LINENO" 5
-   fi
-else
-   { $as_echo "$as_me:${as_lineno-$LINENO}: result: using system default" >&5
-$as_echo "using system default" >&6; }
-   # Extract the first word of "python", so it can be a program name with args.
-set dummy python; ac_word=$2
-{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
-$as_echo_n "checking for $ac_word... " >&6; }
-if ${ac_cv_path_PYTHON+:} false; then :
-  $as_echo_n "(cached) " >&6
-else
-  case $PYTHON in
-  [\\/]* | ?:[\\/]*)
-  ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path.
-  ;;
-  *)
-  as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    for ac_exec_ext in '' $ac_executable_extensions; do
-  if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then
-    ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext"
-    $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5
-    break 2
-  fi
-done
-  done
-IFS=$as_save_IFS
-
-  ;;
-esac
-fi
-PYTHON=$ac_cv_path_PYTHON
-if test -n "$PYTHON"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5
-$as_echo "$PYTHON" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
-fi
-
-
-   if test -z "$PYTHON"; then
-      as_fn_error $? "no python found on path" "$LINENO" 5
-   fi
-fi
-PYTHON=$PYTHON
-
-
-  PYTHON_MAPSCRIPT="python_mapscript"
-
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         Python/MapScript module configured." >&5
-$as_echo "        Python/MapScript module configured." >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:         Python/MapScript module not configured." >&5
-$as_echo "        Python/MapScript module not configured." >&6; }
-fi
-
-PYTHON_MAPSCRIPT=$PYTHON_MAPSCRIPT
-
-
-OS_INCLUDE_DIR=$OS_INCLUDE_DIR
-
-
-
-ALL_ENABLED="$ALL_ENABLED -DDISABLE_CVSID"
-
-ALL_INC=$ALL_INC
-
-ALL_LIB=$ALL_LIB
-
-ALL_STATIC_LIB=$ALL_STATIC_LIB
-
-RPATHS=$RPATHS
-
-
-ac_config_files="$ac_config_files Makefile mapscript/php/Makefile mapscript/python/Makefile mapscript/java/Makefile mapscript/csharp/Makefile mapscript/perl/Makefile.PL"
-
-cat >confcache <<\_ACEOF
-# This file is a shell script that caches the results of configure
-# tests run on this system so they can be shared between configure
-# scripts and configure runs, see configure's option --config-cache.
-# It is not useful on other systems.  If it contains results you don't
-# want to keep, you may remove or edit it.
-#
-# config.status only pays attention to the cache file if you give it
-# the --recheck option to rerun configure.
-#
-# `ac_cv_env_foo' variables (set or unset) will be overridden when
-# loading this file, other *unset* `ac_cv_foo' will be assigned the
-# following values.
-
-_ACEOF
-
-# The following way of writing the cache mishandles newlines in values,
-# but we know of no workaround that is simple, portable, and efficient.
-# So, we kill variables containing newlines.
-# Ultrix sh set writes to stderr and can't be redirected directly,
-# and sets the high bit in the cache file unless we assign to the vars.
-(
-  for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do
-    eval ac_val=\$$ac_var
-    case $ac_val in #(
-    *${as_nl}*)
-      case $ac_var in #(
-      *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5
-$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;
-      esac
-      case $ac_var in #(
-      _ | IFS | as_nl) ;; #(
-      BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(
-      *) { eval $ac_var=; unset $ac_var;} ;;
-      esac ;;
-    esac
-  done
-
-  (set) 2>&1 |
-    case $as_nl`(ac_space=' '; set) 2>&1` in #(
-    *${as_nl}ac_space=\ *)
-      # `set' does not quote correctly, so add quotes: double-quote
-      # substitution turns \\\\ into \\, and sed turns \\ into \.
-      sed -n \
-	"s/'/'\\\\''/g;
-	  s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"
-      ;; #(
-    *)
-      # `set' quotes correctly as required by POSIX, so do not add quotes.
-      sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"
-      ;;
-    esac |
-    sort
-) |
-  sed '
-     /^ac_cv_env_/b end
-     t clear
-     :clear
-     s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/
-     t end
-     s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/
-     :end' >>confcache
-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
-  if test -w "$cache_file"; then
-    if test "x$cache_file" != "x/dev/null"; then
-      { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
-$as_echo "$as_me: updating cache $cache_file" >&6;}
-      if test ! -f "$cache_file" || test -h "$cache_file"; then
-	cat confcache >"$cache_file"
-      else
-        case $cache_file in #(
-        */* | ?:*)
-	  mv -f confcache "$cache_file"$$ &&
-	  mv -f "$cache_file"$$ "$cache_file" ;; #(
-        *)
-	  mv -f confcache "$cache_file" ;;
-	esac
-      fi
-    fi
-  else
-    { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
-$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
-  fi
-fi
-rm -f confcache
-
-test "x$prefix" = xNONE && prefix=$ac_default_prefix
-# Let make expand exec_prefix.
-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
-
-# Transform confdefs.h into DEFS.
-# Protect against shell expansion while executing Makefile rules.
-# Protect against Makefile macro expansion.
-#
-# If the first sed substitution is executed (which looks for macros that
-# take arguments), then branch to the quote section.  Otherwise,
-# look for a macro that doesn't take arguments.
-ac_script='
-:mline
-/\\$/{
- N
- s,\\\n,,
- b mline
-}
-t clear
-:clear
-s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 (][^	 (]*([^)]*)\)[	 ]*\(.*\)/-D\1=\2/g
-t quote
-s/^[	 ]*#[	 ]*define[	 ][	 ]*\([^	 ][^	 ]*\)[	 ]*\(.*\)/-D\1=\2/g
-t quote
-b any
-:quote
-s/[	 `~#$^&*(){}\\|;'\''"<>?]/\\&/g
-s/\[/\\&/g
-s/\]/\\&/g
-s/\$/$$/g
-H
-:any
-${
-	g
-	s/^\n//
-	s/\n/ /g
-	p
-}
-'
-DEFS=`sed -n "$ac_script" confdefs.h`
-
-
-ac_libobjs=
-ac_ltlibobjs=
-U=
-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue
-  # 1. Remove the extension, and $U if already installed.
-  ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'
-  ac_i=`$as_echo "$ac_i" | sed "$ac_script"`
-  # 2. Prepend LIBOBJDIR.  When used with automake>=1.10 LIBOBJDIR
-  #    will be set to the directory where LIBOBJS objects are built.
-  as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext"
-  as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo'
-done
-LIBOBJS=$ac_libobjs
-
-LTLIBOBJS=$ac_ltlibobjs
-
-
-
-: "${CONFIG_STATUS=./config.status}"
-ac_write_fail=0
-ac_clean_files_save=$ac_clean_files
-ac_clean_files="$ac_clean_files $CONFIG_STATUS"
-{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5
-$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}
-as_write_fail=0
-cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-# Run this file to recreate the current configuration.
-# Compiler output produced by configure, useful for debugging
-# configure, is in config.log if it exists.
-
-debug=false
-ac_cs_recheck=false
-ac_cs_silent=false
-
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1
-## -------------------- ##
-## M4sh Initialization. ##
-## -------------------- ##
-
-# Be more Bourne compatible
-DUALCASE=1; export DUALCASE # for MKS sh
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then :
-  emulate sh
-  NULLCMD=:
-  # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in #(
-  *posix*) :
-    set -o posix ;; #(
-  *) :
-     ;;
-esac
-fi
-
-
-as_nl='
-'
-export as_nl
-# Printing a long string crashes Solaris 7 /usr/bin/printf.
-as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo
-as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo
-# Prefer a ksh shell builtin over an external printf program on Solaris,
-# but without wasting forks for bash or zsh.
-if test -z "$BASH_VERSION$ZSH_VERSION" \
-    && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='print -r --'
-  as_echo_n='print -rn --'
-elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then
-  as_echo='printf %s\n'
-  as_echo_n='printf %s'
-else
-  if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then
-    as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'
-    as_echo_n='/usr/ucb/echo -n'
-  else
-    as_echo_body='eval expr "X$1" : "X\\(.*\\)"'
-    as_echo_n_body='eval
-      arg=$1;
-      case $arg in #(
-      *"$as_nl"*)
-	expr "X$arg" : "X\\(.*\\)$as_nl";
-	arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;
-      esac;
-      expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"
-    '
-    export as_echo_n_body
-    as_echo_n='sh -c $as_echo_n_body as_echo'
-  fi
-  export as_echo_body
-  as_echo='sh -c $as_echo_body as_echo'
-fi
-
-# The user is always right.
-if test "${PATH_SEPARATOR+set}" != set; then
-  PATH_SEPARATOR=:
-  (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {
-    (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||
-      PATH_SEPARATOR=';'
-  }
-fi
-
-
-# IFS
-# We need space, tab and new line, in precisely that order.  Quoting is
-# there to prevent editors from complaining about space-tab.
-# (If _AS_PATH_WALK were called with IFS unset, it would disable word
-# splitting by setting IFS to empty value.)
-IFS=" ""	$as_nl"
-
-# Find who we are.  Look in the path if we contain no directory separator.
-as_myself=
-case $0 in #((
-  *[\\/]* ) as_myself=$0 ;;
-  *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-    test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break
-  done
-IFS=$as_save_IFS
-
-     ;;
-esac
-# We did not find ourselves, most probably we were run as `sh COMMAND'
-# in which case we are not to be found in the path.
-if test "x$as_myself" = x; then
-  as_myself=$0
-fi
-if test ! -f "$as_myself"; then
-  $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2
-  exit 1
-fi
-
-# Unset variables that we do not need and which cause bugs (e.g. in
-# pre-3.0 UWIN ksh).  But do not cause bugs in bash 2.01; the "|| exit 1"
-# suppresses any "Segmentation fault" message there.  '((' could
-# trigger a bug in pdksh 5.2.14.
-for as_var in BASH_ENV ENV MAIL MAILPATH
-do eval test x\${$as_var+set} = xset \
-  && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || :
-done
-PS1='$ '
-PS2='> '
-PS4='+ '
-
-# NLS nuisances.
-LC_ALL=C
-export LC_ALL
-LANGUAGE=C
-export LANGUAGE
-
-# CDPATH.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-
-# as_fn_error STATUS ERROR [LINENO LOG_FD]
-# ----------------------------------------
-# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are
-# provided, also output the error to LOG_FD, referencing LINENO. Then exit the
-# script with STATUS, using 1 if that was 0.
-as_fn_error ()
-{
-  as_status=$1; test $as_status -eq 0 && as_status=1
-  if test "$4"; then
-    as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-    $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4
-  fi
-  $as_echo "$as_me: error: $2" >&2
-  as_fn_exit $as_status
-} # as_fn_error
-
-
-# as_fn_set_status STATUS
-# -----------------------
-# Set $? to STATUS, without forking.
-as_fn_set_status ()
-{
-  return $1
-} # as_fn_set_status
-
-# as_fn_exit STATUS
-# -----------------
-# Exit the shell with STATUS, even in a "trap 0" or "set -e" context.
-as_fn_exit ()
-{
-  set +e
-  as_fn_set_status $1
-  exit $1
-} # as_fn_exit
-
-# as_fn_unset VAR
-# ---------------
-# Portably unset VAR.
-as_fn_unset ()
-{
-  { eval $1=; unset $1;}
-}
-as_unset=as_fn_unset
-# as_fn_append VAR VALUE
-# ----------------------
-# Append the text in VALUE to the end of the definition contained in VAR. Take
-# advantage of any shell optimizations that allow amortized linear growth over
-# repeated appends, instead of the typical quadratic growth present in naive
-# implementations.
-if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then :
-  eval 'as_fn_append ()
-  {
-    eval $1+=\$2
-  }'
-else
-  as_fn_append ()
-  {
-    eval $1=\$$1\$2
-  }
-fi # as_fn_append
-
-# as_fn_arith ARG...
-# ------------------
-# Perform arithmetic evaluation on the ARGs, and store the result in the
-# global $as_val. Take advantage of shells that can avoid forks. The arguments
-# must be portable across $(()) and expr.
-if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then :
-  eval 'as_fn_arith ()
-  {
-    as_val=$(( $* ))
-  }'
-else
-  as_fn_arith ()
-  {
-    as_val=`expr "$@" || test $? -eq 1`
-  }
-fi # as_fn_arith
-
-
-if expr a : '\(a\)' >/dev/null 2>&1 &&
-   test "X`expr 00001 : '.*\(...\)'`" = X001; then
-  as_expr=expr
-else
-  as_expr=false
-fi
-
-if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then
-  as_basename=basename
-else
-  as_basename=false
-fi
-
-if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then
-  as_dirname=dirname
-else
-  as_dirname=false
-fi
-
-as_me=`$as_basename -- "$0" ||
-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \
-	 X"$0" : 'X\(//\)$' \| \
-	 X"$0" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X/"$0" |
-    sed '/^.*\/\([^/][^/]*\)\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\/\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-
-# Avoid depending upon Character Ranges.
-as_cr_letters='abcdefghijklmnopqrstuvwxyz'
-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
-as_cr_Letters=$as_cr_letters$as_cr_LETTERS
-as_cr_digits='0123456789'
-as_cr_alnum=$as_cr_Letters$as_cr_digits
-
-ECHO_C= ECHO_N= ECHO_T=
-case `echo -n x` in #(((((
--n*)
-  case `echo 'xy\c'` in
-  *c*) ECHO_T='	';;	# ECHO_T is single tab character.
-  xy)  ECHO_C='\c';;
-  *)   echo `echo ksh88 bug on AIX 6.1` > /dev/null
-       ECHO_T='	';;
-  esac;;
-*)
-  ECHO_N='-n';;
-esac
-
-rm -f conf$$ conf$$.exe conf$$.file
-if test -d conf$$.dir; then
-  rm -f conf$$.dir/conf$$.file
-else
-  rm -f conf$$.dir
-  mkdir conf$$.dir 2>/dev/null
-fi
-if (echo >conf$$.file) 2>/dev/null; then
-  if ln -s conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s='ln -s'
-    # ... but there are two gotchas:
-    # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.
-    # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.
-    # In both cases, we have to default to `cp -p'.
-    ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||
-      as_ln_s='cp -p'
-  elif ln conf$$.file conf$$ 2>/dev/null; then
-    as_ln_s=ln
-  else
-    as_ln_s='cp -p'
-  fi
-else
-  as_ln_s='cp -p'
-fi
-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file
-rmdir conf$$.dir 2>/dev/null
-
-
-# as_fn_mkdir_p
-# -------------
-# Create "$as_dir" as a directory, including parents if necessary.
-as_fn_mkdir_p ()
-{
-
-  case $as_dir in #(
-  -*) as_dir=./$as_dir;;
-  esac
-  test -d "$as_dir" || eval $as_mkdir_p || {
-    as_dirs=
-    while :; do
-      case $as_dir in #(
-      *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(
-      *) as_qdir=$as_dir;;
-      esac
-      as_dirs="'$as_qdir' $as_dirs"
-      as_dir=`$as_dirname -- "$as_dir" ||
-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$as_dir" : 'X\(//\)[^/]' \| \
-	 X"$as_dir" : 'X\(//\)$' \| \
-	 X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$as_dir" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-      test -d "$as_dir" && break
-    done
-    test -z "$as_dirs" || eval "mkdir $as_dirs"
-  } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir"
-
-
-} # as_fn_mkdir_p
-if mkdir -p . 2>/dev/null; then
-  as_mkdir_p='mkdir -p "$as_dir"'
-else
-  test -d ./-p && rmdir ./-p
-  as_mkdir_p=false
-fi
-
-if test -x / >/dev/null 2>&1; then
-  as_test_x='test -x'
-else
-  if ls -dL / >/dev/null 2>&1; then
-    as_ls_L_option=L
-  else
-    as_ls_L_option=
-  fi
-  as_test_x='
-    eval sh -c '\''
-      if test -d "$1"; then
-	test -d "$1/.";
-      else
-	case $1 in #(
-	-*)set "./$1";;
-	esac;
-	case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #((
-	???[sx]*):;;*)false;;esac;fi
-    '\'' sh
-  '
-fi
-as_executable_p=$as_test_x
-
-# Sed expression to map a string onto a valid CPP name.
-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"
-
-# Sed expression to map a string onto a valid variable name.
-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"
-
-
-exec 6>&1
-## ----------------------------------- ##
-## Main body of $CONFIG_STATUS script. ##
-## ----------------------------------- ##
-_ASEOF
-test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# Save the log message, to keep $0 and so on meaningful, and to
-# report actual input values of CONFIG_FILES etc. instead of their
-# values after options handling.
-ac_log="
-This file was extended by $as_me, which was
-generated by GNU Autoconf 2.68.  Invocation command line was
-
-  CONFIG_FILES    = $CONFIG_FILES
-  CONFIG_HEADERS  = $CONFIG_HEADERS
-  CONFIG_LINKS    = $CONFIG_LINKS
-  CONFIG_COMMANDS = $CONFIG_COMMANDS
-  $ $0 $@
-
-on `(hostname || uname -n) 2>/dev/null | sed 1q`
-"
-
-_ACEOF
-
-case $ac_config_files in *"
-"*) set x $ac_config_files; shift; ac_config_files=$*;;
-esac
-
-
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-# Files that config.status was made for.
-config_files="$ac_config_files"
-config_commands="$ac_config_commands"
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-ac_cs_usage="\
-\`$as_me' instantiates files and other configuration actions
-from templates according to the current configuration.  Unless the files
-and actions are specified as TAGs, all are instantiated by default.
-
-Usage: $0 [OPTION]... [TAG]...
-
-  -h, --help       print this help, then exit
-  -V, --version    print version number and configuration settings, then exit
-      --config     print configuration, then exit
-  -q, --quiet, --silent
-                   do not print progress messages
-  -d, --debug      don't remove temporary files
-      --recheck    update $as_me by reconfiguring in the same conditions
-      --file=FILE[:TEMPLATE]
-                   instantiate the configuration file FILE
-
-Configuration files:
-$config_files
-
-Configuration commands:
-$config_commands
-
-Report bugs to the package provider."
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
-ac_cs_version="\\
-config.status
-configured by $0, generated by GNU Autoconf 2.68,
-  with options \\"\$ac_cs_config\\"
-
-Copyright (C) 2010 Free Software Foundation, Inc.
-This config.status script is free software; the Free Software Foundation
-gives unlimited permission to copy, distribute and modify it."
-
-ac_pwd='$ac_pwd'
-srcdir='$srcdir'
-INSTALL='$INSTALL'
-AWK='$AWK'
-test -n "\$AWK" || AWK=awk
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# The default lists apply if the user does not specify any file.
-ac_need_defaults=:
-while test $# != 0
-do
-  case $1 in
-  --*=?*)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`
-    ac_shift=:
-    ;;
-  --*=)
-    ac_option=`expr "X$1" : 'X\([^=]*\)='`
-    ac_optarg=
-    ac_shift=:
-    ;;
-  *)
-    ac_option=$1
-    ac_optarg=$2
-    ac_shift=shift
-    ;;
-  esac
-
-  case $ac_option in
-  # Handling of the options.
-  -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)
-    ac_cs_recheck=: ;;
-  --version | --versio | --versi | --vers | --ver | --ve | --v | -V )
-    $as_echo "$ac_cs_version"; exit ;;
-  --config | --confi | --conf | --con | --co | --c )
-    $as_echo "$ac_cs_config"; exit ;;
-  --debug | --debu | --deb | --de | --d | -d )
-    debug=: ;;
-  --file | --fil | --fi | --f )
-    $ac_shift
-    case $ac_optarg in
-    *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;
-    '') as_fn_error $? "missing file argument" ;;
-    esac
-    as_fn_append CONFIG_FILES " '$ac_optarg'"
-    ac_need_defaults=false;;
-  --he | --h |  --help | --hel | -h )
-    $as_echo "$ac_cs_usage"; exit ;;
-  -q | -quiet | --quiet | --quie | --qui | --qu | --q \
-  | -silent | --silent | --silen | --sile | --sil | --si | --s)
-    ac_cs_silent=: ;;
-
-  # This is an error.
-  -*) as_fn_error $? "unrecognized option: \`$1'
-Try \`$0 --help' for more information." ;;
-
-  *) as_fn_append ac_config_targets " $1"
-     ac_need_defaults=false ;;
-
-  esac
-  shift
-done
-
-ac_configure_extra_args=
-
-if $ac_cs_silent; then
-  exec 6>/dev/null
-  ac_configure_extra_args="$ac_configure_extra_args --silent"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-if \$ac_cs_recheck; then
-  set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion
-  shift
-  \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6
-  CONFIG_SHELL='$SHELL'
-  export CONFIG_SHELL
-  exec "\$@"
-fi
-
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-exec 5>>config.log
-{
-  echo
-  sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX
-## Running $as_me. ##
-_ASBOX
-  $as_echo "$ac_log"
-} >&5
-
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-#
-# INIT-COMMANDS
-#
-
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`'
-macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`'
-enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`'
-enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`'
-pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`'
-enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`'
-SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`'
-ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`'
-PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`'
-host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`'
-host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`'
-host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`'
-build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`'
-build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`'
-build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`'
-SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`'
-Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`'
-GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`'
-EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`'
-FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`'
-LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`'
-NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`'
-LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`'
-max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`'
-ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`'
-exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`'
-lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`'
-lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
-lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
-lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
-reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
-reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
-OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`'
-deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`'
-file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`'
-file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`'
-want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`'
-DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`'
-sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`'
-AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`'
-AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`'
-archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`'
-STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`'
-RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`'
-old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`'
-lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`'
-CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`'
-CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`'
-compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`'
-GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`'
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`'
-nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`'
-lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`'
-objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`'
-MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`'
-need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`'
-MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`'
-DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`'
-NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`'
-LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`'
-OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`'
-OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`'
-libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`'
-shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`'
-extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`'
-archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`'
-hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`'
-inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`'
-always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`'
-include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`'
-prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`'
-postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`'
-file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`'
-variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`'
-need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`'
-need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`'
-version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`'
-runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`'
-shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`'
-libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`'
-library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`'
-soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`'
-install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`'
-postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`'
-postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`'
-finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`'
-finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`'
-hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`'
-sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`'
-sys_lib_dlsearch_path_spec='`$ECHO "$sys_lib_dlsearch_path_spec" | $SED "$delay_single_quote_subst"`'
-hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`'
-enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`'
-enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`'
-old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`'
-striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`'
-predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`'
-postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`'
-predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`'
-postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`'
-LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`'
-reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`'
-reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`'
-GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`'
-lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`'
-lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`'
-enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`'
-export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`'
-allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`'
-inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`'
-link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`'
-always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`'
-export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`'
-prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`'
-file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`'
-hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`'
-predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`'
-predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`'
-postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`'
-compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`'
-
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in SHELL \
-ECHO \
-PATH_SEPARATOR \
-SED \
-GREP \
-EGREP \
-FGREP \
-LD \
-NM \
-LN_S \
-lt_SP2NL \
-lt_NL2SP \
-reload_flag \
-OBJDUMP \
-deplibs_check_method \
-file_magic_cmd \
-file_magic_glob \
-want_nocaseglob \
-DLLTOOL \
-sharedlib_from_linklib_cmd \
-AR \
-AR_FLAGS \
-archiver_list_spec \
-STRIP \
-RANLIB \
-CC \
-CFLAGS \
-compiler \
-lt_cv_sys_global_symbol_pipe \
-lt_cv_sys_global_symbol_to_cdecl \
-lt_cv_sys_global_symbol_to_c_name_address \
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \
-nm_file_list_spec \
-lt_prog_compiler_no_builtin_flag \
-lt_prog_compiler_pic \
-lt_prog_compiler_wl \
-lt_prog_compiler_static \
-lt_cv_prog_compiler_c_o \
-need_locks \
-MANIFEST_TOOL \
-DSYMUTIL \
-NMEDIT \
-LIPO \
-OTOOL \
-OTOOL64 \
-shrext_cmds \
-export_dynamic_flag_spec \
-whole_archive_flag_spec \
-compiler_needs_object \
-with_gnu_ld \
-allow_undefined_flag \
-no_undefined_flag \
-hardcode_libdir_flag_spec \
-hardcode_libdir_separator \
-exclude_expsyms \
-include_expsyms \
-file_list_spec \
-variables_saved_for_relink \
-libname_spec \
-library_names_spec \
-soname_spec \
-install_override_mode \
-finish_eval \
-old_striplib \
-striplib \
-compiler_lib_search_dirs \
-predep_objects \
-postdep_objects \
-predeps \
-postdeps \
-compiler_lib_search_path \
-LD_CXX \
-reload_flag_CXX \
-compiler_CXX \
-lt_prog_compiler_no_builtin_flag_CXX \
-lt_prog_compiler_pic_CXX \
-lt_prog_compiler_wl_CXX \
-lt_prog_compiler_static_CXX \
-lt_cv_prog_compiler_c_o_CXX \
-export_dynamic_flag_spec_CXX \
-whole_archive_flag_spec_CXX \
-compiler_needs_object_CXX \
-with_gnu_ld_CXX \
-allow_undefined_flag_CXX \
-no_undefined_flag_CXX \
-hardcode_libdir_flag_spec_CXX \
-hardcode_libdir_separator_CXX \
-exclude_expsyms_CXX \
-include_expsyms_CXX \
-file_list_spec_CXX \
-compiler_lib_search_dirs_CXX \
-predep_objects_CXX \
-postdep_objects_CXX \
-predeps_CXX \
-postdeps_CXX \
-compiler_lib_search_path_CXX; do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Double-quote double-evaled strings.
-for var in reload_cmds \
-old_postinstall_cmds \
-old_postuninstall_cmds \
-old_archive_cmds \
-extract_expsyms_cmds \
-old_archive_from_new_cmds \
-old_archive_from_expsyms_cmds \
-archive_cmds \
-archive_expsym_cmds \
-module_cmds \
-module_expsym_cmds \
-export_symbols_cmds \
-prelink_cmds \
-postlink_cmds \
-postinstall_cmds \
-postuninstall_cmds \
-finish_cmds \
-sys_lib_search_path_spec \
-sys_lib_dlsearch_path_spec \
-reload_cmds_CXX \
-old_archive_cmds_CXX \
-old_archive_from_new_cmds_CXX \
-old_archive_from_expsyms_cmds_CXX \
-archive_cmds_CXX \
-archive_expsym_cmds_CXX \
-module_cmds_CXX \
-module_expsym_cmds_CXX \
-export_symbols_cmds_CXX \
-prelink_cmds_CXX \
-postlink_cmds_CXX; do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[\\\\\\\`\\"\\\$]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-ac_aux_dir='$ac_aux_dir'
-xsi_shell='$xsi_shell'
-lt_shell_append='$lt_shell_append'
-
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
-    RM='$RM'
-    ofile='$ofile'
-
-
-
-
-
-
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-
-# Handling of arguments.
-for ac_config_target in $ac_config_targets
-do
-  case $ac_config_target in
-    "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;;
-    "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
-    "mapscript/php/Makefile") CONFIG_FILES="$CONFIG_FILES mapscript/php/Makefile" ;;
-    "mapscript/python/Makefile") CONFIG_FILES="$CONFIG_FILES mapscript/python/Makefile" ;;
-    "mapscript/java/Makefile") CONFIG_FILES="$CONFIG_FILES mapscript/java/Makefile" ;;
-    "mapscript/csharp/Makefile") CONFIG_FILES="$CONFIG_FILES mapscript/csharp/Makefile" ;;
-    "mapscript/perl/Makefile.PL") CONFIG_FILES="$CONFIG_FILES mapscript/perl/Makefile.PL" ;;
-
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
-  esac
-done
-
-
-# If the user did not use the arguments to specify the items to instantiate,
-# then the envvar interface is used.  Set only those that are not.
-# We use the long form for the default assignment because of an extremely
-# bizarre bug on SunOS 4.1.3.
-if $ac_need_defaults; then
-  test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files
-  test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands
-fi
-
-# Have a temporary directory for convenience.  Make it in the build tree
-# simply because there is no reason against having it here, and in addition,
-# creating and moving files from /tmp can sometimes cause problems.
-# Hook for its removal unless debugging.
-# Note that there is a small window in which the directory will not be cleaned:
-# after its creation but before its name has been assigned to `$tmp'.
-$debug ||
-{
-  tmp= ac_tmp=
-  trap 'exit_status=$?
-  : "${ac_tmp:=$tmp}"
-  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
-' 0
-  trap 'as_fn_exit 1' 1 2 13 15
-}
-# Create a (secure) tmp directory for tmp files.
-
-{
-  tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -d "$tmp"
-}  ||
-{
-  tmp=./conf$$-$RANDOM
-  (umask 077 && mkdir "$tmp")
-} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
-ac_tmp=$tmp
-
-# Set up the scripts for CONFIG_FILES section.
-# No need to generate them if there are no CONFIG_FILES.
-# This happens for instance with `./config.status config.h'.
-if test -n "$CONFIG_FILES"; then
-
-
-ac_cr=`echo X | tr X '\015'`
-# On cygwin, bash can eat \r inside `` if the user requested igncr.
-# But we know of no other shell where ac_cr would be empty at this
-# point, so we can use a bashism as a fallback.
-if test "x$ac_cr" = x; then
-  eval ac_cr=\$\'\\r\'
-fi
-ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 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
-
-echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
-_ACEOF
-
-
-{
-  echo "cat >conf$$subs.awk <<_ACEOF" &&
-  echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&
-  echo "_ACEOF"
-} >conf$$subs.sh ||
-  as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'`
-ac_delim='%!_!# '
-for ac_last_try in false false false false false :; do
-  . ./conf$$subs.sh ||
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-
-  ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`
-  if test $ac_delim_n = $ac_delim_num; then
-    break
-  elif $ac_last_try; then
-    as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5
-  else
-    ac_delim="$ac_delim!$ac_delim _$ac_delim!! "
-  fi
-done
-rm -f conf$$subs.sh
-
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
-_ACEOF
-sed -n '
-h
-s/^/S["/; s/!.*/"]=/
-p
-g
-s/^[^!]*!//
-:repl
-t repl
-s/'"$ac_delim"'$//
-t delim
-:nl
-h
-s/\(.\{148\}\)..*/\1/
-t more1
-s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/
-p
-n
-b repl
-:more1
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t nl
-:delim
-h
-s/\(.\{148\}\)..*/\1/
-t more2
-s/["\\]/\\&/g; s/^/"/; s/$/"/
-p
-b
-:more2
-s/["\\]/\\&/g; s/^/"/; s/$/"\\/
-p
-g
-s/.\{148\}//
-t delim
-' <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 >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
-  for (key in S) S_is_set[key] = 1
-  FS = ""
-
-}
-{
-  line = $ 0
-  nfields = split(line, field, "@")
-  substed = 0
-  len = length(field[1])
-  for (i = 2; i < nfields; i++) {
-    key = field[i]
-    keylen = length(key)
-    if (S_is_set[key]) {
-      value = S[key]
-      line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)
-      len += length(value) + length(field[++i])
-      substed = 1
-    } else
-      len += 1 + keylen
-  }
-
-  print line
-}
-
-_ACAWK
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then
-  sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
-else
-  cat
-fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
-  || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
-_ACEOF
-
-# VPATH may cause trouble with some makes, so we remove sole $(srcdir),
-# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and
-# trailing colons and then remove the whole line if VPATH becomes empty
-# (actually we leave an empty line to preserve line numbers).
-if test "x$srcdir" = x.; then
-  ac_vpsub='/^[	 ]*VPATH[	 ]*=[	 ]*/{
-h
-s///
-s/^/:/
-s/[	 ]*$/:/
-s/:\$(srcdir):/:/g
-s/:\${srcdir}:/:/g
-s/:@srcdir@:/:/g
-s/^:*//
-s/:*$//
-x
-s/\(=[	 ]*\).*/\1/
-G
-s/\n//
-s/^[^=]*=[	 ]*$//
-}'
-fi
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-fi # test -n "$CONFIG_FILES"
-
-
-eval set X "  :F $CONFIG_FILES      :C $CONFIG_COMMANDS"
-shift
-for ac_tag
-do
-  case $ac_tag in
-  :[FHLC]) ac_mode=$ac_tag; continue;;
-  esac
-  case $ac_mode$ac_tag in
-  :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
-  :[FH]-) ac_tag=-:-;;
-  :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
-  esac
-  ac_save_IFS=$IFS
-  IFS=:
-  set x $ac_tag
-  IFS=$ac_save_IFS
-  shift
-  ac_file=$1
-  shift
-
-  case $ac_mode in
-  :L) ac_source=$1;;
-  :[FH])
-    ac_file_inputs=
-    for ac_f
-    do
-      case $ac_f in
-      -) ac_f="$ac_tmp/stdin";;
-      *) # Look for the file first in the build tree, then in the source tree
-	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
-	 # because $ac_f cannot contain `:'.
-	 test -f "$ac_f" ||
-	   case $ac_f in
-	   [\\/$]*) false;;
-	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
-	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
-      esac
-      case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
-      as_fn_append ac_file_inputs " '$ac_f'"
-    done
-
-    # Let's still pretend it is `configure' which instantiates (i.e., don't
-    # use $as_me), people would be surprised to read:
-    #    /* config.h.  Generated by config.status.  */
-    configure_input='Generated from '`
-	  $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'
-	`' by configure.'
-    if test x"$ac_file" != x-; then
-      configure_input="$ac_file.  $configure_input"
-      { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5
-$as_echo "$as_me: creating $ac_file" >&6;}
-    fi
-    # Neutralize special characters interpreted by sed in replacement strings.
-    case $configure_input in #(
-    *\&* | *\|* | *\\* )
-       ac_sed_conf_input=`$as_echo "$configure_input" |
-       sed 's/[\\\\&|]/\\\\&/g'`;; #(
-    *) ac_sed_conf_input=$configure_input;;
-    esac
-
-    case $ac_tag in
-    *:-:* | *:-) cat >"$ac_tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
-    esac
-    ;;
-  esac
-
-  ac_dir=`$as_dirname -- "$ac_file" ||
-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	 X"$ac_file" : 'X\(//\)[^/]' \| \
-	 X"$ac_file" : 'X\(//\)$' \| \
-	 X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||
-$as_echo X"$ac_file" |
-    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)[^/].*/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\/\)$/{
-	    s//\1/
-	    q
-	  }
-	  /^X\(\/\).*/{
-	    s//\1/
-	    q
-	  }
-	  s/.*/./; q'`
-  as_dir="$ac_dir"; as_fn_mkdir_p
-  ac_builddir=.
-
-case "$ac_dir" in
-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;
-*)
-  ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`
-  # A ".." for each directory in $ac_dir_suffix.
-  ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`
-  case $ac_top_builddir_sub in
-  "") ac_top_builddir_sub=. ac_top_build_prefix= ;;
-  *)  ac_top_build_prefix=$ac_top_builddir_sub/ ;;
-  esac ;;
-esac
-ac_abs_top_builddir=$ac_pwd
-ac_abs_builddir=$ac_pwd$ac_dir_suffix
-# for backward compatibility:
-ac_top_builddir=$ac_top_build_prefix
-
-case $srcdir in
-  .)  # We are building in place.
-    ac_srcdir=.
-    ac_top_srcdir=$ac_top_builddir_sub
-    ac_abs_top_srcdir=$ac_pwd ;;
-  [\\/]* | ?:[\\/]* )  # Absolute name.
-    ac_srcdir=$srcdir$ac_dir_suffix;
-    ac_top_srcdir=$srcdir
-    ac_abs_top_srcdir=$srcdir ;;
-  *) # Relative name.
-    ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix
-    ac_top_srcdir=$ac_top_build_prefix$srcdir
-    ac_abs_top_srcdir=$ac_pwd/$srcdir ;;
-esac
-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix
-
-
-  case $ac_mode in
-  :F)
-  #
-  # CONFIG_FILE
-  #
-
-  case $INSTALL in
-  [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;
-  *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;
-  esac
-_ACEOF
-
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-# If the template does not know about datarootdir, expand it.
-# FIXME: This hack should be removed a few years after 2.60.
-ac_datarootdir_hack=; ac_datarootdir_seen=
-ac_sed_dataroot='
-/datarootdir/ {
-  p
-  q
-}
-/@datadir@/p
-/@docdir@/p
-/@infodir@/p
-/@localedir@/p
-/@mandir@/p'
-case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in
-*datarootdir*) ac_datarootdir_seen=yes;;
-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5
-$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}
-_ACEOF
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-  ac_datarootdir_hack='
-  s&@datadir@&$datadir&g
-  s&@docdir@&$docdir&g
-  s&@infodir@&$infodir&g
-  s&@localedir@&$localedir&g
-  s&@mandir@&$mandir&g
-  s&\\\${datarootdir}&$datarootdir&g' ;;
-esac
-_ACEOF
-
-# Neutralize VPATH when `$srcdir' = `.'.
-# Shell code in configure.ac might set extrasub.
-# FIXME: do we really want to maintain this feature?
-cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-ac_sed_extra="$ac_vpsub
-$extrasub
-_ACEOF
-cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
-:t
-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b
-s|@configure_input@|$ac_sed_conf_input|;t t
-s&@top_builddir@&$ac_top_builddir_sub&;t t
-s&@top_build_prefix@&$ac_top_build_prefix&;t t
-s&@srcdir@&$ac_srcdir&;t t
-s&@abs_srcdir@&$ac_abs_srcdir&;t t
-s&@top_srcdir@&$ac_top_srcdir&;t t
-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t
-s&@builddir@&$ac_builddir&;t t
-s&@abs_builddir@&$ac_abs_builddir&;t t
-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
-s&@INSTALL@&$ac_INSTALL&;t t
-$ac_datarootdir_hack
-"
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
-  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-
-test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
-      "$ac_tmp/out"`; test -z "$ac_out"; } &&
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&5
-$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
-which seems to be undefined.  Please make sure it is defined" >&2;}
-
-  rm -f "$ac_tmp/stdin"
-  case $ac_file in
-  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
-  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
-  esac \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
- ;;
-
-
-  :C)  { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5
-$as_echo "$as_me: executing $ac_file commands" >&6;}
- ;;
-  esac
-
-
-  case $ac_file$ac_mode in
-    "libtool":C)
-
-    # See if we are running on zsh, and set the options which allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
-      setopt NO_GLOB_SUBST
-    fi
-
-    cfgfile="${ofile}T"
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
-
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-
-# The names of the tagged configurations supported by this script.
-available_tags="CXX "
-
-# ### BEGIN LIBTOOL CONFIG
-
-# Which release of libtool.m4 was used?
-macro_version=$macro_version
-macro_revision=$macro_revision
-
-# Whether or not to build static libraries.
-build_old_libs=$enable_static
-
-# Whether or not to build shared libraries.
-build_libtool_libs=$enable_shared
-
-# What type of objects to build.
-pic_mode=$pic_mode
-
-# Whether or not to optimize for fast installation.
-fast_install=$enable_fast_install
-
-# Shell to use when invoking shell scripts.
-SHELL=$lt_SHELL
-
-# An echo program that protects backslashes.
-ECHO=$lt_ECHO
-
-# The PATH separator for the build system.
-PATH_SEPARATOR=$lt_PATH_SEPARATOR
-
-# The host system.
-host_alias=$host_alias
-host=$host
-host_os=$host_os
-
-# The build system.
-build_alias=$build_alias
-build=$build
-build_os=$build_os
-
-# A sed program that does not truncate output.
-SED=$lt_SED
-
-# Sed that helps us avoid accidentally triggering echo(1) options like -n.
-Xsed="\$SED -e 1s/^X//"
-
-# A grep program that handles long lines.
-GREP=$lt_GREP
-
-# An ERE matcher.
-EGREP=$lt_EGREP
-
-# A literal string matcher.
-FGREP=$lt_FGREP
-
-# A BSD- or MS-compatible name lister.
-NM=$lt_NM
-
-# Whether we need soft or hard links.
-LN_S=$lt_LN_S
-
-# What is the maximum length of a command?
-max_cmd_len=$max_cmd_len
-
-# Object file suffix (normally "o").
-objext=$ac_objext
-
-# Executable file suffix (normally "").
-exeext=$exeext
-
-# whether the shell understands "unset".
-lt_unset=$lt_unset
-
-# turn spaces into newlines.
-SP2NL=$lt_lt_SP2NL
-
-# turn newlines into spaces.
-NL2SP=$lt_lt_NL2SP
-
-# convert \$build file names to \$host format.
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-
-# convert \$build files to toolchain format.
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-
-# An object symbol dumper.
-OBJDUMP=$lt_OBJDUMP
-
-# Method to check whether dependent libraries are shared objects.
-deplibs_check_method=$lt_deplibs_check_method
-
-# Command to use when deplibs_check_method = "file_magic".
-file_magic_cmd=$lt_file_magic_cmd
-
-# How to find potential files when deplibs_check_method = "file_magic".
-file_magic_glob=$lt_file_magic_glob
-
-# Find potential files using nocaseglob when deplibs_check_method = "file_magic".
-want_nocaseglob=$lt_want_nocaseglob
-
-# DLL creation program.
-DLLTOOL=$lt_DLLTOOL
-
-# Command to associate shared and link libraries.
-sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
-
-# The archiver.
-AR=$lt_AR
-
-# Flags to create an archive.
-AR_FLAGS=$lt_AR_FLAGS
-
-# How to feed a file listing to the archiver.
-archiver_list_spec=$lt_archiver_list_spec
-
-# A symbol stripping program.
-STRIP=$lt_STRIP
-
-# Commands used to install an old-style archive.
-RANLIB=$lt_RANLIB
-old_postinstall_cmds=$lt_old_postinstall_cmds
-old_postuninstall_cmds=$lt_old_postuninstall_cmds
-
-# Whether to use a lock for old archive extraction.
-lock_old_archive_extraction=$lock_old_archive_extraction
-
-# A C compiler.
-LTCC=$lt_CC
-
-# LTCC compiler flags.
-LTCFLAGS=$lt_CFLAGS
-
-# Take the output of nm and produce a listing of raw symbols and C names.
-global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe
-
-# Transform the output of nm in a proper C declaration.
-global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl
-
-# Transform the output of nm in a C name address pair.
-global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address
-
-# Transform the output of nm in a C name address pair when lib prefix is needed.
-global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix
-
-# Specify filename containing input files for \$NM.
-nm_file_list_spec=$lt_nm_file_list_spec
-
-# The root where to search for dependent libraries,and in which our libraries should be installed.
-lt_sysroot=$lt_sysroot
-
-# The name of the directory that contains temporary libtool files.
-objdir=$objdir
-
-# Used to examine libraries when file_magic_cmd begins with "file".
-MAGIC_CMD=$MAGIC_CMD
-
-# Must we lock files when doing compilation?
-need_locks=$lt_need_locks
-
-# Manifest tool.
-MANIFEST_TOOL=$lt_MANIFEST_TOOL
-
-# Tool to manipulate archived DWARF debug symbol files on Mac OS X.
-DSYMUTIL=$lt_DSYMUTIL
-
-# Tool to change global to local symbols on Mac OS X.
-NMEDIT=$lt_NMEDIT
-
-# Tool to manipulate fat objects and archives on Mac OS X.
-LIPO=$lt_LIPO
-
-# ldd/readelf like tool for Mach-O binaries on Mac OS X.
-OTOOL=$lt_OTOOL
-
-# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4.
-OTOOL64=$lt_OTOOL64
-
-# Old archive suffix (normally "a").
-libext=$libext
-
-# Shared library suffix (normally ".so").
-shrext_cmds=$lt_shrext_cmds
-
-# The commands to extract the exported symbol list from a shared archive.
-extract_expsyms_cmds=$lt_extract_expsyms_cmds
-
-# Variables whose values should be saved in libtool wrapper scripts and
-# restored at link time.
-variables_saved_for_relink=$lt_variables_saved_for_relink
-
-# Do we need the "lib" prefix for modules?
-need_lib_prefix=$need_lib_prefix
-
-# Do we need a version for libraries?
-need_version=$need_version
-
-# Library versioning type.
-version_type=$version_type
-
-# Shared library runtime path variable.
-runpath_var=$runpath_var
-
-# Shared library path variable.
-shlibpath_var=$shlibpath_var
-
-# Is shlibpath searched before the hard-coded library search path?
-shlibpath_overrides_runpath=$shlibpath_overrides_runpath
-
-# Format of library name prefix.
-libname_spec=$lt_libname_spec
-
-# List of archive names.  First name is the real one, the rest are links.
-# The last name is the one that the linker finds with -lNAME
-library_names_spec=$lt_library_names_spec
-
-# The coded name of the library, if different from the real name.
-soname_spec=$lt_soname_spec
-
-# Permission mode override for installation of shared libraries.
-install_override_mode=$lt_install_override_mode
-
-# Command to use after installation of a shared archive.
-postinstall_cmds=$lt_postinstall_cmds
-
-# Command to use after uninstallation of a shared archive.
-postuninstall_cmds=$lt_postuninstall_cmds
-
-# Commands used to finish a libtool library installation in a directory.
-finish_cmds=$lt_finish_cmds
-
-# As "finish_cmds", except a single script fragment to be evaled but
-# not shown.
-finish_eval=$lt_finish_eval
-
-# Whether we should hardcode library paths into libraries.
-hardcode_into_libs=$hardcode_into_libs
-
-# Compile-time system search path for libraries.
-sys_lib_search_path_spec=$lt_sys_lib_search_path_spec
-
-# Run-time system search path for libraries.
-sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec
-
-# Whether dlopen is supported.
-dlopen_support=$enable_dlopen
-
-# Whether dlopen of programs is supported.
-dlopen_self=$enable_dlopen_self
-
-# Whether dlopen of statically linked programs is supported.
-dlopen_self_static=$enable_dlopen_self_static
-
-# Commands to strip libraries.
-old_striplib=$lt_old_striplib
-striplib=$lt_striplib
-
-
-# The linker used to build libraries.
-LD=$lt_LD
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag
-reload_cmds=$lt_reload_cmds
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds
-
-# A language specific compiler.
-CC=$lt_compiler
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds
-archive_expsym_cmds=$lt_archive_expsym_cmds
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds
-module_expsym_cmds=$lt_module_expsym_cmds
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects
-postdep_objects=$lt_postdep_objects
-predeps=$lt_predeps
-postdeps=$lt_postdeps
-
-# The library search path used internally by the compiler when linking
-# a shared library.
-compiler_lib_search_path=$lt_compiler_lib_search_path
-
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
-  esac
-
-
-ltmain="$ac_aux_dir/ltmain.sh"
-
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" \
-     || (rm -f "$cfgfile"; exit 1)
-
-  if test x"$xsi_shell" = xyes; then
-  sed -e '/^func_dirname ()$/,/^} # func_dirname /c\
-func_dirname ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-} # Extended-shell func_dirname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_basename ()$/,/^} # func_basename /c\
-func_basename ()\
-{\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_dirname_and_basename ()$/,/^} # func_dirname_and_basename /c\
-func_dirname_and_basename ()\
-{\
-\    case ${1} in\
-\      */*) func_dirname_result="${1%/*}${2}" ;;\
-\      *  ) func_dirname_result="${3}" ;;\
-\    esac\
-\    func_basename_result="${1##*/}"\
-} # Extended-shell func_dirname_and_basename implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_stripname ()$/,/^} # func_stripname /c\
-func_stripname ()\
-{\
-\    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are\
-\    # positional parameters, so assign one to ordinary parameter first.\
-\    func_stripname_result=${3}\
-\    func_stripname_result=${func_stripname_result#"${1}"}\
-\    func_stripname_result=${func_stripname_result%"${2}"}\
-} # Extended-shell func_stripname implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_long_opt ()$/,/^} # func_split_long_opt /c\
-func_split_long_opt ()\
-{\
-\    func_split_long_opt_name=${1%%=*}\
-\    func_split_long_opt_arg=${1#*=}\
-} # Extended-shell func_split_long_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_split_short_opt ()$/,/^} # func_split_short_opt /c\
-func_split_short_opt ()\
-{\
-\    func_split_short_opt_arg=${1#??}\
-\    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}\
-} # Extended-shell func_split_short_opt implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_lo2o ()$/,/^} # func_lo2o /c\
-func_lo2o ()\
-{\
-\    case ${1} in\
-\      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;\
-\      *)    func_lo2o_result=${1} ;;\
-\    esac\
-} # Extended-shell func_lo2o implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_xform ()$/,/^} # func_xform /c\
-func_xform ()\
-{\
-    func_xform_result=${1%.*}.lo\
-} # Extended-shell func_xform implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_arith ()$/,/^} # func_arith /c\
-func_arith ()\
-{\
-    func_arith_result=$(( $* ))\
-} # Extended-shell func_arith implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_len ()$/,/^} # func_len /c\
-func_len ()\
-{\
-    func_len_result=${#1}\
-} # Extended-shell func_len implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  sed -e '/^func_append ()$/,/^} # func_append /c\
-func_append ()\
-{\
-    eval "${1}+=\\${2}"\
-} # Extended-shell func_append implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  sed -e '/^func_append_quoted ()$/,/^} # func_append_quoted /c\
-func_append_quoted ()\
-{\
-\    func_quote_for_eval "${2}"\
-\    eval "${1}+=\\\\ \\$func_quote_for_eval_result"\
-} # Extended-shell func_append_quoted implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([a-zA-Z_]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Unable to substitute extended shell functions in $ofile" >&5
-$as_echo "$as_me: WARNING: Unable to substitute extended shell functions in $ofile" >&2;}
-fi
-
-
-   mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-
-
-    cat <<_LT_EOF >> "$ofile"
-
-# ### BEGIN LIBTOOL TAG CONFIG: CXX
-
-# The linker used to build libraries.
-LD=$lt_LD_CXX
-
-# How to create reloadable object files.
-reload_flag=$lt_reload_flag_CXX
-reload_cmds=$lt_reload_cmds_CXX
-
-# Commands used to build an old-style archive.
-old_archive_cmds=$lt_old_archive_cmds_CXX
-
-# A language specific compiler.
-CC=$lt_compiler_CXX
-
-# Is the compiler the GNU compiler?
-with_gcc=$GCC_CXX
-
-# Compiler flag to turn off builtin functions.
-no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX
-
-# Additional compiler flags for building library objects.
-pic_flag=$lt_lt_prog_compiler_pic_CXX
-
-# How to pass a linker flag through the compiler.
-wl=$lt_lt_prog_compiler_wl_CXX
-
-# Compiler flag to prevent dynamic linking.
-link_static_flag=$lt_lt_prog_compiler_static_CXX
-
-# Does compiler simultaneously support -c and -o options?
-compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX
-
-# Whether or not to add -lc for building shared libraries.
-build_libtool_need_lc=$archive_cmds_need_lc_CXX
-
-# Whether or not to disallow shared libs when runtime libs are static.
-allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX
-
-# Compiler flag to allow reflexive dlopens.
-export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX
-
-# Compiler flag to generate shared objects directly from archives.
-whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX
-
-# Whether the compiler copes with passing no objects directly.
-compiler_needs_object=$lt_compiler_needs_object_CXX
-
-# Create an old-style archive from a shared archive.
-old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX
-
-# Create a temporary old-style archive to link instead of a shared archive.
-old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX
-
-# Commands used to build a shared archive.
-archive_cmds=$lt_archive_cmds_CXX
-archive_expsym_cmds=$lt_archive_expsym_cmds_CXX
-
-# Commands used to build a loadable module if different from building
-# a shared archive.
-module_cmds=$lt_module_cmds_CXX
-module_expsym_cmds=$lt_module_expsym_cmds_CXX
-
-# Whether we are building with GNU ld or not.
-with_gnu_ld=$lt_with_gnu_ld_CXX
-
-# Flag that allows shared libraries with undefined symbols to be built.
-allow_undefined_flag=$lt_allow_undefined_flag_CXX
-
-# Flag that enforces no undefined symbols.
-no_undefined_flag=$lt_no_undefined_flag_CXX
-
-# Flag to hardcode \$libdir into a binary during linking.
-# This must work even if \$libdir does not exist
-hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX
-
-# Whether we need a single "-rpath" flag with a separated argument.
-hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary.
-hardcode_direct=$hardcode_direct_CXX
-
-# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes
-# DIR into the resulting binary and the resulting library dependency is
-# "absolute",i.e impossible to change by setting \${shlibpath_var} if the
-# library is relocated.
-hardcode_direct_absolute=$hardcode_direct_absolute_CXX
-
-# Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-# into the resulting binary.
-hardcode_minus_L=$hardcode_minus_L_CXX
-
-# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-# into the resulting binary.
-hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX
-
-# Set to "yes" if building a shared library automatically hardcodes DIR
-# into the library and all subsequent libraries and executables linked
-# against it.
-hardcode_automatic=$hardcode_automatic_CXX
-
-# Set to yes if linker adds runtime paths of dependent libraries
-# to runtime path list.
-inherit_rpath=$inherit_rpath_CXX
-
-# Whether libtool must link a program against all its dependency libraries.
-link_all_deplibs=$link_all_deplibs_CXX
-
-# Set to "yes" if exported symbols are required.
-always_export_symbols=$always_export_symbols_CXX
-
-# The commands to list exported symbols.
-export_symbols_cmds=$lt_export_symbols_cmds_CXX
-
-# Symbols that should not be listed in the preloaded symbols.
-exclude_expsyms=$lt_exclude_expsyms_CXX
-
-# Symbols that must always be exported.
-include_expsyms=$lt_include_expsyms_CXX
-
-# Commands necessary for linking programs (against libraries) with templates.
-prelink_cmds=$lt_prelink_cmds_CXX
-
-# Commands necessary for finishing linking programs.
-postlink_cmds=$lt_postlink_cmds_CXX
-
-# Specify filename containing input files.
-file_list_spec=$lt_file_list_spec_CXX
-
-# How to hardcode a shared library path into an executable.
-hardcode_action=$hardcode_action_CXX
-
-# The directories searched by this compiler when creating a shared library.
-compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX
-
-# Dependencies to place before and after the objects being linked to
-# create a shared library.
-predep_objects=$lt_predep_objects_CXX
-postdep_objects=$lt_postdep_objects_CXX
-predeps=$lt_predeps_CXX
-postdeps=$lt_postdeps_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
-
-# ### END LIBTOOL TAG CONFIG: CXX
-_LT_EOF
-
- ;;
-
-  esac
-done # for ac_tag
-
-
-as_fn_exit 0
-_ACEOF
-ac_clean_files=$ac_clean_files_save
-
-test $ac_write_fail = 0 ||
-  as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5
-
-
-# configure is writing to config.log, and then calls config.status.
-# config.status does its own redirection, appending to config.log.
-# Unfortunately, on DOS this fails, as config.log is still kept open
-# by configure, so config.status won't be able to write to it; its
-# output is simply discarded.  So we exec the FD to /dev/null,
-# effectively closing config.log, so it can be properly (re)opened and
-# appended to by config.status.  When coming back to configure, we
-# need to make the FD available again.
-if test "$no_create" != yes; then
-  ac_cs_success=:
-  ac_config_status_args=
-  test "$silent" = yes &&
-    ac_config_status_args="$ac_config_status_args --quiet"
-  exec 5>/dev/null
-  $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false
-  exec 5>>config.log
-  # Use ||, not &&, to avoid exiting from the if with $? = 1, which
-  # would make configure fail if this is the last instruction.
-  $ac_cs_success || as_fn_exit 1
-fi
-if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5
-$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;}
-fi
-
-
-
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
-$as_echo "" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: MapServer is now configured for ${host}" >&5
-$as_echo "MapServer is now configured for ${host}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
-$as_echo "" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:  -------------- Compiler Info ------------- " >&5
-$as_echo " -------------- Compiler Info ------------- " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   C compiler:                ${CC} ${CFLAGS}" >&5
-$as_echo "  C compiler:                ${CC} ${CFLAGS}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   C++ compiler:              ${CXX} ${CXXFLAGS}" >&5
-$as_echo "  C++ compiler:              ${CXX} ${CXXFLAGS}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   Debug:                     ${REPORT_ENABLE_DEBUG}${DEBUG_FLAGS}" >&5
-$as_echo "  Debug:                     ${REPORT_ENABLE_DEBUG}${DEBUG_FLAGS}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   Generic NINT:              ${USE_NINT}" >&5
-$as_echo "  Generic NINT:              ${USE_NINT}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
-$as_echo "" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:  -------------- Renderer Settings --------- " >&5
-$as_echo " -------------- Renderer Settings --------- " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   OpenGL support:            ${OGL_ENABLED}" >&5
-$as_echo "  OpenGL support:            ${OGL_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   zlib support:              ${ZLIB_ENABLED}" >&5
-$as_echo "  zlib support:              ${ZLIB_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   png support:               ${PNG_ENABLED}" >&5
-$as_echo "  png support:               ${PNG_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   gif support:               ${GIF_ENABLED}" >&5
-$as_echo "  gif support:               ${GIF_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   jpeg support:              ${JPEG_ENABLED}" >&5
-$as_echo "  jpeg support:              ${JPEG_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   freetype support:          ${FT_ENABLED}" >&5
-$as_echo "  freetype support:          ${FT_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   iconv support:             ${ICONV_ENABLED}" >&5
-$as_echo "  iconv support:             ${ICONV_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   AGG support:               ${AGG_ENABLED}" >&5
-$as_echo "  AGG support:               ${AGG_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   GD support:                ${GD_ENABLED}" >&5
-$as_echo "  GD support:                ${GD_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   Cairo (SVG,PDF) support:   ${CAIRO_ENABLED}" >&5
-$as_echo "  Cairo (SVG,PDF) support:   ${CAIRO_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   Cairo SVG symbol support:  ${LIBSVG_CAIRO_ENABLED}" >&5
-$as_echo "  Cairo SVG symbol support:  ${LIBSVG_CAIRO_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   KML support:               ${KML_ENABLED}" >&5
-$as_echo "  KML support:               ${KML_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
-$as_echo "" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:  -------------- Support Libraries --------- " >&5
-$as_echo " -------------- Support Libraries --------- " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   Proj.4 support:            ${PROJ_ENABLED}" >&5
-$as_echo "  Proj.4 support:            ${PROJ_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   Proj Fastpaths:            ${PROJ_FASTPATH_ENABLED}" >&5
-$as_echo "  Proj Fastpaths:            ${PROJ_FASTPATH_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   Libxml2 support:           ${XML2_ENABLED}" >&5
-$as_echo "  Libxml2 support:           ${XML2_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   FriBidi support:           ${FRIBIDI_ENABLED}" >&5
-$as_echo "  FriBidi support:           ${FRIBIDI_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   Curl support:              ${CURL_ENABLED}" >&5
-$as_echo "  Curl support:              ${CURL_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   FastCGI support:           ${FASTCGI_ENABLED}" >&5
-$as_echo "  FastCGI support:           ${FASTCGI_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   Exempi support:            ${EXEMPI_ENABLED}" >&5
-$as_echo "  Exempi support:            ${EXEMPI_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   Threading support:         ${THREAD_FLAG}" >&5
-$as_echo "  Threading support:         ${THREAD_FLAG}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   GEOS support:              ${GEOS_ENABLED}" >&5
-$as_echo "  GEOS support:              ${GEOS_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   XML Mapfile support:        ${XMLMAPFILE_ENABLED}" >&5
-$as_echo "  XML Mapfile support:        ${XMLMAPFILE_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   XSLT support:              ${XSLT_ENABLED}" >&5
-$as_echo "  XSLT support:              ${XSLT_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   EXSLT support:              ${EXSLT_ENABLED}" >&5
-$as_echo "  EXSLT support:              ${EXSLT_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
-$as_echo "" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:  -------------- Data Format Drivers ------- " >&5
-$as_echo " -------------- Data Format Drivers ------- " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   PostGIS support:           ${POSTGIS_ENABLED}" >&5
-$as_echo "  PostGIS support:           ${POSTGIS_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   ArcSDE support:            ${SDE_ENABLED}" >&5
-$as_echo "  ArcSDE support:            ${SDE_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   OGR support:               ${OGR_ENABLED}" >&5
-$as_echo "  OGR support:               ${OGR_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   GDAL support:              ${GDAL_ENABLED}" >&5
-$as_echo "  GDAL support:              ${GDAL_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   Oracle Spatial support:    ${ORACLESPATIAL_ENABLED}" >&5
-$as_echo "  Oracle Spatial support:    ${ORACLESPATIAL_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
-$as_echo "" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:  -------------- OGC Services -------------- " >&5
-$as_echo " -------------- OGC Services -------------- " >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   WMS Server:                ${WMS_SVR_ENABLED}" >&5
-$as_echo "  WMS Server:                ${WMS_SVR_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   WMS Client:                ${WMS_LYR_ENABLED}" >&5
-$as_echo "  WMS Client:                ${WMS_LYR_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   WFS Server:                ${WFS_SVR_ENABLED}" >&5
-$as_echo "  WFS Server:                ${WFS_SVR_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   WFS Client:                ${WFS_LYR_ENABLED}" >&5
-$as_echo "  WFS Client:                ${WFS_LYR_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   WCS Server:                ${WCS_SVR_ENABLED}" >&5
-$as_echo "  WCS Server:                ${WCS_SVR_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:   SOS Server:                ${SOS_SVR_ENABLED}" >&5
-$as_echo "  SOS Server:                ${SOS_SVR_ENABLED}" >&6; }
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
-$as_echo "" >&6; }
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result:  -------------- MapScript ----------------- " >&5
-$as_echo " -------------- MapScript ----------------- " >&6; }
-if test -n "${PHP_MAPSCRIPT}"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:   PHP MapScript:             yes" >&5
-$as_echo "  PHP MapScript:             yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:   PHP MapScript:             no" >&5
-$as_echo "  PHP MapScript:             no" >&6; }
-fi
-if test -n "${PYTHON_MAPSCRIPT}"; then
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:   Python MapScript:          yes" >&5
-$as_echo "  Python MapScript:          yes" >&6; }
-else
-  { $as_echo "$as_me:${as_lineno-$LINENO}: result:   Python MapScript:          no" >&5
-$as_echo "  Python MapScript:          no" >&6; }
-fi
-
-{ $as_echo "$as_me:${as_lineno-$LINENO}: result: " >&5
-$as_echo "" >&6; }
diff --git a/configure.in b/configure.in
deleted file mode 100755
index a8ffbcf..0000000
--- a/configure.in
+++ /dev/null
@@ -1,2560 +0,0 @@
-dnl **************************************************************************
-dnl $Id$
-dnl
-dnl Project:  MapServer
-dnl Purpose:  Main autoconf script ( Process this file with autoconf to 
-dnl           produce a configure script.)
-dnl Author:   Steve Lime and the MapServer team.
-dnl
-dnl **************************************************************************
-dnl Copyright (c) 1996-2007 Regents of the University of Minnesota.
-dnl
-dnl Permission is hereby granted, free of charge, to any person obtaining a
-dnl copy of this software and associated documentation files (the "Software"),
-dnl to deal in the Software without restriction, including without limitation
-dnl the rights to use, copy, modify, merge, publish, distribute, sublicense,
-dnl and/or sell copies of the Software, and to permit persons to whom the
-dnl Software is furnished to do so, subject to the following conditions:
-dnl
-dnl The above copyright notice and this permission notice shall be included in 
-dnl all copies of this Software or works derived from this Software.
-dnl
-dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
-dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
-dnl DEALINGS IN THE SOFTWARE.
-dnl **************************************************************************
-
-
-AC_INIT(Makefile.in)
-LT_INIT([disable-static])
-AC_CONFIG_MACRO_DIR([m4/])
-m4_include([m4/mapserver.m4])
-m4_include([m4/apache.m4])
-m4_include([m4/ax_jni_include_dir.m4])
-m4_include([m4/ax_pkg_swig.m4])
-m4_include([m4/ax_cflags_warn_all.m4])
-
-AC_CONFIG_SRCDIR([mapserv.c])
-dnl Checks for programs.
-AC_PROG_CC
-AC_PROG_CXX
-PROG_CXX_WORKS
-AC_PROG_LEX
-AC_PROG_YACC
-AC_PROG_LIBTOOL
-AC_PROG_INSTALL
-AC_PROG_SED
-
-dnl ---------------------------------------------------------------------
-dnl Look for MapServer version in mapserver.h
-dnl ---------------------------------------------------------------------
-MS_VERSION=`grep 'MS_VERSION ' mapserver.h | grep '#define' | cut -d\" -f2`
-AC_MSG_RESULT([MapServer Version from mapserver.h: '$MS_VERSION'])
-AC_SUBST(MS_VERSION,    "$MS_VERSION")
-
-
-
-dnl ---------------------------------------------------------------------
-dnl Checks for libraries.
-dnl ---------------------------------------------------------------------
-AC_CHECK_LIB(m,exp, XTRALIBS="$XTRALIBS -lm",,)
-AC_CHECK_LIB(dl,dlopen, XTRALIBS="$XTRALIBS -ldl",,)
-AC_SUBST(XTRALIBS, $XTRALIBS)
-
-AC_CHECK_LIB(stdc++,__gxx_personality_v0, XTRALIBS="$XTRALIBS -lstdc++",,)
-AC_SUBST(XTRALIBS, $XTRALIBS)
-
-LIBS="$XTRALIBS $LIBS"
-
-dnl ---------------------------------------------------------------------
-dnl Checks for header files.
-dnl ---------------------------------------------------------------------
-AC_HEADER_STDC
-
-dnl ---------------------------------------------------------------------
-dnl Check for some string functions
-dnl ---------------------------------------------------------------------
-AC_CHECK_FUNC(strcasecmp, ,  STRINGS="-DNEED_STRCASECMP $STRINGS")
-AC_CHECK_FUNC(strncasecmp, , STRINGS="-DNEED_STRNCASECMP $STRINGS")
-AC_CHECK_FUNC(strdup, ,      STRINGS="-DNEED_STRDUP $STRINGS")
-AC_CHECK_FUNC(strrstr, ,      STRINGS="-DNEED_STRRSTR $STRINGS")
-AC_CHECK_FUNC(strcasestr, ,      STRINGS="-DNEED_STRCASESTR $STRINGS")
-AC_CHECK_FUNC(strlcat, ,      STRINGS="-DNEED_STRLCAT $STRINGS")
-AC_CHECK_FUNC(strlcpy, ,      STRINGS="-DNEED_STRLCPY $STRINGS")
-AC_CHECK_FUNC(vsnprintf, STRINGS="-DHAVE_VSNPRINTF $STRINGS", )
-AC_SUBST(STRINGS, $STRINGS)
-ALL_ENABLED="$STRINGS $ALL_ENABLED"
-
-
-dnl ---------------------------------------------------------------------
-dnl Several libraries may use pkg-config.
-dnl ---------------------------------------------------------------------
-
-AC_MSG_CHECKING(if pkg-config path is provided)
-
-AC_ARG_WITH(pkg-config,
-[  --with-pkg-config[[=PATH]]
-                          Include pkg-config support (PATH is path to pkg-config)],,)
-
-if test -n "$with_pkg_config" -a "$with_pkg_config" != "no" ; then
-
-  AC_MSG_RESULT([yes])
-
-  PKG_CONFIG=$with_pkg_config
-else
-  PKG_CONFIG="yes"
-fi
-
-if test "$PKG_CONFIG" = "yes" ; then
-
-   AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
-
-   if test "$PKG_CONFIG" = "no" ; then
-      AC_MSG_RESULT([couldn't find pkg-config in default path. Please specify full path to pkg-config if needed])
-   fi
-
-elif test -f "$PKG_CONFIG" -a -x "$PKG_CONFIG" ; then
-     AC_MSG_RESULT([user supplied pkg-config ($PKG_CONFIG)])
-else
-     AC_MSG_ERROR(['$PKG_CONFIG' is not an executable.  Make sure you use --with-pkg-config=/path/to/pkg-config])
-fi
-
-dnl ---------------------------------------------------------------------
-dnl Several libraries might be needed for GD: png, zlib, freetype,
-dnl and jpeg (processed above).  Use where GD was found as default.
-dnl ---------------------------------------------------------------------
-
-dnl ---------------------------------------------------------------------
-dnl Check where FreeType is installed
-dnl ---------------------------------------------------------------------
-
-unset ac_cv_lib_freetype_FT_Init_FreeType
-unset ac_cv_lib_ttf_TT_Init_FreeType
-
-AC_ARG_WITH(freetype,
-[  --with-freetype=DIR     GD: Specify where FreeType 2.x is installed (DIR is
-                              path to freetype-config program or install dir).],
-    FT_DIR=$withval,FT_DIR='')
-
-FT_LDFLAGS=''
-FT_CFLAGS=''
-FT_BIN=''
-
-if test "x$FT_DIR" = "xno" ; then
-    AC_MSG_ERROR([Freetype support disabled but is now mandatory. Rerun without --without-freetype or --with-freetype=no])
-fi
-
-     
-if test -z "$FT_DIR" -o "$FT_DIR" = "yes" ; then
-    dnl no supplied argument
-    AC_PATH_PROG(FT_BIN, freetype-config, "")
-    if test "x$FT_BIN" = "xno" ; then
-        dnl freetype-config not found, check system locations
-        AC_MSG_CHECKING([for Freetype2.x in system locations])
-        test -f /usr/include/ft2build.h -a -d /usr/include/freetype2 && FT_CFLAGS=-I/usr/include/freetype2
-        test -f /usr/local/include/ft2build.h -a -d /usr/local/include/freetype2 && FT_CFLAGS=-I/usr/local/include -I/usr/local/include/freetype2
-        FT_LDFLAGS="-lfreetype -lz"  
-    dnl else freetype-config found, will test further down
-    fi
-else
-    AC_EXPAND_PATH($FT_DIR, FT_DIR)
-    AC_MSG_CHECKING(for Freetype2.x in $FT_DIR)
-    test -x "$FT_DIR" -a "freetype-config" = "`basename $FT_DIR ''`" && FT_BIN="$FT_DIR"
-    test -x "$FT_DIR/freetype-config" && FT_BIN="$FT_DIR/freetype-config"
-    test -x "$FT_DIR/bin/freetype-config" && FT_BIN="$FT_DIR/bin/freetype-config"
-    if test "x$FT_BIN" = "x"; then
-        test -f $FT_DIR/ft2build.h -a -d $FT_DIR/freetype2 && FT_CFLAGS="-I$FT_DIR -I$FT_DIR/freetype2"
-        test -f $FT_DIR/include/ft2build.h -a -d $FT_DIR/include/freetype2 && FT_CFLAGS="-I$FT_DIR/include -I$FT_DIR/include/freetype2"
-        test -f $FT_DIR/lib/libfreetype.a -o -f $FT_DIR/lib/libfreetype.so -o -f $FT_DIR/lib/libfreetype.sl -o -f $FT_DIR/lib/libfreetype.dylib && FT_LDFLAGS="-L$FT_DIR/lib"
-        test -f $FT_DIR/lib64/libfreetype.a -o -f $FT_DIR/lib64/libfreetype.so -o -f $FT_DIR/lib64/libfreetype.sl && FT_LDFLAGS="-L$FT_DIR/lib64"
-        test -f $FT_DIR/libfreetype.a -o -f $FT_DIR/libfreetype.so -o -f $FT_DIR/libfreetype.sl -o -f $FT_DIR/libfreetype.dylib && FT_LDFLAGS="-L$FT_DIR"
-    dnl else freetype-config found, will test further down
-    fi
-fi
-
-if test "x$FT_BIN" != "x" ; then
-        FT_LDFLAGS=`$FT_BIN --libs`
-        FT_CFLAGS=`$FT_BIN --cflags`
-fi
-
-
-_cppflags="$CPPFLAGS"
-_ldflags="$LDFLAGS"
-_libs="$LIBS"
-CPPFLAGS="$FT_CFLAGS $CPPFLAGS"
-LDFLAGS="$FT_LDFLAGS $LDFLAGS"
-
-AC_CHECK_LIB(freetype,FT_Init_FreeType,[:],
-             AC_MSG_ERROR([unable to link - reconfigure with correct --with-freetype=dir ]))
-
-AC_CHECK_HEADERS(ft2build.h,[:],
-                 AC_MSG_ERROR([ft2build.h header not found - reconfigure with correct --with-freetype=dir ]))
-
-CPPFLAGS=$_cppflags
-LDFLAGS=$_ldflags
-LIBS=$_libs
-FT_ENABLED="-DUSE_FREETYPE"
-AC_SUBST(FT_ENABLED,$FT_ENABLED)
-AC_SUBST(FT_INC,$FT_CFLAGS)
-AC_SUBST(FT_LIB,$FT_LDFLAGS)
-ALL_ENABLED="$FT_ENABLED $ALL_ENABLED"
-ALL_INC="$FT_CFLAGS $ALL_INC"
-ALL_LIB="$FT_LDFLAGS $ALL_LIB"
-
-
-
-AC_DEFUN([MS_CHECK_PNG],[
-   AC_ARG_WITH(png,
-      AC_HELP_STRING([--with-png], [libpng location: [yes|/path/to/png/prefix]]),
-      [],
-      [with_png=yes])
-   if test x"$with_png" == "xno"; then
-      AC_MSG_ERROR([png support cannot be disabled])
-   fi
-
-   if test -z "$with_png" -o "$with_png" == "yes" -o "$with_png" == "/usr"; then
-      AC_CHECK_HEADER([png.h],[:],
-                   [AC_MSG_ERROR([png.h header not found. install png development package, or reconfigure with --with-png=/path/to/png/prefix])])
-      AC_CHECK_HEADER([setjmp.h],[:],
-                   [AC_MSG_ERROR([setjmp.h header not found. install png development package, or reconfigure with --with-png=/path/to/png/prefix])])
-      AC_CHECK_LIB([png], [png_init_io],[:],
-                   [AC_MSG_ERROR([libpng library not found. install png development package, or reconfigure with --with-png=/path/to/png/prefix])])
-
-   else
-      old_LDFLAGS="$LDFLAGS"
-      old_CPPFLAGS="$CPPFLAGS"
-
-      CPPFLAGS="-I$with_png/include"
-      LDFLAGS="-L$with_png/lib"
-      
-      AC_CHECK_HEADER([png.h],[:],
-                   [AC_MSG_ERROR([png.h header not found in $with_png. install png development package, or reconfigure with --with-png=/path/to/png/prefix])])
-      AC_CHECK_HEADER([setjmp.h],[:],
-                   [AC_MSG_ERROR([setjmp.h header not found. install png development package, or reconfigure with --with-png=/path/to/png/prefix])])
-      AC_CHECK_LIB([png], [png_init_io],[:],
-                   [AC_MSG_ERROR([libpng library not found in $with_png. install png development package, or reconfigure with --with-png=/path/to/png/prefix])])
-      PNG_INC="$CPPFLAGS"
-      PNG_LIB="$LDFLAGS"
-      CPPFLAGS="$old_CPPFLAGS"
-      LDFLAGS="$old_LDFLAGS"
-   fi
-   PNG_ENABLED="-DUSE_PNG"
-
-   ALL_ENABLED="$PNG_ENABLED $ALL_ENABLED"
-   ALL_INC="$ALL_INC $PNG_INC"
-   ALL_LIB="$ALL_LIB $PNG_LIB -lpng"
-   AC_SUBST(PNG_ENABLED, "$PNG_ENABLED")
-   AC_SUBST(PNG_INC,    "$PNG_INC")
-   AC_SUBST(PNG_LIB,    "$PNG_LIB -lpng")
-
-])
-
-
-AC_DEFUN([MS_CHECK_JPEG],[
-   AC_ARG_WITH(jpeg,
-      AC_HELP_STRING([--with-jpeg], [libjpeg location: [yes|/path/to/jpeg/prefix]]),
-      [],
-      [with_jpeg=yes])
-   if test x"$with_jpeg" == "xno"; then
-      AC_MSG_ERROR([jpeg support cannot be disabled])
-   fi
-
-   if test -z "$with_jpeg" -o "$with_jpeg" == "yes" -o "$with_jpeg" == "/usr"; then
-      AC_CHECK_HEADER([jpeglib.h],[:],
-                   [AC_MSG_ERROR([jpeglib.h header not found. install jpeg development package, or reconfigure with --with-jpeg=/path/to/jpeg/prefix])])
-      AC_CHECK_LIB([jpeg], [jpeg_read_header],[:],
-                   [AC_MSG_ERROR([libjpeg library not found. install jpeg development package, or reconfigure with --with-jpeg=/path/to/jpeg/prefix])])
-
-   else
-      old_LDFLAGS="$LDFLAGS"
-      old_CPPFLAGS="$CPPFLAGS"
-
-      CPPFLAGS="-I$with_jpeg/include"
-      LDFLAGS="-L$with_jpeg/lib"
-      
-      AC_CHECK_HEADER([jpeglib.h],[:],
-                   [AC_MSG_ERROR([jpeglib.h header not found in $with_jpeg. install jpeg development package, or reconfigure with --with-jpeg=/path/to/jpeg/prefix])])
-      AC_CHECK_LIB([jpeg], [jpeg_read_header],[:],
-                   [AC_MSG_ERROR([libjpeg library not found in $with_jpeg. install jpeg development package, or reconfigure with --with-jpeg=/path/to/jpeg/prefix])])
-      JPEG_INC="$CPPFLAGS"
-      JPEG_LIB="$LDFLAGS"
-      CPPFLAGS="$old_CPPFLAGS"
-      LDFLAGS="$old_LDFLAGS"
-   fi
-   JPEG_ENABLED="-DUSE_JPEG"
-
-   ALL_ENABLED="$JPEG_ENABLED $ALL_ENABLED"
-   ALL_INC="$ALL_INC $JPEG_INC"
-   ALL_LIB="$ALL_LIB $JPEG_LIB -ljpeg"
-   AC_SUBST(JPEG_ENABLED, "$JPEG_ENABLED")
-   AC_SUBST(JPEG_INC,    "$JPEG_INC")
-   AC_SUBST(JPEG_LIB,    "$JPEG_LIB -ljpeg")
-
-])
-
-dnl ---------------------------------------------------------------------
-dnl Check where PNG is installed
-dnl ---------------------------------------------------------------------
-
-MS_CHECK_PNG
-
-
-dnl ---------------------------------------------------------------------
-dnl Check where GIF is installed
-dnl ---------------------------------------------------------------------
-
-AC_MSG_CHECKING(whether we should include GIF support)
-AC_DEFUN([MS_CHECK_GIF],[
-   AC_ARG_WITH(gif,
-      AC_HELP_STRING([--with-gif], [libgif location: [yes|no|/path/to/gif/prefix]]),
-      [],
-      [with_gif=yes])
-   if test x"$with_gif" == "xno"; then
-      AC_SUBST(GIF_ENABLED, "")
-      AC_SUBST(GIF_INC,    "")
-      AC_SUBST(GIF_LIB,    "")
-      AC_MSG_RESULT([no])
-   else
-      AC_MSG_RESULT([yes])
-      if test -z "$with_gif" -o "$with_gif" == "yes" -o "$with_gif" == "/usr"; then
-         AC_CHECK_HEADER([gif_lib.h],[:],
-                      [AC_MSG_ERROR([gif_lib.h header not found. install gif development package, or reconfigure with --with-gif=/path/to/gif/prefix])])
-         AC_CHECK_LIB([gif], [DGifOpenFileHandle],[:],
-                      [AC_MSG_ERROR([libgif library not found. install gif development package, or reconfigure with --with-gif=/path/to/gif/prefix])])
-
-      else
-         old_LDFLAGS="$LDFLAGS"
-         old_CPPFLAGS="$CPPFLAGS"
-
-         CPPFLAGS="-I$with_gif/include"
-         LDFLAGS="-L$with_gif/lib"
-         
-         AC_CHECK_HEADER([gif_lib.h],[:],
-                      [AC_MSG_ERROR([gif_lib.h header not found in $with_gif. install gif development package, or reconfigure with --with-gif=/path/to/gif/prefix])])
-         AC_CHECK_LIB([gif], [DGifOpenFileHandle],[:],
-                      [AC_MSG_ERROR([libgif library not found in $with_gif. install gif development package, or reconfigure with --with-gif=/path/to/gif/prefix])])
-         GIF_INC="$CPPFLAGS"
-         GIF_LIB="$LDFLAGS"
-         CPPFLAGS="$old_CPPFLAGS"
-         LDFLAGS="$old_LDFLAGS"
-      fi
-      GIF_ENABLED="-DUSE_GIF"
-
-      ALL_ENABLED="$GIF_ENABLED $ALL_ENABLED"
-      ALL_INC="$ALL_INC $GIF_INC"
-      ALL_LIB="$ALL_LIB $GIF_LIB -lgif"
-      AC_SUBST(GIF_ENABLED, "$GIF_ENABLED")
-      AC_SUBST(GIF_INC,    "$GIF_INC")
-      AC_SUBST(GIF_LIB,    "$GIF_LIB -lgif")
-   fi
-])
-
-MS_CHECK_GIF
-
-AC_CHECKING([for jpeg library location (mandatory)])
-MS_CHECK_JPEG
-
-
-dnl ---------------------------------------------------------------------
-dnl Check where libiconv is installed. We always look for it, even if not
-dnl explicitly requested since GD may require it for linking.
-dnl Iconv can come either as libiconv.so or as part of glibc
-dnl ---------------------------------------------------------------------
-
-unset ac_cv_lib_iconv_libiconv_open
-unset ac_cv_lib_iconv_iconv_open
-unset ac_cv_lib_c_iconv_open
-
-AC_ARG_WITH(libiconv,
-[  --with-libiconv=DIR     Specify where libiconv is installed (DIR is path
-                          to libiconv install dir (prefix)).],
-    ICONV_DIR=$withval,ICONV_DIR='')
-
-AC_CHECKING(where libiconv is installed)
-
-ICONV_LIB=''
-
-if test -n "$ICONV_DIR" -a "$ICONV_DIR" != "yes" ; then
-
-  AC_EXPAND_PATH($ICONV_DIR, ICONV_DIR)
-
-  test -f $ICONV_DIR/include/iconv.h && ICONV_LIBDIR="$ICONV_DIR/lib" && ICONV_INCDIR="$ICONV_DIR/include"
-  test -f $ICONV_DIR/lib/libiconv.a -o -f $ICONV_DIR/lib/libiconv.so -o -f $ICONV_DIR/lib/libiconv.sl -o -f $ICONV_DIR/lib/libiconv.dylib && ICONV_LIBDIR="$ICONV_DIR/lib" && ICONV_INCDIR="$ICONV_DIR/include"
-  test -f $ICONV_DIR/lib64/libiconv.a -o -f $ICONV_DIR/lib64/libiconv.so -o -f $ICONV_DIR/lib64/libiconv.sl && ICONV_LIBDIR="$ICONV_DIR/lib64" && ICONV_INCDIR="$ICONV_DIR/include"
-
-  dnl If we have both the glibc and a local libiconv, then the local libiconv
-  dnl will be included in the link line no matter what. This shouldn't hurt
-  dnl programs that don't need it, and saves us from having to figure some
-  dnl black magic to detect what was used to build GD, etc.
-  dnl Just doing the AC_CHECK_LIB(iconv ...) last does the trick.
-  AC_CHECK_LIB(c, iconv_open, ICONV_LIB="-L$ICONV_LIBDIR -lc",,"-L$ICONV_LIBDIR")
-  AC_CHECK_LIB(iconv, libiconv_open, ICONV_LIB="-L$ICONV_LIBDIR -liconv",,"-L$ICONV_LIBDIR")
-  AC_CHECK_LIB(iconv, iconv_open, ICONV_LIB="-L$ICONV_LIBDIR -liconv",,"-L$ICONV_LIBDIR")
-
-fi
-
-if test -n "$ICONV_LIB" ; then
-  if test -n "$ICONV_INCDIR"; then 
-     ICONV_INC="-I$ICONV_INCDIR"
-  fi
-  AC_MSG_RESULT([        using libiconv from $ICONV_LIB])
-  AC_ADD_RUNPATH("$ICONV_DIR")
-
-else
-
-  dnl check for lib in system libs
-
-  unset ac_cv_lib_iconv_libiconv_open
-  unset ac_cv_lib_c_iconv_open
-  AC_CHECK_LIB(c, iconv_open, ICONV_LIB="-lc",,)
-  AC_CHECK_LIB(iconv, libiconv_open, ICONV_LIB="-liconv",,)
-  AC_CHECK_LIB(iconv, iconv_open, ICONV_LIB="-liconv",,)
-
-  if test -n "$ICONV_LIB" ; then
-    AC_MSG_RESULT([        using libiconv from system libs.])
-  else
-    AC_MSG_RESULT([        libiconv library cannot be found, possibly needed for GD])
-  fi
-
-fi
-
-if test -n "$ICONV_LIB" ; then
-  ICONV_ENABLED="-DUSE_ICONV"
-  AC_MSG_RESULT([        libiconv found. Enabling internationalization ($ICONV_ENABLED)])
-fi
-
-
-AC_SUBST(ICONV_ENABLED, $ICONV_ENABLED)
-AC_SUBST(ICONV_INC,     $ICONV_INC)
-AC_SUBST(ICONV_LIB,     $ICONV_LIB)
-
-ALL_ENABLED="$ICONV_ENABLED $ALL_ENABLED"
-ALL_INC="$ICONV_INC $ALL_INC"
-ALL_LIB="$ICONV_LIB $ALL_LIB"
-
-
-dnl ---------------------------------------------------------------------
-dnl Find GD library
-dnl
-dnl ---------------------------------------------------------------------
-
-
-AC_DEFUN([MS_CHECK_GD],[
-   AC_ARG_WITH(gd,
-      AC_HELP_STRING([--with-gd], [libgd location: [yes|no|/path/to/gdlib-config]]),
-      [],
-      [with_gd=no])
-
-   if test x"$with_gd" == "xno"; then
-      AC_SUBST(GD_ENABLED, "")
-      AC_SUBST(GD_INC, "")
-      AC_SUBST(GD_LIB, "")
-      AC_MSG_RESULT([GD support not requested, disabling])
-   else
-      if test "$with_gd" == "yes"; then
-         AC_PATH_PROG(GDCONFIG,gdlib-config,no)
-         if test "$GDCONFIG" == "no"; then
-            AC_MSG_ERROR([gdlib-config not found in path, reconfigure with --with-gd=/path/to/gdlib-config])
-         fi
-      else
-         if test ! -f "$with_gd"; then
-            if test ! -d "$with_gd"; then
-               AC_MSG_ERROR([cannot find $with_gd])
-            fi
-            if test ! -f "$with_gd/bin/gdlib-config"; then
-               AC_MSG_ERROR([gdlib-config not found in $with_gd (tried $with_gd/bin/gdlib-config)])
-            else
-               GDCONFIG="$with_gd/bin/gdlib-config"
-            fi
-         else
-            GDCONFIG="$with_gd"
-         fi
-         AC_PATH_PROG(GDCONFIG,$GDCONFIG,no)
-         if test "$GDCONFIG" == "no"; then
-            AC_MSG_ERROR([gdlib-config not usable, reconfigure with --with-gd[=(yes|no|/path/to/gdlib-config)]])
-         fi
-      fi
-
-      GDMAJOR=`$GDCONFIG --majorversion`
-      GDMINOR=`$GDCONFIG --minorversion`
-      GDREV=`$GDCONFIG --revision`
-      GDVERSION=`$GDCONFIG --version`
-      GDFEATURES=`$GDCONFIG --features`
-      AC_MSG_RESULT([using libgd $GDVERSION from $GDCONFIG])
-      
-      if test -z "`echo $GDFEATURES | grep 'GD_PNG'`"  ; then
-         AC_MSG_ERROR([supplied GD is missing PNG support])
-      else
-         GD_ENABLED="$GD_ENABLED -DUSE_GD_PNG"
-      fi
-      if test -z "`echo $GDFEATURES | grep 'GD_JPEG'`"  ; then
-         AC_MSG_ERROR([supplied GD is missing JPEG support])
-      else
-         GD_ENABLED="$GD_ENABLED -DUSE_GD_JPEG"
-      fi
-      if test -z "`echo $GDFEATURES | grep 'GD_GIF'`"  ; then
-         AC_MSG_ERROR([supplied GD is missing GIF support])
-      else
-         GD_ENABLED="$GD_ENABLED -DUSE_GD_GIF"
-      fi
-      if test -z "`echo $GDFEATURES | grep 'GD_FREETYPE'`"  ; then
-         AC_MSG_ERROR([supplied GD is missing FT support])
-      fi
-
-
-
-      if test $GDMAJOR -lt 2 -o $GDMINOR -lt 0 -o $GDREV -lt 28 ; then
-         AC_MSG_ERROR([GD version $GDVERSION too old. need at least 2.0.28])
-      fi
-
-
-      dnl gdlib-config adds /usr/include and /usr/lib to the compile paths
-      dnl which we do not want, as they may take precedence on locally
-      dnl supplied paths for other libraries
-
-      dnl remove /usr/include/ from default include path
-      GD_INC=`$GDCONFIG --includedir`
-      if test "x$GD_INC" != "x/usr/include" -a "x$GD_INC" != "x/usr/include/" -a -n "$GD_INC"; then
-         GD_INC="-I$GD_INC"
-      else
-         GD_INC=""
-      fi
-      
-      dnl remove /usr/lib/ from default lib path
-      GD_LIB=`$GDCONFIG --libdir`
-      if test "x$GD_LIB" != "x/usr/lib" -a "x$GD_LIB" != "x/usr/lib/" -a -n "$GD_LIB"; then
-         GD_LIB="-L$GD_LIB"
-      else
-         GD_LIB=""
-      fi
-      
-      GD_ENABLED="-DUSE_GD $GD_ENABLED"
-      ALL_ENABLED="$GD_ENABLED $ALL_ENABLED"
-      AC_SUBST(GD_ENABLED, "$GD_ENABLED")
-      ALL_INC="$ALL_INC $GD_INC"
-      ALL_LIB="$ALL_LIB $GD_LIB -lgd"
-      AC_SUBST(GD_INC, "$GD_INC")
-      AC_SUBST(GD_LIB, "$GD_LIB -lgd")
-   fi
-
-])
-
-MS_CHECK_GD
-
-
-dnl ---------------------------------------------------------------------
-dnl FTGL Support.
-dnl ---------------------------------------------------------------------
-
-AC_MSG_CHECKING(if FTGL support requested)
-AC_ARG_WITH(ftgl,
-[  --with-ftgl[[=DIR]]       Include OpenGl support (DIR is OpenGL's install dir).],,)
-
-if test "$with_ftgl" = "yes" ; then
-  with_ftgl="/usr"
-  AC_MSG_RESULT([looking for ftgl libs in /usr])
-fi
-if test -n "$with_ftgl" -a "$with_ftgl" != "no" ; then
-
-  AC_EXPAND_PATH($with_ftgl, FTGL_DIR)
-
-  FTGL_FLAG=""
-  if [ test -f $FTGL_DIR/include/FTGL/ftgl.h -a -f $FTGL_DIR/include/FTGL/FTGLTextureFont.h ]; then
-      FTGL_INCLUDE="-I$FTGL_DIR/include/FTGL/"
-  elif [ test -f $FTGL_DIR/include/FTGL/FTGL.h -a -f $FTGL_DIR/include/FTGL/FTGLTextureFont.h ]; then
-      FTGL_INCLUDE="-I$FTGL_DIR/include/FTGL/"
-      FTGL_FLAG="-DUSE_FTGL_2_1_2"
-  fi
-
-  if test -z "$FTGL_INCLUDE" ; then
-      AC_MSG_ERROR("could not find ftgl.h/FTGL.h in $FTGL_DIR/include/FTGL.")
-  fi
-  
-  test -f $FTGL_DIR/lib/libftgl.so && FTGL_LIBDIR="$FTGL_DIR/lib"
-  test -f $FTGL_DIR/lib/libftgl.dylib && FTGL_LIBDIR="$FTGL_DIR/lib"
-  test -f $FTGL_DIR/lib64/libftgl.so && FTGL_LIBDIR="$FTGL_DIR/lib64"
-   
-  if test -z "$FTGL_LIBDIR" ; then
-      AC_MSG_ERROR("could not find libftgl in $FTGL_DIR.")
-  fi
-
-  
-
-  dnl If we got this far all is well!
-  FTGL_ENABLED="-DUSE_FTGL $FTGL_FLAG"
-  FTGL_INC="$FTGL_INCLUDE"
-  FTGL_LIB="-L$FTGL_LIBDIR -lftgl"
-  AC_ADD_RUNPATH("$FTGL_LIBDIR")
-  
-  AC_MSG_RESULT([using ftgl from $FTGL_DIR])
-  
-else
-
-  AC_MSG_RESULT([no])
-
-fi
-
-AC_SUBST(FTGL_ENABLED,$FTGL_ENABLED)
-AC_SUBST(FTGL_INC,    $FTGL_INC)
-AC_SUBST(FTGL_LIB,    $FTGL_LIB)
-
-
-ALL_ENABLED="$FTGL_ENABLED $ALL_ENABLED"
-ALL_INC="$FTGL_INC $ALL_INC"
-ALL_LIB="$FTGL_LIB $ALL_LIB"
-
-
-dnl ---------------------------------------------------------------------
-dnl Optional OGL Support.
-dnl ---------------------------------------------------------------------
-
-AC_MSG_CHECKING(if OGL support requested)
-AC_ARG_WITH(ogl,
-[  --with-opengl[[=DIR]]     Include OpenGl support (DIR is OpenGL's install dir).],,)
-
-if test "$with_opengl" = "yes" ; then
-
-  with_opengl="/usr"
-  AC_MSG_RESULT([looking for opengl libs in /usr])
-fi
-if test -n "$with_opengl" -a "$with_opengl" != "no" ; then
-
-  if test -z "$FTGL_LIB" ; then
-     AC_MSG_ERROR([FTGL required for opengl support - please configure --with-ftgl.])
-  fi
-  
-  AC_EXPAND_PATH($with_opengl, OGL_DIR)
-
-  test -f $OGL_DIR/include/GL/gl.h -a -f $OGL_DIR/include/GL/glx.h -a -f $OGL_DIR/include/GL/glu.h && OGL_INCLUDE="-I$OGL_DIR/include"
-
-  if test -z "$OGL_INCLUDE" ; then
-      AC_MSG_ERROR("could not find gl.h in $OGL_DIR/include/.")
-  fi
-  
-  test -f $OGL_DIR/lib/libGL.so -a -f $OGL_DIR/lib/libGLU.so && OGL_LIBDIR="$OGL_DIR/lib"
-  test -f $OGL_DIR/lib/libGL.dylib -a -f $OGL_DIR/lib/libGLU.dylib && OGL_LIBDIR="$OGL_DIR/lib"
-  test -f $OGL_DIR/lib64/libGL.so -a -f $OGL_DIR/lib64/libGLU.so && OGL_LIBDIR="$OGL_DIR/lib64"
-   
-  if test -z "$OGL_LIBDIR" ; then
-      AC_MSG_ERROR("could not find libGL or libGLU in $OGL_DIR/lib/ or $OGL_DIR/lib64/.")
-  fi
-
-  
-
-  dnl If we got this far all is well!
-  OGL_ENABLED="-DUSE_OGL"
-  OGL_INC="$OGL_INCLUDE"
-  OGL_LIB="-L$OGL_LIBDIR -lGL -lGLU"
-  AC_ADD_RUNPATH("$OGL_LIBDIR")
-  
-  AC_MSG_RESULT([using opengl from $OGL_DIR])
-  
-else
-
-  AC_MSG_RESULT([no])
-
-fi
-
-AC_SUBST(OGL_ENABLED,$OGL_ENABLED)
-AC_SUBST(OGL_INC,    $OGL_INC)
-AC_SUBST(OGL_LIB,    $OGL_LIB)
-
-
-ALL_ENABLED="$OGL_ENABLED $ALL_ENABLED"
-ALL_INC="$OGL_INC $ALL_INC"
-ALL_LIB="$OGL_LIB $ALL_LIB"
-
-
-dnl ---------------------------------------------------------------------
-dnl Check whether expat is available (needed for svg symbol parsing)
-dnl ---------------------------------------------------------------------
-
-
-AC_ARG_WITH(expat,
-[  --with-expat=DIR          Specify expat location, needed for SVG symbol parsing],
-    EXPAT_DIR=$withval,EXPAT_DIR='')
-
-AC_EXPAND_PATH($EXPAT_DIR, EXPAT_DIR)
-AC_CHECKING(where EXPAT is installed)
-EXPAT_LIB=''
-EXPAT_INC=''
-EXPAT_FOUND='no'
-
-
-if test -n "$EXPAT_DIR" ; then
-    test -f $EXPAT_DIR/lib/libexpat.a -o -f $EXPAT_DIR/lib/libexpat.so -o -f $EXPAT_DIR/lib/libexpat.sl -o -f $EXPAT_DIR/lib/libexpat.dylib && EXPAT_LIBDIR="$EXPAT_DIR/lib"
-    test -f $EXPAT_DIR/lib64/libexpat.a -o -f $EXPAT_DIR/lib64/libexpat.so -o -f $EXPAT_DIR/lib64/libexpat.sl -o -f $EXPAT_DIR/libexpat.dylib && EXPAT_LIBDIR="$EXPAT_DIR/lib64"
-    test -f $EXPAT_DIR/libexpat.a -o -f $EXPAT_DIR/libexpat.so -o -f $EXPAT_DIR/libexpat.sl -o -f $EXPAT_DIR/libexpat.dylib && EXPAT_LIBDIR="$EXPAT_DIR"
-    test -f $EXPAT_DIR/include/expat.h && EXPAT_INCDIR="$EXPAT_DIR/include"
-    test -f $EXPAT_DIR/lib/expat.h && EXPAT_INCDIR="$EXPAT_DIR/lib"
-    test -f $EXPAT_DIR/expat.h && EXPAT_INCDIR="$EXPAT_DIR"
-    
-    if test -n "$EXPAT_LIBDIR" ; then   
-      EXPAT_LIB="-L$EXPAT_LIBDIR -lexpat"
-      AC_MSG_RESULT([        using libexpat from $EXPAT_LIB])
-      AC_ADD_RUNPATH("$EXPAT_LIBDIR")
-    else
-      AC_MSG_ERROR([cannot find expat lib in $EXPAT_DIR])
-    fi
-    
-    if test -n "$EXPAT_INCDIR" ; then
-      AC_CHECK_HEADER([$EXPAT_INCDIR/expat.h],EXPAT_INC=-I$EXPAT_INCDIR,
-        [AC_MSG_ERROR([cannot find expat headers])])
-      ALL_INC="$EXPAT_INC $ALL_INC"
-    else
-        AC_MSG_ERROR([cannot find expat headers in $EXPAT_DIR])
-    fi
-    EXPAT_FOUND="yes"
-else
-
-  dnl check for expat in system locations
-
-  AC_CHECK_LIB(expat, XML_ParserCreate, EXPAT_LIB="-lexpat",,)
-  AC_CHECK_HEADER([expat.h],,EXPAT_HEADER_FOUND="no")
-  if test -n "$EXPAT_LIB" -a "$EXPAT_HEADER_FOUND" != "no"; then
-    AC_MSG_RESULT([        using libexpat from system libs.])
-    EXPAT_FOUND='yes'
-  else
-    AC_MSG_RESULT([        not found in system libs. svg symbol support will be disabled])
-    EXPAT_FOUND='no'
-  fi
-
-fi
-
-dnl ---------------------------------------------------------------------
-dnl Optional AGG SVG Symbol Support.
-dnl ---------------------------------------------------------------------
-
-AC_MSG_CHECKING(for AGG support)
-AGG_ENABLED="internal"
-AC_MSG_RESULT([        internal])
-
-
-dnl ---------------------------------------------------------------------
-dnl Find PROJ.4 ONLY IF REQUESTED.
-dnl ---------------------------------------------------------------------
-
-dnl Clear some cache variables
-unset ac_cv_lib_proj_pj_init
-unset ac_cv_lib_proj_pj_transform
-unset ac_cv_lib_proj_pj_latlong_from_proj
-
-AC_CHECKING(whether we should include PROJ.4 support)
-AC_ARG_WITH(proj,
-[  --with-proj[[=DIR]]       Include PROJ.4 support (DIR is PROJ.4's install dir).],,)
-
-if test "$with_proj" = "yes" ; then
-
-  AC_CHECK_LIB(proj,pj_init,PROJ_ENABLED=-DUSE_PROJ,,,)
-  AC_CHECK_LIB(proj,pj_transform,PJ_TRANSFORM=yes,PJ_TRANSFORM=no,,)
-
-  if test -n "$PROJ_ENABLED" -a "$PJ_TRANSFORM" = "no"; then
-      AC_MSG_ERROR([This version of PROJ is too old.  PROJ4.4.2 or later is required.])
-  elif test -n "$PROJ_ENABLED" -a "$PJ_TRANSFORM" = "yes"; then
-      PROJ_LIBS="-lproj"
-      AC_MSG_RESULT([        using PROJ.4 from system libs.])
-  else
-      AC_MSG_WARN([        PROJ.4 not found in system libs... use --with-proj=DIR.])
-  fi
-
-elif test -n "$with_proj" -a "$with_proj" != "no" ; then
-
-  AC_EXPAND_PATH($with_proj, PROJ_DIR)
-  test -f $PROJ_DIR/include/proj_api.h && PROJ_INCLUDE="$PROJ_DIR/include"
-  test -f $PROJ_DIR/include/proj/proj_api.h && PROJ_INCLUDE="$PROJ_DIR/include/proj"
-  test -f $PROJ_DIR/src/proj_api.h && PROJ_INCLUDE="$PROJ_DIR/src"
-  test -f $PROJ_DIR/proj_api.h && PROJ_INCLUDE="$PROJ_DIR"
-
-  test -f $PROJ_DIR/src/.libs/libproj.a && PROJ_LIBDIR="$PROJ_DIR/src/.libs"
-  test -f $PROJ_DIR/lib/libproj.a && PROJ_LIBDIR="$PROJ_DIR/lib"
-  test -f $PROJ_DIR/lib64/libproj.a && PROJ_LIBDIR="$PROJ_DIR/lib64"
-  test -f $PROJ_DIR/libproj.a && PROJ_LIBDIR="$PROJ_DIR"
-
-  test -f $PROJ_DIR/src/.libs/libproj.so -o -f $PROJ_DIR/src/.libs/libproj.sl -o -f $PROJ_DIR/src/.libs/libproj.dylib && PROJ_LIBDIR="$PROJ_DIR/src/.libs"
-  test -f $PROJ_DIR/lib/libproj.so -o -f $PROJ_DIR/lib/libproj.sl -o -f $PROJ_DIR/lib/libproj.dylib && PROJ_LIBDIR="$PROJ_DIR/lib"
-  test -f $PROJ_DIR/lib64/libproj.so -o -f $PROJ_DIR/lib64/libproj.sl && PROJ_LIBDIR="$PROJ_DIR/lib64"
-  test -f $PROJ_DIR/libproj.so -o -f $PROJ_DIR/libproj.sl -o -f $PROJ_DIR/libproj.dylib && PROJ_LIBDIR="$PROJ_DIR"
-
-  if test -n "$PROJ_INCLUDE" -a -n "$PROJ_LIBDIR" ; then
-      PROJ_INC=-I$PROJ_INCLUDE
-      PROJ_LIBS="-L$PROJ_LIBDIR -lproj"
-      AC_ADD_RUNPATH("$PROJ_LIBDIR")
-  else
-      AC_MSG_ERROR("Could not find proj_api.h or libproj.a/libproj.so in $PROJ_DIR.")
-  fi
-
-  AC_CHECK_LIB(proj,pj_transform,PJ_TRANSFORM=yes,PJ_TRANSFORM=no,$PROJ_LIBS)
-  if test "$PJ_TRANSFORM" = "no"; then
-      AC_MSG_ERROR([This version of PROJ is too old.  PROJ4.4.2 or later is required.])
-  fi
-
-  PROJ_ENABLED=-DUSE_PROJ
-  AC_MSG_RESULT([        using PROJ.4 from $PROJ_DIR.])
-
-else
-
-  AC_MSG_RESULT([        PROJ.4 support not requested.])
-fi
-
-AC_SUBST(PROJ_ENABLED,$PROJ_ENABLED)
-AC_SUBST(PROJ_INC,    $PROJ_INC)
-AC_SUBST(PROJ_LIBS,   $PROJ_LIBS)
-
-ALL_ENABLED="$PROJ_ENABLED $ALL_ENABLED"
-ALL_INC="$PROJ_INC $ALL_INC"
-ALL_LIB="$PROJ_LIBS $ALL_LIB"
-
-dnl ---------------------------------------------------------------------
-dnl ENABLE THREADS ONLY IF REQUESTED.
-dnl ---------------------------------------------------------------------
-
-THREAD_LIB=""
-THREAD_FLAG=""
-
-AC_CHECKING(whether we should include thread safe support)
-AC_ARG_WITH(threads,
-[  --with-threads[[=linkopt]]Include thread safe support],,)
-
-if test "$with_threads" = "yes" ; then
-
-  AC_CHECK_LIB(pthread,pthread_create,THREAD_FLAG=-DUSE_THREAD,,,)
-
-  if test -n "$THREAD_FLAG" ; then
-      THREAD_LIB="-lpthread"
-      AC_MSG_RESULT([        using -lpthread from system libs.])
-  else
-      AC_MSG_ERROR([        -lpthread not found, use --with-thread=<pthread link options>])
-  fi
-
-elif test -n "$with_threads" -a "$with_threads" != "no" ; then
-
-  THREAD_FLAG=-DUSE_THREAD
-  THREAD_LIB="$with_threads"  
-
-  AC_MSG_RESULT([        using threads with link options "$THREAD_LIB".])
-
-else
-  AC_MSG_RESULT([        thread safe support disabled.])
-fi
-
-AC_SUBST(THREAD_FLAG,$THREAD_FLAG)
-AC_SUBST(THREAD_LIB,$THREAD_LIB)
-
-ALL_ENABLED="$THREAD_FLAG $ALL_ENABLED"
-ALL_LIB="$THREAD_LIB $ALL_LIB"
-
-dnl ---------------------------------------------------------------------
-dnl Check for the __sync_fetch_and_add builtin
-dnl ---------------------------------------------------------------------
-AC_CACHE_CHECK([for __sync_fetch_and_add], ac_cv_func_sync_fetch_and_add,
-[AC_TRY_LINK([],[long x=0,y=0;for(x=0;x<5;x++){if(y>1) break; y=__sync_fetch_and_add(&x,1);}],ac_cv_func_sync_fetch_and_add=yes,ac_cv_func_sync_fetch_and_add=no)])
-if test "$ac_cv_func_sync_fetch_and_add" = yes; then
-  ALL_ENABLED="-DHAVE_SYNC_FETCH_AND_ADD $ALL_ENABLED"
-  AC_DEFINE(HAVE_SYNC_FETCH_AND_ADD,1,[Define if you have the __sync_fetch_and_add function])
-fi
-
-dnl ---------------------------------------------------------------------
-dnl Find ESRI SDE ONLY IF REQUESTED.
-dnl ---------------------------------------------------------------------
-
-AC_CHECKING(whether we should include ESRI SDE support)
-AC_ARG_WITH(sde,
-[  --with-sde[[=DIR]]        Include ESRI SDE support (DIR is SDE's install dir).],,)
-
-AC_ARG_WITH(sde-version,
-[  --with-sde-version[[=VERSION NUMBER]]
-                          Set ESRI SDE version number (Default is 91).],SDE_VERSION=$with_sde_version,SDE_VERSION=91)
-
-if test -z "$SDE_VERSION" -o `expr "$SDE_VERSION" \>\= 92` = 1; then
-SDE_VERSION=""
-fi
-if test "$with_sde" = "yes" ; then
-
-  AC_CHECK_LIB(sde$SDE_VERSION,SE_connection_create,SDE_ENABLED=-DUSE_SDE,,,)
-
-  if test -n "$SDE_ENABLED" ; then
-      SDE_LIB="-lsde$SDE_VERSION -lpe$SDE_VERSION -lsg$SDE_VERSION"
-      AC_CHECK_LIB(pthread, main, SDE_LIB="$SDE_LIB -lpthread",,)
-      AC_CHECK_LIB(socket, main, SDE_LIB="$SDE_LIB -lsocket",,)
-      AC_CHECK_LIB(dl, main, SDE_LIB="$SDE_LIB -ldl",,)
-      AC_MSG_RESULT([        using ESRI SDE from system libs.])
-  else
-      AC_MSG_WARN([        ESRI SDE not found in system libs... use --with-sde=DIR.])
-  fi
-
-elif test -n "$with_sde" -a "$with_sde" != "no" ; then
-
-  AC_EXPAND_PATH($with_sde, SDE_DIR)
-
-  test -f $SDE_DIR/arcsde/coverages/include/sdetype.h && SDE_INCDIR="$SDE_DIR/arcsde/coverages/include"
-  test -f $SDE_DIR/include/sdetype.h && SDE_INCDIR="$SDE_DIR/include"
-  test -f $SDE_DIR/sdetype.h && SDE_INCDIR="$SDE_DIR"
-
-  test -f $SDE_DIR/lib/libsde$SDE_VERSION.a && SDE_LIBDIR="$SDE_DIR/lib"
-  test -f $SDE_DIR/lib64/libsde$SDE_VERSION.a && SDE_LIBDIR="$SDE_DIR/lib64"
-  test -f $SDE_DIR/libsde$SDE_VERSION.a && SDE_LIBDIR="$SDE_DIR"
-
-  test -f $SDE_DIR/lib/libsde$SDE_VERSION.so -o -f $SDE_DIR/lib/libsde$SDE_VERSION.sl && SDE_LIBDIR="$SDE_DIR/lib"
-  test -f $SDE_DIR/lib64/libsde$SDE_VERSION.so -o -f $SDE_DIR/lib64/libsde$SDE_VERSION.sl && SDE_LIBDIR="$SDE_DIR/lib64"
-  test -f $SDE_DIR/libsde$SDE_VERSION.so -o -f $SDE_DIR/libsde$SDE_VERSION.sl && SDE_LIBDIR="$SDE_DIR"
-
-  if test -n "$SDE_INCDIR" -a -n "$SDE_LIBDIR" ; then
-      SDE_INC=-I$SDE_INCDIR
-      SDE_LIB="-L$SDE_LIBDIR -lsde$SDE_VERSION -lpe$SDE_VERSION -lsg$SDE_VERSION"
-      AC_CHECK_LIB(pthread, main, SDE_LIB="$SDE_LIB -lpthread",,)
-      AC_CHECK_LIB(socket, main, SDE_LIB="$SDE_LIB -lsocket",,)
-      AC_CHECK_LIB(dl, main, SDE_LIB="$SDE_LIB -ldl",,)
-      AC_ADD_RUNPATH("$SDE_LIBDIR")
-  else
-      AC_MSG_ERROR("Could not find sdetype.h or libsde$SDE_VERSION.a/libsde$SDE_VERSION.so in $SDE_DIR.")
-  fi
-
-  SDE_ENABLED=-DUSE_SDE
-  AC_MSG_RESULT([        using ESRI SDE from $SDE_DIR.])
-
-else
-
-  AC_MSG_RESULT([        ESRI SDE support not requested.])
-fi
-
-AC_SUBST(SDE_ENABLED,$SDE_ENABLED)
-AC_SUBST(SDE_INC,    $SDE_INC)
-AC_SUBST(SDE_LIB,    $SDE_LIB)
-
-ALL_ENABLED="$SDE_ENABLED $ALL_ENABLED"
-ALL_INC="$SDE_INC $ALL_INC"
-ALL_LIB="$SDE_LIB $ALL_LIB"
-
-dnl ---------------------------------------------------------------------
-dnl Find GEOS ONLY IF REQUESTED.
-dnl ---------------------------------------------------------------------
-
-AC_MSG_CHECKING(if GEOS support requested)
-
-AC_ARG_WITH(geos,
-[  --with-geos[[=PATH]]      Include GEOS support (PATH is path to geos-config)],,)
-
-if test -n "$with_geos" -a "$with_geos" != "no" ; then
-
-  AC_MSG_RESULT([yes])
-
-  GEOS_CONFIG=$with_geos
-
-  if test "$GEOS_CONFIG" = "yes" ; then
-
-    AC_PATH_PROG(GEOS_CONFIG, geos-config, no)
-
-    if test "$GEOS_CONFIG" = "no" ; then
-      AC_MSG_ERROR([couldn't find geos-config in default path. Please specify full path to geos-config])
-    fi
-
-  elif test -f "$GEOS_CONFIG" -a -x "$GEOS_CONFIG" ; then
-    AC_MSG_RESULT([user supplied geos-config ($GEOS_CONFIG)])
-  else
-    AC_MSG_ERROR(['$GEOS_CONFIG' is not an executable.  Make sure you use --with-geos=/path/to/geos-config])
-  fi
-
-  dnl
-  dnl Test that we have at least version 3.0.0
-  dnl (Version check code borrowed from GDAL's geos.m4)
-  dnl
-
-  min_geos_version=3.0.0
-
-  AC_MSG_CHECKING(for GEOS version >= $min_geos_version)
-
-  geos_major_version=`$GEOS_CONFIG --version | \
-       sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
-  geos_minor_version=`$GEOS_CONFIG --version | \
-       sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
-  geos_micro_version=`$GEOS_CONFIG --version | \
-       sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
-
-  req_major=`echo $min_geos_version | \
-       sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\1/'`
-  req_minor=`echo $min_geos_version | \
-       sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\2/'`
-  req_micro=`echo $min_geos_version | \
-       sed 's/\([[0-9]]*\)\.\([[0-9]]*\)\.\([[0-9]]*\).*/\3/'`
-      
-  ac_req_version=`expr $req_major \* 100000 \+  $req_minor \* 100 \+ $req_micro`
-  ac_geos_version=`expr $geos_major_version \* 100000 \+  $geos_minor_version \* 100 \+ $geos_micro_version`
-
-  if test $ac_req_version -le $ac_geos_version; then
-     AC_MSG_RESULT([yes. Found version ${geos_major_version}.${geos_minor_version}.${geos_micro_version}])
-  else 
-     AC_MSG_RESULT(no)
-     AC_MSG_ERROR([geos-config reports version ${geos_major_version}.${geos_minor_version}.${geos_micro_version}, need at least $min_geos_version or configure --without-geos])
-  fi
-
-  
-  dnl
-  dnl All checks passed. Set compile flags
-  dnl
-
-  GEOS_ENABLED=-DUSE_GEOS
-
-  GEOS_INCDIR=`$GEOS_CONFIG --includes`
-  GEOS_INC="-I$GEOS_INCDIR"
-  dnl Geos >=3.3 has a new config option: --clibs.
-  if test $ac_geos_version -ge 300300; then
-     GEOS_LIB="`$GEOS_CONFIG --clibs`"
-  else
-     GEOS_LIB="`$GEOS_CONFIG --libs`_c"
-  fi
-  
-  AC_SUBST(GEOS_ENABLED,$GEOS_ENABLED)
-  AC_SUBST(GEOS_INC,    $GEOS_INC)
-  AC_SUBST(GEOS_LIB,    $GEOS_LIB)
-
-  ALL_ENABLED="$GEOS_ENABLED $ALL_ENABLED"
-  ALL_INC="$GEOS_INC $ALL_INC"
-  ALL_LIB="$GEOS_LIB $ALL_LIB"
-
-else
-
-  AC_MSG_RESULT([no])
-
-fi
-
-dnl ---------------------------------------------------------------------
-dnl Find OGR ONLY IF REQUESTED.
-dnl ---------------------------------------------------------------------
-
-AC_CHECKING(whether we should include OGR support)
-AC_ARG_WITH(ogr,
-[  --with-ogr[[=PATH]]       Include OGR support (PATH is path to gdal-config).],,)
-
-if test "`basename xx/$with_ogr`" = "gdal-config" ; then
-  GDAL_CONFIG="$with_ogr"
-fi
-
-if test "$with_ogr" = "yes" ; then
- AC_PATH_PROG(GDAL_CONFIG, gdal-config, no)
-
-  if test "$GDAL_CONFIG" = "no" ; then
-    AC_MSG_ERROR([couldn't find gdal-config])
-  fi
-fi
-
-if test -n "$GDAL_CONFIG" -a "$with_ogr" != "no" ; then
-
-  dnl Is OGR enabled in this gdal build?
-
-  if test x`$GDAL_CONFIG --ogr-enabled` = "xyes" ; then
-      OGR_ENABLED=-DUSE_OGR
-      AC_MSG_RESULT([        OGR enabled ($OGR_ENABLED).])
-  else
-      AC_MSG_WARN([        OGR not available.])
-  fi
-
-else
-
-  AC_MSG_RESULT([        OGR support not requested.])
-fi
-
-dnl
-dnl OGR Makefile substitutions are done together with GDAL stuff below.
-dnl
-
-dnl ---------------------------------------------------------------------
-dnl Find GDAL only if requested (and not supplied by OGR)
-dnl ---------------------------------------------------------------------
-AC_MSG_CHECKING(if GDAL support requested)
-
-AC_ARG_WITH(gdal,
-[  --with-gdal[[=PATH]]      Include GDAL support (PATH is path to gdal-config)],,)
-
-if test "$with_gdal" = "yes" ; then
-
-  AC_MSG_RESULT([yes])
-
-  if test "`basename xx/$with_gdal`" = "gdal-config" ; then
-    GDAL_CONFIG="$with_gdal"
-  fi
-
-  if test -z "$GDAL_CONFIG" ; then
-    AC_PATH_PROG(GDAL_CONFIG, gdal-config, no)
-  fi
-
-  if test "$GDAL_CONFIG" = "no" ; then
-    AC_MSG_ERROR([couldn't find gdal-config])
-  fi
-
-  GDAL_ENABLED=-DUSE_GDAL
-
-elif test -n "$with_gdal" -a "$with_gdal" != "no" ; then
-
-  GDAL_CONFIG=$with_gdal
-
-  if test -f "$GDAL_CONFIG" -a -x "$GDAL_CONFIG" ; then
-    AC_MSG_RESULT([yes, user supplied gdal-config ($GDAL_CONFIG)])
-  else
-    AC_MSG_ERROR(['$GDAL_CONFIG' is not an executable.  Make sure you use --with-gdal=/path/to/gdal-config])
-  fi
-
-  GDAL_ENABLED=-DUSE_GDAL
-
-else
-
-  AC_MSG_RESULT([no])
-
-fi
-
-dnl
-dnl GDAL_LIB and GDAL_INC are used for both GDAL and OGR
-dnl
-
-if test -n "$GDAL_ENABLED" -o "$OGR_ENABLED"; then
-
-  GDAL_LIB=`$GDAL_CONFIG --libs`
-  GDAL_INC=`$GDAL_CONFIG --cflags`
-
-fi
-
-AC_SUBST(GDAL_ENABLED,$GDAL_ENABLED)
-AC_SUBST(OGR_ENABLED,$OGR_ENABLED)
-AC_SUBST(GDAL_INC,    $GDAL_INC)
-AC_SUBST(GDAL_LIB,    $GDAL_LIB)
-
-ALL_ENABLED="$GDAL_ENABLED $OGR_ENABLED $ALL_ENABLED"
-ALL_INC="$GDAL_INC $ALL_INC"
-ALL_LIB="$GDAL_LIB $ALL_LIB"
-
-dnl ---------------------------------------------------------------------------
-dnl Determine whether we should enable JPEG output - not if we have GDAL.
-dnl ---------------------------------------------------------------------------
-
-dnl if test -n "$JPEG_ENABLED" ; then
-dnl   AC_MSG_CHECKING(checking ms JPEG output)
-dnl   if test -n "$GDAL_ENABLED" ; then 
-dnl     JPEG_ENABLED=
-dnl     AC_MSG_RESULT([no we, have GDAL available.])
-dnl   else
-dnl     ALL_ENABLED="$JPEG_ENABLED $ALL_ENABLED"
-dnl     ALL_INC="$JPEG_INC $ALL_INC"
-dnl     ALL_LIB="$JPEG_LIB $ALL_LIB"
-dnl     AC_MSG_RESULT([yes, GDAL is not available but libjpeg is.])
-dnl   fi
-dnl fi
-
-dnl ---------------------------------------------------------------------------
-dnl Try to find PostgreSQL if PostGIS support requested.
-dnl ---------------------------------------------------------------------------
-
-AC_MSG_CHECKING(if PostGIS support requested)
-
-AC_ARG_WITH(postgis,[  --with-postgis[[=ARG]]    Include PostGIS Support (ARG=yes/path to pg_config)],,)
-
-if test "$with_postgis" = "no" -o "$with_postgis" = "" ; then
-  AC_MSG_RESULT(no)
-  PG_CONFIG="no"
-elif test "$with_postgis" = "yes" ; then
-  AC_MSG_RESULT(yes)
-  AC_PATH_PROG(PG_CONFIG, pg_config, no)
-else
-  PG_CONFIG=$with_postgis
-fi
-
-if test "$PG_CONFIG" = "no" ; then
-  POSTGIS_ENABLED=
-  POSTGIS_INC=
-  POSTGIS_LIB=
-else
-  POSTGIS_ENABLED=
-
-  if test -f "$PG_CONFIG" -a -x "$PG_CONFIG" ; then
-    AC_MSG_RESULT([yes, user supplied pg_config ($PG_CONFIG)])
-  else
-    AC_MSG_ERROR(['$PG_CONFIG' is not an executable.  Make sure you use --with-postgis=/path/to/pg_config])
-  fi
-
-  POSTGIS_EXTRALIBS="`$PG_CONFIG --libs`"
-  dnl Verify if pg_config has the "--libs" option..
-  if test $? -ne 0 ; then  
-      POSTGIS_EXTRALIBS=
-  fi
-
-  POSTGIS_INC="-I`$PG_CONFIG --includedir`"
-
-  old_LDFLAGS="$LDFLAGS"
-
-  POSTGIS_LIB="-L`$PG_CONFIG --libdir` -lpq"
-  LDFLAGS="$LDFLAGS $POSTGIS_LIB"
-
-  AC_CHECK_LIB(pq, PQconnectdb, POSTGIS_ENABLED="-DUSE_POSTGIS")
-
-  dnl if that didn't work, try adding in the dependent libs. 
-  if test  "$POSTGIS_ENABLED"x = x ; then
-    POSTGIS_LIB="$POSTGIS_LIB $POSTGIS_EXTRALIBS"
-    LDFLAGS="$old_LDFLAGS $POSTGIS_LIB"
-    unset ac_cv_lib_pq_PQconnectdb
-    AC_CHECK_LIB(pq, PQconnectdb, POSTGIS_ENABLED="-DUSE_POSTGIS")
-  fi
-
-  dnl If we have postgresql client lib, check for versioninfo.
-  if test "$POSTGIS_ENABLED" = "-DUSE_POSTGIS" ; then
-    AC_CHECK_LIB(pq, PQserverVersion, POSTGIS_ENABLED="$POSTGIS_ENABLED -DPOSTGIS_HAS_SERVER_VERSION")
-  fi
-
-  LDFLAGS="$old_LDFLAGS"
-
-fi
-
-AC_SUBST(POSTGIS_ENABLED,$POSTGIS_ENABLED)
-AC_SUBST(POSTGIS_INC,$POSTGIS_INC)
-AC_SUBST(POSTGIS_LIB,$POSTGIS_LIB)
-
-ALL_ENABLED="$POSTGIS_ENABLED $ALL_ENABLED"
-ALL_INC="$POSTGIS_INC $ALL_INC"
-ALL_LIB="$POSTGIS_LIB $ALL_LIB"
-
-dnl ---------------------------------------------------------------------------
-dnl Try to find MySQL if MYSQL support requested.
-dnl ---------------------------------------------------------------------------
-
-AC_MSG_CHECKING(if Mysql support requested)
-
-AC_ARG_WITH(mysql,[  --with-mysql[[=ARG]]      Include Mysql Support (ARG=yes/path to mysql_config)],,)
-
-if test "$with_mysql" = "no" -o "$with_mysql" = "" ; then
-  AC_MSG_RESULT(no)
-  MY_CONFIG="no"
-elif test "$with_mysql" = "yes" ; then
-  AC_MSG_RESULT(yes)
-  AC_PATH_PROG(MY_CONFIG, mysql_config, no)
-else
-  MY_CONFIG=$with_mysql
-fi
-
-if test "$MY_CONFIG" = "no" ; then
-  MYSQL_ENABLED=
-  MYSQL_INC=
-  MYSQL_LIB=
-else
-  if test -f "$MY_CONFIG" -a -x "$MY_CONFIG" ; then
-    AC_MSG_RESULT([yes, user supplied mysql_config ($MY_CONFIG)])
-  else
-    AC_MSG_ERROR(['$MY_CONFIG' is not an executable.  Make sure you use --with-mysql=/path/to/mysql_config])
-  fi
-
-  MYSQL_ENABLED=-DUSE_MYSQL
-  MYSQL_LIB="`$MY_CONFIG --libs` -lmysqlclient"
-#  MYSQL_LIB="-L/usr/lib/mysql -lmysqlclient"
-  MYSQL_INC="`$MY_CONFIG --cflags`"
-#  MYSQL_INC="-I/usr/include/mysql"
-fi
-
-AC_SUBST(MYSQL_ENABLED,$MYSQL_ENABLED)
-AC_SUBST(MYSQL_INC,$MYSQL_INC)
-AC_SUBST(MYSQL_LIB,$MYSQL_LIB)
-
-ALL_ENABLED="$MYSQL_ENABLED $ALL_ENABLED"
-ALL_INC="$MYSQL_INC $ALL_INC"
-ALL_LIB="$MYSQL_LIB $ALL_LIB"
-
-dnl ---------------------------------------------------------------------------
-dnl Try to find out if OracleSpatial support requested.
-dnl ---------------------------------------------------------------------------
-
-AC_MSG_CHECKING(if OracleSpatial support requested)
-AC_ARG_WITH(oraclespatial,
-[  --with-oraclespatial[[=ARG]]
-                          Include OracleSpatial Support (ARG=yes/path to
-                          Oracle home)],,)
-
-if test "$with_oraclespatial" = "no" -o "$with_oraclespatial" = ""; then
-  AC_MSG_RESULT([no])
-  ORA_HOME="no"
-elif test "$with_oraclespatial" = "yes"; then
-  if test -d "$ORACLE_HOME"; then
-    AC_MSG_RESULT([yes, set from ORACLE_HOME environment variable])
-    ORA_HOME="$ORACLE_HOME"
-  else
-    ORA_HOME="no"
-    AC_MSG_ERROR([ORACLE_HOME variable is not properly set])
-  fi
-else
-  AC_MSG_RESULT([yes, user supplied ORACLE_HOME])
-  ORA_HOME=$with_oraclespatial
-fi
-
-if test "$ORA_HOME" = "no" ; then
-  ORACLESPATIAL_ENABLED=
-  ORACLESPATIAL_INC=
-  ORACLESPATIAL_LIB=
-else
-
-  dnl Try to locate lib directory
-  test -f $ORA_HOME/lib/libclntsh.so -o -f $ORA_HOME/lib/libclntsh.dylib && ORA_LIBDIR="$ORA_HOME/lib"
-  test -f $ORA_HOME/libclntsh.so -o -f $ORA_HOME/libclntsh.dylib && ORA_LIBDIR="$ORA_HOME"
-  test -f $ORA_HOME/lib/oracle/10*/client/lib/libclntsh.so && ORA_LIBDIR=`dirname $ORA_HOME/lib/oracle/10*/client/lib/libclntsh.so`
-  test -f $ORA_HOME/lib/oracle/10*/client/lib/libclntsh.dylib && ORA_LIBDIR=`dirname $ORA_HOME/lib/oracle/10*/client/lib/libclntsh.dylib`
-
-  if test -z "$ORA_LIBDIR" ; then
-    AC_MSG_ERROR([Oracle Spatial: libclntsh.so not found.])
-  fi
-
-  dnl Try to locate include directory
-  test -f $ORA_HOME/include/oci.h && ORA_INCDIR="$ORA_HOME/include"
-  test -f $ORA_HOME/sdk/include/oci.h && ORA_INCDIR="$ORA_HOME/sdk/include"
-  test -f $ORA_HOME/rdbms/public/oci.h && ORA_INCDIR="$ORA_HOME/rdbms/public"
-  test -f $ORA_HOME/rdbms/demo/oci.h && ORA_INCDIR="$ORA_HOME/rdbms/public"
-  test -f $ORA_HOME/include/oracle/10*/client/oci.h && ORA_INCDIR=`dirname $ORA_HOME/include/oracle/10*/client/oci.h`
-
-  if test -z "$ORA_INCDIR" ; then
-    AC_MSG_ERROR([Oracle Spatial: oci.h not found.])
-  fi
-
-  ORACLESPATIAL_ENABLED=-DUSE_ORACLESPATIAL
-  ORACLESPATIAL_LIB="-L$ORA_LIBDIR -lclntsh"
-  ORACLESPATIAL_INC="-I$ORA_INCDIR -I$ORA_HOME/rdbms/demo -I$ORA_HOME/rdbms/public"
-
-  AC_MSG_RESULT([        Oracle Spatial found in $ORA_HOME.])
-
-fi
-
-AC_SUBST(ORACLESPATIAL_ENABLED,$ORACLESPATIAL_ENABLED)
-AC_SUBST(ORACLESPATIAL_INC,$ORACLESPATIAL_INC)
-AC_SUBST(ORACLESPATIAL_LIB,$ORACLESPATIAL_LIB)
-
-ALL_ENABLED="$ORACLESPATIAL_ENABLED $ALL_ENABLED"
-ALL_INC="$ORACLESPATIAL_INC $ALL_INC"
-ALL_LIB="$ORACLESPATIAL_LIB $ALL_LIB"
-
-dnl ---------------------------------------------------------------------------
-dnl Try to find out if MING FLASH support requested.
-dnl ---------------------------------------------------------------------------
-
-dnl AC_MSG_CHECKING(if MING/Flash support requested)
-dnl AC_ARG_WITH(ming,
-dnl [  --with-ming[[=DIR]]       Include MING/Flash Support (DIR=path to Ming
-dnl                           directory)],,)
-dnl 
-dnl if test "$with_ming" = "no" -o "$with_ming" = ""; then
-dnl   AC_MSG_RESULT([no])
-dnl   MING_ENABLED=
-dnl   MING_LIB=
-dnl   MING_INC=
-dnl elif test "$with_ming" = "yes"; then
-dnl   AC_MSG_RESULT([yes])
-dnl   MING_ENABLED=-DUSE_MING_FLASH
-dnl   MING_LIB="-lming"
-dnl   MING_INC=
-dnl else
-dnl   AC_MSG_RESULT([yes, user supplied MING directory])
-dnl   MING_ENABLED=-DUSE_MING_FLASH
-dnl   MING_LIB="-L$with_ming/lib -lming"
-dnl   MING_INC="-I$with_ming/include"
-dnl fi
-dnl 
-dnl AC_SUBST(MING_ENABLED,$MING_ENABLED)
-dnl AC_SUBST(MING_INC,$MING_INC)
-dnl AC_SUBST(MING_LIB,$MING_LIB)
-dnl 
-dnl ALL_ENABLED="$MING_ENABLED $ALL_ENABLED"
-dnl ALL_INC="$MING_INC $ALL_INC"
-dnl ALL_LIB="$MING_LIB $ALL_LIB"
-
-dnl ---------------------------------------------------------------------
-dnl WMS Server Compatibility - Enabled by default if PROJ.4 is there.
-dnl Can be explicitly disabled using --without-wms
-dnl ---------------------------------------------------------------------
-
-AC_CHECKING(whether we should include WMS Server support)
-AC_ARG_WITH(wms,
-[  --without-wms           Disable OGC WMS Compatibility (enabled by default).],,)
-
-if test "$with_wms" = "no" ; then
-
-  AC_MSG_RESULT([        OGC WMS Compatibility disabled by --without-wms.])
-
-elif test -z "$PROJ_ENABLED" ; then
-
-  AC_MSG_RESULT([        OGC WMS Compatibility not enabled (PROJ.4 is required for WMS).])
-
-else
-
-  WMS_SVR_ENABLED="-DUSE_WMS_SVR"
-  AC_MSG_RESULT([        OGC WMS compatibility enabled ($WMS_SVR_ENABLED).])
-
-fi
-
-AC_SUBST(WMS_SVR_ENABLED,$WMS_SVR_ENABLED)
-
-ALL_ENABLED="$WMS_SVR_ENABLED $ALL_ENABLED"
-
-
-dnl ---------------------------------------------------------------------
-dnl WFS Server support - Requires OGR and PROJ
-dnl ---------------------------------------------------------------------
-
-AC_CHECKING(whether we should include WFS Server support)
-AC_ARG_WITH(wfs,
-[  --with-wfs              Enable OGC WFS Server Support (OGR+PROJ4 required).],,)
-
-if test "$with_wfs" != "yes" ; then
-
-  AC_MSG_RESULT([        OGC WFS Server support not requested.])
-
-elif test -z "$OGR_ENABLED" ; then
-
-  AC_MSG_ERROR([OGC WFS Server support cannot be enabled: missing OGR which is required).])
-
-elif test -z "$PROJ_ENABLED" ; then
-
-  AC_MSG_ERROR([OGC WFS Server support cannot be enabled: missing PROJ4 which is required).])
-
-elif test "$with_wfs" = "yes" ; then
-
-  WFS_SVR_ENABLED="-DUSE_WFS_SVR"
-  AC_MSG_RESULT([        OGC WFS Server support enabled ($WFS_SVR_ENABLED).])
-
-fi
-
-AC_SUBST(WFS_SVR_ENABLED,$WFS_SVR_ENABLED)
-
-ALL_ENABLED="$WFS_SVR_ENABLED $ALL_ENABLED"
-
-
-dnl ---------------------------------------------------------------------
-dnl WCS Server support - Requires GDAL and PROJ
-dnl ---------------------------------------------------------------------
-
-AC_CHECKING(whether we should include WCS Server support)
-AC_ARG_WITH(wcs,[  --with-wcs              Enable OGC WCS Server Support (GDAL+PROJ4 required).],,)
-
-if test "$with_wcs" != "yes" ; then
-  AC_MSG_RESULT([        OGC WCS Server support not requested.])  
-elif test -z "$GDAL_ENABLED" ; then
-  AC_MSG_ERROR([OGC WCS Server support cannot be enabled: missing GDAL which is required).])
-elif test -z "$PROJ_ENABLED" ; then
-  AC_MSG_ERROR([OGC WCS Server support cannot be enabled: missing PROJ4 which is required).])
-elif test "$with_wcs" = "yes" ; then
-  WCS_SVR_ENABLED="-DUSE_WCS_SVR"
-  AC_MSG_RESULT([        OGC WCS Server support enabled ($WCS_SVR_ENABLED).])
-fi
-
-AC_SUBST(WCS_SVR_ENABLED,$WCS_SVR_ENABLED)
-ALL_ENABLED="$WCS_SVR_ENABLED $ALL_ENABLED"
-
-
-dnl ---------------------------------------------------------------------
-dnl WMS and WFS Client support - Requires PROJ.4 and libcurl.
-dnl OGR recommended for WMS and required for WFS
-dnl ---------------------------------------------------------------------
-
-AC_CHECKING(whether we should include WMS Client Connections support)
-AC_ARG_WITH(wmsclient,
-[  --with-wmsclient        Enable OGC WMS Client Connections (PROJ4, libcurl and
-                          GDAL required).],,)
-
-if test "$with_wmsclient" = "no" ; then
-
-  AC_MSG_RESULT([        OGC WMS Client Layers disabled by --without-wmsclient.])
-
-elif test -z "$PROJ_ENABLED" -o -z "$GDAL_ENABLED"; then
-
-  AC_MSG_RESULT([        OGC WMS Client Connections not enabled (PROJ.4, libcurl and GDAL required).])
-
-elif test "$with_wmsclient" = "yes" ; then
-
-  dnl we'll test for libcurl below.
-  WMS_REQUESTED="yes"
-
-fi
-
-
-AC_CHECKING(whether we should include WFS Client Connections support)
-AC_ARG_WITH(wfsclient,
-[  --with-wfsclient        Enable OGC WFS Client Connections (PROJ4, libcurl and
-                          OGR required).],,)
-
-if test "$with_wfsclient" = "no" ; then
-
-  AC_MSG_RESULT([        OGC WFS Client Layers disabled by --without-wfsclient.])
-
-elif test -z "$PROJ_ENABLED" -o -z "$OGR_ENABLED"; then
-
-  AC_MSG_RESULT([        OGC WFS Client Connections not enabled (PROJ.4, libcurl and OGR required).])
-
-elif test "$with_wfsclient" = "yes" ; then
-
-  dnl we'll test for libcurl below.
-  WFS_REQUESTED="yes"
-
-fi
-
-dnl ---------------------------------------------------------------------
-dnl OGC SOS Server support - Requires libxml2 and PROJ4 and OGR
-dnl ---------------------------------------------------------------------
-
-AC_CHECKING(whether we should include OGC SOS Server support)
-AC_ARG_WITH(sos,
-[  --with-sos              Enable OGC SOS Server Support (libxml2 and PROJ4 and
-                          OGR required).],,)
-
-if test "x$with_sos" != "xyes" ; then
-
-  AC_MSG_RESULT([        OGC SOS Server support not requested.])
-
-else
-
-  if test -z "$PROJ_ENABLED" ; then
-    AC_MSG_ERROR([        OGC SOS Support requested, but PROJ.4 required and missing.])
-  fi
-  if test -z "$OGR_ENABLED" ; then
-    AC_MSG_ERROR([        OGC SOS Support requested, but OGR required and missing.])
-  fi
-
-  dnl we'll test for libxml2 below.
-  SOS_REQUESTED="yes"
-  AC_MSG_RESULT([        OGC SOS Server support requested.])
-
-fi
-
-dnl ---------------------------------------------------------------------
-dnl Look for libcurl if WMS and WFS Client requested
-dnl ---------------------------------------------------------------------
-
-AC_MSG_CHECKING(for curl-config)
-AC_ARG_WITH(curl-config,
-[  --with-curl-config=PATH Specify path to curl-config.],,)
-
-dnl Clear some cache variables
-unset ac_cv_path_LIBCURL_CONFIG
-
-if test "$WMS_REQUESTED" = "yes" -o "$WFS_REQUESTED" = "yes" ; then
-
-  if test "`basename xx/$with_curl_config`" = "curl-config" ; then
-    LIBCURL_CONFIG="$with_curl_config"
-    if test -f "$LIBCURL_CONFIG" -a -x "$LIBCURL_CONFIG" ; then
-      AC_MSG_RESULT([yes, user supplied curl-config ($LIBCURL_CONFIG)])
-    else
-      AC_MSG_ERROR(['$LIBCURL_CONFIG' is not an executable.  Make sure you use --with-curl-config=/path/to/curl-config])
-    fi
-  else
-    AC_PATH_PROG(LIBCURL_CONFIG, curl-config, no)
-  fi
-
-  if test "$LIBCURL_CONFIG" = "no" ; then
-    AC_MSG_ERROR([couldn't find curl-config, try using --with-curl-config=PATH])
-  fi
-
-  CURL_VERNUM=`$LIBCURL_CONFIG --vernum`
-  CURL_VER=`$LIBCURL_CONFIG --version | awk '{print $2}'`
-  CURL_FLAGS=""
-
-  AC_MSG_RESULT([        found libcurl version $CURL_VER])
-  
-  dnl Need libcurl 7.10.1 or more recent
-  if test -z "$CURL_VERNUM" -o `expr "0x$CURL_VERNUM" \< "0x070a01"` = 1; then
-    AC_MSG_ERROR([libcurl version 7.10.1 or more recent is required.])
-  fi
-
-  dnl Verify if the the PROXYAUTH support is avaible (>= 7.10.7)
-  AC_MSG_CHECKING(for CURLOPT_PROXYAUTH support)
-  if test -z "$CURL_VERNUM" -o `expr "0x$CURL_VERNUM" \>= "0x070a07"` = 1; then
-    AC_MSG_RESULT([yes.])
-    CURL_FLAGS="-DUSE_CURLOPT_PROXYAUTH"
-  else
-    AC_MSG_RESULT([no.])
-  fi
-
-  dnl set WMS_LYR_ENABLED/WFS_LYR_ENABLED here, Makefile substitutions are
-  dnl done only further down, after checking for libxml2
-  if test "$WMS_REQUESTED" = "yes" ; then
-    WMS_LYR_ENABLED="-DUSE_WMS_LYR"
-    AC_MSG_RESULT([        OGC WMS Client Connections enabled ($WMS_LYR_ENABLED).])
-  fi
-
-  if test "$WFS_REQUESTED" = "yes" ; then
-    WFS_LYR_ENABLED="-DUSE_WFS_LYR"
-    AC_MSG_RESULT([        OGC WFS Client Connections enabled ($WFS_LYR_ENABLED).])
-  fi
-
-  CURL_INC=`$LIBCURL_CONFIG --cflags`
-  CURL_LIB=`$LIBCURL_CONFIG --libs`
-  CURL_ENABLED="-DUSE_CURL $CURL_FLAGS"
-
-fi
-
-AC_SUBST(CURL_INC,    $CURL_INC)
-AC_SUBST(CURL_LIB,    $CURL_LIB)
-
-ALL_INC="$CURL_INC $ALL_INC"
-ALL_LIB="$CURL_LIB $ALL_LIB"
-
-dnl ---------------------------------------------------------------------
-dnl KML support
-dnl ---------------------------------------------------------------------
-
-AC_ARG_WITH(kml,[  --with-kml=                KML output Support (ARG=yes/no).],)
-
-AC_MSG_CHECKING(if KML output is requested)
-KML_REQUESTED=""
-
-if test "$with_kml" = "yes"; then
-    AC_MSG_RESULT(yes)
-    KML_REQUESTED="yes"
-else
-    AC_MSG_RESULT(no)
-fi
-
-dnl ---------------------------------------------------------------------
-dnl Exempi support
-dnl ---------------------------------------------------------------------
-
-AC_MSG_CHECKING(if exempi support requested)
-AC_ARG_WITH(exempi,
-[  --with-exempi=DIR Specify path to exempi.],,)
-
-if test -n "$with_exempi" -a "$with_exempi" != "no" ; then
-
-  if test "$with_exempi" = "yes" ; then
-    if test -f /usr/include/exempi-2.0/exempi/xmp.h; then
-        EXEMPI_INC="-I/usr/include/exempi-2.0/exempi"
-        EXEMPI_LIB="-lexempi"
-    else
-        AC_CHECK_HEADER([xmp.h],,[AC_MSG_ERROR([cannot find xmp.h])])
-        EXEMPI_INC=""
-        EXEMPI_LIB="-lexempi"
-    fi
-  else
-    xmp_dir=$with_exempi
-    xmp_include=$xmp_dir/include
-    xmp_lib=$xmp_dir/lib
-    xmp_found=
-    for xmp_subdir in / /exempi /exempi-2.0/exempi; do
-      AC_CHECK_HEADER([$xmp_include$xmp_subdir/xmp.h],xmp_found=$xmp_subdir,,)
-    done
-    if test "x$xmp_found" = "x" ; then
-      AC_MSG_ERROR([cannot find xmp.h in $xmp_include])
-    else
-      EXEMPI_INC="-I$xmp_include$xmp_subdir"
-    fi
-    EXEMPI_LIB="-L$xmp_lib -lexempi"
-  fi
-
-  AC_CHECK_LIB(exempi,xmp_init,EXEMPI_ENABLED=-DUSE_EXEMPI,,$EXEMPI_LIB)
-
-else
-  AC_MSG_RESULT(no)
-fi
-
-AC_SUBST(EXEMPI_ENABLED,$EXEMPI_ENABLED)
-AC_SUBST(EXEMPI_INC,    $EXEMPI_INC)
-AC_SUBST(EXEMPI_LIB,    $EXEMPI_LIB)
-ALL_ENABLED="$EXEMPI_ENABLED $ALL_ENABLED"
-
-dnl ---------------------------------------------------------------------
-dnl Look for libxml2 if SOS Server requested
-dnl ---------------------------------------------------------------------
-
-AC_MSG_CHECKING(for libxml2)
-
-AC_ARG_WITH(xml2-config,
-[  --with-xml2-config=PATH Specify path to xml2-config.],,)
-
-dnl Clear some cache variables
-unset ac_cv_path_LIBXML2_CONFIG
-
-dnl If xml2 not explicitly mentioned, set to yes/no depending on whether
-dnl we are requesting libxml2 related services. 
-
-if test -z "$with_xml2_config" ; then
-  if test "x$SOS_REQUESTED" = "xyes" ; then
-    with_xml2_config=yes
-    AC_MSG_RESULT([libxml2 required.])
-  elif test "x$KML_REQUESTED" = "xyes" ; then
-    with_xml2_config=yes
-    AC_MSG_RESULT([libxml2 required.])
-  elif test "x$WCS_SVR_ENABLED" != "x" ; then 
-    with_xml2_config=yes
-    AC_MSG_RESULT([libxml2 requested for WCS Server.])
-    AC_MSG_RESULT([      If unavailable disable using --without-xml2-config,])
-    AC_MSG_RESULT([      but WCS 1.1 support will be disabled.])
-  elif test "x$WFS_SVR_ENABLED" != "x" ; then 
-    with_xml2_config=yes
-    AC_MSG_RESULT([libxml2 requested for WFS Server.])
-    AC_MSG_RESULT([      If unavailable disable using --without-xml2-config,])
-    AC_MSG_RESULT([      but WFS 1.1 support will be disabled.])
-  else
-    with_xml2_config=no
-    AC_MSG_RESULT([libxml2 not required.])
-  fi
-fi
-
-if test "$with_xml2_config" != "no" ; then
-
-  if test "`basename xx/$with_xml2_config`" = "xml2-config" ; then
-    LIBXML2_CONFIG="$with_xml2_config"
-    if test -f "$LIBXML2_CONFIG" -a -x "$LIBXML2_CONFIG" ; then
-      AC_MSG_RESULT([yes, user supplied xml2-config ($LIBXML2_CONFIG)])
-    else
-      AC_MSG_ERROR(['$LIBXML2_CONFIG' is not an executable.  Make sure you use --with-xml2-config=/path/to/xml2-config])
-    fi
-  else
-    AC_PATH_PROG(LIBXML2_CONFIG, xml2-config, no)
-  fi
-
-  if test "$LIBXML2_CONFIG" = "no" ; then
-   AC_MSG_ERROR([couldn't find xml2-config, try using --with-xml2-config=PATH])
-  fi
-
-  XML2_VER=`$LIBXML2_CONFIG --version`
-
-  AC_MSG_RESULT([        found libxml2 version $XML2_VER])
-
-  XML2_INC=`$LIBXML2_CONFIG --cflags`
-  XML2_LIB=`$LIBXML2_CONFIG --libs`
-  XML2_ENABLED=-DUSE_LIBXML2
- 
-  if test "$SOS_REQUESTED" = "yes" ; then  
-    SOS_SVR_ENABLED="-DUSE_SOS_SVR"
-  fi
-  if test "$KML_REQUESTED" = "yes" ; then  
-    KML_ENABLED="-DUSE_KML"
-  fi
-fi
-
-AC_SUBST(XML2_INC,    $XML2_INC)
-AC_SUBST(XML2_LIB,    $XML2_LIB)
-
-ALL_INC="$XML2_INC $ALL_INC"
-ALL_LIB="$XML2_LIB $ALL_LIB"
-
-dnl ---------------------------------------------------------------------
-dnl Substitutions for vars which are set only if curl and/or libxml2 are found
-dnl ---------------------------------------------------------------------
-
-AC_SUBST(WMS_LYR_ENABLED,$WMS_LYR_ENABLED)
-AC_SUBST(WFS_LYR_ENABLED,$WFS_LYR_ENABLED)
-AC_SUBST(SOS_SVR_ENABLED,$SOS_SVR_ENABLED)
-
-ALL_ENABLED="$WMS_LYR_ENABLED $WFS_LYR_ENABLED $SOS_SVR_ENABLED $XML2_ENABLED $CURL_ENABLED $KML_ENABLED $ALL_ENABLED"
-
-
-dnl ---------------------------------------------------------------------
-dnl Check if xml-mapfile requested
-dnl ---------------------------------------------------------------------
-
-AC_ARG_WITH(xml-mapfile,
-[  --with-xml-mapfile=                Include xml-mapfile Support (ARG=yes/no).],
-   XMLMAPFILE_REQUESTED="")
-
-AC_MSG_CHECKING(if xml-mapfile is requested)
-XMLMAPFILE_ENABLED=""
-
-if test "$with_xml_mapfile" = "yes"; then
-  XMLMAPFILE_ENABLED="-DUSE_XMLMAPFILE"
-  AC_MSG_RESULT(yes.. xslt and exslt support needed)
-else
-  AC_MSG_RESULT(no)
-fi
-
-ALL_ENABLED="$XMLMAPFILE_ENABLED $ALL_ENABLED"
-
-dnl ---------------------------------------------------------------------
-dnl Check if xslt requested
-dnl ---------------------------------------------------------------------
-
-AC_ARG_WITH(xslt,
-[  --with-xslt=DIR         Include xslt Support (ARG=yes/path to 
-                          to xslt install dir).],
-    XSLT_DIR=$withval,XSLT_DIR='')
-
-AC_MSG_CHECKING(if xslt is requested)
-XSLT_LIB=''
-
-if test -z "$XMLMAPFILE_ENABLED" -a \( "$with_xslt" = "no" -o "$with_xslt" = ""  \); then
-  AC_MSG_RESULT(no)
-else
-
-  if test "$XSLT_DIR" = "yes" -o "$XSLT_DIR" = ""; then
-     XSLT_DIR="/usr"
-  fi
-
-  test -f $XSLT_DIR/include/libxslt/xslt.h && XSLT_INCDIR="$XSLT_DIR/include"
-  test -f $XSLT_DIR/lib/libxslt.so && XSLT_LIBDIR="$XSLT_DIR/lib"
-  test -f $XSLT_DIR/lib64/libxslt.so && XSLT_LIBDIR="$XSLT_DIR/lib64"
-  test -f $XSLT_DIR/lib/x86_64-linux-gnu/libxslt.so && XSLT_LIBDIR="$XSLT_DIR/lib/x86_64-linux-gnu"
-
-  if test -n "$XSLT_LIBDIR" -a -n "$XSLT_INCDIR" ; then
-    dnl
-    dnl Found xslt runtime and headers. Enable USE_XSLT .
-    dnl
-    XSLT_ENABLED="-DUSE_XSLT"
-    XSLT_INC="-I$XSLT_INCDIR"
-    XSLT_LIB="-L$XSLT_LIBDIR -lxslt"
-    AC_MSG_RESULT([using xslt from $XSLT_LIB ($XSLT_ENABLED)])
-    AC_ADD_RUNPATH("$XSLT_DIR")
-
-  else
-    AC_MSG_ERROR(['$XSLT_DIR' not a valid installation path of xslt.])
-  fi
-fi
-
-AC_SUBST(XSLT_ENABLED,$XSLT_ENABLED)
-AC_SUBST(XSLT_INC,    $XSLT_INC)
-AC_SUBST(XSLT_LIB,    $XSLT_LIB)
-
-ALL_ENABLED="$XSLT_ENABLED $ALL_ENABLED"
-ALL_INC="$XSLT_INC $ALL_INC"
-ALL_LIB="$XSLT_LIB $ALL_LIB"
-
-dnl ---------------------------------------------------------------------
-dnl Check if exslt requested
-dnl ---------------------------------------------------------------------
-
-AC_ARG_WITH(exslt,
-[  --with-exslt=DIR         Include exslt Support (ARG=yes/path to 
-                           to exslt install dir).],
-    EXSLT_DIR=$withval,EXSLT_DIR='')
-
-AC_MSG_CHECKING(if exslt is requested)
-EXSLT_LIB=''
-
-if test -z "$XMLMAPFILE_ENABLED" -a \( "$with_exslt" = "no" -o "$with_exslt" = ""  \); then
-  AC_MSG_RESULT(no)
-else
-
-  if test "$EXSLT_DIR" = "yes" -o "$EXSLT_DIR" = ""; then
-     EXSLT_DIR="/usr"
-  fi
-
-  test -f $EXSLT_DIR/include/libexslt/exslt.h && EXSLT_INCDIR="$EXSLT_DIR/include"
-  test -f $EXSLT_DIR/lib/libexslt.so && EXSLT_LIBDIR="$EXSLT_DIR/lib"
-  test -f $EXSLT_DIR/lib64/libexslt.so && EXSLT_LIBDIR="$EXSLT_DIR/lib64"
-  test -f $EXSLT_DIR/lib/x86_64-linux-gnu/libexslt.so && EXSLT_LIBDIR="$EXSLT_DIR/lib/x86_64-linux-gnu"
-
-  if test -n "$EXSLT_LIBDIR" -a -n "$EXSLT_INCDIR" ; then
-    dnl
-    dnl Found exslt runtime and headers. Enable USE_EXSLT .
-    dnl
-    EXSLT_ENABLED="-DUSE_EXSLT"
-    EXSLT_INC="-I$EXSLT_INCDIR"
-    EXSLT_LIB="-L$EXSLT_LIBDIR -lexslt"
-    AC_MSG_RESULT([using exslt from $EXSLT_LIB ($EXSLT_ENABLED)])
-    AC_ADD_RUNPATH("$EXSLT_DIR")
-  else
-    AC_MSG_ERROR(['$EXSLT_DIR' not a valid installation path of exslt.])
-  fi
-fi
-
-AC_SUBST(EXSLT_ENABLED,$EXSLT_ENABLED)
-AC_SUBST(EXSLT_INC,    $EXSLT_INC)
-AC_SUBST(EXSLT_LIB,    $EXSLT_LIB)
-
-ALL_ENABLED="$EXSLT_ENABLED $ALL_ENABLED"
-ALL_INC="$EXSLT_INC $ALL_INC"
-ALL_LIB="$EXSLT_LIB $ALL_LIB"
-
-
-dnl ---------------------------------------------------------------------------
-dnl Look for FriBidi if requested.
-dnl ---------------------------------------------------------------------------
-
-AC_MSG_CHECKING(if FriBidi support requested)
-
-AC_ARG_WITH(fribidi-config,
-[  --with-fribidi-config[[=ARG]]
-                          Include FriBidi Support (ARG=yes/path to 
-                          fribidi-config or fribidi.pc)],,)
-
-if test "$with_fribidi_config" = "no" -o "$with_fribidi_config" = "" ; then
-  AC_MSG_RESULT(no)
-  FRIBIDI_CONFIG="no"
-
-elif test "$with_fribidi_config" = "yes" ; then
-  AC_MSG_RESULT(yes)
-  AC_PATH_PROG(FRIBIDI_CONFIG, fribidi-config, no)
-  FRIBIDI_PKG_CONFIG="no"
-  if test "$FRIBIDI_CONFIG" = "no" -a "$PKG_CONFIG" != "no" ; then 
-     AC_MSG_CHECKING(for fribidi pkg-config path)
-     `$PKG_CONFIG --silence-errors --libs fribidi >> /dev/null`
-     if test $? -eq 0 ; then
-        AC_MSG_RESULT(yes)
-        FRIBIDI_PKG_CONFIG="yes"
-        FRIBIDI_CONFIG="fribidi"
-     else
-       AC_MSG_RESULT(no)
-     fi
-  fi 
-else
-  FRIBIDI_CONFIG=$with_fribidi_config
-fi
-
-if test "$FRIBIDI_CONFIG" = "no" ; then 
-  FRIBIDI_ENABLED=
-  FRIBIDI_INC=
-  FRIBIDI_LIB=
-else
-  if test "$FRIBIDI_PKG_CONFIG" = "yes" -o ${FRIBIDI_CONFIG: -3} = ".pc" ; then
-     AC_MSG_RESULT([yes, user supplied path to fribidi.pc])
-     FRIBIDI_ENABLED="-DUSE_FRIBIDI -DUSE_FRIBIDI2"
-     FRIBIDI_LIB=`$PKG_CONFIG --libs $FRIBIDI_CONFIG`
-     FRIBIDI_INC=`$PKG_CONFIG --cflags $FRIBIDI_CONFIG`
-  else
-     if test -f "$FRIBIDI_CONFIG" -a -x "$FRIBIDI_CONFIG" ; then
-       AC_MSG_RESULT([yes, user supplied fribidi-config ($FRIBIDI_CONFIG)])
-     else
-       AC_MSG_ERROR(['$FRIBIDI_CONFIG' is not an executable.  Make sure you use --with-fribidi-config=/path/to/fribidi-config or fribidi.pc])
-     fi
-     FRIBIDI_ENABLED=-DUSE_FRIBIDI
-     FRIBIDI_LIB=`$FRIBIDI_CONFIG --libs`
-     FRIBIDI_INC=`$FRIBIDI_CONFIG --cflags`
-  fi
-fi
-
-AC_SUBST(FRIBIDI_ENABLED,$FRIBIDI_ENABLED)
-AC_SUBST(FRIBIDI_INC,$FRIBIDI_INC)
-AC_SUBST(FRIBIDI_LIB,$FRIBIDI_LIB)
-
-ALL_ENABLED="$FRIBIDI_ENABLED $ALL_ENABLED"
-ALL_INC="$FRIBIDI_INC $ALL_INC"
-ALL_LIB="$FRIBIDI_LIB $ALL_LIB"
-
-
-dnl ---------------------------------------------------------------------------
-dnl Look for Cairo if requested.
-dnl ---------------------------------------------------------------------------
-
-AC_MSG_CHECKING(if Cairo support requested)
-
-AC_ARG_WITH(cairo,
-[  --with-cairo[[=ARG]]      Include Cairo Support (ARG=yes/path to cairo.pc)],,)
-
-if test "$with_cairo" = "no" -o "$with_cairo" = "" ; then
-  AC_MSG_RESULT(no)
-  CAIRO_CONFIG="no"
-
-elif test "$with_cairo" = "yes" ; then
-  AC_MSG_RESULT(yes)
-  if test "$PKG_CONFIG" != "no" ; then 
-     AC_MSG_CHECKING(for cairo pkg-config path)
-     `$PKG_CONFIG --silence-errors -- cairo cairo-ft cairo-svg cairo-pdf cairo-png >> /dev/null`
-     if test $? -eq 0 ; then
-        AC_MSG_RESULT(yes)
-        CAIRO_CONFIG="cairo cairo-ft cairo-svg cairo-pdf cairo-png"
-     else
-       AC_MSG_ERROR([cairo support requested, but not found.Try installing the cairo development headers])
-     fi
-  else
-    AC_MSG_ERROR([pkg-config required for cairo support, try using --with-pkg-config=PATH])
-  fi 
-else
-  CAIRO_CONFIG=$with_cairo
-fi
-
-if test "$CAIRO_CONFIG" = "no" ; then 
-  CAIRO_ENABLED=
-  CAIRO_INC=
-  CAIRO_LIB=
-else
-  AC_MSG_RESULT([yes, pkg-config defaults, or user supplied path to cairo.pc])
-  CAIRO_ENABLED="-DUSE_CAIRO"
-  CAIRO_LIB=`$PKG_CONFIG --libs $CAIRO_CONFIG`
-  CAIRO_INC=`$PKG_CONFIG --cflags $CAIRO_CONFIG`
-fi
-
-AC_SUBST(CAIRO_ENABLED,$CAIRO_ENABLED)
-AC_SUBST(CAIRO_INC,$CAIRO_INC)
-AC_SUBST(CAIRO_LIB,$CAIRO_LIB)
-
-ALL_ENABLED="$CAIRO_ENABLED $ALL_ENABLED"
-ALL_INC="$CAIRO_INC $ALL_INC"
-ALL_LIB="$CAIRO_LIB $ALL_LIB"
-
-
-dnl ---------------------------------------------------------------------------
-dnl Look for Cairo SVG parser if requested.
-dnl ---------------------------------------------------------------------------
-
-AC_MSG_CHECKING(if Cairo svg parser support requested)
-
-AC_SUBST(LIBSVG_CAIRO_ENABLED,$LIBSVG_CAIRO_ENABLED)
-AC_SUBST(LIBSVG_CAIRO_INC,$LIBSVG_CAIRO_INC)
-AC_SUBST(LIBSVG_CAIRO_LIB,$LIBSVG_CAIRO_LIB)
-
-AC_ARG_WITH(libsvg-cairo,
-[  --with-libsvg-cairo[[=ARG]]      Include Cairo SVG Parser Support (ARG=yes/path to cairo.pc)],,)
-
-if test "$with_libsvg_cairo" = "no" -o "$with_libsvg_cairo" = "" ; then
-  AC_MSG_RESULT(no)
-  LIBSVG_CAIRO_CONFIG="no"
-
-elif test "$with_libsvg_cairo" = "yes" ; then
-  AC_MSG_RESULT(yes)
-  if test "$PKG_CONFIG" != "no" ; then 
-     AC_MSG_CHECKING(for libsvg-cairo pkg-config path)
-     `$PKG_CONFIG --silence-errors -- libsvg-cairo >> /dev/null`
-     if test $? -eq 0 ; then
-        AC_MSG_RESULT(yes)
-        LIBSVG_CAIRO_CONFIG="libsvg-cairo"
-     else
-       AC_MSG_ERROR([libsvg-cairo support requested, but not found.])
-     fi
-  else
-    AC_MSG_ERROR([pkg-config required for libsvg-cairo support, try using --with-pkg-config=PATH])
-  fi 
-else
-  LIBSVG_CAIRO_CONFIG=$with_libsvg_cairo
-fi
-
-if test "$LIBSVG_CAIRO_CONFIG" = "no" ; then 
-  LIBSVG_CAIRO_ENABLED=
-  LIBSVG_CAIRO_INC=
-  LIBSVG_CAIRO_LIB=
-else
-  if test -z "$CAIRO_ENABLED"; then
-       AC_MSG_ERROR([libsvg-cairo support requires cairo support. (hint: rerun with --with-cairo)])
-  fi
-  AC_MSG_RESULT([yes, pkg-config defaults, or user supplied path to cairo.pc])
-  LIBSVG_CAIRO_ENABLED="-DUSE_SVG_CAIRO"
-  LIBSVG_CAIRO_LIB=`$PKG_CONFIG --libs $LIBSVG_CAIRO_CONFIG`
-  LIBSVG_CAIRO_INC=`$PKG_CONFIG --cflags $LIBSVG_CAIRO_CONFIG`
-fi
-
-AC_SUBST(LIBSVG_CAIRO_ENABLED,$LIBSVG_CAIRO_ENABLED)
-AC_SUBST(LIBSVG_CAIRO_INC,$LIBSVG_CAIRO_INC)
-AC_SUBST(LIBSVG_CAIRO_LIB,$LIBSVG_CAIRO_LIB)
-
-ALL_ENABLED="$LIBSVG_CAIRO_ENABLED $ALL_ENABLED"
-ALL_INC="$LIBSVG_CAIRO_INC $ALL_INC"
-ALL_LIB="$LIBSVG_CAIRO_LIB $ALL_LIB"
-
-
-dnl ---------------------------------------------------------------------
-dnl Support for FastCGI enabled builds.
-dnl ---------------------------------------------------------------------
-AC_MSG_CHECKING(FastCGI support)
-AC_ARG_WITH(fastcgi,
-[  --with-fastcgi=path     Enable FastCGI, point to installed tree.],,)
-
-if test "$with_fastcgi" = "no" -o "$with_fastcgi" = "" ; then
-
-  AC_MSG_RESULT([not requested.])
-
-else 
-
-  AC_MSG_RESULT([requested.])
-
-  if test "$with_fastcgi" = "yes" ; then
-    FASTCGI_INC=""
-    FASTCGI_LIB="-lfcgi"
-  else
-    FASTCGI_INC="-I$with_fastcgi/include -I$with_fastcgi/include/fastcgi"
-    FASTCGI_LIB="-L$with_fastcgi/lib -lfcgi"
-  fi
-
-  AC_CHECK_LIB(fcgi,FCGI_Accept,FASTCGI_ENABLED=-DUSE_FASTCGI,,$FASTCGI_LIB)
-
-  if test "x$FASTCGI_ENABLED" = "x" ; then
-    AC_MSG_ERROR([Unable to link against $FASTCGI_LIB])
-  fi
-
-fi
-
-AC_SUBST(FASTCGI_ENABLED,$FASTCGI_ENABLED)
-AC_SUBST(FASTCGI_INC,    $FASTCGI_INC)
-AC_SUBST(FASTCGI_LIB,    $FASTCGI_LIB)
-
-ALL_ENABLED="$FASTCGI_ENABLED $ALL_ENABLED"
-ALL_INC="$FASTCGI_INC $ALL_INC"
-ALL_LIB="$FASTCGI_LIB $ALL_LIB"
-
-AC_ARG_WITH(apache-module, 
-     AC_HELP_STRING([--with-apache-module], [enable building mod_mapserver module]), 
-     , 
-     [with_apache_module=no] 
-   ) 
-   if test "$with_apache_module" = "yes"; then 
-      APXS_CHECK
-      APR_CHECK
-      if test -z "$APRCONFIG"; then
-         AC_MSG_ERROR(apr-config utility not found. use --with-apr-config to specify its location.)
-      else
-         ALL_ENABLED="-DMOD_WMS_ENABLED $ALL_ENABLED"
-      fi
-   fi
-     
-
-
-dnl ---------------------------------------------------------------------
-dnl Define some vars for the mapserver library itself for modules that
-dnl link with it.
-dnl ---------------------------------------------------------------------
-
-MS_DIR="`pwd`"
-MS_INC="-I$MS_DIR"
-MS_LIB="-L$MS_DIR -lmapserver"
-AC_ADD_RUNPATH("$MS_DIR")
-AC_SUBST(MS_INC, $MS_INC)
-AC_SUBST(MS_LIB, $MS_LIB)
-
-dnl ---------------------------------------------------------------------
-dnl Check IGNORE_MISSING_DATA option (OFF by default)
-dnl ---------------------------------------------------------------------
-
-AC_ARG_ENABLE(ignore-missing-data,
-[  --enable-ignore-missing-data
-                          Ignore missing data file errors at runtime
-  --disable-ignore-missing-data
-                          Report all missing data files (enabled by default).],,)
-if test "$enable_ignore_missing_data" = "yes" ; then
-
-  IGNORE_MISSING_DATA="-DIGNORE_MISSING_DATA"
-
-  AC_MSG_RESULT([Compiling with -DIGNORE_MISSING_DATA.])
-fi
-AC_SUBST(IGNORE_MISSING_DATA, $IGNORE_MISSING_DATA)
-ALL_ENABLED="$IGNORE_MISSING_DATA $ALL_ENABLED"
-
-dnl ---------------------------------------------------------------------
-dnl Check USE_POINT_Z_M option (OFF by default)
-dnl ---------------------------------------------------------------------
-
-AC_ARG_ENABLE(point-z-m,
-[  --enable-point-z-m      Use point Z and M parameters (disabled by default).
-  --disable-point-z-m     Disable support for point Z and M parameters.],,)
-if test "$enable_point_z_m" = "yes" ; then
-
-  USE_POINT_Z_M="-DUSE_POINT_Z_M"
-
-  AC_MSG_RESULT([Compiling with -DUSE_POINT_Z_M.])
-fi
-AC_SUBST(USE_POINT_Z_M, $USE_POINT_Z_M)
-ALL_ENABLED="$USE_POINT_Z_M $ALL_ENABLED"
-
-
-dnl ---------------------------------------------------------------------
-dnl Force use of slow (generic) MS_NINT macro.
-dnl ---------------------------------------------------------------------
-
-AC_ARG_ENABLE(fast-nint,
-[  --disable-fast-nint     Use safe MS_NINT with reliable rounding],,)
-
-if test "$enable_fast_nint" = "no" ; then
-
-  USE_NINT="-DUSE_GENERIC_MS_NINT"
-
-  AC_MSG_RESULT([Compiling with safe MS_NINT])
-else
-  USE_NINT=""
-
-  AC_MSG_RESULT([Compiling with fast MS_NINT])
-fi
-AC_SUBST(USE_NINT, $USE_NINT)
-ALL_ENABLED="$USE_NINT $ALL_ENABLED"
-
-dnl ---------------------------------------------------------------------
-dnl Check for warning flags. 
-dnl 
-dnl By default we use -Wall with gcc.  We provide an option for very 
-dnl strict gcc warnings if so desired. 
-dnl ---------------------------------------------------------------------
-
-AC_MSG_CHECKING(compiler warnings)
-
-AC_ARG_WITH(warnings,
-[  --with-warnings[[=flags]] Enable strict warnings (or user defined warnings)],,)
-
-AX_CFLAGS_WARN_ALL(C_WFLAGS)
-AX_CXXFLAGS_WARN_ALL(CXX_WFLAGS)
-
-if test "$with_warnings" = "yes" ; then 
-  if test "$GCC" = "yes" ; then
-    WFLAGS="-W -Wcast-align -Wmissing-prototypes -Wstrict-prototypes -Wpointer-arith -Wreturn-type"
-    C_WFLAGS="$C_WFLAGS -Wmissing-declarations"
-  
-    AC_MSG_RESULT([strict])
-  else
-    WFLAGS=""
-    AC_MSG_RESULT([disabled])
-  fi
-
-elif test "$with_warnings" = "no" ; then
-  WFLAGS=""
-  C_WFLAGS=""
-  CXX_WFLAGS=""
-  AC_MSG_RESULT([disabled])
-
-elif test "$with_warnings" != "" ; then 
-  WFLAGS="$with_warnings"
-  AC_MSG_RESULT([user defined])
-fi
-
-CFLAGS="$CFLAGS $WFLAGS $C_WFLAGS"
-CXXFLAGS="$CXXFLAGS $WFLAGS $CXX_WFLAGS"
-
-dnl ---------------------------------------------------------------------
-dnl Check --enable-debug option for "-g" compile flag. (OFF by default)
-dnl ---------------------------------------------------------------------
-
-AC_CHECKING(whether we should enable debug features)
-AC_ARG_ENABLE(debug,
-[  --enable-debug          Include "-g" in CFLAGS for debugging.
-  --disable-debug         Do not include "-g" in CFLAGS (the default).],,)
-
-if test "$enable_debug" = "yes" ; then
-  dnl remove optimization flags
-  CXXFLAGS=`echo "$CXXFLAGS " | sed 's/-O[[123]] / /'`
-  CFLAGS=`echo "$CFLAGS " | sed 's/-O[[123]] / /'`
-
-  REPORT_ENABLE_DEBUG="-g "
-  AC_MSG_RESULT([        Enabling debug features: -g in CFLAGS.])
-
-else
-  CXXFLAGS=`echo "$CXXFLAGS -DNDEBUG " | sed "s/-g //"`
-  CFLAGS=`echo "$CFLAGS -DNDEBUG " | sed "s/-g //"`
-fi
-
-AC_CHECKING(whether to enable proj shortcuts)
-AC_ARG_ENABLE(proj-fastpath,
-     AC_HELP_STRING([--enable-proj-fastpath], [bypass proj.4 for epsg:4326 to epsg:3857 reprojections]),,) 
-
-if test "$enable_proj_fastpath" = "yes" ; then
-   PROJ_FASTPATH_ENABLED="-DUSE_PROJ_FASTPATHS"
-   ALL_ENABLED="$PROJ_FASTPATH_ENABLED $ALL_ENABLED"
-fi
-AC_SUBST(PROJ_FASTPATH_ENABLED,$PROJ_FASTPATH_ENABLED)
-
-dnl ---------------------------------------------------------------------
-dnl Check --enable-cgi-cl-debug-args option (OFF by default)
-dnl ---------------------------------------------------------------------
-
-AC_CHECKING(whether we should enable mapserv CGI command-line debug arguments)
-AC_ARG_ENABLE(cgi-cl-debug-args,
-[  --enable-cgi-cl-debug-args 
-                          Enable mapserv CGI command-line debug arguments
-                          (disabled by default). These command-line args may
-                          be insecure and should be enabled only on 
-                          development servers and only if you understand the 
-                          security implications.],,)
-
-if test "$enable_cgi_cl_debug_args" = "yes" ; then
-  DEBUG_FLAGS="$DEBUG_FLAGS -DMS_ENABLE_CGI_CL_DEBUG_ARGS"
-  AC_MSG_RESULT([        Enabling (potentially insecure) mapserv CGI command-line debug arguments: -DMS_ENABLE_CGI_CL_DEBUG_ARGS.])
-fi
-
-AC_SUBST(DEBUG_FLAGS, $DEBUG_FLAGS)
-ALL_ENABLED="$DEBUG_FLAGS $ALL_ENABLED"
-
-
-dnl ---------------------------------------------------------------------
-dnl Enable source code coverage reporting for GCC
-dnl ---------------------------------------------------------------------
-
-AC_ARG_ENABLE(gcov,
-[  --enable-gcov           Enable source code coverage testing using gcov],
-[CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage"
- PHP_LD_XTRAFLAGS="$PHP_LD_XTRAFLAGS -fprofile-arcs -ftest-coverage"])
-
-
-dnl ---------------------------------------------------------------------
-dnl PHP/MapScript module options
-dnl ---------------------------------------------------------------------
-
-AC_CHECKING(for PHP/MapScript module options)
-AC_ARG_WITH(php,
-[  --with-php=yes|no|/path/to/php-config
-                          Specify location of php-config script.
-                          Required in order to compile the PHP/MapScript 
-                          module.],,[with_php=no])
-
-AC_ARG_ENABLE(internal-ld-detect,
-[  --enable-perlv-ld-detect
-                          (applies to --with-php only) 
-                          Use perl -V output to figure the command to use to 
-                          link php_mapscript.so.  Try this only if the default
-                          internal macro didn't work.],,)
-
-if test "$with_php" != "no" ; then
-  if test -d "$with_php"; then
-      AC_MSG_ERROR([--with-php now expects an optional path to php-config, not a directory])
-  fi
-  if test "$with_php" == "yes" ; then
-      AC_PATH_PROG(PHPCONFIG,php-config,no)
-      if test "x$PHPCONFIG" == "xno"; then
-         AC_MSG_ERROR([php-config not found on path, please give its full location])
-      fi
-  else
-      PHPCONFIG="$with_php"
-  fi
-  if test ! -f "$PHPCONFIG"; then
-      AC_MSG_ERROR([$PHPCONFIG not found])
-  fi
-
-  PHPINCDIR=`$PHPCONFIG --include-dir`
-
-  dnl
-  dnl Look for PHP5's php_config.h.
-  dnl We'll need the config file to find info about the PHP configuration
-  dnl
-  AC_MSG_CHECKING([for location of php_config.h])
-  dnl Look for the main/php_config.h
-  test -f "$PHPINCDIR/main/php_config.h" && PHP_CONFIG_H="$PHPINCDIR/main/php_config.h"
-
-  if test -n "$PHP_CONFIG_H" ; then
-    AC_MSG_RESULT([$PHP_CONFIG_H])
-  else
-    AC_MSG_ERROR([
-!!! Could not find php_config.h and php_version.h in $PHPINCDIR.          !!!
-!!! Has PHP been installed yet?                                      !!!])
-  fi
-
-
-  dnl Check which PHP version we're using.
-  dnl Default is PHP3, and if ZEND_API is set then we assume that we have PHP4.
-  dnl
-  AC_MSG_CHECKING([if we have PHP 5.2.0+])
-  PHP_VERSION=`$PHPCONFIG --vernum`
-  if test -z "$PHP_VERSION" || test $PHP_VERSION -lt 50200; then
-    AC_MSG_ERROR([
-!!! PHP MapScript now requires PHP 5.2.0 or more recent.              !!!
-!!! Support for PHP3 has been dropped after MapServer version 3.5.    !!!
-!!! Support for PHP4 has been dropped after MapServer version 5.6.    !!!])
-  else
-     AC_MSG_RESULT([yes])
-  fi
-
-  dnl
-  dnl Check if PHP was compiled with the bundled regex, and if so then
-  dnl use the same version to compile MapServer.
-  dnl
-  AC_MSG_CHECKING([whether we should use PHP's regex])
-  if test -n "`grep 'define REGEX 1' $PHP_CONFIG_H`"  ; then
-    AC_MSG_RESULT(yes)
-
-    dnl We'll check for regex_extra.h - that might let use build
-    dnl without the source using libphp_common.so
-    test -f "$PHPINCDIR/regex/regex_extra.h" && PHP_NO_SOURCE="1"
-        if test -n "$PHP_NO_SOURCE" ; then
-          dnl Found regex_extra.h
-          USE_PHP_REGEX="-DUSE_PHP_REGEX"
-          PHP_REGEX_INC="-I$PHPINCDIR"
-          PHP_REGEX_OBJ=php_regex.lo
-          AC_MSG_RESULT([        found regex_extra.h - building PHP MapScript with PHP's bundled regex ])
-        else
-          dnl PHP 5.3 changed the layout of regex-related files.
-          test -f "$PHPINCDIR/ext/ereg/regex/regex.h" && PHP_NO_SOURCE="1"
-          if test -n "$PHP_NO_SOURCE" ; then
-          dnl Found regex.h
-          USE_PHP_REGEX="-DUSE_PHP_REGEX"
-          PHP_REGEX_INC="-I$PHPINCDIR/ext/ereg/"
-          PHP_REGEX_OBJ=php_regex.lo
-          AC_MSG_RESULT([        found regex.h - building PHP MapScript with PHP's bundled regex ])
-          else
-            AC_MSG_ERROR([
-!!! PHP uses its bundled regex library but regex/regex_extra.h (PHP <=5.2) or !!!
-!!! ext/ereg/regex/regex.h (PHP >=5.3) cannot be found.                                  !!!])
-          fi
-	fi
-
-  else
-    AC_MSG_RESULT(no)
-  fi
-
-
-  PHP_MAPSCRIPT="php_mapscript"
-  AC_SUBST(PHP_VERSION_FLAG, "-DPHP_VERSION_ID=$PHP_VERSION")
-  AC_SUBST(PHPCONFIG, $PHPCONFIG)
-  AC_SUBST(PHP_REGEX_INC, $PHP_REGEX_INC)
-  AC_SUBST(PHP_REGEX_OBJ, $PHP_REGEX_OBJ)
-  AC_SUBST(USE_PHP_REGEX, $USE_PHP_REGEX)
-
-  AC_MSG_RESULT([        PHP/MapScript module configured.])
-else
-  AC_MSG_RESULT([        PHP/MapScript module not configured.])
-fi
-
-AC_SUBST(PHP_MAPSCRIPT,$PHP_MAPSCRIPT)
-
-dnl ---------------------------------------------------------------------
-dnl Shared library building.
-dnl
-dnl If we didn't select an LD_SHARED for PHP then we should do so here.
-dnl ---------------------------------------------------------------------
-
-if test "x$LD_SHARED" = "x" ; then
-  AC_COMPILER_PIC
-  AC_LD_SHARED
-fi
-
-
-dnl ---------------------------------------------------------------------
-dnl Check operating system (used by Java Mapscript and possibily
-dnl other mapscripts)
-dnl ---------------------------------------------------------------------
-
-AC_MSG_CHECKING([if --with-java-include-os-name specified])
-AC_ARG_WITH(java-include-os-name,
-[  --with-java-include-os-name=dirname
-                          (AUTODETECTED)
-                          Use this option only if building of Java Mapscript
-                          fails because os-dependent headers are not found.
-                          dirname is the name of subdirectory of the Java 
-                          installation where os-dependent include files are 
-                          found (for instance linux or solaris).
-                          Only used by Java mapscript.],,)
-if test -n "${with_java_include_os_name}" ; then
-OS_INCLUDE_DIR="${with_java_include_os_name}"
-AC_MSG_RESULT([yes ($OS_INCLUDE_DIR)])
-else
-dnl might break on Windows???
-OUR_OSNAME=`uname -s`
-case "${OUR_OSNAME}" in
-[[Ll]inux]) OS_INCLUDE_DIR="linux" ;;
-[[sS]olaris*]) OS_INCLUDE_DIR="solaris" ;;
-[[sS]unOS*]) OS_INCLUDE_DIR="solaris" ;;
-[[Ww]in*]) OS_INCLUDE_DIR="win32" ;;
-*) OS_INCLUDE_DIR="linux" ;;
-esac
-AC_MSG_RESULT([no, autodetected $OS_INCLUDE_DIR])
-fi
-
-if test -z $JAVAC; then
-   JAVAC="javac"
-fi
-AX_JNI_INCLUDE_DIR
-for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
-do
-   JAVA_INCLUDE="$JAVA_INCLUDE -I$JNI_INCLUDE_DIR"
-done
-AC_SUBST(JAVA_INCLUDE,$JAVA_INCLUDE)
-
-AC_DEFUN([PYTHON_CHECK],[
-AC_MSG_CHECKING(if python path is provided)
-
-AC_ARG_WITH(python,
-[  --with-python[[=PATH]] Specify python binary (PATH is path to python)],,[with_python=yes])
-
-if test -n "$with_python" -a "$with_python" != "yes" ; then
-   AC_MSG_RESULT([yes])
-   if test -x "$with_python"; then
-      PYTHON=$with_python
-   else
-      AC_MSG_ERROR([$with_python does not seem to be an executable])
-   fi
-else
-   AC_MSG_RESULT([using system default])
-   AC_PATH_PROG(PYTHON,python)
-   if test -z "$PYTHON"; then
-      AC_MSG_ERROR([no python found on path])
-   fi
-fi
-AC_SUBST(PYTHON,$PYTHON)
-])
-
-
-AC_ARG_ENABLE(python-mapscript,
-[  --enable-python-mapscript     build the python mapscript module. ],,[enable_python_mapscript=no])
-AC_MSG_CHECKING([if we should build python mapscript])
-if test "$enable_python_mapscript" = "yes" ; then
-  AX_PKG_SWIG([2.0.0])
-  if test -z $SWIG; then
-      AC_MSG_WARN([swig not found, you will not be able to build/update wrappers])
-  fi
-  PYTHON_CHECK
-  PYTHON_MAPSCRIPT="python_mapscript"
-
-  AC_MSG_RESULT([        Python/MapScript module configured.])
-else
-  AC_MSG_RESULT([        Python/MapScript module not configured.])
-fi
-
-AC_SUBST(PYTHON_MAPSCRIPT,$PYTHON_MAPSCRIPT)
-
-AC_SUBST(OS_INCLUDE_DIR, $OS_INCLUDE_DIR)
-
-dnl ---------------------------------------------------------------------
-dnl Generate output files
-dnl ---------------------------------------------------------------------
-
-AC_SUBST(ALL_ENABLED, "$ALL_ENABLED -DDISABLE_CVSID")
-AC_SUBST(ALL_INC, $ALL_INC)
-AC_SUBST(ALL_LIB, $ALL_LIB)
-AC_SUBST(ALL_STATIC_LIB, $ALL_STATIC_LIB)
-AC_SUBST(RPATHS, [$RPATHS])
-
-AC_OUTPUT(Makefile mapscript/php/Makefile mapscript/python/Makefile mapscript/java/Makefile mapscript/csharp/Makefile mapscript/perl/Makefile.PL)
-
-dnl ---------------------------------------------------------------------------
-dnl Display configuration status
-dnl ---------------------------------------------------------------------------
-
-
-AC_MSG_RESULT()
-AC_MSG_RESULT([MapServer is now configured for ${host}])
-AC_MSG_RESULT()
-AC_MSG_RESULT([ -------------- Compiler Info ------------- ])
-AC_MSG_RESULT([  C compiler:                ${CC} ${CFLAGS}])
-AC_MSG_RESULT([  C++ compiler:              ${CXX} ${CXXFLAGS}])
-AC_MSG_RESULT([  Debug:                     ${REPORT_ENABLE_DEBUG}${DEBUG_FLAGS}])
-AC_MSG_RESULT([  Generic NINT:              ${USE_NINT}])
-AC_MSG_RESULT()
-AC_MSG_RESULT([ -------------- Renderer Settings --------- ])
-AC_MSG_RESULT([  OpenGL support:            ${OGL_ENABLED}])
-AC_MSG_RESULT([  zlib support:              ${ZLIB_ENABLED}])
-AC_MSG_RESULT([  png support:               ${PNG_ENABLED}])
-AC_MSG_RESULT([  gif support:               ${GIF_ENABLED}])
-AC_MSG_RESULT([  jpeg support:              ${JPEG_ENABLED}])
-AC_MSG_RESULT([  freetype support:          ${FT_ENABLED}])
-AC_MSG_RESULT([  iconv support:             ${ICONV_ENABLED}])
-AC_MSG_RESULT([  AGG support:               ${AGG_ENABLED}])
-AC_MSG_RESULT([  GD support:                ${GD_ENABLED}])
-AC_MSG_RESULT([  Cairo (SVG,PDF) support:   ${CAIRO_ENABLED}])
-AC_MSG_RESULT([  Cairo SVG symbol support:  ${LIBSVG_CAIRO_ENABLED}])
-AC_MSG_RESULT([  KML support:               ${KML_ENABLED}])
-AC_MSG_RESULT()
-
-AC_MSG_RESULT([ -------------- Support Libraries --------- ])
-AC_MSG_RESULT([  Proj.4 support:            ${PROJ_ENABLED}])
-AC_MSG_RESULT([  Proj Fastpaths:            ${PROJ_FASTPATH_ENABLED}])
-AC_MSG_RESULT([  Libxml2 support:           ${XML2_ENABLED}])
-AC_MSG_RESULT([  FriBidi support:           ${FRIBIDI_ENABLED}])
-AC_MSG_RESULT([  Curl support:              ${CURL_ENABLED}])
-AC_MSG_RESULT([  FastCGI support:           ${FASTCGI_ENABLED}])
-AC_MSG_RESULT([  Exempi support:            ${EXEMPI_ENABLED}])
-AC_MSG_RESULT([  Threading support:         ${THREAD_FLAG}])
-AC_MSG_RESULT([  GEOS support:              ${GEOS_ENABLED}])
-AC_MSG_RESULT([  XML Mapfile support:        ${XMLMAPFILE_ENABLED}])
-AC_MSG_RESULT([  XSLT support:              ${XSLT_ENABLED}])
-AC_MSG_RESULT([  EXSLT support:              ${EXSLT_ENABLED}])
-AC_MSG_RESULT()
-
-AC_MSG_RESULT([ -------------- Data Format Drivers ------- ])
-AC_MSG_RESULT([  PostGIS support:           ${POSTGIS_ENABLED}])
-AC_MSG_RESULT([  ArcSDE support:            ${SDE_ENABLED}])
-AC_MSG_RESULT([  OGR support:               ${OGR_ENABLED}])
-AC_MSG_RESULT([  GDAL support:              ${GDAL_ENABLED}])
-AC_MSG_RESULT([  Oracle Spatial support:    ${ORACLESPATIAL_ENABLED}])
-AC_MSG_RESULT()
-
-AC_MSG_RESULT([ -------------- OGC Services -------------- ])
-AC_MSG_RESULT([  WMS Server:                ${WMS_SVR_ENABLED}])
-AC_MSG_RESULT([  WMS Client:                ${WMS_LYR_ENABLED}])
-AC_MSG_RESULT([  WFS Server:                ${WFS_SVR_ENABLED}])
-AC_MSG_RESULT([  WFS Client:                ${WFS_LYR_ENABLED}])
-AC_MSG_RESULT([  WCS Server:                ${WCS_SVR_ENABLED}])
-AC_MSG_RESULT([  SOS Server:                ${SOS_SVR_ENABLED}])
-AC_MSG_RESULT()
-
-AC_MSG_RESULT([ -------------- MapScript ----------------- ])
-if test -n "${PHP_MAPSCRIPT}"; then
-  AC_MSG_RESULT([  PHP MapScript:             yes])
-else
-  AC_MSG_RESULT([  PHP MapScript:             no])
-fi
-if test -n "${PYTHON_MAPSCRIPT}"; then
-  AC_MSG_RESULT([  Python MapScript:          yes])
-else
-  AC_MSG_RESULT([  Python MapScript:          no])
-fi
-
-AC_MSG_RESULT()
diff --git a/genhtml.patch b/genhtml.patch
new file mode 100644
index 0000000..9f11730
--- /dev/null
+++ b/genhtml.patch
@@ -0,0 +1,43 @@
+--- genhtml_ori	2013-07-10 19:23:55.041055126 +0200
++++ genhtml	2013-07-10 19:31:39.041172541 +0200
+@@ -2351,7 +2351,8 @@
+ 
+ 	($year, $month, $day) = (localtime())[5, 4, 3];
+ 
+-	return sprintf("%d-%02d-%02d", $year+1900, $month+1, $day);
++	#return sprintf("%d-%02d-%02d", $year+1900, $month+1, $day);
++    return "XXXX-XX-XX";
+ }
+ 
+ 
+@@ -3807,9 +3808,10 @@
+ 			} else {
+ 				$class	= "branchCov";
+ 				$text	= " + ";
+-				$title	= "Branch $br_num was taken $taken ".
+-					  "time";
+-				$title .= "s" if ($taken > 1);
++				#$title	= "Branch $br_num was taken $taken ".
++				#	  "time";
++				#$title .= "s" if ($taken > 1);
++                $title  = "Branch $br_num was taken X times";
+ 			}
+ 			$current .= "[" if ($open);
+ 			$current .= "<span class=\"$class\" title=\"$title\">";
+@@ -3892,6 +3894,8 @@
+ 		$count_format	= format_count($count, $count_field_width);
+ 	}
+ 	else {
++        # force to 1 to avoid huge diffs between runs
++        $count = 1;
+ 		$result		= $count;
+ 		$source_format	= '<span class="lineCov">';
+ 		$count_format	= format_count($count, $count_field_width);
+@@ -5127,6 +5131,7 @@
+ 			$countstyle = "coverFnLo";
+ 		} else {
+ 			$countstyle = "coverFnHi";
++            $count = "X";
+ 		}
+ 
+ 		write_html(*HTML_HANDLE, <<END_OF_HTML)
diff --git a/github_issue_no_activity_closer.py b/github_issue_no_activity_closer.py
new file mode 100644
index 0000000..2575acb
--- /dev/null
+++ b/github_issue_no_activity_closer.py
@@ -0,0 +1,123 @@
+#!/usr/bin/env python
+
+import datetime
+import getpass
+import json
+import re
+import time
+
+import requests
+
+AUTOCLOSE_MESSAGE = """\
+### This is an automated comment
+
+This issue has been closed due to lack of activity. This doesn't mean the \
+issue is invalid, it simply got no attention within the last year. Please \
+reopen if still valid.
+"""
+
+AUTOCLOSE_LABEL = "No Recent Activity"
+
+
+def fetch_issues(github_auth):
+    issues = []
+    url = ("https://api.github.com/repos/mapserver/mapserver-import/issues?"
+            "per_page=100")
+    
+    while url:
+        print "Fetching %s" % url
+        r = requests.get(url, auth=github_auth)
+        r.raise_for_status()
+        time.sleep(1)
+        issues.extend(r.json())
+        
+        match = re.match(r'<(.*?)>; rel="next"', r.headers['Link'] or '')
+        url = match.group(1) if match else None
+    
+    return issues
+
+
+def close_issue(issue, github_auth):
+    """Attempt to close an issue and return whether it succeeded."""
+    r = requests.post("https://api.github.com/repos/mapserver/mapserver-import/"
+            "issues/%s" % issue['number'],
+            data=json.dumps({'state': 'closed'}), auth=github_auth)
+    
+    try:
+        r.raise_for_status()
+        time.sleep(1)
+        return True
+    except requests.HTTPError:
+        return False
+
+
+def post_issue_comment(issue, comment_text, github_auth):
+    """Attempt to post an issue comment and return whether it succeeded."""
+    r = requests.post("https://api.github.com/repos/mapserver/mapserver-import/"
+            "issues/%s/comments" % issue['number'],
+            data=json.dumps({'body': comment_text}), auth=github_auth)
+    
+    try:
+        r.raise_for_status()
+        time.sleep(1)
+        return True
+    except requests.HTTPError:
+        return False
+
+
+def add_issue_label(issue, label, github_auth):
+    """Attempt to add a label to the issue and return whether it succeeded."""
+    r = requests.post("https://api.github.com/repos/mapserver/mapserver-import/"
+            "issues/%s/labels" % issue['number'],
+            data=json.dumps([label]), auth=github_auth)
+    
+    try:
+        r.raise_for_status()
+        time.sleep(1)
+        return True
+    except requests.HTTPError:
+        return False
+
+
+def close_old_issues(close_before, github_auth):
+    all_issues = fetch_issues(github_auth)
+    
+    for issue in all_issues:
+        issue_last_activity = datetime.datetime.strptime(
+            issue['updated_at'], "%Y-%m-%dT%H:%M:%SZ")
+        
+        print "Processing issue %s with last activity at %s" % (issue['number'], issue_last_activity)
+        
+        if issue_last_activity < close_before:
+            if post_issue_comment(issue, AUTOCLOSE_MESSAGE, github_auth):
+                print "    Added comment to old issue %s" % issue['number']
+            else:
+                print "    Error adding comment to old issue %s" % issue['number']
+                continue
+            
+            if add_issue_label(issue, AUTOCLOSE_LABEL, github_auth):
+                print "    Added label to old issue %s" % issue['number']
+            else:
+                print "    Error adding label to old issue %s" % issue['number']
+            
+            if close_issue(issue, github_auth):
+                print "    Closed old issue %s" % issue['number']
+            else:
+                print "    Error closing old issue %s" % issue['number']
+
+
+if __name__ == '__main__':
+    close_before = datetime.datetime.today() - datetime.timedelta(days=366)
+    
+    print
+    print "This script will close all issues with no activity for a year."
+    print
+    
+    default_user = "mapserver-bot"
+    github_user = (raw_input("GitHub username [%s]: " % default_user)
+            or default_user)
+    github_pass = getpass.getpass()
+    print
+    github_auth = (github_user, github_pass)
+    
+    close_old_issues(close_before, github_auth)
diff --git a/hittest.c b/hittest.c
new file mode 100644
index 0000000..6fdeaae
--- /dev/null
+++ b/hittest.c
@@ -0,0 +1,273 @@
+/*****************************************************************************
+ *
+ * Project:  MapServer
+ * Purpose:  Content Dependant Legend rendering support
+ * Author:   Thomas Bonfort (tbonfort at terriscope.fr)
+ *
+ ******************************************************************************
+ * Copyright (c) 1996-2013 Regents of the University of Minnesota.
+ *
+ * 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 of this Software or works derived from this 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 OR COPYRIGHT HOLDERS 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.
+ ****************************************************************************/
+
+#include "mapserver.h"
+
+
+void initStyleHitTests(styleObj *s, style_hittest *sh, int default_status) {
+  sh->status = default_status;
+}
+
+void initLabelHitTests(labelObj *l, label_hittest *lh, int default_status) {
+  int i;
+  lh->stylehits = msSmallCalloc(l->numstyles,sizeof(style_hittest));
+  lh->status = default_status;
+  for(i=0; i<l->numstyles; i++) {
+    initStyleHitTests(l->styles[i],&lh->stylehits[i],default_status);
+  }
+}
+
+void initClassHitTests(classObj *c, class_hittest *ch, int default_status) {
+  int i;
+  ch->stylehits = msSmallCalloc(c->numstyles,sizeof(style_hittest));
+  ch->labelhits = msSmallCalloc(c->numlabels,sizeof(label_hittest));
+  ch->status = default_status;
+  for(i=0; i<c->numstyles; i++) {
+    initStyleHitTests(c->styles[i],&ch->stylehits[i],default_status);
+  }
+  for(i=0; i<c->numlabels; i++) {
+    initLabelHitTests(c->labels[i],&ch->labelhits[i],default_status);
+  }
+}
+
+void initLayerHitTests(layerObj *l, layer_hittest *lh) {
+  int i,default_status;
+  lh->classhits = msSmallCalloc(l->numclasses,sizeof(class_hittest));
+  lh->status = default_status;
+
+  switch(l->type) {
+    case MS_LAYER_POLYGON:
+    case MS_LAYER_POINT:
+    case MS_LAYER_LINE:
+    case MS_LAYER_ANNOTATION:
+      default_status = 0; /* needs testing */
+      break;
+    default:
+      default_status = 1; /* no hittesting needed, use traditional mode */
+      break;
+  }
+  for(i=0; i<l->numclasses; i++) {
+    initClassHitTests(l->class[i],&lh->classhits[i], default_status);
+  }
+}
+void initMapHitTests(mapObj *map, map_hittest *mh) {
+  int i;
+  mh->layerhits = msSmallCalloc(map->numlayers,sizeof(layer_hittest));
+  for(i=0; i<map->numlayers; i++) {
+    initLayerHitTests(GET_LAYER(map,i),&mh->layerhits[i]);
+  }
+}
+
+void freeLabelHitTests(labelObj *l, label_hittest *lh) {
+  free(lh->stylehits);
+}
+
+void freeClassHitTests(classObj *c, class_hittest *ch) {
+  int i;
+  for(i=0; i<c->numlabels; i++) {
+    freeLabelHitTests(c->labels[i],&ch->labelhits[i]);
+  }
+  free(ch->stylehits);
+  free(ch->labelhits);
+}
+void freeLayerHitTests(layerObj *l, layer_hittest *lh) {
+  int i;
+  for(i=0; i<l->numclasses; i++) {
+    freeClassHitTests(l->class[i],&lh->classhits[i]);
+  }
+  free(lh->classhits);
+}
+void freeMapHitTests(mapObj *map, map_hittest *mh) {
+  int i;
+  for(i=0; i<map->numlayers; i++) {
+    freeLayerHitTests(GET_LAYER(map,i),&mh->layerhits[i]);
+  }
+  free(mh->layerhits);
+}
+
+int msHitTestShape(mapObj *map, layerObj *layer, shapeObj *shape, int drawmode, class_hittest *hittest) {
+  int i;
+  classObj *cp = layer->class[shape->classindex];
+  if(MS_DRAW_FEATURES(drawmode)) {
+    for(i=0;i<cp->numstyles;i++) {
+      styleObj *sp = cp->styles[i];
+      if(msScaleInBounds(map->scaledenom,sp->minscaledenom,sp->maxscaledenom)) {
+        hittest->stylehits[i].status = 1;
+      }
+    }
+  }
+  if(MS_DRAW_LABELS(drawmode)) {
+    for(i=0;i<cp->numlabels;i++) {
+      labelObj *l = cp->labels[i];
+      if(l->status == MS_ON) {
+        int s;
+        hittest->labelhits[i].status = 1;
+        for(s=0; s<l->numstyles;s++) {
+          hittest->labelhits[i].stylehits[s].status = 1;
+        }
+      }
+    }
+  }
+  return MS_SUCCESS;
+}
+
+int msHitTestLayer(mapObj *map, layerObj *layer, layer_hittest *hittest) {
+  int status;
+  if(!msLayerIsVisible(map,layer)) {
+    hittest->status = 0;
+    return MS_SUCCESS;
+  }
+  if(layer->type == MS_LAYER_LINE || layer->type == MS_LAYER_POLYGON || layer->type == MS_LAYER_POINT || layer->type == MS_LAYER_ANNOTATION) {
+    int maxfeatures=msLayerGetMaxFeaturesToDraw(layer, NULL);
+    int annotate = msEvalContext(map, layer, layer->labelrequires);
+    shapeObj shape;
+    int nclasses,featuresdrawn = 0;
+    int *classgroup;
+    rectObj searchrect;
+    int minfeaturesize=-1;
+    if(map->scaledenom > 0) {
+      if((layer->labelmaxscaledenom != -1) && (map->scaledenom >= layer->labelmaxscaledenom)) annotate = MS_FALSE;
+      if((layer->labelminscaledenom != -1) && (map->scaledenom < layer->labelminscaledenom)) annotate = MS_FALSE;
+    }
+
+    status = msLayerOpen(layer);
+    if(status != MS_SUCCESS) return MS_FAILURE;
+
+    /* build item list */
+    status = msLayerWhichItems(layer, MS_FALSE, NULL);
+
+    if(status != MS_SUCCESS) {
+      msLayerClose(layer);
+      return MS_FAILURE;
+    }
+
+    /* identify target shapes */
+    if(layer->transform == MS_TRUE) {
+      searchrect = map->extent;
+#ifdef USE_PROJ
+      if((map->projection.numargs > 0) && (layer->projection.numargs > 0))
+        msProjectRect(&map->projection, &layer->projection, &searchrect); /* project the searchrect to source coords */
+#endif
+    }
+    else {
+      searchrect.minx = searchrect.miny = 0;
+      searchrect.maxx = map->width-1;
+      searchrect.maxy = map->height-1;
+    }
+
+    status = msLayerWhichShapes(layer, searchrect, MS_FALSE);
+    if(status == MS_DONE) { /* no overlap */
+      msLayerClose(layer);
+      hittest->status = 0;
+      return MS_SUCCESS;
+    } else if(status != MS_SUCCESS) {
+      msLayerClose(layer);
+      return MS_FAILURE;
+    }
+
+    /* step through the target shapes */
+    msInitShape(&shape);
+
+    nclasses = 0;
+    classgroup = NULL;
+    if(layer->classgroup && layer->numclasses > 0)
+      classgroup = msAllocateValidClassGroups(layer, &nclasses);
+
+    if(layer->minfeaturesize > 0)
+      minfeaturesize = Pix2LayerGeoref(map, layer, layer->minfeaturesize);
+
+    while((status = msLayerNextShape(layer, &shape)) == MS_SUCCESS) {
+      int drawmode = MS_DRAWMODE_FEATURES;
+      if(shape.type == MS_SHAPE_POLYGON) {
+        msClipPolygonRect(&shape, map->extent);
+      } else {
+        msClipPolylineRect(&shape, map->extent);
+      }
+      if(shape.numlines == 0) {
+        msFreeShape(&shape);
+        continue;
+      }
+      /* Check if the shape size is ok to be drawn, we need to clip */
+      if((shape.type == MS_SHAPE_LINE || shape.type == MS_SHAPE_POLYGON) && (minfeaturesize > 0)) {
+        msTransformShape(&shape, map->extent, map->cellsize, NULL);
+        msComputeBounds(&shape);
+        if (msShapeCheckSize(&shape, minfeaturesize) == MS_FALSE) {
+          msFreeShape(&shape);
+          continue;
+        }
+      }
+
+      shape.classindex = msShapeGetClass(layer, map, &shape, classgroup, nclasses);
+      if((shape.classindex == -1) || (layer->class[shape.classindex]->status == MS_OFF)) {
+        msFreeShape(&shape);
+        continue;
+      }
+      hittest->classhits[shape.classindex].status = 1;
+      hittest->status = 1;
+
+      if(maxfeatures >=0 && featuresdrawn >= maxfeatures) {
+        status = MS_DONE;
+        break;
+      }
+      featuresdrawn++;
+
+      if(annotate && layer->class[shape.classindex]->numlabels > 0) {
+        msShapeGetAnnotation(layer, &shape);
+        drawmode |= MS_DRAWMODE_LABELS;
+      }
+
+      status = msHitTestShape(map, layer, &shape, drawmode, &hittest->classhits[shape.classindex]); /* all styles  */
+      msFreeShape(&shape);
+    }
+
+    if (classgroup)
+      msFree(classgroup);
+
+    if(status != MS_DONE) {
+      msLayerClose(layer);
+      return MS_FAILURE;
+    }
+    msLayerClose(layer);
+    return MS_SUCCESS;
+
+  } else {
+    /* we don't hittest these layers, skip as they already have been initialised */
+    return MS_SUCCESS;
+  }
+}
+int msHitTestMap(mapObj *map, map_hittest *hittest) {
+  int i,status;
+  for(i=0; i<map->numlayers; i++) {
+    layerObj *lp = map->layers[i];
+    status = msHitTestLayer(map,lp,&hittest->layerhits[i]);
+    if(status != MS_SUCCESS) {
+      return MS_FAILURE;
+    }
+  }
+  return MS_SUCCESS;
+}
diff --git a/maptile.h b/hittest.h
similarity index 51%
copy from maptile.h
copy to hittest.h
index 8467080..c4ab89c 100644
--- a/maptile.h
+++ b/hittest.h
@@ -1,12 +1,11 @@
-/******************************************************************************
- * $Id$
+/*****************************************************************************
  *
  * Project:  MapServer
- * Purpose:  MapServer Tile Access API
- * Author:   Paul Ramsey <pramsey at cleverelephant.ca>
+ * Purpose:  Content Dependant Legend rendering support
+ * Author:   Thomas Bonfort (tbonfort at terriscope.fr)
  *
  ******************************************************************************
- * Copyright (c) 2008, Paul Ramsey
+ * Copyright (c) 1996-2013 Regents of the University of Minnesota.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a
  * copy of this software and associated documentation files (the "Software"),
@@ -27,28 +26,44 @@
  * DEALINGS IN THE SOFTWARE.
  ****************************************************************************/
 
-#include "mapserver.h"
-#include "maptemplate.h"
 
-#ifdef USE_PROJ
-#define USE_TILE_API 1
-#endif
+#ifndef HITTEST_H
+#define HITTEST_H
 
-#define SPHEREMERC_PROJ4 "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +units=m +k=1.0 +nadgrids=@null"
-#define SPHEREMERC_GROUND_SIZE (20037508.34*2)
-#define SPHEREMERC_IMAGE_SIZE 0x0100
+typedef struct {
+  int status;
+} style_hittest;
 
-enum tileModes { TILE_GMAP, TILE_VE };
+typedef struct {
+  style_hittest *stylehits;
+  int status;
+} label_hittest;
 
-MS_DLL_EXPORT int msTileSetup(mapservObj *msObj);
-MS_DLL_EXPORT int msTileSetExtent(mapservObj *msObj);
-MS_DLL_EXPORT int msTileSetProjections(mapObj *map);
-MS_DLL_EXPORT imageObj* msTileDraw(mapservObj *msObj);
+typedef struct {
+  style_hittest *stylehits;
+  label_hittest *labelhits;
+  int status;
+} class_hittest;
 
 typedef struct {
-  int metatile_level; /* In zoom levels above tile request: best bet is 0, 1 or 2 */
-  int tile_size; /* In pixels */
-  int map_edge_buffer; /* In pixels */
-} tileParams;
+  class_hittest *classhits;
+  int status;
+} layer_hittest;
+
+typedef struct map_hittest{
+  layer_hittest *layerhits;
+} map_hittest;
 
+int msHitTestMap(mapObj *map, map_hittest *hittest);
+int msHitTestLayer(mapObj *map, layerObj *layer, layer_hittest *hittest);
+void initStyleHitTests(styleObj *s, style_hittest *sh, int default_status);
+void initLabelHitTests(labelObj *l, label_hittest *lh, int default_status);
+void initClassHitTests(classObj *c, class_hittest *ch, int default_status);
+void initLayerHitTests(layerObj *l, layer_hittest *lh);
+void initMapHitTests(mapObj *map, map_hittest *mh);
+void freeLabelHitTests(labelObj *l, label_hittest *lh);
+void freeClassHitTests(classObj *c, class_hittest *ch);
+void freeLayerHitTests(layerObj *l, layer_hittest *lh);
+void freeMapHitTests(mapObj *map, map_hittest *mh);
 
+#endif
diff --git a/install-sh b/install-sh
deleted file mode 100755
index a9244eb..0000000
--- a/install-sh
+++ /dev/null
@@ -1,527 +0,0 @@
-#!/bin/sh
-# install - install a program, script, or datafile
-
-scriptversion=2011-01-19.21; # UTC
-
-# This originates from X11R5 (mit/util/scripts/install.sh), which was
-# later released in X11R6 (xc/config/util/install.sh) with the
-# following copyright and license.
-#
-# Copyright (C) 1994 X Consortium
-#
-# Permission is hereby granted, free of charge, to any person obtaining a copy
-# of this software and associated documentation files (the "Software"), to
-# deal in the Software without restriction, including without limitation the
-# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-# sell copies of the Software, and to permit persons to whom the Software is
-# furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice shall be included in
-# all copies or substantial portions of the Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
-# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
-# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
-# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-#
-# Except as contained in this notice, the name of the X Consortium shall not
-# be used in advertising or otherwise to promote the sale, use or other deal-
-# ings in this Software without prior written authorization from the X Consor-
-# tium.
-#
-#
-# FSF changes to this file are in the public domain.
-#
-# Calling this script install-sh is preferred over install.sh, to prevent
-# `make' implicit rules from creating a file called install from it
-# when there is no Makefile.
-#
-# This script is compatible with the BSD install script, but was written
-# from scratch.
-
-nl='
-'
-IFS=" ""	$nl"
-
-# set DOITPROG to echo to test this script
-
-# Don't use :- since 4.3BSD and earlier shells don't like it.
-doit=${DOITPROG-}
-if test -z "$doit"; then
-  doit_exec=exec
-else
-  doit_exec=$doit
-fi
-
-# Put in absolute file names if you don't have them in your path;
-# or use environment vars.
-
-chgrpprog=${CHGRPPROG-chgrp}
-chmodprog=${CHMODPROG-chmod}
-chownprog=${CHOWNPROG-chown}
-cmpprog=${CMPPROG-cmp}
-cpprog=${CPPROG-cp}
-mkdirprog=${MKDIRPROG-mkdir}
-mvprog=${MVPROG-mv}
-rmprog=${RMPROG-rm}
-stripprog=${STRIPPROG-strip}
-
-posix_glob='?'
-initialize_posix_glob='
-  test "$posix_glob" != "?" || {
-    if (set -f) 2>/dev/null; then
-      posix_glob=
-    else
-      posix_glob=:
-    fi
-  }
-'
-
-posix_mkdir=
-
-# Desired mode of installed file.
-mode=0755
-
-chgrpcmd=
-chmodcmd=$chmodprog
-chowncmd=
-mvcmd=$mvprog
-rmcmd="$rmprog -f"
-stripcmd=
-
-src=
-dst=
-dir_arg=
-dst_arg=
-
-copy_on_change=false
-no_target_directory=
-
-usage="\
-Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
-   or: $0 [OPTION]... SRCFILES... DIRECTORY
-   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
-   or: $0 [OPTION]... -d DIRECTORIES...
-
-In the 1st form, copy SRCFILE to DSTFILE.
-In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
-In the 4th, create DIRECTORIES.
-
-Options:
-     --help     display this help and exit.
-     --version  display version info and exit.
-
-  -c            (ignored)
-  -C            install only if different (preserve the last data modification time)
-  -d            create directories instead of installing files.
-  -g GROUP      $chgrpprog installed files to GROUP.
-  -m MODE       $chmodprog installed files to MODE.
-  -o USER       $chownprog installed files to USER.
-  -s            $stripprog installed files.
-  -t DIRECTORY  install into DIRECTORY.
-  -T            report an error if DSTFILE is a directory.
-
-Environment variables override the default commands:
-  CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG
-  RMPROG STRIPPROG
-"
-
-while test $# -ne 0; do
-  case $1 in
-    -c) ;;
-
-    -C) copy_on_change=true;;
-
-    -d) dir_arg=true;;
-
-    -g) chgrpcmd="$chgrpprog $2"
-	shift;;
-
-    --help) echo "$usage"; exit $?;;
-
-    -m) mode=$2
-	case $mode in
-	  *' '* | *'	'* | *'
-'*	  | *'*'* | *'?'* | *'['*)
-	    echo "$0: invalid mode: $mode" >&2
-	    exit 1;;
-	esac
-	shift;;
-
-    -o) chowncmd="$chownprog $2"
-	shift;;
-
-    -s) stripcmd=$stripprog;;
-
-    -t) dst_arg=$2
-	# Protect names problematic for `test' and other utilities.
-	case $dst_arg in
-	  -* | [=\(\)!]) dst_arg=./$dst_arg;;
-	esac
-	shift;;
-
-    -T) no_target_directory=true;;
-
-    --version) echo "$0 $scriptversion"; exit $?;;
-
-    --)	shift
-	break;;
-
-    -*)	echo "$0: invalid option: $1" >&2
-	exit 1;;
-
-    *)  break;;
-  esac
-  shift
-done
-
-if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then
-  # When -d is used, all remaining arguments are directories to create.
-  # When -t is used, the destination is already specified.
-  # Otherwise, the last argument is the destination.  Remove it from $@.
-  for arg
-  do
-    if test -n "$dst_arg"; then
-      # $@ is not empty: it contains at least $arg.
-      set fnord "$@" "$dst_arg"
-      shift # fnord
-    fi
-    shift # arg
-    dst_arg=$arg
-    # Protect names problematic for `test' and other utilities.
-    case $dst_arg in
-      -* | [=\(\)!]) dst_arg=./$dst_arg;;
-    esac
-  done
-fi
-
-if test $# -eq 0; then
-  if test -z "$dir_arg"; then
-    echo "$0: no input file specified." >&2
-    exit 1
-  fi
-  # It's OK to call `install-sh -d' without argument.
-  # This can happen when creating conditional directories.
-  exit 0
-fi
-
-if test -z "$dir_arg"; then
-  do_exit='(exit $ret); exit $ret'
-  trap "ret=129; $do_exit" 1
-  trap "ret=130; $do_exit" 2
-  trap "ret=141; $do_exit" 13
-  trap "ret=143; $do_exit" 15
-
-  # Set umask so as not to create temps with too-generous modes.
-  # However, 'strip' requires both read and write access to temps.
-  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 problematic for `test' and other utilities.
-  case $src in
-    -* | [=\(\)!]) src=./$src;;
-  esac
-
-  if test -n "$dir_arg"; then
-    dst=$src
-    dstdir=$dst
-    test -d "$dstdir"
-    dstdir_status=$?
-  else
-
-    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
-    # might cause directories to be created, which would be especially bad
-    # if $src (and thus $dsttmp) contains '*'.
-    if test ! -f "$src" && test ! -d "$src"; then
-      echo "$0: $src does not exist." >&2
-      exit 1
-    fi
-
-    if test -z "$dst_arg"; then
-      echo "$0: no destination specified." >&2
-      exit 1
-    fi
-    dst=$dst_arg
-
-    # If destination is a directory, append the input filename; won't work
-    # if double slashes aren't ignored.
-    if test -d "$dst"; then
-      if test -n "$no_target_directory"; then
-	echo "$0: $dst_arg: Is a directory" >&2
-	exit 1
-      fi
-      dstdir=$dst
-      dst=$dstdir/`basename "$src"`
-      dstdir_status=0
-    else
-      # Prefer dirname, but fall back on a substitute if dirname fails.
-      dstdir=`
-	(dirname "$dst") 2>/dev/null ||
-	expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \
-	     X"$dst" : 'X\(//\)[^/]' \| \
-	     X"$dst" : 'X\(//\)$' \| \
-	     X"$dst" : 'X\(/\)' \| . 2>/dev/null ||
-	echo X"$dst" |
-	    sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)[^/].*/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\/\)$/{
-		   s//\1/
-		   q
-		 }
-		 /^X\(\/\).*/{
-		   s//\1/
-		   q
-		 }
-		 s/.*/./; q'
-      `
-
-      test -d "$dstdir"
-      dstdir_status=$?
-    fi
-  fi
-
-  obsolete_mkdir_used=false
-
-  if test $dstdir_status != 0; then
-    case $posix_mkdir in
-      '')
-	# Create intermediate dirs using mode 755 as modified by the umask.
-	# This is like FreeBSD 'install' as of 1997-10-28.
-	umask=`umask`
-	case $stripcmd.$umask in
-	  # Optimize common cases.
-	  *[2367][2367]) mkdir_umask=$umask;;
-	  .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;;
-
-	  *[0-7])
-	    mkdir_umask=`expr $umask + 22 \
-	      - $umask % 100 % 40 + $umask % 20 \
-	      - $umask % 10 % 4 + $umask % 2
-	    `;;
-	  *) mkdir_umask=$umask,go-w;;
-	esac
-
-	# With -d, create the new directory with the user-specified mode.
-	# Otherwise, rely on $mkdir_umask.
-	if test -n "$dir_arg"; then
-	  mkdir_mode=-m$mode
-	else
-	  mkdir_mode=
-	fi
-
-	posix_mkdir=false
-	case $umask in
-	  *[123567][0-7][0-7])
-	    # POSIX mkdir -p sets u+wx bits regardless of umask, which
-	    # is incompatible with FreeBSD 'install' when (umask & 300) != 0.
-	    ;;
-	  *)
-	    tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$
-	    trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0
-
-	    if (umask $mkdir_umask &&
-		exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1
-	    then
-	      if test -z "$dir_arg" || {
-		   # Check for POSIX incompatibilities with -m.
-		   # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or
-		   # other-writeable bit of parent directory when it shouldn't.
-		   # FreeBSD 6.1 mkdir -m -p sets mode of existing directory.
-		   ls_ld_tmpdir=`ls -ld "$tmpdir"`
-		   case $ls_ld_tmpdir in
-		     d????-?r-*) different_mode=700;;
-		     d????-?--*) different_mode=755;;
-		     *) false;;
-		   esac &&
-		   $mkdirprog -m$different_mode -p -- "$tmpdir" && {
-		     ls_ld_tmpdir_1=`ls -ld "$tmpdir"`
-		     test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1"
-		   }
-		 }
-	      then posix_mkdir=:
-	      fi
-	      rmdir "$tmpdir/d" "$tmpdir"
-	    else
-	      # Remove any dirs left behind by ancient mkdir implementations.
-	      rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null
-	    fi
-	    trap '' 0;;
-	esac;;
-    esac
-
-    if
-      $posix_mkdir && (
-	umask $mkdir_umask &&
-	$doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir"
-      )
-    then :
-    else
-
-      # The umask is ridiculous, or mkdir does not conform to POSIX,
-      # or it failed possibly due to a race condition.  Create the
-      # directory the slow way, step by step, checking for races as we go.
-
-      case $dstdir in
-	/*) prefix='/';;
-	[-=\(\)!]*) prefix='./';;
-	*)  prefix='';;
-      esac
-
-      eval "$initialize_posix_glob"
-
-      oIFS=$IFS
-      IFS=/
-      $posix_glob set -f
-      set fnord $dstdir
-      shift
-      $posix_glob set +f
-      IFS=$oIFS
-
-      prefixes=
-
-      for d
-      do
-	test X"$d" = X && continue
-
-	prefix=$prefix$d
-	if test -d "$prefix"; then
-	  prefixes=
-	else
-	  if $posix_mkdir; then
-	    (umask=$mkdir_umask &&
-	     $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break
-	    # Don't fail if two instances are running concurrently.
-	    test -d "$prefix" || exit 1
-	  else
-	    case $prefix in
-	      *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;;
-	      *) qprefix=$prefix;;
-	    esac
-	    prefixes="$prefixes '$qprefix'"
-	  fi
-	fi
-	prefix=$prefix/
-      done
-
-      if test -n "$prefixes"; then
-	# Don't fail if two instances are running concurrently.
-	(umask $mkdir_umask &&
-	 eval "\$doit_exec \$mkdirprog $prefixes") ||
-	  test -d "$dstdir" || exit 1
-	obsolete_mkdir_used=true
-      fi
-    fi
-  fi
-
-  if test -n "$dir_arg"; then
-    { test -z "$chowncmd" || $doit $chowncmd "$dst"; } &&
-    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } &&
-    { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false ||
-      test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1
-  else
-
-    # Make a couple of temp file names in the proper directory.
-    dsttmp=$dstdir/_inst.$$_
-    rmtmp=$dstdir/_rm.$$_
-
-    # Trap to clean up those temp files at exit.
-    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
-
-    # Copy the file name to the temp name.
-    (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") &&
-
-    # and set any options; do chmod last to preserve setuid bits.
-    #
-    # If any of these fail, we abort the whole thing.  If we want to
-    # ignore errors from any of these, just make sure not to ignore
-    # errors from the above "$doit $cpprog $src $dsttmp" command.
-    #
-    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } &&
-    { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } &&
-    { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } &&
-    { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } &&
-
-    # If -C, don't bother to copy if it wouldn't change the file.
-    if $copy_on_change &&
-       old=`LC_ALL=C ls -dlL "$dst"	2>/dev/null` &&
-       new=`LC_ALL=C ls -dlL "$dsttmp"	2>/dev/null` &&
-
-       eval "$initialize_posix_glob" &&
-       $posix_glob set -f &&
-       set X $old && old=:$2:$4:$5:$6 &&
-       set X $new && new=:$2:$4:$5:$6 &&
-       $posix_glob set +f &&
-
-       test "$old" = "$new" &&
-       $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1
-    then
-      rm -f "$dsttmp"
-    else
-      # Rename the file to the real destination.
-      $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null ||
-
-      # The rename failed, perhaps because mv can't rename something else
-      # to itself, or perhaps because mv is so ancient that it does not
-      # support -f.
-      {
-	# Now remove or move aside any old file at destination location.
-	# We try this two ways since rm can't unlink itself on some
-	# systems and the destination file might be busy for other
-	# reasons.  In this case, the final cleanup might fail but the new
-	# file should still install successfully.
-	{
-	  test ! -f "$dst" ||
-	  $doit $rmcmd -f "$dst" 2>/dev/null ||
-	  { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null &&
-	    { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; }
-	  } ||
-	  { echo "$0: cannot unlink or rename $dst" >&2
-	    (exit 1); exit 1
-	  }
-	} &&
-
-	# Now rename the file to the real destination.
-	$doit $mvcmd "$dsttmp" "$dst"
-      }
-    fi || exit 1
-
-    trap '' 0
-  fi
-done
-
-# Local variables:
-# eval: (add-hook 'write-file-hooks 'time-stamp)
-# time-stamp-start: "scriptversion="
-# time-stamp-format: "%:y-%02m-%02d.%02H"
-# time-stamp-time-zone: "UTC"
-# time-stamp-end: "; # UTC"
-# End:
diff --git a/legend.c b/legend.c
index 0549aed..49a20dc 100644
--- a/legend.c
+++ b/legend.c
@@ -52,7 +52,7 @@ int main(int argc, char *argv[])
     exit(0);
   }
 
-  img = msDrawLegend(map, MS_FALSE);
+  img = msDrawLegend(map, MS_FALSE, NULL);
   if(!img) {
     msWriteError(stderr);
     exit(0);
diff --git a/ltmain.sh b/ltmain.sh
deleted file mode 100644
index 63ae69d..0000000
--- a/ltmain.sh
+++ /dev/null
@@ -1,9655 +0,0 @@
-
-# libtool (GNU libtool) 2.4.2
-# Written by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006,
-# 2007, 2008, 2009, 2010, 2011 Free Software Foundation, Inc.
-# This is free software; see the source for copying conditions.  There is NO
-# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
-
-# GNU Libtool is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-# General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html,
-# or obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Usage: $progname [OPTION]... [MODE-ARG]...
-#
-# Provide generalized library-building support services.
-#
-#       --config             show all configuration variables
-#       --debug              enable verbose shell tracing
-#   -n, --dry-run            display commands without modifying any files
-#       --features           display basic configuration information and exit
-#       --mode=MODE          use operation mode MODE
-#       --preserve-dup-deps  don't remove duplicate dependency libraries
-#       --quiet, --silent    don't print informational messages
-#       --no-quiet, --no-silent
-#                            print informational messages (default)
-#       --no-warn            don't display warning messages
-#       --tag=TAG            use configuration variables from tag TAG
-#   -v, --verbose            print more informational messages than default
-#       --no-verbose         don't print the extra informational messages
-#       --version            print version information
-#   -h, --help, --help-all   print short, long, or detailed help message
-#
-# MODE must be one of the following:
-#
-#         clean              remove files from the build directory
-#         compile            compile a source file into a libtool object
-#         execute            automatically set library path, then run a program
-#         finish             complete the installation of libtool libraries
-#         install            install libraries or executables
-#         link               create a library or an executable
-#         uninstall          remove libraries from an installed directory
-#
-# MODE-ARGS vary depending on the MODE.  When passed as first option,
-# `--mode=MODE' may be abbreviated as `MODE' or a unique abbreviation of that.
-# Try `$progname --help --mode=MODE' for a more detailed description of MODE.
-#
-# When reporting a bug, please describe a test case to reproduce it and
-# include the following information:
-#
-#         host-triplet:	$host
-#         shell:		$SHELL
-#         compiler:		$LTCC
-#         compiler flags:		$LTCFLAGS
-#         linker:		$LD (gnu? $with_gnu_ld)
-#         $progname:	(GNU libtool) 2.4.2
-#         automake:	$automake_version
-#         autoconf:	$autoconf_version
-#
-# Report bugs to <bug-libtool at gnu.org>.
-# GNU libtool home page: <http://www.gnu.org/software/libtool/>.
-# General help using GNU software: <http://www.gnu.org/gethelp/>.
-
-PROGRAM=libtool
-PACKAGE=libtool
-VERSION=2.4.2
-TIMESTAMP=""
-package_revision=1.3337
-
-# Be Bourne compatible
-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '${1+"$@"}'='"$@"'
-  setopt NO_GLOB_SUBST
-else
-  case `(set -o) 2>/dev/null` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-$1
-_LTECHO_EOF'
-}
-
-# NLS nuisances: We save the old values to restore during execute mode.
-lt_user_locale=
-lt_safe_locale=
-for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-do
-  eval "if test \"\${$lt_var+set}\" = set; then
-          save_$lt_var=\$$lt_var
-          $lt_var=C
-	  export $lt_var
-	  lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
-	  lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
-	fi"
-done
-LC_ALL=C
-LANGUAGE=C
-export LANGUAGE LC_ALL
-
-$lt_unset CDPATH
-
-
-# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh
-# is ksh but when the shell is invoked as "sh" and the current value of
-# the _XPG environment variable is not equal to 1 (one), the special
-# positional parameter $0, within a function call, is the name of the
-# function.
-progpath="$0"
-
-
-
-: ${CP="cp -f"}
-test "${ECHO+set}" = set || ECHO=${as_echo-'printf %s\n'}
-: ${MAKE="make"}
-: ${MKDIR="mkdir"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
-: ${Xsed="$SED -e 1s/^X//"}
-
-# Global variables:
-EXIT_SUCCESS=0
-EXIT_FAILURE=1
-EXIT_MISMATCH=63  # $? = 63 is used to indicate version mismatch to missing.
-EXIT_SKIP=77	  # $? = 77 is used to indicate a skipped test to automake.
-
-exit_status=$EXIT_SUCCESS
-
-# Make sure IFS has a sensible default
-lt_nl='
-'
-IFS=" 	$lt_nl"
-
-dirname="s,/[^/]*$,,"
-basename="s,^.*/,,"
-
-# func_dirname file append nondir_replacement
-# Compute the dirname of FILE.  If nonempty, add APPEND to the result,
-# otherwise set result to NONDIR_REPLACEMENT.
-func_dirname ()
-{
-    func_dirname_result=`$ECHO "${1}" | $SED "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
-    fi
-} # func_dirname may be replaced by extended shell implementation
-
-
-# func_basename file
-func_basename ()
-{
-    func_basename_result=`$ECHO "${1}" | $SED "$basename"`
-} # func_basename may be replaced by extended shell implementation
-
-
-# func_dirname_and_basename file append nondir_replacement
-# perform func_basename and func_dirname in a single function
-# call:
-#   dirname:  Compute the dirname of FILE.  If nonempty,
-#             add APPEND to the result, otherwise set result
-#             to NONDIR_REPLACEMENT.
-#             value returned in "$func_dirname_result"
-#   basename: Compute filename of FILE.
-#             value retuned in "$func_basename_result"
-# Implementation must be kept synchronized with func_dirname
-# and func_basename. For efficiency, we do not delegate to
-# those functions but instead duplicate the functionality here.
-func_dirname_and_basename ()
-{
-    # Extract subdirectory from the argument.
-    func_dirname_result=`$ECHO "${1}" | $SED -e "$dirname"`
-    if test "X$func_dirname_result" = "X${1}"; then
-      func_dirname_result="${3}"
-    else
-      func_dirname_result="$func_dirname_result${2}"
-    fi
-    func_basename_result=`$ECHO "${1}" | $SED -e "$basename"`
-} # func_dirname_and_basename may be replaced by extended shell implementation
-
-
-# func_stripname prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-# func_strip_suffix prefix name
-func_stripname ()
-{
-    case ${2} in
-      .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-      *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-    esac
-} # func_stripname may be replaced by extended shell implementation
-
-
-# These SED scripts presuppose an absolute path with a trailing slash.
-pathcar='s,^/\([^/]*\).*$,\1,'
-pathcdr='s,^/[^/]*,,'
-removedotparts=':dotsl
-		s@/\./@/@g
-		t dotsl
-		s,/\.$,/,'
-collapseslashes='s@/\{1,\}@/@g'
-finalslash='s,/*$,/,'
-
-# func_normal_abspath PATH
-# Remove doubled-up and trailing slashes, "." path components,
-# and cancel out any ".." path components in PATH after making
-# it an absolute path.
-#             value returned in "$func_normal_abspath_result"
-func_normal_abspath ()
-{
-  # Start from root dir and reassemble the path.
-  func_normal_abspath_result=
-  func_normal_abspath_tpath=$1
-  func_normal_abspath_altnamespace=
-  case $func_normal_abspath_tpath in
-    "")
-      # Empty path, that just means $cwd.
-      func_stripname '' '/' "`pwd`"
-      func_normal_abspath_result=$func_stripname_result
-      return
-    ;;
-    # The next three entries are used to spot a run of precisely
-    # two leading slashes without using negated character classes;
-    # we take advantage of case's first-match behaviour.
-    ///*)
-      # Unusual form of absolute path, do nothing.
-    ;;
-    //*)
-      # Not necessarily an ordinary path; POSIX reserves leading '//'
-      # and for example Cygwin uses it to access remote file shares
-      # over CIFS/SMB, so we conserve a leading double slash if found.
-      func_normal_abspath_altnamespace=/
-    ;;
-    /*)
-      # Absolute path, do nothing.
-    ;;
-    *)
-      # Relative path, prepend $cwd.
-      func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath
-    ;;
-  esac
-  # Cancel out all the simple stuff to save iterations.  We also want
-  # the path to end with a slash for ease of parsing, so make sure
-  # there is one (and only one) here.
-  func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$removedotparts" -e "$collapseslashes" -e "$finalslash"`
-  while :; do
-    # Processed it all yet?
-    if test "$func_normal_abspath_tpath" = / ; then
-      # If we ascended to the root using ".." the result may be empty now.
-      if test -z "$func_normal_abspath_result" ; then
-        func_normal_abspath_result=/
-      fi
-      break
-    fi
-    func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcar"`
-    func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \
-        -e "$pathcdr"`
-    # Figure out what to do with it
-    case $func_normal_abspath_tcomponent in
-      "")
-        # Trailing empty path component, ignore it.
-      ;;
-      ..)
-        # Parent dir; strip last assembled component from result.
-        func_dirname "$func_normal_abspath_result"
-        func_normal_abspath_result=$func_dirname_result
-      ;;
-      *)
-        # Actual path component, append it.
-        func_normal_abspath_result=$func_normal_abspath_result/$func_normal_abspath_tcomponent
-      ;;
-    esac
-  done
-  # Restore leading double-slash if one was found on entry.
-  func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result
-}
-
-# func_relative_path SRCDIR DSTDIR
-# generates a relative path from SRCDIR to DSTDIR, with a trailing
-# slash if non-empty, suitable for immediately appending a filename
-# without needing to append a separator.
-#             value returned in "$func_relative_path_result"
-func_relative_path ()
-{
-  func_relative_path_result=
-  func_normal_abspath "$1"
-  func_relative_path_tlibdir=$func_normal_abspath_result
-  func_normal_abspath "$2"
-  func_relative_path_tbindir=$func_normal_abspath_result
-
-  # Ascend the tree starting from libdir
-  while :; do
-    # check if we have found a prefix of bindir
-    case $func_relative_path_tbindir in
-      $func_relative_path_tlibdir)
-        # found an exact match
-        func_relative_path_tcancelled=
-        break
-        ;;
-      $func_relative_path_tlibdir*)
-        # found a matching prefix
-        func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir"
-        func_relative_path_tcancelled=$func_stripname_result
-        if test -z "$func_relative_path_result"; then
-          func_relative_path_result=.
-        fi
-        break
-        ;;
-      *)
-        func_dirname $func_relative_path_tlibdir
-        func_relative_path_tlibdir=${func_dirname_result}
-        if test "x$func_relative_path_tlibdir" = x ; then
-          # Have to descend all the way to the root!
-          func_relative_path_result=../$func_relative_path_result
-          func_relative_path_tcancelled=$func_relative_path_tbindir
-          break
-        fi
-        func_relative_path_result=../$func_relative_path_result
-        ;;
-    esac
-  done
-
-  # Now calculate path; take care to avoid doubling-up slashes.
-  func_stripname '' '/' "$func_relative_path_result"
-  func_relative_path_result=$func_stripname_result
-  func_stripname '/' '/' "$func_relative_path_tcancelled"
-  if test "x$func_stripname_result" != x ; then
-    func_relative_path_result=${func_relative_path_result}/${func_stripname_result}
-  fi
-
-  # Normalisation. If bindir is libdir, return empty string,
-  # else relative path ending with a slash; either way, target
-  # file name can be directly appended.
-  if test ! -z "$func_relative_path_result"; then
-    func_stripname './' '' "$func_relative_path_result/"
-    func_relative_path_result=$func_stripname_result
-  fi
-}
-
-# The name of this program:
-func_dirname_and_basename "$progpath"
-progname=$func_basename_result
-
-# Make sure we have an absolute path for reexecution:
-case $progpath in
-  [\\/]*|[A-Za-z]:\\*) ;;
-  *[\\/]*)
-     progdir=$func_dirname_result
-     progdir=`cd "$progdir" && pwd`
-     progpath="$progdir/$progname"
-     ;;
-  *)
-     save_IFS="$IFS"
-     IFS=${PATH_SEPARATOR-:}
-     for progdir in $PATH; do
-       IFS="$save_IFS"
-       test -x "$progdir/$progname" && break
-     done
-     IFS="$save_IFS"
-     test -n "$progdir" || progdir=`pwd`
-     progpath="$progdir/$progname"
-     ;;
-esac
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-Xsed="${SED}"' -e 1s/^X//'
-sed_quote_subst='s/\([`"$\\]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\(["`\\]\)/\\\1/g'
-
-# Sed substitution that turns a string into a regex matching for the
-# string literally.
-sed_make_literal_regex='s,[].[^$\\*\/],\\&,g'
-
-# Sed substitution that converts a w32 file name or path
-# which contains forward slashes, into one that contains
-# (escaped) backslashes.  A very naive implementation.
-lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
-
-# Re-`\' parameter expansions in output of double_quote_subst that were
-# `\'-ed in input to the same.  If an odd number of `\' preceded a '$'
-# in input to double_quote_subst, that '$' was protected from expansion.
-# Since each input `\' is now two `\'s, look for any number of runs of
-# four `\'s followed by two `\'s and then a '$'.  `\' that '$'.
-bs='\\'
-bs2='\\\\'
-bs4='\\\\\\\\'
-dollar='\$'
-sed_double_backslash="\
-  s/$bs4/&\\
-/g
-  s/^$bs2$dollar/$bs&/
-  s/\\([^$bs]\\)$bs2$dollar/\\1$bs2$bs$dollar/g
-  s/\n//g"
-
-# Standard options:
-opt_dry_run=false
-opt_help=false
-opt_quiet=false
-opt_verbose=false
-opt_warning=:
-
-# func_echo arg...
-# Echo program name prefixed message, along with the current mode
-# name if it has been set yet.
-func_echo ()
-{
-    $ECHO "$progname: ${opt_mode+$opt_mode: }$*"
-}
-
-# func_verbose arg...
-# Echo program name prefixed message in verbose mode only.
-func_verbose ()
-{
-    $opt_verbose && func_echo ${1+"$@"}
-
-    # A bug in bash halts the script if the last line of a function
-    # fails when set -e is in force, so we need another command to
-    # work around that:
-    :
-}
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO "$*"
-}
-
-# func_error arg...
-# Echo program name prefixed message to standard error.
-func_error ()
-{
-    $ECHO "$progname: ${opt_mode+$opt_mode: }"${1+"$@"} 1>&2
-}
-
-# func_warning arg...
-# Echo program name prefixed warning message to standard error.
-func_warning ()
-{
-    $opt_warning && $ECHO "$progname: ${opt_mode+$opt_mode: }warning: "${1+"$@"} 1>&2
-
-    # bash bug again:
-    :
-}
-
-# func_fatal_error arg...
-# Echo program name prefixed message to standard error, and exit.
-func_fatal_error ()
-{
-    func_error ${1+"$@"}
-    exit $EXIT_FAILURE
-}
-
-# func_fatal_help arg...
-# Echo program name prefixed message to standard error, followed by
-# a help hint, and exit.
-func_fatal_help ()
-{
-    func_error ${1+"$@"}
-    func_fatal_error "$help"
-}
-help="Try \`$progname --help' for more information."  ## default
-
-
-# func_grep expression filename
-# Check whether EXPRESSION matches any line of FILENAME, without output.
-func_grep ()
-{
-    $GREP "$1" "$2" >/dev/null 2>&1
-}
-
-
-# func_mkdir_p directory-path
-# Make sure the entire path to DIRECTORY-PATH is available.
-func_mkdir_p ()
-{
-    my_directory_path="$1"
-    my_dir_list=
-
-    if test -n "$my_directory_path" && test "$opt_dry_run" != ":"; then
-
-      # Protect directory names starting with `-'
-      case $my_directory_path in
-        -*) my_directory_path="./$my_directory_path" ;;
-      esac
-
-      # While some portion of DIR does not yet exist...
-      while test ! -d "$my_directory_path"; do
-        # ...make a list in topmost first order.  Use a colon delimited
-	# list incase some portion of path contains whitespace.
-        my_dir_list="$my_directory_path:$my_dir_list"
-
-        # If the last portion added has no slash in it, the list is done
-        case $my_directory_path in */*) ;; *) break ;; esac
-
-        # ...otherwise throw away the child directory and loop
-        my_directory_path=`$ECHO "$my_directory_path" | $SED -e "$dirname"`
-      done
-      my_dir_list=`$ECHO "$my_dir_list" | $SED 's,:*$,,'`
-
-      save_mkdir_p_IFS="$IFS"; IFS=':'
-      for my_dir in $my_dir_list; do
-	IFS="$save_mkdir_p_IFS"
-        # mkdir can fail with a `File exist' error if two processes
-        # try to create one of the directories concurrently.  Don't
-        # stop in that case!
-        $MKDIR "$my_dir" 2>/dev/null || :
-      done
-      IFS="$save_mkdir_p_IFS"
-
-      # Bail out if we (or some other process) failed to create a directory.
-      test -d "$my_directory_path" || \
-        func_fatal_error "Failed to create \`$1'"
-    fi
-}
-
-
-# func_mktempdir [string]
-# Make a temporary directory that won't clash with other running
-# libtool processes, and avoids race conditions if possible.  If
-# given, STRING is the basename for that directory.
-func_mktempdir ()
-{
-    my_template="${TMPDIR-/tmp}/${1-$progname}"
-
-    if test "$opt_dry_run" = ":"; then
-      # Return a directory name, but don't create it in dry-run mode
-      my_tmpdir="${my_template}-$$"
-    else
-
-      # If mktemp works, use that first and foremost
-      my_tmpdir=`mktemp -d "${my_template}-XXXXXXXX" 2>/dev/null`
-
-      if test ! -d "$my_tmpdir"; then
-        # Failing that, at least try and use $RANDOM to avoid a race
-        my_tmpdir="${my_template}-${RANDOM-0}$$"
-
-        save_mktempdir_umask=`umask`
-        umask 0077
-        $MKDIR "$my_tmpdir"
-        umask $save_mktempdir_umask
-      fi
-
-      # If we're not in dry-run mode, bomb out on failure
-      test -d "$my_tmpdir" || \
-        func_fatal_error "cannot create temporary directory \`$my_tmpdir'"
-    fi
-
-    $ECHO "$my_tmpdir"
-}
-
-
-# func_quote_for_eval arg
-# Aesthetically quote ARG to be evaled later.
-# This function returns two values: FUNC_QUOTE_FOR_EVAL_RESULT
-# is double-quoted, suitable for a subsequent eval, whereas
-# FUNC_QUOTE_FOR_EVAL_UNQUOTED_RESULT has merely all characters
-# which are still active within double quotes backslashified.
-func_quote_for_eval ()
-{
-    case $1 in
-      *[\\\`\"\$]*)
-	func_quote_for_eval_unquoted_result=`$ECHO "$1" | $SED "$sed_quote_subst"` ;;
-      *)
-        func_quote_for_eval_unquoted_result="$1" ;;
-    esac
-
-    case $func_quote_for_eval_unquoted_result in
-      # Double-quote args containing shell metacharacters to delay
-      # word splitting, command substitution and and variable
-      # expansion for a subsequent eval.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-        func_quote_for_eval_result="\"$func_quote_for_eval_unquoted_result\""
-        ;;
-      *)
-        func_quote_for_eval_result="$func_quote_for_eval_unquoted_result"
-    esac
-}
-
-
-# func_quote_for_expand arg
-# Aesthetically quote ARG to be evaled later; same as above,
-# but do not quote variable references.
-func_quote_for_expand ()
-{
-    case $1 in
-      *[\\\`\"]*)
-	my_arg=`$ECHO "$1" | $SED \
-	    -e "$double_quote_subst" -e "$sed_double_backslash"` ;;
-      *)
-        my_arg="$1" ;;
-    esac
-
-    case $my_arg in
-      # Double-quote args containing shell metacharacters to delay
-      # word splitting and command substitution for a subsequent eval.
-      # Many Bourne shells cannot handle close brackets correctly
-      # in scan sets, so we specify it separately.
-      *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \	]*|*]*|"")
-        my_arg="\"$my_arg\""
-        ;;
-    esac
-
-    func_quote_for_expand_result="$my_arg"
-}
-
-
-# func_show_eval cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.
-func_show_eval ()
-{
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
-
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
-      eval "func_echo $func_quote_for_expand_result"
-    }
-
-    if ${opt_dry_run-false}; then :; else
-      eval "$my_cmd"
-      my_status=$?
-      if test "$my_status" -eq 0; then :; else
-	eval "(exit $my_status); $my_fail_exp"
-      fi
-    fi
-}
-
-
-# func_show_eval_locale cmd [fail_exp]
-# Unless opt_silent is true, then output CMD.  Then, if opt_dryrun is
-# not true, evaluate CMD.  If the evaluation of CMD fails, and FAIL_EXP
-# is given, then evaluate it.  Use the saved locale for evaluation.
-func_show_eval_locale ()
-{
-    my_cmd="$1"
-    my_fail_exp="${2-:}"
-
-    ${opt_silent-false} || {
-      func_quote_for_expand "$my_cmd"
-      eval "func_echo $func_quote_for_expand_result"
-    }
-
-    if ${opt_dry_run-false}; then :; else
-      eval "$lt_user_locale
-	    $my_cmd"
-      my_status=$?
-      eval "$lt_safe_locale"
-      if test "$my_status" -eq 0; then :; else
-	eval "(exit $my_status); $my_fail_exp"
-      fi
-    fi
-}
-
-# func_tr_sh
-# Turn $1 into a string suitable for a shell variable name.
-# Result is stored in $func_tr_sh_result.  All characters
-# not in the set a-zA-Z0-9_ are replaced with '_'. Further,
-# if $1 begins with a digit, a '_' is prepended as well.
-func_tr_sh ()
-{
-  case $1 in
-  [0-9]* | *[!a-zA-Z0-9_]*)
-    func_tr_sh_result=`$ECHO "$1" | $SED 's/^\([0-9]\)/_\1/; s/[^a-zA-Z0-9_]/_/g'`
-    ;;
-  * )
-    func_tr_sh_result=$1
-    ;;
-  esac
-}
-
-
-# func_version
-# Echo version message to standard output and exit.
-func_version ()
-{
-    $opt_debug
-
-    $SED -n '/(C)/!b go
-	:more
-	/\./!{
-	  N
-	  s/\n# / /
-	  b more
-	}
-	:go
-	/^# '$PROGRAM' (GNU /,/# warranty; / {
-        s/^# //
-	s/^# *$//
-        s/\((C)\)[ 0-9,-]*\( [1-9][0-9]*\)/\1\2/
-        p
-     }' < "$progpath"
-     exit $?
-}
-
-# func_usage
-# Echo short help message to standard output and exit.
-func_usage ()
-{
-    $opt_debug
-
-    $SED -n '/^# Usage:/,/^#  *.*--help/ {
-        s/^# //
-	s/^# *$//
-	s/\$progname/'$progname'/
-	p
-    }' < "$progpath"
-    echo
-    $ECHO "run \`$progname --help | more' for full usage"
-    exit $?
-}
-
-# func_help [NOEXIT]
-# Echo long help message to standard output and exit,
-# unless 'noexit' is passed as argument.
-func_help ()
-{
-    $opt_debug
-
-    $SED -n '/^# Usage:/,/# Report bugs to/ {
-	:print
-        s/^# //
-	s/^# *$//
-	s*\$progname*'$progname'*
-	s*\$host*'"$host"'*
-	s*\$SHELL*'"$SHELL"'*
-	s*\$LTCC*'"$LTCC"'*
-	s*\$LTCFLAGS*'"$LTCFLAGS"'*
-	s*\$LD*'"$LD"'*
-	s/\$with_gnu_ld/'"$with_gnu_ld"'/
-	s/\$automake_version/'"`(${AUTOMAKE-automake} --version) 2>/dev/null |$SED 1q`"'/
-	s/\$autoconf_version/'"`(${AUTOCONF-autoconf} --version) 2>/dev/null |$SED 1q`"'/
-	p
-	d
-     }
-     /^# .* home page:/b print
-     /^# General help using/b print
-     ' < "$progpath"
-    ret=$?
-    if test -z "$1"; then
-      exit $ret
-    fi
-}
-
-# func_missing_arg argname
-# Echo program name prefixed message to standard error and set global
-# exit_cmd.
-func_missing_arg ()
-{
-    $opt_debug
-
-    func_error "missing argument for $1."
-    exit_cmd=exit
-}
-
-
-# func_split_short_opt shortopt
-# Set func_split_short_opt_name and func_split_short_opt_arg shell
-# variables after splitting SHORTOPT after the 2nd character.
-func_split_short_opt ()
-{
-    my_sed_short_opt='1s/^\(..\).*$/\1/;q'
-    my_sed_short_rest='1s/^..\(.*\)$/\1/;q'
-
-    func_split_short_opt_name=`$ECHO "$1" | $SED "$my_sed_short_opt"`
-    func_split_short_opt_arg=`$ECHO "$1" | $SED "$my_sed_short_rest"`
-} # func_split_short_opt may be replaced by extended shell implementation
-
-
-# func_split_long_opt longopt
-# Set func_split_long_opt_name and func_split_long_opt_arg shell
-# variables after splitting LONGOPT at the `=' sign.
-func_split_long_opt ()
-{
-    my_sed_long_opt='1s/^\(--[^=]*\)=.*/\1/;q'
-    my_sed_long_arg='1s/^--[^=]*=//'
-
-    func_split_long_opt_name=`$ECHO "$1" | $SED "$my_sed_long_opt"`
-    func_split_long_opt_arg=`$ECHO "$1" | $SED "$my_sed_long_arg"`
-} # func_split_long_opt may be replaced by extended shell implementation
-
-exit_cmd=:
-
-
-
-
-
-magic="%%%MAGIC variable%%%"
-magic_exe="%%%MAGIC EXE variable%%%"
-
-# Global variables.
-nonopt=
-preserve_args=
-lo2o="s/\\.lo\$/.${objext}/"
-o2lo="s/\\.${objext}\$/.lo/"
-extracted_archives=
-extracted_serial=0
-
-# If this variable is set in any of the actions, the command in it
-# will be execed at the end.  This prevents here-documents from being
-# left over by shells.
-exec_cmd=
-
-# func_append var value
-# Append VALUE to the end of shell variable VAR.
-func_append ()
-{
-    eval "${1}=\$${1}\${2}"
-} # func_append may be replaced by extended shell implementation
-
-# func_append_quoted var value
-# Quote VALUE and append to the end of shell variable VAR, separated
-# by a space.
-func_append_quoted ()
-{
-    func_quote_for_eval "${2}"
-    eval "${1}=\$${1}\\ \$func_quote_for_eval_result"
-} # func_append_quoted may be replaced by extended shell implementation
-
-
-# func_arith arithmetic-term...
-func_arith ()
-{
-    func_arith_result=`expr "${@}"`
-} # func_arith may be replaced by extended shell implementation
-
-
-# func_len string
-# STRING may not start with a hyphen.
-func_len ()
-{
-    func_len_result=`expr "${1}" : ".*" 2>/dev/null || echo $max_cmd_len`
-} # func_len may be replaced by extended shell implementation
-
-
-# func_lo2o object
-func_lo2o ()
-{
-    func_lo2o_result=`$ECHO "${1}" | $SED "$lo2o"`
-} # func_lo2o may be replaced by extended shell implementation
-
-
-# func_xform libobj-or-source
-func_xform ()
-{
-    func_xform_result=`$ECHO "${1}" | $SED 's/\.[^.]*$/.lo/'`
-} # func_xform may be replaced by extended shell implementation
-
-
-# func_fatal_configuration arg...
-# Echo program name prefixed message to standard error, followed by
-# a configuration failure hint, and exit.
-func_fatal_configuration ()
-{
-    func_error ${1+"$@"}
-    func_error "See the $PACKAGE documentation for more information."
-    func_fatal_error "Fatal configuration error."
-}
-
-
-# func_config
-# Display the configuration for all the tags in this script.
-func_config ()
-{
-    re_begincf='^# ### BEGIN LIBTOOL'
-    re_endcf='^# ### END LIBTOOL'
-
-    # Default configuration.
-    $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath"
-
-    # Now print the configurations for the tags.
-    for tagname in $taglist; do
-      $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath"
-    done
-
-    exit $?
-}
-
-# func_features
-# Display the features supported by this script.
-func_features ()
-{
-    echo "host: $host"
-    if test "$build_libtool_libs" = yes; then
-      echo "enable shared libraries"
-    else
-      echo "disable shared libraries"
-    fi
-    if test "$build_old_libs" = yes; then
-      echo "enable static libraries"
-    else
-      echo "disable static libraries"
-    fi
-
-    exit $?
-}
-
-# func_enable_tag tagname
-# Verify that TAGNAME is valid, and either flag an error and exit, or
-# enable the TAGNAME tag.  We also add TAGNAME to the global $taglist
-# variable here.
-func_enable_tag ()
-{
-  # Global variable:
-  tagname="$1"
-
-  re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$"
-  re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$"
-  sed_extractcf="/$re_begincf/,/$re_endcf/p"
-
-  # Validate tagname.
-  case $tagname in
-    *[!-_A-Za-z0-9,/]*)
-      func_fatal_error "invalid tag name: $tagname"
-      ;;
-  esac
-
-  # Don't test for the "default" C tag, as we know it's
-  # there but not specially marked.
-  case $tagname in
-    CC) ;;
-    *)
-      if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then
-	taglist="$taglist $tagname"
-
-	# Evaluate the configuration.  Be careful to quote the path
-	# and the sed script, to avoid splitting on whitespace, but
-	# also don't use non-portable quotes within backquotes within
-	# quotes we have to do it in 2 steps:
-	extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"`
-	eval "$extractedcf"
-      else
-	func_error "ignoring unknown tag $tagname"
-      fi
-      ;;
-  esac
-}
-
-# func_check_version_match
-# Ensure that we are using m4 macros, and libtool script from the same
-# release of libtool.
-func_check_version_match ()
-{
-  if test "$package_revision" != "$macro_revision"; then
-    if test "$VERSION" != "$macro_version"; then
-      if test -z "$macro_version"; then
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from an older release.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      else
-        cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, but the
-$progname: definition of this LT_INIT comes from $PACKAGE $macro_version.
-$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION
-$progname: and run autoconf again.
-_LT_EOF
-      fi
-    else
-      cat >&2 <<_LT_EOF
-$progname: Version mismatch error.  This is $PACKAGE $VERSION, revision $package_revision,
-$progname: but the definition of this LT_INIT comes from revision $macro_revision.
-$progname: You should recreate aclocal.m4 with macros from revision $package_revision
-$progname: of $PACKAGE $VERSION and run autoconf again.
-_LT_EOF
-    fi
-
-    exit $EXIT_MISMATCH
-  fi
-}
-
-
-# Shorthand for --mode=foo, only valid as the first argument
-case $1 in
-clean|clea|cle|cl)
-  shift; set dummy --mode clean ${1+"$@"}; shift
-  ;;
-compile|compil|compi|comp|com|co|c)
-  shift; set dummy --mode compile ${1+"$@"}; shift
-  ;;
-execute|execut|execu|exec|exe|ex|e)
-  shift; set dummy --mode execute ${1+"$@"}; shift
-  ;;
-finish|finis|fini|fin|fi|f)
-  shift; set dummy --mode finish ${1+"$@"}; shift
-  ;;
-install|instal|insta|inst|ins|in|i)
-  shift; set dummy --mode install ${1+"$@"}; shift
-  ;;
-link|lin|li|l)
-  shift; set dummy --mode link ${1+"$@"}; shift
-  ;;
-uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u)
-  shift; set dummy --mode uninstall ${1+"$@"}; shift
-  ;;
-esac
-
-
-
-# Option defaults:
-opt_debug=:
-opt_dry_run=false
-opt_config=false
-opt_preserve_dup_deps=false
-opt_features=false
-opt_finish=false
-opt_help=false
-opt_help_all=false
-opt_silent=:
-opt_warning=:
-opt_verbose=:
-opt_silent=false
-opt_verbose=false
-
-
-# Parse options once, thoroughly.  This comes as soon as possible in the
-# script to make things like `--version' happen as quickly as we can.
-{
-  # this just eases exit handling
-  while test $# -gt 0; do
-    opt="$1"
-    shift
-    case $opt in
-      --debug|-x)	opt_debug='set -x'
-			func_echo "enabling shell trace mode"
-			$opt_debug
-			;;
-      --dry-run|--dryrun|-n)
-			opt_dry_run=:
-			;;
-      --config)
-			opt_config=:
-func_config
-			;;
-      --dlopen|-dlopen)
-			optarg="$1"
-			opt_dlopen="${opt_dlopen+$opt_dlopen
-}$optarg"
-			shift
-			;;
-      --preserve-dup-deps)
-			opt_preserve_dup_deps=:
-			;;
-      --features)
-			opt_features=:
-func_features
-			;;
-      --finish)
-			opt_finish=:
-set dummy --mode finish ${1+"$@"}; shift
-			;;
-      --help)
-			opt_help=:
-			;;
-      --help-all)
-			opt_help_all=:
-opt_help=': help-all'
-			;;
-      --mode)
-			test $# = 0 && func_missing_arg $opt && break
-			optarg="$1"
-			opt_mode="$optarg"
-case $optarg in
-  # Valid mode arguments:
-  clean|compile|execute|finish|install|link|relink|uninstall) ;;
-
-  # Catch anything else as an error
-  *) func_error "invalid argument for $opt"
-     exit_cmd=exit
-     break
-     ;;
-esac
-			shift
-			;;
-      --no-silent|--no-quiet)
-			opt_silent=false
-func_append preserve_args " $opt"
-			;;
-      --no-warning|--no-warn)
-			opt_warning=false
-func_append preserve_args " $opt"
-			;;
-      --no-verbose)
-			opt_verbose=false
-func_append preserve_args " $opt"
-			;;
-      --silent|--quiet)
-			opt_silent=:
-func_append preserve_args " $opt"
-        opt_verbose=false
-			;;
-      --verbose|-v)
-			opt_verbose=:
-func_append preserve_args " $opt"
-opt_silent=false
-			;;
-      --tag)
-			test $# = 0 && func_missing_arg $opt && break
-			optarg="$1"
-			opt_tag="$optarg"
-func_append preserve_args " $opt $optarg"
-func_enable_tag "$optarg"
-			shift
-			;;
-
-      -\?|-h)		func_usage				;;
-      --help)		func_help				;;
-      --version)	func_version				;;
-
-      # Separate optargs to long options:
-      --*=*)
-			func_split_long_opt "$opt"
-			set dummy "$func_split_long_opt_name" "$func_split_long_opt_arg" ${1+"$@"}
-			shift
-			;;
-
-      # Separate non-argument short options:
-      -\?*|-h*|-n*|-v*)
-			func_split_short_opt "$opt"
-			set dummy "$func_split_short_opt_name" "-$func_split_short_opt_arg" ${1+"$@"}
-			shift
-			;;
-
-      --)		break					;;
-      -*)		func_fatal_help "unrecognized option \`$opt'" ;;
-      *)		set dummy "$opt" ${1+"$@"};	shift; break  ;;
-    esac
-  done
-
-  # Validate options:
-
-  # save first non-option argument
-  if test "$#" -gt 0; then
-    nonopt="$opt"
-    shift
-  fi
-
-  # preserve --debug
-  test "$opt_debug" = : || func_append preserve_args " --debug"
-
-  case $host in
-    *cygwin* | *mingw* | *pw32* | *cegcc*)
-      # don't eliminate duplications in $postdeps and $predeps
-      opt_duplicate_compiler_generated_deps=:
-      ;;
-    *)
-      opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps
-      ;;
-  esac
-
-  $opt_help || {
-    # Sanity checks first:
-    func_check_version_match
-
-    if test "$build_libtool_libs" != yes && test "$build_old_libs" != yes; then
-      func_fatal_configuration "not configured to build any kind of library"
-    fi
-
-    # Darwin sucks
-    eval std_shrext=\"$shrext_cmds\"
-
-    # Only execute mode is allowed to have -dlopen flags.
-    if test -n "$opt_dlopen" && test "$opt_mode" != execute; then
-      func_error "unrecognized option \`-dlopen'"
-      $ECHO "$help" 1>&2
-      exit $EXIT_FAILURE
-    fi
-
-    # Change the help message to a mode-specific one.
-    generic_help="$help"
-    help="Try \`$progname --help --mode=$opt_mode' for more information."
-  }
-
-
-  # Bail if the options were screwed
-  $exit_cmd $EXIT_FAILURE
-}
-
-
-
-
-## ----------- ##
-##    Main.    ##
-## ----------- ##
-
-# func_lalib_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_lalib_p ()
-{
-    test -f "$1" &&
-      $SED -e 4q "$1" 2>/dev/null \
-        | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
-}
-
-# func_lalib_unsafe_p file
-# True iff FILE is a libtool `.la' library or `.lo' object file.
-# This function implements the same check as func_lalib_p without
-# resorting to external programs.  To this end, it redirects stdin and
-# closes it afterwards, without saving the original file descriptor.
-# As a safety measure, use it only where a negative result would be
-# fatal anyway.  Works if `file' does not exist.
-func_lalib_unsafe_p ()
-{
-    lalib_p=no
-    if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
-	for lalib_p_l in 1 2 3 4
-	do
-	    read lalib_p_line
-	    case "$lalib_p_line" in
-		\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
-	    esac
-	done
-	exec 0<&5 5<&-
-    fi
-    test "$lalib_p" = yes
-}
-
-# func_ltwrapper_script_p file
-# True iff FILE is a libtool wrapper script
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_script_p ()
-{
-    func_lalib_p "$1"
-}
-
-# func_ltwrapper_executable_p file
-# True iff FILE is a libtool wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_executable_p ()
-{
-    func_ltwrapper_exec_suffix=
-    case $1 in
-    *.exe) ;;
-    *) func_ltwrapper_exec_suffix=.exe ;;
-    esac
-    $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
-}
-
-# func_ltwrapper_scriptname file
-# Assumes file is an ltwrapper_executable
-# uses $file to determine the appropriate filename for a
-# temporary ltwrapper_script.
-func_ltwrapper_scriptname ()
-{
-    func_dirname_and_basename "$1" "" "."
-    func_stripname '' '.exe' "$func_basename_result"
-    func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
-}
-
-# func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script or wrapper executable
-# This function is only a basic sanity check; it will hardly flush out
-# determined imposters.
-func_ltwrapper_p ()
-{
-    func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
-}
-
-
-# func_execute_cmds commands fail_cmd
-# Execute tilde-delimited COMMANDS.
-# If FAIL_CMD is given, eval that upon failure.
-# FAIL_CMD may read-access the current command in variable CMD!
-func_execute_cmds ()
-{
-    $opt_debug
-    save_ifs=$IFS; IFS='~'
-    for cmd in $1; do
-      IFS=$save_ifs
-      eval cmd=\"$cmd\"
-      func_show_eval "$cmd" "${2-:}"
-    done
-    IFS=$save_ifs
-}
-
-
-# func_source file
-# Source FILE, adding directory component if necessary.
-# Note that it is not necessary on cygwin/mingw to append a dot to
-# FILE even if both FILE and FILE.exe exist: automatic-append-.exe
-# behavior happens only for exec(3), not for open(2)!  Also, sourcing
-# `FILE.' does not work on cygwin managed mounts.
-func_source ()
-{
-    $opt_debug
-    case $1 in
-    */* | *\\*)	. "$1" ;;
-    *)		. "./$1" ;;
-    esac
-}
-
-
-# func_resolve_sysroot PATH
-# Replace a leading = in PATH with a sysroot.  Store the result into
-# func_resolve_sysroot_result
-func_resolve_sysroot ()
-{
-  func_resolve_sysroot_result=$1
-  case $func_resolve_sysroot_result in
-  =*)
-    func_stripname '=' '' "$func_resolve_sysroot_result"
-    func_resolve_sysroot_result=$lt_sysroot$func_stripname_result
-    ;;
-  esac
-}
-
-# func_replace_sysroot PATH
-# If PATH begins with the sysroot, replace it with = and
-# store the result into func_replace_sysroot_result.
-func_replace_sysroot ()
-{
-  case "$lt_sysroot:$1" in
-  ?*:"$lt_sysroot"*)
-    func_stripname "$lt_sysroot" '' "$1"
-    func_replace_sysroot_result="=$func_stripname_result"
-    ;;
-  *)
-    # Including no sysroot.
-    func_replace_sysroot_result=$1
-    ;;
-  esac
-}
-
-# func_infer_tag arg
-# Infer tagged configuration to use if any are available and
-# if one wasn't chosen via the "--tag" command line option.
-# Only attempt this if the compiler in the base compile
-# command doesn't match the default compiler.
-# arg is usually of the form 'gcc ...'
-func_infer_tag ()
-{
-    $opt_debug
-    if test -n "$available_tags" && test -z "$tagname"; then
-      CC_quoted=
-      for arg in $CC; do
-	func_append_quoted CC_quoted "$arg"
-      done
-      CC_expanded=`func_echo_all $CC`
-      CC_quoted_expanded=`func_echo_all $CC_quoted`
-      case $@ in
-      # Blanks in the command may have been stripped by the calling shell,
-      # but not from the CC environment variable when configure was run.
-      " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
-      " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;;
-      # Blanks at the start of $base_compile will cause this to fail
-      # if we don't check for them as well.
-      *)
-	for z in $available_tags; do
-	  if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then
-	    # Evaluate the configuration.
-	    eval "`${SED} -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`"
-	    CC_quoted=
-	    for arg in $CC; do
-	      # Double-quote args containing other shell metacharacters.
-	      func_append_quoted CC_quoted "$arg"
-	    done
-	    CC_expanded=`func_echo_all $CC`
-	    CC_quoted_expanded=`func_echo_all $CC_quoted`
-	    case "$@ " in
-	    " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \
-	    " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*)
-	      # The compiler in the base compile command matches
-	      # the one in the tagged configuration.
-	      # Assume this is the tagged configuration we want.
-	      tagname=$z
-	      break
-	      ;;
-	    esac
-	  fi
-	done
-	# If $tagname still isn't set, then no tagged configuration
-	# was found and let the user know that the "--tag" command
-	# line option must be used.
-	if test -z "$tagname"; then
-	  func_echo "unable to infer tagged configuration"
-	  func_fatal_error "specify a tag with \`--tag'"
-#	else
-#	  func_verbose "using $tagname tagged configuration"
-	fi
-	;;
-      esac
-    fi
-}
-
-
-
-# func_write_libtool_object output_name pic_name nonpic_name
-# Create a libtool object file (analogous to a ".la" file),
-# but don't create it if we're doing a dry run.
-func_write_libtool_object ()
-{
-    write_libobj=${1}
-    if test "$build_libtool_libs" = yes; then
-      write_lobj=\'${2}\'
-    else
-      write_lobj=none
-    fi
-
-    if test "$build_old_libs" = yes; then
-      write_oldobj=\'${3}\'
-    else
-      write_oldobj=none
-    fi
-
-    $opt_dry_run || {
-      cat >${write_libobj}T <<EOF
-# $write_libobj - a libtool object file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# Name of the PIC object.
-pic_object=$write_lobj
-
-# Name of the non-PIC object
-non_pic_object=$write_oldobj
-
-EOF
-      $MV "${write_libobj}T" "${write_libobj}"
-    }
-}
-
-
-##################################################
-# FILE NAME AND PATH CONVERSION HELPER FUNCTIONS #
-##################################################
-
-# func_convert_core_file_wine_to_w32 ARG
-# Helper function used by file name conversion functions when $build is *nix,
-# and $host is mingw, cygwin, or some other w32 environment. Relies on a
-# correctly configured wine environment available, with the winepath program
-# in $build's $PATH.
-#
-# ARG is the $build file name to be converted to w32 format.
-# Result is available in $func_convert_core_file_wine_to_w32_result, and will
-# be empty on error (or when ARG is empty)
-func_convert_core_file_wine_to_w32 ()
-{
-  $opt_debug
-  func_convert_core_file_wine_to_w32_result="$1"
-  if test -n "$1"; then
-    # Unfortunately, winepath does not exit with a non-zero error code, so we
-    # are forced to check the contents of stdout. On the other hand, if the
-    # command is not found, the shell will set an exit code of 127 and print
-    # *an error message* to stdout. So we must check for both error code of
-    # zero AND non-empty stdout, which explains the odd construction:
-    func_convert_core_file_wine_to_w32_tmp=`winepath -w "$1" 2>/dev/null`
-    if test "$?" -eq 0 && test -n "${func_convert_core_file_wine_to_w32_tmp}"; then
-      func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" |
-        $SED -e "$lt_sed_naive_backslashify"`
-    else
-      func_convert_core_file_wine_to_w32_result=
-    fi
-  fi
-}
-# end: func_convert_core_file_wine_to_w32
-
-
-# func_convert_core_path_wine_to_w32 ARG
-# Helper function used by path conversion functions when $build is *nix, and
-# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly
-# configured wine environment available, with the winepath program in $build's
-# $PATH. Assumes ARG has no leading or trailing path separator characters.
-#
-# ARG is path to be converted from $build format to win32.
-# Result is available in $func_convert_core_path_wine_to_w32_result.
-# Unconvertible file (directory) names in ARG are skipped; if no directory names
-# are convertible, then the result may be empty.
-func_convert_core_path_wine_to_w32 ()
-{
-  $opt_debug
-  # unfortunately, winepath doesn't convert paths, only file names
-  func_convert_core_path_wine_to_w32_result=""
-  if test -n "$1"; then
-    oldIFS=$IFS
-    IFS=:
-    for func_convert_core_path_wine_to_w32_f in $1; do
-      IFS=$oldIFS
-      func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f"
-      if test -n "$func_convert_core_file_wine_to_w32_result" ; then
-        if test -z "$func_convert_core_path_wine_to_w32_result"; then
-          func_convert_core_path_wine_to_w32_result="$func_convert_core_file_wine_to_w32_result"
-        else
-          func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result"
-        fi
-      fi
-    done
-    IFS=$oldIFS
-  fi
-}
-# end: func_convert_core_path_wine_to_w32
-
-
-# func_cygpath ARGS...
-# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when
-# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2)
-# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or
-# (2), returns the Cygwin file name or path in func_cygpath_result (input
-# file name or path is assumed to be in w32 format, as previously converted
-# from $build's *nix or MSYS format). In case (3), returns the w32 file name
-# or path in func_cygpath_result (input file name or path is assumed to be in
-# Cygwin format). Returns an empty string on error.
-#
-# ARGS are passed to cygpath, with the last one being the file name or path to
-# be converted.
-#
-# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH
-# environment variable; do not put it in $PATH.
-func_cygpath ()
-{
-  $opt_debug
-  if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then
-    func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null`
-    if test "$?" -ne 0; then
-      # on failure, ensure result is empty
-      func_cygpath_result=
-    fi
-  else
-    func_cygpath_result=
-    func_error "LT_CYGPATH is empty or specifies non-existent file: \`$LT_CYGPATH'"
-  fi
-}
-#end: func_cygpath
-
-
-# func_convert_core_msys_to_w32 ARG
-# Convert file name or path ARG from MSYS format to w32 format.  Return
-# result in func_convert_core_msys_to_w32_result.
-func_convert_core_msys_to_w32 ()
-{
-  $opt_debug
-  # awkward: cmd appends spaces to result
-  func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
-    $SED -e 's/[ ]*$//' -e "$lt_sed_naive_backslashify"`
-}
-#end: func_convert_core_msys_to_w32
-
-
-# func_convert_file_check ARG1 ARG2
-# Verify that ARG1 (a file name in $build format) was converted to $host
-# format in ARG2. Otherwise, emit an error message, but continue (resetting
-# func_to_host_file_result to ARG1).
-func_convert_file_check ()
-{
-  $opt_debug
-  if test -z "$2" && test -n "$1" ; then
-    func_error "Could not determine host file name corresponding to"
-    func_error "  \`$1'"
-    func_error "Continuing, but uninstalled executables may not work."
-    # Fallback:
-    func_to_host_file_result="$1"
-  fi
-}
-# end func_convert_file_check
-
-
-# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH
-# Verify that FROM_PATH (a path in $build format) was converted to $host
-# format in TO_PATH. Otherwise, emit an error message, but continue, resetting
-# func_to_host_file_result to a simplistic fallback value (see below).
-func_convert_path_check ()
-{
-  $opt_debug
-  if test -z "$4" && test -n "$3"; then
-    func_error "Could not determine the host path corresponding to"
-    func_error "  \`$3'"
-    func_error "Continuing, but uninstalled executables may not work."
-    # Fallback.  This is a deliberately simplistic "conversion" and
-    # should not be "improved".  See libtool.info.
-    if test "x$1" != "x$2"; then
-      lt_replace_pathsep_chars="s|$1|$2|g"
-      func_to_host_path_result=`echo "$3" |
-        $SED -e "$lt_replace_pathsep_chars"`
-    else
-      func_to_host_path_result="$3"
-    fi
-  fi
-}
-# end func_convert_path_check
-
-
-# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG
-# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT
-# and appending REPL if ORIG matches BACKPAT.
-func_convert_path_front_back_pathsep ()
-{
-  $opt_debug
-  case $4 in
-  $1 ) func_to_host_path_result="$3$func_to_host_path_result"
-    ;;
-  esac
-  case $4 in
-  $2 ) func_append func_to_host_path_result "$3"
-    ;;
-  esac
-}
-# end func_convert_path_front_back_pathsep
-
-
-##################################################
-# $build to $host FILE NAME CONVERSION FUNCTIONS #
-##################################################
-# invoked via `$to_host_file_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# Result will be available in $func_to_host_file_result.
-
-
-# func_to_host_file ARG
-# Converts the file name ARG from $build format to $host format. Return result
-# in func_to_host_file_result.
-func_to_host_file ()
-{
-  $opt_debug
-  $to_host_file_cmd "$1"
-}
-# end func_to_host_file
-
-
-# func_to_tool_file ARG LAZY
-# converts the file name ARG from $build format to toolchain format. Return
-# result in func_to_tool_file_result.  If the conversion in use is listed
-# in (the comma separated) LAZY, no conversion takes place.
-func_to_tool_file ()
-{
-  $opt_debug
-  case ,$2, in
-    *,"$to_tool_file_cmd",*)
-      func_to_tool_file_result=$1
-      ;;
-    *)
-      $to_tool_file_cmd "$1"
-      func_to_tool_file_result=$func_to_host_file_result
-      ;;
-  esac
-}
-# end func_to_tool_file
-
-
-# func_convert_file_noop ARG
-# Copy ARG to func_to_host_file_result.
-func_convert_file_noop ()
-{
-  func_to_host_file_result="$1"
-}
-# end func_convert_file_noop
-
-
-# func_convert_file_msys_to_w32 ARG
-# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper.  Returns result in
-# func_to_host_file_result.
-func_convert_file_msys_to_w32 ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    func_convert_core_msys_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_msys_to_w32_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_w32
-
-
-# func_convert_file_cygwin_to_w32 ARG
-# Convert file name ARG from Cygwin to w32 format.  Returns result in
-# func_to_host_file_result.
-func_convert_file_cygwin_to_w32 ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    # because $build is cygwin, we call "the" cygpath in $PATH; no need to use
-    # LT_CYGPATH in this case.
-    func_to_host_file_result=`cygpath -m "$1"`
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_cygwin_to_w32
-
-
-# func_convert_file_nix_to_w32 ARG
-# Convert file name ARG from *nix to w32 format.  Requires a wine environment
-# and a working winepath. Returns result in func_to_host_file_result.
-func_convert_file_nix_to_w32 ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    func_convert_core_file_wine_to_w32 "$1"
-    func_to_host_file_result="$func_convert_core_file_wine_to_w32_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_w32
-
-
-# func_convert_file_msys_to_cygwin ARG
-# Convert file name ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_file_msys_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    func_convert_core_msys_to_w32 "$1"
-    func_cygpath -u "$func_convert_core_msys_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_msys_to_cygwin
-
-
-# func_convert_file_nix_to_cygwin ARG
-# Convert file name ARG from *nix to Cygwin format.  Requires Cygwin installed
-# in a wine environment, working winepath, and LT_CYGPATH set.  Returns result
-# in func_to_host_file_result.
-func_convert_file_nix_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_file_result="$1"
-  if test -n "$1"; then
-    # convert from *nix to w32, then use cygpath to convert from w32 to cygwin.
-    func_convert_core_file_wine_to_w32 "$1"
-    func_cygpath -u "$func_convert_core_file_wine_to_w32_result"
-    func_to_host_file_result="$func_cygpath_result"
-  fi
-  func_convert_file_check "$1" "$func_to_host_file_result"
-}
-# end func_convert_file_nix_to_cygwin
-
-
-#############################################
-# $build to $host PATH CONVERSION FUNCTIONS #
-#############################################
-# invoked via `$to_host_path_cmd ARG'
-#
-# In each case, ARG is the path to be converted from $build to $host format.
-# The result will be available in $func_to_host_path_result.
-#
-# Path separators are also converted from $build format to $host format.  If
-# ARG begins or ends with a path separator character, it is preserved (but
-# converted to $host format) on output.
-#
-# All path conversion functions are named using the following convention:
-#   file name conversion function    : func_convert_file_X_to_Y ()
-#   path conversion function         : func_convert_path_X_to_Y ()
-# where, for any given $build/$host combination the 'X_to_Y' value is the
-# same.  If conversion functions are added for new $build/$host combinations,
-# the two new functions must follow this pattern, or func_init_to_host_path_cmd
-# will break.
-
-
-# func_init_to_host_path_cmd
-# Ensures that function "pointer" variable $to_host_path_cmd is set to the
-# appropriate value, based on the value of $to_host_file_cmd.
-to_host_path_cmd=
-func_init_to_host_path_cmd ()
-{
-  $opt_debug
-  if test -z "$to_host_path_cmd"; then
-    func_stripname 'func_convert_file_' '' "$to_host_file_cmd"
-    to_host_path_cmd="func_convert_path_${func_stripname_result}"
-  fi
-}
-
-
-# func_to_host_path ARG
-# Converts the path ARG from $build format to $host format. Return result
-# in func_to_host_path_result.
-func_to_host_path ()
-{
-  $opt_debug
-  func_init_to_host_path_cmd
-  $to_host_path_cmd "$1"
-}
-# end func_to_host_path
-
-
-# func_convert_path_noop ARG
-# Copy ARG to func_to_host_path_result.
-func_convert_path_noop ()
-{
-  func_to_host_path_result="$1"
-}
-# end func_convert_path_noop
-
-
-# func_convert_path_msys_to_w32 ARG
-# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic
-# conversion to w32 is not available inside the cwrapper.  Returns result in
-# func_to_host_path_result.
-func_convert_path_msys_to_w32 ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # Remove leading and trailing path separator characters from ARG.  MSYS
-    # behavior is inconsistent here; cygpath turns them into '.;' and ';.';
-    # and winepath ignores them completely.
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_msys_to_w32_result"
-    func_convert_path_check : ";" \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-  fi
-}
-# end func_convert_path_msys_to_w32
-
-
-# func_convert_path_cygwin_to_w32 ARG
-# Convert path ARG from Cygwin to w32 format.  Returns result in
-# func_to_host_file_result.
-func_convert_path_cygwin_to_w32 ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # See func_convert_path_msys_to_w32:
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"`
-    func_convert_path_check : ";" \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-  fi
-}
-# end func_convert_path_cygwin_to_w32
-
-
-# func_convert_path_nix_to_w32 ARG
-# Convert path ARG from *nix to w32 format.  Requires a wine environment and
-# a working winepath.  Returns result in func_to_host_file_result.
-func_convert_path_nix_to_w32 ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # See func_convert_path_msys_to_w32:
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result="$func_convert_core_path_wine_to_w32_result"
-    func_convert_path_check : ";" \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
-  fi
-}
-# end func_convert_path_nix_to_w32
-
-
-# func_convert_path_msys_to_cygwin ARG
-# Convert path ARG from MSYS to Cygwin format.  Requires LT_CYGPATH set.
-# Returns result in func_to_host_file_result.
-func_convert_path_msys_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # See func_convert_path_msys_to_w32:
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
-    func_convert_path_check : : \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
-  fi
-}
-# end func_convert_path_msys_to_cygwin
-
-
-# func_convert_path_nix_to_cygwin ARG
-# Convert path ARG from *nix to Cygwin format.  Requires Cygwin installed in a
-# a wine environment, working winepath, and LT_CYGPATH set.  Returns result in
-# func_to_host_file_result.
-func_convert_path_nix_to_cygwin ()
-{
-  $opt_debug
-  func_to_host_path_result="$1"
-  if test -n "$1"; then
-    # Remove leading and trailing path separator characters from
-    # ARG. msys behavior is inconsistent here, cygpath turns them
-    # into '.;' and ';.', and winepath ignores them completely.
-    func_stripname : : "$1"
-    func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1"
-    func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result"
-    func_to_host_path_result="$func_cygpath_result"
-    func_convert_path_check : : \
-      "$func_to_host_path_tmp1" "$func_to_host_path_result"
-    func_convert_path_front_back_pathsep ":*" "*:" : "$1"
-  fi
-}
-# end func_convert_path_nix_to_cygwin
-
-
-# func_mode_compile arg...
-func_mode_compile ()
-{
-    $opt_debug
-    # Get the compilation command and the source file.
-    base_compile=
-    srcfile="$nonopt"  #  always keep a non-empty value in "srcfile"
-    suppress_opt=yes
-    suppress_output=
-    arg_mode=normal
-    libobj=
-    later=
-    pie_flag=
-
-    for arg
-    do
-      case $arg_mode in
-      arg  )
-	# do not "continue".  Instead, add this to base_compile
-	lastarg="$arg"
-	arg_mode=normal
-	;;
-
-      target )
-	libobj="$arg"
-	arg_mode=normal
-	continue
-	;;
-
-      normal )
-	# Accept any command-line options.
-	case $arg in
-	-o)
-	  test -n "$libobj" && \
-	    func_fatal_error "you cannot specify \`-o' more than once"
-	  arg_mode=target
-	  continue
-	  ;;
-
-	-pie | -fpie | -fPIE)
-          func_append pie_flag " $arg"
-	  continue
-	  ;;
-
-	-shared | -static | -prefer-pic | -prefer-non-pic)
-	  func_append later " $arg"
-	  continue
-	  ;;
-
-	-no-suppress)
-	  suppress_opt=no
-	  continue
-	  ;;
-
-	-Xcompiler)
-	  arg_mode=arg  #  the next one goes into the "base_compile" arg list
-	  continue      #  The current "srcfile" will either be retained or
-	  ;;            #  replaced later.  I would guess that would be a bug.
-
-	-Wc,*)
-	  func_stripname '-Wc,' '' "$arg"
-	  args=$func_stripname_result
-	  lastarg=
-	  save_ifs="$IFS"; IFS=','
-	  for arg in $args; do
-	    IFS="$save_ifs"
-	    func_append_quoted lastarg "$arg"
-	  done
-	  IFS="$save_ifs"
-	  func_stripname ' ' '' "$lastarg"
-	  lastarg=$func_stripname_result
-
-	  # Add the arguments to base_compile.
-	  func_append base_compile " $lastarg"
-	  continue
-	  ;;
-
-	*)
-	  # Accept the current argument as the source file.
-	  # The previous "srcfile" becomes the current argument.
-	  #
-	  lastarg="$srcfile"
-	  srcfile="$arg"
-	  ;;
-	esac  #  case $arg
-	;;
-      esac    #  case $arg_mode
-
-      # Aesthetically quote the previous argument.
-      func_append_quoted base_compile "$lastarg"
-    done # for arg
-
-    case $arg_mode in
-    arg)
-      func_fatal_error "you must specify an argument for -Xcompile"
-      ;;
-    target)
-      func_fatal_error "you must specify a target with \`-o'"
-      ;;
-    *)
-      # Get the name of the library object.
-      test -z "$libobj" && {
-	func_basename "$srcfile"
-	libobj="$func_basename_result"
-      }
-      ;;
-    esac
-
-    # Recognize several different file suffixes.
-    # If the user specifies -o file.o, it is replaced with file.lo
-    case $libobj in
-    *.[cCFSifmso] | \
-    *.ada | *.adb | *.ads | *.asm | \
-    *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
-    *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup)
-      func_xform "$libobj"
-      libobj=$func_xform_result
-      ;;
-    esac
-
-    case $libobj in
-    *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
-    *)
-      func_fatal_error "cannot determine name of library object from \`$libobj'"
-      ;;
-    esac
-
-    func_infer_tag $base_compile
-
-    for arg in $later; do
-      case $arg in
-      -shared)
-	test "$build_libtool_libs" != yes && \
-	  func_fatal_configuration "can not build a shared library"
-	build_old_libs=no
-	continue
-	;;
-
-      -static)
-	build_libtool_libs=no
-	build_old_libs=yes
-	continue
-	;;
-
-      -prefer-pic)
-	pic_mode=yes
-	continue
-	;;
-
-      -prefer-non-pic)
-	pic_mode=no
-	continue
-	;;
-      esac
-    done
-
-    func_quote_for_eval "$libobj"
-    test "X$libobj" != "X$func_quote_for_eval_result" \
-      && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"'	 &()|`$[]' \
-      && func_warning "libobj name \`$libobj' may not contain shell special characters."
-    func_dirname_and_basename "$obj" "/" ""
-    objname="$func_basename_result"
-    xdir="$func_dirname_result"
-    lobj=${xdir}$objdir/$objname
-
-    test -z "$base_compile" && \
-      func_fatal_help "you must specify a compilation command"
-
-    # Delete any leftover library objects.
-    if test "$build_old_libs" = yes; then
-      removelist="$obj $lobj $libobj ${libobj}T"
-    else
-      removelist="$lobj $libobj ${libobj}T"
-    fi
-
-    # On Cygwin there's no "real" PIC flag so we must build both object types
-    case $host_os in
-    cygwin* | mingw* | pw32* | os2* | cegcc*)
-      pic_mode=default
-      ;;
-    esac
-    if test "$pic_mode" = no && test "$deplibs_check_method" != pass_all; then
-      # non-PIC code in shared libraries is not supported
-      pic_mode=default
-    fi
-
-    # Calculate the filename of the output object if compiler does
-    # not support -o with -c
-    if test "$compiler_c_o" = no; then
-      output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.${objext}
-      lockfile="$output_obj.lock"
-    else
-      output_obj=
-      need_locks=no
-      lockfile=
-    fi
-
-    # Lock this critical section if it is needed
-    # We use this script file to make the link, it avoids creating a new file
-    if test "$need_locks" = yes; then
-      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
-	func_echo "Waiting for $lockfile to be removed"
-	sleep 2
-      done
-    elif test "$need_locks" = warn; then
-      if test -f "$lockfile"; then
-	$ECHO "\
-*** ERROR, $lockfile exists and contains:
-`cat $lockfile 2>/dev/null`
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$opt_dry_run || $RM $removelist
-	exit $EXIT_FAILURE
-      fi
-      func_append removelist " $output_obj"
-      $ECHO "$srcfile" > "$lockfile"
-    fi
-
-    $opt_dry_run || $RM $removelist
-    func_append removelist " $lockfile"
-    trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
-
-    func_to_tool_file "$srcfile" func_convert_file_msys_to_w32
-    srcfile=$func_to_tool_file_result
-    func_quote_for_eval "$srcfile"
-    qsrcfile=$func_quote_for_eval_result
-
-    # Only build a PIC object if we are building libtool libraries.
-    if test "$build_libtool_libs" = yes; then
-      # Without this assignment, base_compile gets emptied.
-      fbsd_hideous_sh_bug=$base_compile
-
-      if test "$pic_mode" != no; then
-	command="$base_compile $qsrcfile $pic_flag"
-      else
-	# Don't build PIC code
-	command="$base_compile $qsrcfile"
-      fi
-
-      func_mkdir_p "$xdir$objdir"
-
-      if test -z "$output_obj"; then
-	# Place PIC objects in $objdir
-	func_append command " -o $lobj"
-      fi
-
-      func_show_eval_locale "$command"	\
-          'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
-
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$opt_dry_run || $RM $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed, then go on to compile the next one
-      if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then
-	func_show_eval '$MV "$output_obj" "$lobj"' \
-	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
-      fi
-
-      # Allow error messages only from the first compilation.
-      if test "$suppress_opt" = yes; then
-	suppress_output=' >/dev/null 2>&1'
-      fi
-    fi
-
-    # Only build a position-dependent object if we build old libraries.
-    if test "$build_old_libs" = yes; then
-      if test "$pic_mode" != yes; then
-	# Don't build PIC code
-	command="$base_compile $qsrcfile$pie_flag"
-      else
-	command="$base_compile $qsrcfile $pic_flag"
-      fi
-      if test "$compiler_c_o" = yes; then
-	func_append command " -o $obj"
-      fi
-
-      # Suppress compiler output if we already did a PIC compilation.
-      func_append command "$suppress_output"
-      func_show_eval_locale "$command" \
-        '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
-
-      if test "$need_locks" = warn &&
-	 test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then
-	$ECHO "\
-*** ERROR, $lockfile contains:
-`cat $lockfile 2>/dev/null`
-
-but it should contain:
-$srcfile
-
-This indicates that another process is trying to use the same
-temporary object file, and libtool could not work around it because
-your compiler does not support \`-c' and \`-o' together.  If you
-repeat this compilation, it may succeed, by chance, but you had better
-avoid parallel builds (make -j) in this platform, or get a better
-compiler."
-
-	$opt_dry_run || $RM $removelist
-	exit $EXIT_FAILURE
-      fi
-
-      # Just move the object if needed
-      if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then
-	func_show_eval '$MV "$output_obj" "$obj"' \
-	  'error=$?; $opt_dry_run || $RM $removelist; exit $error'
-      fi
-    fi
-
-    $opt_dry_run || {
-      func_write_libtool_object "$libobj" "$objdir/$objname" "$objname"
-
-      # Unlock the critical section if it was locked
-      if test "$need_locks" != no; then
-	removelist=$lockfile
-        $RM "$lockfile"
-      fi
-    }
-
-    exit $EXIT_SUCCESS
-}
-
-$opt_help || {
-  test "$opt_mode" = compile && func_mode_compile ${1+"$@"}
-}
-
-func_mode_help ()
-{
-    # We need to display help for each of the modes.
-    case $opt_mode in
-      "")
-        # Generic help is extracted from the usage comments
-        # at the start of this file.
-        func_help
-        ;;
-
-      clean)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE...
-
-Remove files from the build directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, object or program, all the files associated
-with it are deleted. Otherwise, only FILE itself is deleted using RM."
-        ;;
-
-      compile)
-      $ECHO \
-"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE
-
-Compile a source file into a libtool library object.
-
-This mode accepts the following additional options:
-
-  -o OUTPUT-FILE    set the output file name to OUTPUT-FILE
-  -no-suppress      do not suppress compiler output for multiple passes
-  -prefer-pic       try to build PIC objects only
-  -prefer-non-pic   try to build non-PIC objects only
-  -shared           do not build a \`.o' file suitable for static linking
-  -static           only build a \`.o' file suitable for static linking
-  -Wc,FLAG          pass FLAG directly to the compiler
-
-COMPILE-COMMAND is a command to be used in creating a \`standard' object file
-from the given SOURCEFILE.
-
-The output file name is determined by removing the directory component from
-SOURCEFILE, then substituting the C source code suffix \`.c' with the
-library object suffix, \`.lo'."
-        ;;
-
-      execute)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]...
-
-Automatically set library path, then run a program.
-
-This mode accepts the following additional options:
-
-  -dlopen FILE      add the directory containing FILE to the library path
-
-This mode sets the library path environment variable according to \`-dlopen'
-flags.
-
-If any of the ARGS are libtool executable wrappers, then they are translated
-into their corresponding uninstalled binary, and any of their required library
-directories are added to the library path.
-
-Then, COMMAND is executed, with ARGS as arguments."
-        ;;
-
-      finish)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=finish [LIBDIR]...
-
-Complete the installation of libtool libraries.
-
-Each LIBDIR is a directory that contains libtool libraries.
-
-The commands that this mode executes may require superuser privileges.  Use
-the \`--dry-run' option if you just want to see what would be executed."
-        ;;
-
-      install)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND...
-
-Install executables or libraries.
-
-INSTALL-COMMAND is the installation command.  The first component should be
-either the \`install' or \`cp' program.
-
-The following components of INSTALL-COMMAND are treated specially:
-
-  -inst-prefix-dir PREFIX-DIR  Use PREFIX-DIR as a staging area for installation
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
-        ;;
-
-      link)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=link LINK-COMMAND...
-
-Link object files or libraries together to form another library, or to
-create an executable program.
-
-LINK-COMMAND is a command using the C compiler that you would use to create
-a program from several object files.
-
-The following components of LINK-COMMAND are treated specially:
-
-  -all-static       do not do any dynamic linking at all
-  -avoid-version    do not add a version suffix if possible
-  -bindir BINDIR    specify path to binaries directory (for systems where
-                    libraries must be found in the PATH setting at runtime)
-  -dlopen FILE      \`-dlpreopen' FILE if it cannot be dlopened at runtime
-  -dlpreopen FILE   link in FILE and add its symbols to lt_preloaded_symbols
-  -export-dynamic   allow symbols from OUTPUT-FILE to be resolved with dlsym(3)
-  -export-symbols SYMFILE
-                    try to export only the symbols listed in SYMFILE
-  -export-symbols-regex REGEX
-                    try to export only the symbols matching REGEX
-  -LLIBDIR          search LIBDIR for required installed libraries
-  -lNAME            OUTPUT-FILE requires the installed library libNAME
-  -module           build a library that can dlopened
-  -no-fast-install  disable the fast-install mode
-  -no-install       link a not-installable executable
-  -no-undefined     declare that a library does not refer to external symbols
-  -o OUTPUT-FILE    create OUTPUT-FILE from the specified objects
-  -objectlist FILE  Use a list of object files found in FILE to specify objects
-  -precious-files-regex REGEX
-                    don't remove output files matching REGEX
-  -release RELEASE  specify package release information
-  -rpath LIBDIR     the created library will eventually be installed in LIBDIR
-  -R[ ]LIBDIR       add LIBDIR to the runtime path of programs and libraries
-  -shared           only do dynamic linking of libtool libraries
-  -shrext SUFFIX    override the standard shared library file extension
-  -static           do not do any dynamic linking of uninstalled libtool libraries
-  -static-libtool-libs
-                    do not do any dynamic linking of libtool libraries
-  -version-info CURRENT[:REVISION[:AGE]]
-                    specify library version info [each variable defaults to 0]
-  -weak LIBNAME     declare that the target provides the LIBNAME interface
-  -Wc,FLAG
-  -Xcompiler FLAG   pass linker-specific FLAG directly to the compiler
-  -Wl,FLAG
-  -Xlinker FLAG     pass linker-specific FLAG directly to the linker
-  -XCClinker FLAG   pass link-specific FLAG to the compiler driver (CC)
-
-All other options (arguments beginning with \`-') are ignored.
-
-Every other argument is treated as a filename.  Files ending in \`.la' are
-treated as uninstalled libtool libraries, other files are standard or library
-object files.
-
-If the OUTPUT-FILE ends in \`.la', then a libtool library is created,
-only library objects (\`.lo' files) may be specified, and \`-rpath' is
-required, except when creating a convenience library.
-
-If OUTPUT-FILE ends in \`.a' or \`.lib', then a standard library is created
-using \`ar' and \`ranlib', or on Windows using \`lib'.
-
-If OUTPUT-FILE ends in \`.lo' or \`.${objext}', then a reloadable object file
-is created, otherwise an executable program is created."
-        ;;
-
-      uninstall)
-        $ECHO \
-"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE...
-
-Remove libraries from an installation directory.
-
-RM is the name of the program to use to delete files associated with each FILE
-(typically \`/bin/rm').  RM-OPTIONS are options (such as \`-f') to be passed
-to RM.
-
-If FILE is a libtool library, all the files associated with it are deleted.
-Otherwise, only FILE itself is deleted using RM."
-        ;;
-
-      *)
-        func_fatal_help "invalid operation mode \`$opt_mode'"
-        ;;
-    esac
-
-    echo
-    $ECHO "Try \`$progname --help' for more information about other modes."
-}
-
-# Now that we've collected a possible --mode arg, show help if necessary
-if $opt_help; then
-  if test "$opt_help" = :; then
-    func_mode_help
-  else
-    {
-      func_help noexit
-      for opt_mode in compile link execute install finish uninstall clean; do
-	func_mode_help
-      done
-    } | sed -n '1p; 2,$s/^Usage:/  or: /p'
-    {
-      func_help noexit
-      for opt_mode in compile link execute install finish uninstall clean; do
-	echo
-	func_mode_help
-      done
-    } |
-    sed '1d
-      /^When reporting/,/^Report/{
-	H
-	d
-      }
-      $x
-      /information about other modes/d
-      /more detailed .*MODE/d
-      s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/'
-  fi
-  exit $?
-fi
-
-
-# func_mode_execute arg...
-func_mode_execute ()
-{
-    $opt_debug
-    # The first argument is the command name.
-    cmd="$nonopt"
-    test -z "$cmd" && \
-      func_fatal_help "you must specify a COMMAND"
-
-    # Handle -dlopen flags immediately.
-    for file in $opt_dlopen; do
-      test -f "$file" \
-	|| func_fatal_help "\`$file' is not a file"
-
-      dir=
-      case $file in
-      *.la)
-	func_resolve_sysroot "$file"
-	file=$func_resolve_sysroot_result
-
-	# Check to see that this really is a libtool archive.
-	func_lalib_unsafe_p "$file" \
-	  || func_fatal_help "\`$lib' is not a valid libtool archive"
-
-	# Read the libtool library.
-	dlname=
-	library_names=
-	func_source "$file"
-
-	# Skip this library if it cannot be dlopened.
-	if test -z "$dlname"; then
-	  # Warn if it was a shared library.
-	  test -n "$library_names" && \
-	    func_warning "\`$file' was not linked with \`-export-dynamic'"
-	  continue
-	fi
-
-	func_dirname "$file" "" "."
-	dir="$func_dirname_result"
-
-	if test -f "$dir/$objdir/$dlname"; then
-	  func_append dir "/$objdir"
-	else
-	  if test ! -f "$dir/$dlname"; then
-	    func_fatal_error "cannot find \`$dlname' in \`$dir' or \`$dir/$objdir'"
-	  fi
-	fi
-	;;
-
-      *.lo)
-	# Just add the directory containing the .lo file.
-	func_dirname "$file" "" "."
-	dir="$func_dirname_result"
-	;;
-
-      *)
-	func_warning "\`-dlopen' is ignored for non-libtool libraries and objects"
-	continue
-	;;
-      esac
-
-      # Get the absolute pathname.
-      absdir=`cd "$dir" && pwd`
-      test -n "$absdir" && dir="$absdir"
-
-      # Now add the directory to shlibpath_var.
-      if eval "test -z \"\$$shlibpath_var\""; then
-	eval "$shlibpath_var=\"\$dir\""
-      else
-	eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\""
-      fi
-    done
-
-    # This variable tells wrapper scripts just to set shlibpath_var
-    # rather than running their programs.
-    libtool_execute_magic="$magic"
-
-    # Check if any of the arguments is a wrapper script.
-    args=
-    for file
-    do
-      case $file in
-      -* | *.la | *.lo ) ;;
-      *)
-	# Do a test to see if this is really a libtool program.
-	if func_ltwrapper_script_p "$file"; then
-	  func_source "$file"
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	elif func_ltwrapper_executable_p "$file"; then
-	  func_ltwrapper_scriptname "$file"
-	  func_source "$func_ltwrapper_scriptname_result"
-	  # Transform arg to wrapped name.
-	  file="$progdir/$program"
-	fi
-	;;
-      esac
-      # Quote arguments (to preserve shell metacharacters).
-      func_append_quoted args "$file"
-    done
-
-    if test "X$opt_dry_run" = Xfalse; then
-      if test -n "$shlibpath_var"; then
-	# Export the shlibpath_var.
-	eval "export $shlibpath_var"
-      fi
-
-      # Restore saved environment variables
-      for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
-      do
-	eval "if test \"\${save_$lt_var+set}\" = set; then
-                $lt_var=\$save_$lt_var; export $lt_var
-	      else
-		$lt_unset $lt_var
-	      fi"
-      done
-
-      # Now prepare to actually exec the command.
-      exec_cmd="\$cmd$args"
-    else
-      # Display what would be done.
-      if test -n "$shlibpath_var"; then
-	eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\""
-	echo "export $shlibpath_var"
-      fi
-      $ECHO "$cmd$args"
-      exit $EXIT_SUCCESS
-    fi
-}
-
-test "$opt_mode" = execute && func_mode_execute ${1+"$@"}
-
-
-# func_mode_finish arg...
-func_mode_finish ()
-{
-    $opt_debug
-    libs=
-    libdirs=
-    admincmds=
-
-    for opt in "$nonopt" ${1+"$@"}
-    do
-      if test -d "$opt"; then
-	func_append libdirs " $opt"
-
-      elif test -f "$opt"; then
-	if func_lalib_unsafe_p "$opt"; then
-	  func_append libs " $opt"
-	else
-	  func_warning "\`$opt' is not a valid libtool archive"
-	fi
-
-      else
-	func_fatal_error "invalid argument \`$opt'"
-      fi
-    done
-
-    if test -n "$libs"; then
-      if test -n "$lt_sysroot"; then
-        sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"`
-        sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;"
-      else
-        sysroot_cmd=
-      fi
-
-      # Remove sysroot references
-      if $opt_dry_run; then
-        for lib in $libs; do
-          echo "removing references to $lt_sysroot and \`=' prefixes from $lib"
-        done
-      else
-        tmpdir=`func_mktempdir`
-        for lib in $libs; do
-	  sed -e "${sysroot_cmd} s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \
-	    > $tmpdir/tmp-la
-	  mv -f $tmpdir/tmp-la $lib
-	done
-        ${RM}r "$tmpdir"
-      fi
-    fi
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      for libdir in $libdirs; do
-	if test -n "$finish_cmds"; then
-	  # Do each command in the finish commands.
-	  func_execute_cmds "$finish_cmds" 'admincmds="$admincmds
-'"$cmd"'"'
-	fi
-	if test -n "$finish_eval"; then
-	  # Do the single finish_eval.
-	  eval cmds=\"$finish_eval\"
-	  $opt_dry_run || eval "$cmds" || func_append admincmds "
-       $cmds"
-	fi
-      done
-    fi
-
-    # Exit here if they wanted silent mode.
-    $opt_silent && exit $EXIT_SUCCESS
-
-    if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then
-      echo "----------------------------------------------------------------------"
-      echo "Libraries have been installed in:"
-      for libdir in $libdirs; do
-	$ECHO "   $libdir"
-      done
-      echo
-      echo "If you ever happen to want to link against installed libraries"
-      echo "in a given directory, LIBDIR, you must either use libtool, and"
-      echo "specify the full pathname of the library, or use the \`-LLIBDIR'"
-      echo "flag during linking and do at least one of the following:"
-      if test -n "$shlibpath_var"; then
-	echo "   - add LIBDIR to the \`$shlibpath_var' environment variable"
-	echo "     during execution"
-      fi
-      if test -n "$runpath_var"; then
-	echo "   - add LIBDIR to the \`$runpath_var' environment variable"
-	echo "     during linking"
-      fi
-      if test -n "$hardcode_libdir_flag_spec"; then
-	libdir=LIBDIR
-	eval flag=\"$hardcode_libdir_flag_spec\"
-
-	$ECHO "   - use the \`$flag' linker flag"
-      fi
-      if test -n "$admincmds"; then
-	$ECHO "   - have your system administrator run these commands:$admincmds"
-      fi
-      if test -f /etc/ld.so.conf; then
-	echo "   - have your system administrator add LIBDIR to \`/etc/ld.so.conf'"
-      fi
-      echo
-
-      echo "See any operating system documentation about shared libraries for"
-      case $host in
-	solaris2.[6789]|solaris2.1[0-9])
-	  echo "more information, such as the ld(1), crle(1) and ld.so(8) manual"
-	  echo "pages."
-	  ;;
-	*)
-	  echo "more information, such as the ld(1) and ld.so(8) manual pages."
-	  ;;
-      esac
-      echo "----------------------------------------------------------------------"
-    fi
-    exit $EXIT_SUCCESS
-}
-
-test "$opt_mode" = finish && func_mode_finish ${1+"$@"}
-
-
-# func_mode_install arg...
-func_mode_install ()
-{
-    $opt_debug
-    # There may be an optional sh(1) argument at the beginning of
-    # install_prog (especially on Windows NT).
-    if test "$nonopt" = "$SHELL" || test "$nonopt" = /bin/sh ||
-       # Allow the use of GNU shtool's install command.
-       case $nonopt in *shtool*) :;; *) false;; esac; then
-      # Aesthetically quote it.
-      func_quote_for_eval "$nonopt"
-      install_prog="$func_quote_for_eval_result "
-      arg=$1
-      shift
-    else
-      install_prog=
-      arg=$nonopt
-    fi
-
-    # The real first argument should be the name of the installation program.
-    # Aesthetically quote it.
-    func_quote_for_eval "$arg"
-    func_append install_prog "$func_quote_for_eval_result"
-    install_shared_prog=$install_prog
-    case " $install_prog " in
-      *[\\\ /]cp\ *) install_cp=: ;;
-      *) install_cp=false ;;
-    esac
-
-    # We need to accept at least all the BSD install flags.
-    dest=
-    files=
-    opts=
-    prev=
-    install_type=
-    isdir=no
-    stripme=
-    no_mode=:
-    for arg
-    do
-      arg2=
-      if test -n "$dest"; then
-	func_append files " $dest"
-	dest=$arg
-	continue
-      fi
-
-      case $arg in
-      -d) isdir=yes ;;
-      -f)
-	if $install_cp; then :; else
-	  prev=$arg
-	fi
-	;;
-      -g | -m | -o)
-	prev=$arg
-	;;
-      -s)
-	stripme=" -s"
-	continue
-	;;
-      -*)
-	;;
-      *)
-	# If the previous option needed an argument, then skip it.
-	if test -n "$prev"; then
-	  if test "x$prev" = x-m && test -n "$install_override_mode"; then
-	    arg2=$install_override_mode
-	    no_mode=false
-	  fi
-	  prev=
-	else
-	  dest=$arg
-	  continue
-	fi
-	;;
-      esac
-
-      # Aesthetically quote the argument.
-      func_quote_for_eval "$arg"
-      func_append install_prog " $func_quote_for_eval_result"
-      if test -n "$arg2"; then
-	func_quote_for_eval "$arg2"
-      fi
-      func_append install_shared_prog " $func_quote_for_eval_result"
-    done
-
-    test -z "$install_prog" && \
-      func_fatal_help "you must specify an install program"
-
-    test -n "$prev" && \
-      func_fatal_help "the \`$prev' option requires an argument"
-
-    if test -n "$install_override_mode" && $no_mode; then
-      if $install_cp; then :; else
-	func_quote_for_eval "$install_override_mode"
-	func_append install_shared_prog " -m $func_quote_for_eval_result"
-      fi
-    fi
-
-    if test -z "$files"; then
-      if test -z "$dest"; then
-	func_fatal_help "no file or destination specified"
-      else
-	func_fatal_help "you must specify a destination"
-      fi
-    fi
-
-    # Strip any trailing slash from the destination.
-    func_stripname '' '/' "$dest"
-    dest=$func_stripname_result
-
-    # Check to see that the destination is a directory.
-    test -d "$dest" && isdir=yes
-    if test "$isdir" = yes; then
-      destdir="$dest"
-      destname=
-    else
-      func_dirname_and_basename "$dest" "" "."
-      destdir="$func_dirname_result"
-      destname="$func_basename_result"
-
-      # Not a directory, so check to see that there is only one file specified.
-      set dummy $files; shift
-      test "$#" -gt 1 && \
-	func_fatal_help "\`$dest' is not a directory"
-    fi
-    case $destdir in
-    [\\/]* | [A-Za-z]:[\\/]*) ;;
-    *)
-      for file in $files; do
-	case $file in
-	*.lo) ;;
-	*)
-	  func_fatal_help "\`$destdir' must be an absolute directory name"
-	  ;;
-	esac
-      done
-      ;;
-    esac
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    staticlibs=
-    future_libdirs=
-    current_libdirs=
-    for file in $files; do
-
-      # Do each installation.
-      case $file in
-      *.$libext)
-	# Do the static libraries later.
-	func_append staticlibs " $file"
-	;;
-
-      *.la)
-	func_resolve_sysroot "$file"
-	file=$func_resolve_sysroot_result
-
-	# Check to see that this really is a libtool archive.
-	func_lalib_unsafe_p "$file" \
-	  || func_fatal_help "\`$file' is not a valid libtool archive"
-
-	library_names=
-	old_library=
-	relink_command=
-	func_source "$file"
-
-	# Add the libdir to current_libdirs if it is the destination.
-	if test "X$destdir" = "X$libdir"; then
-	  case "$current_libdirs " in
-	  *" $libdir "*) ;;
-	  *) func_append current_libdirs " $libdir" ;;
-	  esac
-	else
-	  # Note the libdir as a future libdir.
-	  case "$future_libdirs " in
-	  *" $libdir "*) ;;
-	  *) func_append future_libdirs " $libdir" ;;
-	  esac
-	fi
-
-	func_dirname "$file" "/" ""
-	dir="$func_dirname_result"
-	func_append dir "$objdir"
-
-	if test -n "$relink_command"; then
-	  # Determine the prefix the user has applied to our future dir.
-	  inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"`
-
-	  # Don't allow the user to place us outside of our expected
-	  # location b/c this prevents finding dependent libraries that
-	  # are installed to the same prefix.
-	  # At present, this check doesn't affect windows .dll's that
-	  # are installed into $libdir/../bin (currently, that works fine)
-	  # but it's something to keep an eye on.
-	  test "$inst_prefix_dir" = "$destdir" && \
-	    func_fatal_error "error: cannot install \`$file' to a directory not ending in $libdir"
-
-	  if test -n "$inst_prefix_dir"; then
-	    # Stick the inst_prefix_dir data into the link command.
-	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"`
-	  else
-	    relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"`
-	  fi
-
-	  func_warning "relinking \`$file'"
-	  func_show_eval "$relink_command" \
-	    'func_fatal_error "error: relink \`$file'\'' with the above command before installing it"'
-	fi
-
-	# See the names of the shared library.
-	set dummy $library_names; shift
-	if test -n "$1"; then
-	  realname="$1"
-	  shift
-
-	  srcname="$realname"
-	  test -n "$relink_command" && srcname="$realname"T
-
-	  # Install the shared library and build the symlinks.
-	  func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \
-	      'exit $?'
-	  tstripme="$stripme"
-	  case $host_os in
-	  cygwin* | mingw* | pw32* | cegcc*)
-	    case $realname in
-	    *.dll.a)
-	      tstripme=""
-	      ;;
-	    esac
-	    ;;
-	  esac
-	  if test -n "$tstripme" && test -n "$striplib"; then
-	    func_show_eval "$striplib $destdir/$realname" 'exit $?'
-	  fi
-
-	  if test "$#" -gt 0; then
-	    # Delete the old symlinks, and create new ones.
-	    # Try `ln -sf' first, because the `ln' binary might depend on
-	    # the symlink we replace!  Solaris /bin/ln does not understand -f,
-	    # so we also need to try rm && ln -s.
-	    for linkname
-	    do
-	      test "$linkname" != "$realname" \
-		&& func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })"
-	    done
-	  fi
-
-	  # Do each command in the postinstall commands.
-	  lib="$destdir/$realname"
-	  func_execute_cmds "$postinstall_cmds" 'exit $?'
-	fi
-
-	# Install the pseudo-library for information purposes.
-	func_basename "$file"
-	name="$func_basename_result"
-	instname="$dir/$name"i
-	func_show_eval "$install_prog $instname $destdir/$name" 'exit $?'
-
-	# Maybe install the static library, too.
-	test -n "$old_library" && func_append staticlibs " $dir/$old_library"
-	;;
-
-      *.lo)
-	# Install (i.e. copy) a libtool object.
-
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  func_basename "$file"
-	  destfile="$func_basename_result"
-	  destfile="$destdir/$destfile"
-	fi
-
-	# Deduce the name of the destination old-style object file.
-	case $destfile in
-	*.lo)
-	  func_lo2o "$destfile"
-	  staticdest=$func_lo2o_result
-	  ;;
-	*.$objext)
-	  staticdest="$destfile"
-	  destfile=
-	  ;;
-	*)
-	  func_fatal_help "cannot copy a libtool object to \`$destfile'"
-	  ;;
-	esac
-
-	# Install the libtool object if requested.
-	test -n "$destfile" && \
-	  func_show_eval "$install_prog $file $destfile" 'exit $?'
-
-	# Install the old object if enabled.
-	if test "$build_old_libs" = yes; then
-	  # Deduce the name of the old-style object file.
-	  func_lo2o "$file"
-	  staticobj=$func_lo2o_result
-	  func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?'
-	fi
-	exit $EXIT_SUCCESS
-	;;
-
-      *)
-	# Figure out destination file name, if it wasn't already specified.
-	if test -n "$destname"; then
-	  destfile="$destdir/$destname"
-	else
-	  func_basename "$file"
-	  destfile="$func_basename_result"
-	  destfile="$destdir/$destfile"
-	fi
-
-	# If the file is missing, and there is a .exe on the end, strip it
-	# because it is most likely a libtool script we actually want to
-	# install
-	stripped_ext=""
-	case $file in
-	  *.exe)
-	    if test ! -f "$file"; then
-	      func_stripname '' '.exe' "$file"
-	      file=$func_stripname_result
-	      stripped_ext=".exe"
-	    fi
-	    ;;
-	esac
-
-	# Do a test to see if this is really a libtool program.
-	case $host in
-	*cygwin* | *mingw*)
-	    if func_ltwrapper_executable_p "$file"; then
-	      func_ltwrapper_scriptname "$file"
-	      wrapper=$func_ltwrapper_scriptname_result
-	    else
-	      func_stripname '' '.exe' "$file"
-	      wrapper=$func_stripname_result
-	    fi
-	    ;;
-	*)
-	    wrapper=$file
-	    ;;
-	esac
-	if func_ltwrapper_script_p "$wrapper"; then
-	  notinst_deplibs=
-	  relink_command=
-
-	  func_source "$wrapper"
-
-	  # Check the variables that should have been set.
-	  test -z "$generated_by_libtool_version" && \
-	    func_fatal_error "invalid libtool wrapper script \`$wrapper'"
-
-	  finalize=yes
-	  for lib in $notinst_deplibs; do
-	    # Check to see that each library is installed.
-	    libdir=
-	    if test -f "$lib"; then
-	      func_source "$lib"
-	    fi
-	    libfile="$libdir/"`$ECHO "$lib" | $SED 's%^.*/%%g'` ### testsuite: skip nested quoting test
-	    if test -n "$libdir" && test ! -f "$libfile"; then
-	      func_warning "\`$lib' has not been installed in \`$libdir'"
-	      finalize=no
-	    fi
-	  done
-
-	  relink_command=
-	  func_source "$wrapper"
-
-	  outputname=
-	  if test "$fast_install" = no && test -n "$relink_command"; then
-	    $opt_dry_run || {
-	      if test "$finalize" = yes; then
-	        tmpdir=`func_mktempdir`
-		func_basename "$file$stripped_ext"
-		file="$func_basename_result"
-	        outputname="$tmpdir/$file"
-	        # Replace the output file specification.
-	        relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'`
-
-	        $opt_silent || {
-	          func_quote_for_expand "$relink_command"
-		  eval "func_echo $func_quote_for_expand_result"
-	        }
-	        if eval "$relink_command"; then :
-	          else
-		  func_error "error: relink \`$file' with the above command before installing it"
-		  $opt_dry_run || ${RM}r "$tmpdir"
-		  continue
-	        fi
-	        file="$outputname"
-	      else
-	        func_warning "cannot relink \`$file'"
-	      fi
-	    }
-	  else
-	    # Install the binary that we compiled earlier.
-	    file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"`
-	  fi
-	fi
-
-	# remove .exe since cygwin /usr/bin/install will append another
-	# one anyway
-	case $install_prog,$host in
-	*/usr/bin/install*,*cygwin*)
-	  case $file:$destfile in
-	  *.exe:*.exe)
-	    # this is ok
-	    ;;
-	  *.exe:*)
-	    destfile=$destfile.exe
-	    ;;
-	  *:*.exe)
-	    func_stripname '' '.exe' "$destfile"
-	    destfile=$func_stripname_result
-	    ;;
-	  esac
-	  ;;
-	esac
-	func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?'
-	$opt_dry_run || if test -n "$outputname"; then
-	  ${RM}r "$tmpdir"
-	fi
-	;;
-      esac
-    done
-
-    for file in $staticlibs; do
-      func_basename "$file"
-      name="$func_basename_result"
-
-      # Set up the ranlib parameters.
-      oldlib="$destdir/$name"
-      func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
-      tool_oldlib=$func_to_tool_file_result
-
-      func_show_eval "$install_prog \$file \$oldlib" 'exit $?'
-
-      if test -n "$stripme" && test -n "$old_striplib"; then
-	func_show_eval "$old_striplib $tool_oldlib" 'exit $?'
-      fi
-
-      # Do each command in the postinstall commands.
-      func_execute_cmds "$old_postinstall_cmds" 'exit $?'
-    done
-
-    test -n "$future_libdirs" && \
-      func_warning "remember to run \`$progname --finish$future_libdirs'"
-
-    if test -n "$current_libdirs"; then
-      # Maybe just do a dry run.
-      $opt_dry_run && current_libdirs=" -n$current_libdirs"
-      exec_cmd='$SHELL $progpath $preserve_args --finish$current_libdirs'
-    else
-      exit $EXIT_SUCCESS
-    fi
-}
-
-test "$opt_mode" = install && func_mode_install ${1+"$@"}
-
-
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
-{
-    $opt_debug
-    my_outputname="$1"
-    my_originator="$2"
-    my_pic_p="${3-no}"
-    my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
-    my_dlsyms=
-
-    if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-      if test -n "$NM" && test -n "$global_symbol_pipe"; then
-	my_dlsyms="${my_outputname}S.c"
-      else
-	func_error "not configured to extract global symbols from dlpreopened files"
-      fi
-    fi
-
-    if test -n "$my_dlsyms"; then
-      case $my_dlsyms in
-      "") ;;
-      *.c)
-	# Discover the nlist of each of the dlfiles.
-	nlist="$output_objdir/${my_outputname}.nm"
-
-	func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-
-	# Parse the name list into a source file.
-	func_verbose "creating $output_objdir/$my_dlsyms"
-
-	$opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-#if defined(__GNUC__) && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4))
-#pragma GCC diagnostic ignored \"-Wstrict-prototypes\"
-#endif
-
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
-   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-# define LT_DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data.  */
-# define LT_DLSYM_CONST
-#else
-# define LT_DLSYM_CONST const
-#endif
-
-/* External symbol declarations for the compiler. */\
-"
-
-	if test "$dlself" = yes; then
-	  func_verbose "generating symbol list for \`$output'"
-
-	  $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist"
-
-	  # Add our own program objects to the symbol list.
-	  progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP`
-	  for progfile in $progfiles; do
-	    func_to_tool_file "$progfile" func_convert_file_msys_to_w32
-	    func_verbose "extracting global C symbols from \`$func_to_tool_file_result'"
-	    $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'"
-	  done
-
-	  if test -n "$exclude_expsyms"; then
-	    $opt_dry_run || {
-	      eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
-	      eval '$MV "$nlist"T "$nlist"'
-	    }
-	  fi
-
-	  if test -n "$export_symbols_regex"; then
-	    $opt_dry_run || {
-	      eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
-	      eval '$MV "$nlist"T "$nlist"'
-	    }
-	  fi
-
-	  # Prepare the list of exported symbols
-	  if test -z "$export_symbols"; then
-	    export_symbols="$output_objdir/$outputname.exp"
-	    $opt_dry_run || {
-	      $RM $export_symbols
-	      eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
-	      case $host in
-	      *cygwin* | *mingw* | *cegcc* )
-                eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-                eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
-	        ;;
-	      esac
-	    }
-	  else
-	    $opt_dry_run || {
-	      eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
-	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
-	      eval '$MV "$nlist"T "$nlist"'
-	      case $host in
-	        *cygwin* | *mingw* | *cegcc* )
-	          eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
-	          eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
-	          ;;
-	      esac
-	    }
-	  fi
-	fi
-
-	for dlprefile in $dlprefiles; do
-	  func_verbose "extracting global C symbols from \`$dlprefile'"
-	  func_basename "$dlprefile"
-	  name="$func_basename_result"
-          case $host in
-	    *cygwin* | *mingw* | *cegcc* )
-	      # if an import library, we need to obtain dlname
-	      if func_win32_import_lib_p "$dlprefile"; then
-	        func_tr_sh "$dlprefile"
-	        eval "curr_lafile=\$libfile_$func_tr_sh_result"
-	        dlprefile_dlbasename=""
-	        if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then
-	          # Use subshell, to avoid clobbering current variable values
-	          dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"`
-	          if test -n "$dlprefile_dlname" ; then
-	            func_basename "$dlprefile_dlname"
-	            dlprefile_dlbasename="$func_basename_result"
-	          else
-	            # no lafile. user explicitly requested -dlpreopen <import library>.
-	            $sharedlib_from_linklib_cmd "$dlprefile"
-	            dlprefile_dlbasename=$sharedlib_from_linklib_result
-	          fi
-	        fi
-	        $opt_dry_run || {
-	          if test -n "$dlprefile_dlbasename" ; then
-	            eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"'
-	          else
-	            func_warning "Could not compute DLL name from $name"
-	            eval '$ECHO ": $name " >> "$nlist"'
-	          fi
-	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe |
-	            $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'"
-	        }
-	      else # not an import lib
-	        $opt_dry_run || {
-	          eval '$ECHO ": $name " >> "$nlist"'
-	          func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-	          eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-	        }
-	      fi
-	    ;;
-	    *)
-	      $opt_dry_run || {
-	        eval '$ECHO ": $name " >> "$nlist"'
-	        func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32
-	        eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'"
-	      }
-	    ;;
-          esac
-	done
-
-	$opt_dry_run || {
-	  # Make sure we have at least an empty file.
-	  test -f "$nlist" || : > "$nlist"
-
-	  if test -n "$exclude_expsyms"; then
-	    $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T
-	    $MV "$nlist"T "$nlist"
-	  fi
-
-	  # Try sorting and uniquifying the output.
-	  if $GREP -v "^: " < "$nlist" |
-	      if sort -k 3 </dev/null >/dev/null 2>&1; then
-		sort -k 3
-	      else
-		sort +2
-	      fi |
-	      uniq > "$nlist"S; then
-	    :
-	  else
-	    $GREP -v "^: " < "$nlist" > "$nlist"S
-	  fi
-
-	  if test -f "$nlist"S; then
-	    eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"'
-	  else
-	    echo '/* NONE */' >> "$output_objdir/$my_dlsyms"
-	  fi
-
-	  echo >> "$output_objdir/$my_dlsyms" "\
-
-/* The mapping between symbol names and symbols.  */
-typedef struct {
-  const char *name;
-  void *address;
-} lt_dlsymlist;
-extern LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
-LT_DLSYM_CONST lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
-  { \"$my_originator\", (void *) 0 },"
-
-	  case $need_lib_prefix in
-	  no)
-	    eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
-	    ;;
-	  *)
-	    eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
-	    ;;
-	  esac
-	  echo >> "$output_objdir/$my_dlsyms" "\
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
-	} # !$opt_dry_run
-
-	pic_flag_for_symtable=
-	case "$compile_command " in
-	*" -static "*) ;;
-	*)
-	  case $host in
-	  # compiling the symbol table file with pic_flag works around
-	  # a FreeBSD bug that causes programs to crash when -lm is
-	  # linked before any other PIC object.  But we must not use
-	  # pic_flag when linking with -static.  The problem exists in
-	  # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1.
-	  *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*)
-	    pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
-	  *-*-hpux*)
-	    pic_flag_for_symtable=" $pic_flag"  ;;
-	  *)
-	    if test "X$my_pic_p" != Xno; then
-	      pic_flag_for_symtable=" $pic_flag"
-	    fi
-	    ;;
-	  esac
-	  ;;
-	esac
-	symtab_cflags=
-	for arg in $LTCFLAGS; do
-	  case $arg in
-	  -pie | -fpie | -fPIE) ;;
-	  *) func_append symtab_cflags " $arg" ;;
-	  esac
-	done
-
-	# Now compile the dynamic symbol file.
-	func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
-
-	# Clean up the generated files.
-	func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
-
-	# Transform the symbol file into the correct name.
-	symfileobj="$output_objdir/${my_outputname}S.$objext"
-	case $host in
-	*cygwin* | *mingw* | *cegcc* )
-	  if test -f "$output_objdir/$my_outputname.def"; then
-	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
-	  else
-	    compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-	    finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-	  fi
-	  ;;
-	*)
-	  compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-	  finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"`
-	  ;;
-	esac
-	;;
-      *)
-	func_fatal_error "unknown suffix for \`$my_dlsyms'"
-	;;
-      esac
-    else
-      # We keep going just in case the user didn't refer to
-      # lt_preloaded_symbols.  The linker will fail if global_symbol_pipe
-      # really was required.
-
-      # Nullify the symbol file.
-      compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"`
-      finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"`
-    fi
-}
-
-# func_win32_libid arg
-# return the library type of file 'arg'
-#
-# Need a lot of goo to handle *both* DLLs and import libs
-# Has to be a shell function in order to 'eat' the argument
-# that is supplied when $file_magic_command is called.
-# Despite the name, also deal with 64 bit binaries.
-func_win32_libid ()
-{
-  $opt_debug
-  win32_libid_type="unknown"
-  win32_fileres=`file -L $1 2>/dev/null`
-  case $win32_fileres in
-  *ar\ archive\ import\ library*) # definitely import
-    win32_libid_type="x86 archive import"
-    ;;
-  *ar\ archive*) # could be an import, or static
-    # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD.
-    if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null |
-       $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then
-      func_to_tool_file "$1" func_convert_file_msys_to_w32
-      win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" |
-	$SED -n -e '
-	    1,100{
-		/ I /{
-		    s,.*,import,
-		    p
-		    q
-		}
-	    }'`
-      case $win32_nmres in
-      import*)  win32_libid_type="x86 archive import";;
-      *)        win32_libid_type="x86 archive static";;
-      esac
-    fi
-    ;;
-  *DLL*)
-    win32_libid_type="x86 DLL"
-    ;;
-  *executable*) # but shell scripts are "executable" too...
-    case $win32_fileres in
-    *MS\ Windows\ PE\ Intel*)
-      win32_libid_type="x86 DLL"
-      ;;
-    esac
-    ;;
-  esac
-  $ECHO "$win32_libid_type"
-}
-
-# func_cygming_dll_for_implib ARG
-#
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-# Invoked by eval'ing the libtool variable
-#    $sharedlib_from_linklib_cmd
-# Result is available in the variable
-#    $sharedlib_from_linklib_result
-func_cygming_dll_for_implib ()
-{
-  $opt_debug
-  sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"`
-}
-
-# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs
-#
-# The is the core of a fallback implementation of a
-# platform-specific function to extract the name of the
-# DLL associated with the specified import library LIBNAME.
-#
-# SECTION_NAME is either .idata$6 or .idata$7, depending
-# on the platform and compiler that created the implib.
-#
-# Echos the name of the DLL associated with the
-# specified import library.
-func_cygming_dll_for_implib_fallback_core ()
-{
-  $opt_debug
-  match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"`
-  $OBJDUMP -s --section "$1" "$2" 2>/dev/null |
-    $SED '/^Contents of section '"$match_literal"':/{
-      # Place marker at beginning of archive member dllname section
-      s/.*/====MARK====/
-      p
-      d
-    }
-    # These lines can sometimes be longer than 43 characters, but
-    # are always uninteresting
-    /:[	 ]*file format pe[i]\{,1\}-/d
-    /^In archive [^:]*:/d
-    # Ensure marker is printed
-    /^====MARK====/p
-    # Remove all lines with less than 43 characters
-    /^.\{43\}/!d
-    # From remaining lines, remove first 43 characters
-    s/^.\{43\}//' |
-    $SED -n '
-      # Join marker and all lines until next marker into a single line
-      /^====MARK====/ b para
-      H
-      $ b para
-      b
-      :para
-      x
-      s/\n//g
-      # Remove the marker
-      s/^====MARK====//
-      # Remove trailing dots and whitespace
-      s/[\. \t]*$//
-      # Print
-      /./p' |
-    # we now have a list, one entry per line, of the stringified
-    # contents of the appropriate section of all members of the
-    # archive which possess that section. Heuristic: eliminate
-    # all those which have a first or second character that is
-    # a '.' (that is, objdump's representation of an unprintable
-    # character.) This should work for all archives with less than
-    # 0x302f exports -- but will fail for DLLs whose name actually
-    # begins with a literal '.' or a single character followed by
-    # a '.'.
-    #
-    # Of those that remain, print the first one.
-    $SED -e '/^\./d;/^.\./d;q'
-}
-
-# func_cygming_gnu_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is a GNU/binutils-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_gnu_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'`
-  test -n "$func_cygming_gnu_implib_tmp"
-}
-
-# func_cygming_ms_implib_p ARG
-# This predicate returns with zero status (TRUE) if
-# ARG is an MS-style import library. Returns
-# with nonzero status (FALSE) otherwise.
-func_cygming_ms_implib_p ()
-{
-  $opt_debug
-  func_to_tool_file "$1" func_convert_file_msys_to_w32
-  func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'`
-  test -n "$func_cygming_ms_implib_tmp"
-}
-
-# func_cygming_dll_for_implib_fallback ARG
-# Platform-specific function to extract the
-# name of the DLL associated with the specified
-# import library ARG.
-#
-# This fallback implementation is for use when $DLLTOOL
-# does not support the --identify-strict option.
-# Invoked by eval'ing the libtool variable
-#    $sharedlib_from_linklib_cmd
-# Result is available in the variable
-#    $sharedlib_from_linklib_result
-func_cygming_dll_for_implib_fallback ()
-{
-  $opt_debug
-  if func_cygming_gnu_implib_p "$1" ; then
-    # binutils import library
-    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"`
-  elif func_cygming_ms_implib_p "$1" ; then
-    # ms-generated import library
-    sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"`
-  else
-    # unknown
-    sharedlib_from_linklib_result=""
-  fi
-}
-
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
-    $opt_debug
-    f_ex_an_ar_dir="$1"; shift
-    f_ex_an_ar_oldlib="$1"
-    if test "$lock_old_archive_extraction" = yes; then
-      lockfile=$f_ex_an_ar_oldlib.lock
-      until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do
-	func_echo "Waiting for $lockfile to be removed"
-	sleep 2
-      done
-    fi
-    func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \
-		   'stat=$?; rm -f "$lockfile"; exit $stat'
-    if test "$lock_old_archive_extraction" = yes; then
-      $opt_dry_run || rm -f "$lockfile"
-    fi
-    if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then
-     :
-    else
-      func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
-    fi
-}
-
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
-    $opt_debug
-    my_gentop="$1"; shift
-    my_oldlibs=${1+"$@"}
-    my_oldobjs=""
-    my_xlib=""
-    my_xabs=""
-    my_xdir=""
-
-    for my_xlib in $my_oldlibs; do
-      # Extract the objects.
-      case $my_xlib in
-	[\\/]* | [A-Za-z]:[\\/]*) my_xabs="$my_xlib" ;;
-	*) my_xabs=`pwd`"/$my_xlib" ;;
-      esac
-      func_basename "$my_xlib"
-      my_xlib="$func_basename_result"
-      my_xlib_u=$my_xlib
-      while :; do
-        case " $extracted_archives " in
-	*" $my_xlib_u "*)
-	  func_arith $extracted_serial + 1
-	  extracted_serial=$func_arith_result
-	  my_xlib_u=lt$extracted_serial-$my_xlib ;;
-	*) break ;;
-	esac
-      done
-      extracted_archives="$extracted_archives $my_xlib_u"
-      my_xdir="$my_gentop/$my_xlib_u"
-
-      func_mkdir_p "$my_xdir"
-
-      case $host in
-      *-darwin*)
-	func_verbose "Extracting $my_xabs"
-	# Do not bother doing anything if just a dry run
-	$opt_dry_run || {
-	  darwin_orig_dir=`pwd`
-	  cd $my_xdir || exit $?
-	  darwin_archive=$my_xabs
-	  darwin_curdir=`pwd`
-	  darwin_base_archive=`basename "$darwin_archive"`
-	  darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
-	  if test -n "$darwin_arches"; then
-	    darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
-	    darwin_arch=
-	    func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
-	    for darwin_arch in  $darwin_arches ; do
-	      func_mkdir_p "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-	      $LIPO -thin $darwin_arch -output "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}" "${darwin_archive}"
-	      cd "unfat-$$/${darwin_base_archive}-${darwin_arch}"
-	      func_extract_an_archive "`pwd`" "${darwin_base_archive}"
-	      cd "$darwin_curdir"
-	      $RM "unfat-$$/${darwin_base_archive}-${darwin_arch}/${darwin_base_archive}"
-	    done # $darwin_arches
-            ## Okay now we've a bunch of thin objects, gotta fatten them up :)
-	    darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
-	    darwin_file=
-	    darwin_files=
-	    for darwin_file in $darwin_filelist; do
-	      darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP`
-	      $LIPO -create -output "$darwin_file" $darwin_files
-	    done # $darwin_filelist
-	    $RM -rf unfat-$$
-	    cd "$darwin_orig_dir"
-	  else
-	    cd $darwin_orig_dir
-	    func_extract_an_archive "$my_xdir" "$my_xabs"
-	  fi # $darwin_arches
-	} # !$opt_dry_run
-	;;
-      *)
-        func_extract_an_archive "$my_xdir" "$my_xabs"
-	;;
-      esac
-      my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP`
-    done
-
-    func_extract_archives_result="$my_oldobjs"
-}
-
-
-# func_emit_wrapper [arg=no]
-#
-# Emit a libtool wrapper script on stdout.
-# Don't directly open a file because we may want to
-# incorporate the script contents within a cygwin/mingw
-# wrapper executable.  Must ONLY be called from within
-# func_mode_link because it depends on a number of variables
-# set therein.
-#
-# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
-# variable will take.  If 'yes', then the emitted script
-# will assume that the directory in which it is stored is
-# the $objdir directory.  This is a cygwin/mingw-specific
-# behavior.
-func_emit_wrapper ()
-{
-	func_emit_wrapper_arg1=${1-no}
-
-	$ECHO "\
-#! $SHELL
-
-# $output - temporary wrapper script for $objdir/$outputname
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# The $output program cannot be directly executed until all the libtool
-# libraries that it depends on are installed.
-#
-# This wrapper script should never be moved out of the build directory.
-# If it is, it will not operate correctly.
-
-# Sed substitution that helps us do robust quoting.  It backslashifies
-# metacharacters that are still active within double-quoted strings.
-sed_quote_subst='$sed_quote_subst'
-
-# Be Bourne compatible
-if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then
-  emulate sh
-  NULLCMD=:
-  # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which
-  # is contrary to our usage.  Disable this feature.
-  alias -g '\${1+\"\$@\"}'='\"\$@\"'
-  setopt NO_GLOB_SUBST
-else
-  case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac
-fi
-BIN_SH=xpg4; export BIN_SH # for Tru64
-DUALCASE=1; export DUALCASE # for MKS sh
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-relink_command=\"$relink_command\"
-
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
-  # install mode needs the following variables:
-  generated_by_libtool_version='$macro_version'
-  notinst_deplibs='$notinst_deplibs'
-else
-  # When we are sourced in execute mode, \$file and \$ECHO are already set.
-  if test \"\$libtool_execute_magic\" != \"$magic\"; then
-    file=\"\$0\""
-
-    qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"`
-    $ECHO "\
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-\$1
-_LTECHO_EOF'
-}
-    ECHO=\"$qECHO\"
-  fi
-
-# Very basic option parsing. These options are (a) specific to
-# the libtool wrapper, (b) are identical between the wrapper
-# /script/ and the wrapper /executable/ which is used only on
-# windows platforms, and (c) all begin with the string "--lt-"
-# (application programs are unlikely to have options which match
-# this pattern).
-#
-# There are only two supported options: --lt-debug and
-# --lt-dump-script. There is, deliberately, no --lt-help.
-#
-# The first argument to this parsing function should be the
-# script's $0 value, followed by "$@".
-lt_option_debug=
-func_parse_lt_options ()
-{
-  lt_script_arg0=\$0
-  shift
-  for lt_opt
-  do
-    case \"\$lt_opt\" in
-    --lt-debug) lt_option_debug=1 ;;
-    --lt-dump-script)
-        lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\`
-        test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=.
-        lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\`
-        cat \"\$lt_dump_D/\$lt_dump_F\"
-        exit 0
-      ;;
-    --lt-*)
-        \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2
-        exit 1
-      ;;
-    esac
-  done
-
-  # Print the debug banner immediately:
-  if test -n \"\$lt_option_debug\"; then
-    echo \"${outputname}:${output}:\${LINENO}: libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\" 1>&2
-  fi
-}
-
-# Used when --lt-debug. Prints its arguments to stdout
-# (redirection is the responsibility of the caller)
-func_lt_dump_args ()
-{
-  lt_dump_args_N=1;
-  for lt_arg
-  do
-    \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[\$lt_dump_args_N]: \$lt_arg\"
-    lt_dump_args_N=\`expr \$lt_dump_args_N + 1\`
-  done
-}
-
-# Core function for launching the target application
-func_exec_program_core ()
-{
-"
-  case $host in
-  # Backslashes separate directories on plain windows
-  *-*-mingw | *-*-os2* | *-cegcc*)
-    $ECHO "\
-      if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir\\\\\$program\" 1>&2
-        func_lt_dump_args \${1+\"\$@\"} 1>&2
-      fi
-      exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
-"
-    ;;
-
-  *)
-    $ECHO "\
-      if test -n \"\$lt_option_debug\"; then
-        \$ECHO \"${outputname}:${output}:\${LINENO}: newargv[0]: \$progdir/\$program\" 1>&2
-        func_lt_dump_args \${1+\"\$@\"} 1>&2
-      fi
-      exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
-    ;;
-  esac
-  $ECHO "\
-      \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
-      exit 1
-}
-
-# A function to encapsulate launching the target application
-# Strips options in the --lt-* namespace from \$@ and
-# launches target application with the remaining arguments.
-func_exec_program ()
-{
-  case \" \$* \" in
-  *\\ --lt-*)
-    for lt_wr_arg
-    do
-      case \$lt_wr_arg in
-      --lt-*) ;;
-      *) set x \"\$@\" \"\$lt_wr_arg\"; shift;;
-      esac
-      shift
-    done ;;
-  esac
-  func_exec_program_core \${1+\"\$@\"}
-}
-
-  # Parse options
-  func_parse_lt_options \"\$0\" \${1+\"\$@\"}
-
-  # Find the directory that this script lives in.
-  thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\`
-  test \"x\$thisdir\" = \"x\$file\" && thisdir=.
-
-  # Follow symbolic links until we get to the real thisdir.
-  file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\`
-  while test -n \"\$file\"; do
-    destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\`
-
-    # If there was a directory component, then change thisdir.
-    if test \"x\$destdir\" != \"x\$file\"; then
-      case \"\$destdir\" in
-      [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;;
-      *) thisdir=\"\$thisdir/\$destdir\" ;;
-      esac
-    fi
-
-    file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\`
-    file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\`
-  done
-
-  # Usually 'no', except on cygwin/mingw when embedded into
-  # the cwrapper.
-  WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1
-  if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
-    # special case for '.'
-    if test \"\$thisdir\" = \".\"; then
-      thisdir=\`pwd\`
-    fi
-    # remove .libs from thisdir
-    case \"\$thisdir\" in
-    *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;;
-    $objdir )   thisdir=. ;;
-    esac
-  fi
-
-  # Try to get the absolute directory name.
-  absdir=\`cd \"\$thisdir\" && pwd\`
-  test -n \"\$absdir\" && thisdir=\"\$absdir\"
-"
-
-	if test "$fast_install" = yes; then
-	  $ECHO "\
-  program=lt-'$outputname'$exeext
-  progdir=\"\$thisdir/$objdir\"
-
-  if test ! -f \"\$progdir/\$program\" ||
-     { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | ${SED} 1q\`; \\
-       test \"X\$file\" != \"X\$progdir/\$program\"; }; then
-
-    file=\"\$\$-\$program\"
-
-    if test ! -d \"\$progdir\"; then
-      $MKDIR \"\$progdir\"
-    else
-      $RM \"\$progdir/\$file\"
-    fi"
-
-	  $ECHO "\
-
-    # relink executable if necessary
-    if test -n \"\$relink_command\"; then
-      if relink_command_output=\`eval \$relink_command 2>&1\`; then :
-      else
-	$ECHO \"\$relink_command_output\" >&2
-	$RM \"\$progdir/\$file\"
-	exit 1
-      fi
-    fi
-
-    $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
-    { $RM \"\$progdir/\$program\";
-      $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
-    $RM \"\$progdir/\$file\"
-  fi"
-	else
-	  $ECHO "\
-  program='$outputname'
-  progdir=\"\$thisdir/$objdir\"
-"
-	fi
-
-	$ECHO "\
-
-  if test -f \"\$progdir/\$program\"; then"
-
-	# fixup the dll searchpath if we need to.
-	#
-	# Fix the DLL searchpath if we need to.  Do this before prepending
-	# to shlibpath, because on Windows, both are PATH and uninstalled
-	# libraries must come first.
-	if test -n "$dllsearchpath"; then
-	  $ECHO "\
-    # Add the dll search path components to the executable PATH
-    PATH=$dllsearchpath:\$PATH
-"
-	fi
-
-	# Export our shlibpath_var if we have one.
-	if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-	  $ECHO "\
-    # Add our own library path to $shlibpath_var
-    $shlibpath_var=\"$temp_rpath\$$shlibpath_var\"
-
-    # Some systems cannot cope with colon-terminated $shlibpath_var
-    # The second colon is a workaround for a bug in BeOS R4 sed
-    $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\`
-
-    export $shlibpath_var
-"
-	fi
-
-	$ECHO "\
-    if test \"\$libtool_execute_magic\" != \"$magic\"; then
-      # Run the actual program with our arguments.
-      func_exec_program \${1+\"\$@\"}
-    fi
-  else
-    # The program doesn't exist.
-    \$ECHO \"\$0: error: \\\`\$progdir/\$program' does not exist\" 1>&2
-    \$ECHO \"This script is just a wrapper for \$program.\" 1>&2
-    \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2
-    exit 1
-  fi
-fi\
-"
-}
-
-
-# func_emit_cwrapperexe_src
-# emit the source code for a wrapper executable on stdout
-# Must ONLY be called from within func_mode_link because
-# it depends on a number of variable set therein.
-func_emit_cwrapperexe_src ()
-{
-	cat <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
-   Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-
-   The $output program cannot be directly executed until all the libtool
-   libraries that it depends on are installed.
-
-   This wrapper executable should never be moved out of the build directory.
-   If it is, it will not operate correctly.
-*/
-EOF
-	    cat <<"EOF"
-#ifdef _MSC_VER
-# define _CRT_SECURE_NO_DEPRECATE 1
-#endif
-#include <stdio.h>
-#include <stdlib.h>
-#ifdef _MSC_VER
-# include <direct.h>
-# include <process.h>
-# include <io.h>
-#else
-# include <unistd.h>
-# include <stdint.h>
-# ifdef __CYGWIN__
-#  include <io.h>
-# endif
-#endif
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <sys/stat.h>
-
-/* declarations of non-ANSI functions */
-#if defined(__MINGW32__)
-# ifdef __STRICT_ANSI__
-int _putenv (const char *);
-# endif
-#elif defined(__CYGWIN__)
-# ifdef __STRICT_ANSI__
-char *realpath (const char *, char *);
-int putenv (char *);
-int setenv (const char *, const char *, int);
-# endif
-/* #elif defined (other platforms) ... */
-#endif
-
-/* portability defines, excluding path handling macros */
-#if defined(_MSC_VER)
-# define setmode _setmode
-# define stat    _stat
-# define chmod   _chmod
-# define getcwd  _getcwd
-# define putenv  _putenv
-# define S_IXUSR _S_IEXEC
-# ifndef _INTPTR_T_DEFINED
-#  define _INTPTR_T_DEFINED
-#  define intptr_t int
-# endif
-#elif defined(__MINGW32__)
-# define setmode _setmode
-# define stat    _stat
-# define chmod   _chmod
-# define getcwd  _getcwd
-# define putenv  _putenv
-#elif defined(__CYGWIN__)
-# define HAVE_SETENV
-# define FOPEN_WB "wb"
-/* #elif defined (other platforms) ... */
-#endif
-
-#if defined(PATH_MAX)
-# define LT_PATHMAX PATH_MAX
-#elif defined(MAXPATHLEN)
-# define LT_PATHMAX MAXPATHLEN
-#else
-# define LT_PATHMAX 1024
-#endif
-
-#ifndef S_IXOTH
-# define S_IXOTH 0
-#endif
-#ifndef S_IXGRP
-# define S_IXGRP 0
-#endif
-
-/* path handling portability macros */
-#ifndef DIR_SEPARATOR
-# define DIR_SEPARATOR '/'
-# define PATH_SEPARATOR ':'
-#endif
-
-#if defined (_WIN32) || defined (__MSDOS__) || defined (__DJGPP__) || \
-  defined (__OS2__)
-# define HAVE_DOS_BASED_FILE_SYSTEM
-# define FOPEN_WB "wb"
-# ifndef DIR_SEPARATOR_2
-#  define DIR_SEPARATOR_2 '\\'
-# endif
-# ifndef PATH_SEPARATOR_2
-#  define PATH_SEPARATOR_2 ';'
-# endif
-#endif
-
-#ifndef DIR_SEPARATOR_2
-# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR)
-#else /* DIR_SEPARATOR_2 */
-# define IS_DIR_SEPARATOR(ch) \
-	(((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2))
-#endif /* DIR_SEPARATOR_2 */
-
-#ifndef PATH_SEPARATOR_2
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR)
-#else /* PATH_SEPARATOR_2 */
-# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2)
-#endif /* PATH_SEPARATOR_2 */
-
-#ifndef FOPEN_WB
-# define FOPEN_WB "w"
-#endif
-#ifndef _O_BINARY
-# define _O_BINARY 0
-#endif
-
-#define XMALLOC(type, num)      ((type *) xmalloc ((num) * sizeof(type)))
-#define XFREE(stale) do { \
-  if (stale) { free ((void *) stale); stale = 0; } \
-} while (0)
-
-#if defined(LT_DEBUGWRAPPER)
-static int lt_debug = 1;
-#else
-static int lt_debug = 0;
-#endif
-
-const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */
-
-void *xmalloc (size_t num);
-char *xstrdup (const char *string);
-const char *base_name (const char *name);
-char *find_executable (const char *wrapper);
-char *chase_symlinks (const char *pathspec);
-int make_executable (const char *path);
-int check_executable (const char *path);
-char *strendzap (char *str, const char *pat);
-void lt_debugprintf (const char *file, int line, const char *fmt, ...);
-void lt_fatal (const char *file, int line, const char *message, ...);
-static const char *nonnull (const char *s);
-static const char *nonempty (const char *s);
-void lt_setenv (const char *name, const char *value);
-char *lt_extend_str (const char *orig_value, const char *add, int to_end);
-void lt_update_exe_path (const char *name, const char *value);
-void lt_update_lib_path (const char *name, const char *value);
-char **prepare_spawn (char **argv);
-void lt_dump_script (FILE *f);
-EOF
-
-	    cat <<EOF
-volatile const char * MAGIC_EXE = "$magic_exe";
-const char * LIB_PATH_VARNAME = "$shlibpath_var";
-EOF
-
-	    if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
-              func_to_host_path "$temp_rpath"
-	      cat <<EOF
-const char * LIB_PATH_VALUE   = "$func_to_host_path_result";
-EOF
-	    else
-	      cat <<"EOF"
-const char * LIB_PATH_VALUE   = "";
-EOF
-	    fi
-
-	    if test -n "$dllsearchpath"; then
-              func_to_host_path "$dllsearchpath:"
-	      cat <<EOF
-const char * EXE_PATH_VARNAME = "PATH";
-const char * EXE_PATH_VALUE   = "$func_to_host_path_result";
-EOF
-	    else
-	      cat <<"EOF"
-const char * EXE_PATH_VARNAME = "";
-const char * EXE_PATH_VALUE   = "";
-EOF
-	    fi
-
-	    if test "$fast_install" = yes; then
-	      cat <<EOF
-const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
-EOF
-	    else
-	      cat <<EOF
-const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
-EOF
-	    fi
-
-
-	    cat <<"EOF"
-
-#define LTWRAPPER_OPTION_PREFIX         "--lt-"
-
-static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
-static const char *dumpscript_opt       = LTWRAPPER_OPTION_PREFIX "dump-script";
-static const char *debug_opt            = LTWRAPPER_OPTION_PREFIX "debug";
-
-int
-main (int argc, char *argv[])
-{
-  char **newargz;
-  int  newargc;
-  char *tmp_pathspec;
-  char *actual_cwrapper_path;
-  char *actual_cwrapper_name;
-  char *target_name;
-  char *lt_argv_zero;
-  intptr_t rval = 127;
-
-  int i;
-
-  program_name = (char *) xstrdup (base_name (argv[0]));
-  newargz = XMALLOC (char *, argc + 1);
-
-  /* very simple arg parsing; don't want to rely on getopt
-   * also, copy all non cwrapper options to newargz, except
-   * argz[0], which is handled differently
-   */
-  newargc=0;
-  for (i = 1; i < argc; i++)
-    {
-      if (strcmp (argv[i], dumpscript_opt) == 0)
-	{
-EOF
-	    case "$host" in
-	      *mingw* | *cygwin* )
-		# make stdout use "unix" line endings
-		echo "          setmode(1,_O_BINARY);"
-		;;
-	      esac
-
-	    cat <<"EOF"
-	  lt_dump_script (stdout);
-	  return 0;
-	}
-      if (strcmp (argv[i], debug_opt) == 0)
-	{
-          lt_debug = 1;
-          continue;
-	}
-      if (strcmp (argv[i], ltwrapper_option_prefix) == 0)
-        {
-          /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
-             namespace, but it is not one of the ones we know about and
-             have already dealt with, above (inluding dump-script), then
-             report an error. Otherwise, targets might begin to believe
-             they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
-             namespace. The first time any user complains about this, we'll
-             need to make LTWRAPPER_OPTION_PREFIX a configure-time option
-             or a configure.ac-settable value.
-           */
-          lt_fatal (__FILE__, __LINE__,
-		    "unrecognized %s option: '%s'",
-                    ltwrapper_option_prefix, argv[i]);
-        }
-      /* otherwise ... */
-      newargz[++newargc] = xstrdup (argv[i]);
-    }
-  newargz[++newargc] = NULL;
-
-EOF
-	    cat <<EOF
-  /* The GNU banner must be the first non-error debug message */
-  lt_debugprintf (__FILE__, __LINE__, "libtool wrapper (GNU $PACKAGE$TIMESTAMP) $VERSION\n");
-EOF
-	    cat <<"EOF"
-  lt_debugprintf (__FILE__, __LINE__, "(main) argv[0]: %s\n", argv[0]);
-  lt_debugprintf (__FILE__, __LINE__, "(main) program_name: %s\n", program_name);
-
-  tmp_pathspec = find_executable (argv[0]);
-  if (tmp_pathspec == NULL)
-    lt_fatal (__FILE__, __LINE__, "couldn't find %s", argv[0]);
-  lt_debugprintf (__FILE__, __LINE__,
-                  "(main) found exe (before symlink chase) at: %s\n",
-		  tmp_pathspec);
-
-  actual_cwrapper_path = chase_symlinks (tmp_pathspec);
-  lt_debugprintf (__FILE__, __LINE__,
-                  "(main) found exe (after symlink chase) at: %s\n",
-		  actual_cwrapper_path);
-  XFREE (tmp_pathspec);
-
-  actual_cwrapper_name = xstrdup (base_name (actual_cwrapper_path));
-  strendzap (actual_cwrapper_path, actual_cwrapper_name);
-
-  /* wrapper name transforms */
-  strendzap (actual_cwrapper_name, ".exe");
-  tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
-  XFREE (actual_cwrapper_name);
-  actual_cwrapper_name = tmp_pathspec;
-  tmp_pathspec = 0;
-
-  /* target_name transforms -- use actual target program name; might have lt- prefix */
-  target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
-  strendzap (target_name, ".exe");
-  tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
-  XFREE (target_name);
-  target_name = tmp_pathspec;
-  tmp_pathspec = 0;
-
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(main) libtool target name: %s\n",
-		  target_name);
-EOF
-
-	    cat <<EOF
-  newargz[0] =
-    XMALLOC (char, (strlen (actual_cwrapper_path) +
-		    strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
-  strcpy (newargz[0], actual_cwrapper_path);
-  strcat (newargz[0], "$objdir");
-  strcat (newargz[0], "/");
-EOF
-
-	    cat <<"EOF"
-  /* stop here, and copy so we don't have to do this twice */
-  tmp_pathspec = xstrdup (newargz[0]);
-
-  /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
-  strcat (newargz[0], actual_cwrapper_name);
-
-  /* DO want the lt- prefix here if it exists, so use target_name */
-  lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
-  XFREE (tmp_pathspec);
-  tmp_pathspec = NULL;
-EOF
-
-	    case $host_os in
-	      mingw*)
-	    cat <<"EOF"
-  {
-    char* p;
-    while ((p = strchr (newargz[0], '\\')) != NULL)
-      {
-	*p = '/';
-      }
-    while ((p = strchr (lt_argv_zero, '\\')) != NULL)
-      {
-	*p = '/';
-      }
-  }
-EOF
-	    ;;
-	    esac
-
-	    cat <<"EOF"
-  XFREE (target_name);
-  XFREE (actual_cwrapper_path);
-  XFREE (actual_cwrapper_name);
-
-  lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
-  lt_setenv ("DUALCASE", "1");  /* for MSK sh */
-  /* Update the DLL searchpath.  EXE_PATH_VALUE ($dllsearchpath) must
-     be prepended before (that is, appear after) LIB_PATH_VALUE ($temp_rpath)
-     because on Windows, both *_VARNAMEs are PATH but uninstalled
-     libraries must come first. */
-  lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
-  lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
-
-  lt_debugprintf (__FILE__, __LINE__, "(main) lt_argv_zero: %s\n",
-		  nonnull (lt_argv_zero));
-  for (i = 0; i < newargc; i++)
-    {
-      lt_debugprintf (__FILE__, __LINE__, "(main) newargz[%d]: %s\n",
-		      i, nonnull (newargz[i]));
-    }
-
-EOF
-
-	    case $host_os in
-	      mingw*)
-		cat <<"EOF"
-  /* execv doesn't actually work on mingw as expected on unix */
-  newargz = prepare_spawn (newargz);
-  rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
-  if (rval == -1)
-    {
-      /* failed to start process */
-      lt_debugprintf (__FILE__, __LINE__,
-		      "(main) failed to launch target \"%s\": %s\n",
-		      lt_argv_zero, nonnull (strerror (errno)));
-      return 127;
-    }
-  return rval;
-EOF
-		;;
-	      *)
-		cat <<"EOF"
-  execv (lt_argv_zero, newargz);
-  return rval; /* =127, but avoids unused variable warning */
-EOF
-		;;
-	    esac
-
-	    cat <<"EOF"
-}
-
-void *
-xmalloc (size_t num)
-{
-  void *p = (void *) malloc (num);
-  if (!p)
-    lt_fatal (__FILE__, __LINE__, "memory exhausted");
-
-  return p;
-}
-
-char *
-xstrdup (const char *string)
-{
-  return string ? strcpy ((char *) xmalloc (strlen (string) + 1),
-			  string) : NULL;
-}
-
-const char *
-base_name (const char *name)
-{
-  const char *base;
-
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  /* Skip over the disk name in MSDOS pathnames. */
-  if (isalpha ((unsigned char) name[0]) && name[1] == ':')
-    name += 2;
-#endif
-
-  for (base = name; *name; name++)
-    if (IS_DIR_SEPARATOR (*name))
-      base = name + 1;
-  return base;
-}
-
-int
-check_executable (const char *path)
-{
-  struct stat st;
-
-  lt_debugprintf (__FILE__, __LINE__, "(check_executable): %s\n",
-                  nonempty (path));
-  if ((!path) || (!*path))
-    return 0;
-
-  if ((stat (path, &st) >= 0)
-      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
-    return 1;
-  else
-    return 0;
-}
-
-int
-make_executable (const char *path)
-{
-  int rval = 0;
-  struct stat st;
-
-  lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n",
-                  nonempty (path));
-  if ((!path) || (!*path))
-    return 0;
-
-  if (stat (path, &st) >= 0)
-    {
-      rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
-    }
-  return rval;
-}
-
-/* Searches for the full path of the wrapper.  Returns
-   newly allocated full path name if found, NULL otherwise
-   Does not chase symlinks, even on platforms that support them.
-*/
-char *
-find_executable (const char *wrapper)
-{
-  int has_slash = 0;
-  const char *p;
-  const char *p_next;
-  /* static buffer for getcwd */
-  char tmp[LT_PATHMAX + 1];
-  int tmp_len;
-  char *concat_name;
-
-  lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n",
-                  nonempty (wrapper));
-
-  if ((wrapper == NULL) || (*wrapper == '\0'))
-    return NULL;
-
-  /* Absolute path? */
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-  if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':')
-    {
-      concat_name = xstrdup (wrapper);
-      if (check_executable (concat_name))
-	return concat_name;
-      XFREE (concat_name);
-    }
-  else
-    {
-#endif
-      if (IS_DIR_SEPARATOR (wrapper[0]))
-	{
-	  concat_name = xstrdup (wrapper);
-	  if (check_executable (concat_name))
-	    return concat_name;
-	  XFREE (concat_name);
-	}
-#if defined (HAVE_DOS_BASED_FILE_SYSTEM)
-    }
-#endif
-
-  for (p = wrapper; *p; p++)
-    if (*p == '/')
-      {
-	has_slash = 1;
-	break;
-      }
-  if (!has_slash)
-    {
-      /* no slashes; search PATH */
-      const char *path = getenv ("PATH");
-      if (path != NULL)
-	{
-	  for (p = path; *p; p = p_next)
-	    {
-	      const char *q;
-	      size_t p_len;
-	      for (q = p; *q; q++)
-		if (IS_PATH_SEPARATOR (*q))
-		  break;
-	      p_len = q - p;
-	      p_next = (*q == '\0' ? q : q + 1);
-	      if (p_len == 0)
-		{
-		  /* empty path: current directory */
-		  if (getcwd (tmp, LT_PATHMAX) == NULL)
-		    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
-                              nonnull (strerror (errno)));
-		  tmp_len = strlen (tmp);
-		  concat_name =
-		    XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
-		  memcpy (concat_name, tmp, tmp_len);
-		  concat_name[tmp_len] = '/';
-		  strcpy (concat_name + tmp_len + 1, wrapper);
-		}
-	      else
-		{
-		  concat_name =
-		    XMALLOC (char, p_len + 1 + strlen (wrapper) + 1);
-		  memcpy (concat_name, p, p_len);
-		  concat_name[p_len] = '/';
-		  strcpy (concat_name + p_len + 1, wrapper);
-		}
-	      if (check_executable (concat_name))
-		return concat_name;
-	      XFREE (concat_name);
-	    }
-	}
-      /* not found in PATH; assume curdir */
-    }
-  /* Relative path | not found in path: prepend cwd */
-  if (getcwd (tmp, LT_PATHMAX) == NULL)
-    lt_fatal (__FILE__, __LINE__, "getcwd failed: %s",
-              nonnull (strerror (errno)));
-  tmp_len = strlen (tmp);
-  concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1);
-  memcpy (concat_name, tmp, tmp_len);
-  concat_name[tmp_len] = '/';
-  strcpy (concat_name + tmp_len + 1, wrapper);
-
-  if (check_executable (concat_name))
-    return concat_name;
-  XFREE (concat_name);
-  return NULL;
-}
-
-char *
-chase_symlinks (const char *pathspec)
-{
-#ifndef S_ISLNK
-  return xstrdup (pathspec);
-#else
-  char buf[LT_PATHMAX];
-  struct stat s;
-  char *tmp_pathspec = xstrdup (pathspec);
-  char *p;
-  int has_symlinks = 0;
-  while (strlen (tmp_pathspec) && !has_symlinks)
-    {
-      lt_debugprintf (__FILE__, __LINE__,
-		      "checking path component for symlinks: %s\n",
-		      tmp_pathspec);
-      if (lstat (tmp_pathspec, &s) == 0)
-	{
-	  if (S_ISLNK (s.st_mode) != 0)
-	    {
-	      has_symlinks = 1;
-	      break;
-	    }
-
-	  /* search backwards for last DIR_SEPARATOR */
-	  p = tmp_pathspec + strlen (tmp_pathspec) - 1;
-	  while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
-	    p--;
-	  if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
-	    {
-	      /* no more DIR_SEPARATORS left */
-	      break;
-	    }
-	  *p = '\0';
-	}
-      else
-	{
-	  lt_fatal (__FILE__, __LINE__,
-		    "error accessing file \"%s\": %s",
-		    tmp_pathspec, nonnull (strerror (errno)));
-	}
-    }
-  XFREE (tmp_pathspec);
-
-  if (!has_symlinks)
-    {
-      return xstrdup (pathspec);
-    }
-
-  tmp_pathspec = realpath (pathspec, buf);
-  if (tmp_pathspec == 0)
-    {
-      lt_fatal (__FILE__, __LINE__,
-		"could not follow symlinks for %s", pathspec);
-    }
-  return xstrdup (tmp_pathspec);
-#endif
-}
-
-char *
-strendzap (char *str, const char *pat)
-{
-  size_t len, patlen;
-
-  assert (str != NULL);
-  assert (pat != NULL);
-
-  len = strlen (str);
-  patlen = strlen (pat);
-
-  if (patlen <= len)
-    {
-      str += len - patlen;
-      if (strcmp (str, pat) == 0)
-	*str = '\0';
-    }
-  return str;
-}
-
-void
-lt_debugprintf (const char *file, int line, const char *fmt, ...)
-{
-  va_list args;
-  if (lt_debug)
-    {
-      (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line);
-      va_start (args, fmt);
-      (void) vfprintf (stderr, fmt, args);
-      va_end (args);
-    }
-}
-
-static void
-lt_error_core (int exit_status, const char *file,
-	       int line, const char *mode,
-	       const char *message, va_list ap)
-{
-  fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode);
-  vfprintf (stderr, message, ap);
-  fprintf (stderr, ".\n");
-
-  if (exit_status >= 0)
-    exit (exit_status);
-}
-
-void
-lt_fatal (const char *file, int line, const char *message, ...)
-{
-  va_list ap;
-  va_start (ap, message);
-  lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap);
-  va_end (ap);
-}
-
-static const char *
-nonnull (const char *s)
-{
-  return s ? s : "(null)";
-}
-
-static const char *
-nonempty (const char *s)
-{
-  return (s && !*s) ? "(empty)" : nonnull (s);
-}
-
-void
-lt_setenv (const char *name, const char *value)
-{
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(lt_setenv) setting '%s' to '%s'\n",
-                  nonnull (name), nonnull (value));
-  {
-#ifdef HAVE_SETENV
-    /* always make a copy, for consistency with !HAVE_SETENV */
-    char *str = xstrdup (value);
-    setenv (name, str, 1);
-#else
-    int len = strlen (name) + 1 + strlen (value) + 1;
-    char *str = XMALLOC (char, len);
-    sprintf (str, "%s=%s", name, value);
-    if (putenv (str) != EXIT_SUCCESS)
-      {
-        XFREE (str);
-      }
-#endif
-  }
-}
-
-char *
-lt_extend_str (const char *orig_value, const char *add, int to_end)
-{
-  char *new_value;
-  if (orig_value && *orig_value)
-    {
-      int orig_value_len = strlen (orig_value);
-      int add_len = strlen (add);
-      new_value = XMALLOC (char, add_len + orig_value_len + 1);
-      if (to_end)
-        {
-          strcpy (new_value, orig_value);
-          strcpy (new_value + orig_value_len, add);
-        }
-      else
-        {
-          strcpy (new_value, add);
-          strcpy (new_value + add_len, orig_value);
-        }
-    }
-  else
-    {
-      new_value = xstrdup (add);
-    }
-  return new_value;
-}
-
-void
-lt_update_exe_path (const char *name, const char *value)
-{
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
-                  nonnull (name), nonnull (value));
-
-  if (name && *name && value && *value)
-    {
-      char *new_value = lt_extend_str (getenv (name), value, 0);
-      /* some systems can't cope with a ':'-terminated path #' */
-      int len = strlen (new_value);
-      while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
-        {
-          new_value[len-1] = '\0';
-        }
-      lt_setenv (name, new_value);
-      XFREE (new_value);
-    }
-}
-
-void
-lt_update_lib_path (const char *name, const char *value)
-{
-  lt_debugprintf (__FILE__, __LINE__,
-		  "(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
-                  nonnull (name), nonnull (value));
-
-  if (name && *name && value && *value)
-    {
-      char *new_value = lt_extend_str (getenv (name), value, 0);
-      lt_setenv (name, new_value);
-      XFREE (new_value);
-    }
-}
-
-EOF
-	    case $host_os in
-	      mingw*)
-		cat <<"EOF"
-
-/* Prepares an argument vector before calling spawn().
-   Note that spawn() does not by itself call the command interpreter
-     (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") :
-      ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
-         GetVersionEx(&v);
-         v.dwPlatformId == VER_PLATFORM_WIN32_NT;
-      }) ? "cmd.exe" : "command.com").
-   Instead it simply concatenates the arguments, separated by ' ', and calls
-   CreateProcess().  We must quote the arguments since Win32 CreateProcess()
-   interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a
-   special way:
-   - Space and tab are interpreted as delimiters. They are not treated as
-     delimiters if they are surrounded by double quotes: "...".
-   - Unescaped double quotes are removed from the input. Their only effect is
-     that within double quotes, space and tab are treated like normal
-     characters.
-   - Backslashes not followed by double quotes are not special.
-   - But 2*n+1 backslashes followed by a double quote become
-     n backslashes followed by a double quote (n >= 0):
-       \" -> "
-       \\\" -> \"
-       \\\\\" -> \\"
- */
-#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037"
-char **
-prepare_spawn (char **argv)
-{
-  size_t argc;
-  char **new_argv;
-  size_t i;
-
-  /* Count number of arguments.  */
-  for (argc = 0; argv[argc] != NULL; argc++)
-    ;
-
-  /* Allocate new argument vector.  */
-  new_argv = XMALLOC (char *, argc + 1);
-
-  /* Put quoted arguments into the new argument vector.  */
-  for (i = 0; i < argc; i++)
-    {
-      const char *string = argv[i];
-
-      if (string[0] == '\0')
-	new_argv[i] = xstrdup ("\"\"");
-      else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL)
-	{
-	  int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL);
-	  size_t length;
-	  unsigned int backslashes;
-	  const char *s;
-	  char *quoted_string;
-	  char *p;
-
-	  length = 0;
-	  backslashes = 0;
-	  if (quote_around)
-	    length++;
-	  for (s = string; *s != '\0'; s++)
-	    {
-	      char c = *s;
-	      if (c == '"')
-		length += backslashes + 1;
-	      length++;
-	      if (c == '\\')
-		backslashes++;
-	      else
-		backslashes = 0;
-	    }
-	  if (quote_around)
-	    length += backslashes + 1;
-
-	  quoted_string = XMALLOC (char, length + 1);
-
-	  p = quoted_string;
-	  backslashes = 0;
-	  if (quote_around)
-	    *p++ = '"';
-	  for (s = string; *s != '\0'; s++)
-	    {
-	      char c = *s;
-	      if (c == '"')
-		{
-		  unsigned int j;
-		  for (j = backslashes + 1; j > 0; j--)
-		    *p++ = '\\';
-		}
-	      *p++ = c;
-	      if (c == '\\')
-		backslashes++;
-	      else
-		backslashes = 0;
-	    }
-	  if (quote_around)
-	    {
-	      unsigned int j;
-	      for (j = backslashes; j > 0; j--)
-		*p++ = '\\';
-	      *p++ = '"';
-	    }
-	  *p = '\0';
-
-	  new_argv[i] = quoted_string;
-	}
-      else
-	new_argv[i] = (char *) string;
-    }
-  new_argv[argc] = NULL;
-
-  return new_argv;
-}
-EOF
-		;;
-	    esac
-
-            cat <<"EOF"
-void lt_dump_script (FILE* f)
-{
-EOF
-	    func_emit_wrapper yes |
-	      $SED -n -e '
-s/^\(.\{79\}\)\(..*\)/\1\
-\2/
-h
-s/\([\\"]\)/\\\1/g
-s/$/\\n/
-s/\([^\n]*\).*/  fputs ("\1", f);/p
-g
-D'
-            cat <<"EOF"
-}
-EOF
-}
-# end: func_emit_cwrapperexe_src
-
-# func_win32_import_lib_p ARG
-# True if ARG is an import lib, as indicated by $file_magic_cmd
-func_win32_import_lib_p ()
-{
-    $opt_debug
-    case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in
-    *import*) : ;;
-    *) false ;;
-    esac
-}
-
-# func_mode_link arg...
-func_mode_link ()
-{
-    $opt_debug
-    case $host in
-    *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-      # It is impossible to link a dll without this setting, and
-      # we shouldn't force the makefile maintainer to figure out
-      # which system we are compiling for in order to pass an extra
-      # flag for every libtool invocation.
-      # allow_undefined=no
-
-      # FIXME: Unfortunately, there are problems with the above when trying
-      # to make a dll which has undefined symbols, in which case not
-      # even a static library is built.  For now, we need to specify
-      # -no-undefined on the libtool link line when we can be certain
-      # that all symbols are satisfied, otherwise we get a static library.
-      allow_undefined=yes
-      ;;
-    *)
-      allow_undefined=yes
-      ;;
-    esac
-    libtool_args=$nonopt
-    base_compile="$nonopt $@"
-    compile_command=$nonopt
-    finalize_command=$nonopt
-
-    compile_rpath=
-    finalize_rpath=
-    compile_shlibpath=
-    finalize_shlibpath=
-    convenience=
-    old_convenience=
-    deplibs=
-    old_deplibs=
-    compiler_flags=
-    linker_flags=
-    dllsearchpath=
-    lib_search_path=`pwd`
-    inst_prefix_dir=
-    new_inherited_linker_flags=
-
-    avoid_version=no
-    bindir=
-    dlfiles=
-    dlprefiles=
-    dlself=no
-    export_dynamic=no
-    export_symbols=
-    export_symbols_regex=
-    generated=
-    libobjs=
-    ltlibs=
-    module=no
-    no_install=no
-    objs=
-    non_pic_objects=
-    precious_files_regex=
-    prefer_static_libs=no
-    preload=no
-    prev=
-    prevarg=
-    release=
-    rpath=
-    xrpath=
-    perm_rpath=
-    temp_rpath=
-    thread_safe=no
-    vinfo=
-    vinfo_number=no
-    weak_libs=
-    single_module="${wl}-single_module"
-    func_infer_tag $base_compile
-
-    # We need to know -static, to get the right output filenames.
-    for arg
-    do
-      case $arg in
-      -shared)
-	test "$build_libtool_libs" != yes && \
-	  func_fatal_configuration "can not build a shared library"
-	build_old_libs=no
-	break
-	;;
-      -all-static | -static | -static-libtool-libs)
-	case $arg in
-	-all-static)
-	  if test "$build_libtool_libs" = yes && test -z "$link_static_flag"; then
-	    func_warning "complete static linking is impossible in this configuration"
-	  fi
-	  if test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=yes
-	  ;;
-	-static)
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=built
-	  ;;
-	-static-libtool-libs)
-	  if test -z "$pic_flag" && test -n "$link_static_flag"; then
-	    dlopen_self=$dlopen_self_static
-	  fi
-	  prefer_static_libs=yes
-	  ;;
-	esac
-	build_libtool_libs=no
-	build_old_libs=yes
-	break
-	;;
-      esac
-    done
-
-    # See if our shared archives depend on static archives.
-    test -n "$old_archive_from_new_cmds" && build_old_libs=yes
-
-    # Go through the arguments, transforming them on the way.
-    while test "$#" -gt 0; do
-      arg="$1"
-      shift
-      func_quote_for_eval "$arg"
-      qarg=$func_quote_for_eval_unquoted_result
-      func_append libtool_args " $func_quote_for_eval_result"
-
-      # If the previous option needs an argument, assign it.
-      if test -n "$prev"; then
-	case $prev in
-	output)
-	  func_append compile_command " @OUTPUT@"
-	  func_append finalize_command " @OUTPUT@"
-	  ;;
-	esac
-
-	case $prev in
-	bindir)
-	  bindir="$arg"
-	  prev=
-	  continue
-	  ;;
-	dlfiles|dlprefiles)
-	  if test "$preload" = no; then
-	    # Add the symbol object into the linking commands.
-	    func_append compile_command " @SYMFILE@"
-	    func_append finalize_command " @SYMFILE@"
-	    preload=yes
-	  fi
-	  case $arg in
-	  *.la | *.lo) ;;  # We handle these cases below.
-	  force)
-	    if test "$dlself" = no; then
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  self)
-	    if test "$prev" = dlprefiles; then
-	      dlself=yes
-	    elif test "$prev" = dlfiles && test "$dlopen_self" != yes; then
-	      dlself=yes
-	    else
-	      dlself=needless
-	      export_dynamic=yes
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  *)
-	    if test "$prev" = dlfiles; then
-	      func_append dlfiles " $arg"
-	    else
-	      func_append dlprefiles " $arg"
-	    fi
-	    prev=
-	    continue
-	    ;;
-	  esac
-	  ;;
-	expsyms)
-	  export_symbols="$arg"
-	  test -f "$arg" \
-	    || func_fatal_error "symbol file \`$arg' does not exist"
-	  prev=
-	  continue
-	  ;;
-	expsyms_regex)
-	  export_symbols_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	framework)
-	  case $host in
-	    *-*-darwin*)
-	      case "$deplibs " in
-		*" $qarg.ltframework "*) ;;
-		*) func_append deplibs " $qarg.ltframework" # this is fixed later
-		   ;;
-	      esac
-	      ;;
-	  esac
-	  prev=
-	  continue
-	  ;;
-	inst_prefix)
-	  inst_prefix_dir="$arg"
-	  prev=
-	  continue
-	  ;;
-	objectlist)
-	  if test -f "$arg"; then
-	    save_arg=$arg
-	    moreargs=
-	    for fil in `cat "$save_arg"`
-	    do
-#	      func_append moreargs " $fil"
-	      arg=$fil
-	      # A libtool-controlled object.
-
-	      # Check to see that this really is a libtool object.
-	      if func_lalib_unsafe_p "$arg"; then
-		pic_object=
-		non_pic_object=
-
-		# Read the .lo file
-		func_source "$arg"
-
-		if test -z "$pic_object" ||
-		   test -z "$non_pic_object" ||
-		   test "$pic_object" = none &&
-		   test "$non_pic_object" = none; then
-		  func_fatal_error "cannot find name of object for \`$arg'"
-		fi
-
-		# Extract subdirectory from the argument.
-		func_dirname "$arg" "/" ""
-		xdir="$func_dirname_result"
-
-		if test "$pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  pic_object="$xdir$pic_object"
-
-		  if test "$prev" = dlfiles; then
-		    if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		      func_append dlfiles " $pic_object"
-		      prev=
-		      continue
-		    else
-		      # If libtool objects are unsupported, then we need to preload.
-		      prev=dlprefiles
-		    fi
-		  fi
-
-		  # CHECK ME:  I think I busted this.  -Ossama
-		  if test "$prev" = dlprefiles; then
-		    # Preload the old-style object.
-		    func_append dlprefiles " $pic_object"
-		    prev=
-		  fi
-
-		  # A PIC object.
-		  func_append libobjs " $pic_object"
-		  arg="$pic_object"
-		fi
-
-		# Non-PIC object.
-		if test "$non_pic_object" != none; then
-		  # Prepend the subdirectory the object is found in.
-		  non_pic_object="$xdir$non_pic_object"
-
-		  # A standard non-PIC object
-		  func_append non_pic_objects " $non_pic_object"
-		  if test -z "$pic_object" || test "$pic_object" = none ; then
-		    arg="$non_pic_object"
-		  fi
-		else
-		  # If the PIC object exists, use it instead.
-		  # $xdir was prepended to $pic_object above.
-		  non_pic_object="$pic_object"
-		  func_append non_pic_objects " $non_pic_object"
-		fi
-	      else
-		# Only an error if not doing a dry-run.
-		if $opt_dry_run; then
-		  # Extract subdirectory from the argument.
-		  func_dirname "$arg" "/" ""
-		  xdir="$func_dirname_result"
-
-		  func_lo2o "$arg"
-		  pic_object=$xdir$objdir/$func_lo2o_result
-		  non_pic_object=$xdir$func_lo2o_result
-		  func_append libobjs " $pic_object"
-		  func_append non_pic_objects " $non_pic_object"
-	        else
-		  func_fatal_error "\`$arg' is not a valid libtool object"
-		fi
-	      fi
-	    done
-	  else
-	    func_fatal_error "link input file \`$arg' does not exist"
-	  fi
-	  arg=$save_arg
-	  prev=
-	  continue
-	  ;;
-	precious_regex)
-	  precious_files_regex="$arg"
-	  prev=
-	  continue
-	  ;;
-	release)
-	  release="-$arg"
-	  prev=
-	  continue
-	  ;;
-	rpath | xrpath)
-	  # We need an absolute path.
-	  case $arg in
-	  [\\/]* | [A-Za-z]:[\\/]*) ;;
-	  *)
-	    func_fatal_error "only absolute run-paths are allowed"
-	    ;;
-	  esac
-	  if test "$prev" = rpath; then
-	    case "$rpath " in
-	    *" $arg "*) ;;
-	    *) func_append rpath " $arg" ;;
-	    esac
-	  else
-	    case "$xrpath " in
-	    *" $arg "*) ;;
-	    *) func_append xrpath " $arg" ;;
-	    esac
-	  fi
-	  prev=
-	  continue
-	  ;;
-	shrext)
-	  shrext_cmds="$arg"
-	  prev=
-	  continue
-	  ;;
-	weak)
-	  func_append weak_libs " $arg"
-	  prev=
-	  continue
-	  ;;
-	xcclinker)
-	  func_append linker_flags " $qarg"
-	  func_append compiler_flags " $qarg"
-	  prev=
-	  func_append compile_command " $qarg"
-	  func_append finalize_command " $qarg"
-	  continue
-	  ;;
-	xcompiler)
-	  func_append compiler_flags " $qarg"
-	  prev=
-	  func_append compile_command " $qarg"
-	  func_append finalize_command " $qarg"
-	  continue
-	  ;;
-	xlinker)
-	  func_append linker_flags " $qarg"
-	  func_append compiler_flags " $wl$qarg"
-	  prev=
-	  func_append compile_command " $wl$qarg"
-	  func_append finalize_command " $wl$qarg"
-	  continue
-	  ;;
-	*)
-	  eval "$prev=\"\$arg\""
-	  prev=
-	  continue
-	  ;;
-	esac
-      fi # test -n "$prev"
-
-      prevarg="$arg"
-
-      case $arg in
-      -all-static)
-	if test -n "$link_static_flag"; then
-	  # See comment for -static flag below, for more details.
-	  func_append compile_command " $link_static_flag"
-	  func_append finalize_command " $link_static_flag"
-	fi
-	continue
-	;;
-
-      -allow-undefined)
-	# FIXME: remove this flag sometime in the future.
-	func_fatal_error "\`-allow-undefined' must not be used because it is the default"
-	;;
-
-      -avoid-version)
-	avoid_version=yes
-	continue
-	;;
-
-      -bindir)
-	prev=bindir
-	continue
-	;;
-
-      -dlopen)
-	prev=dlfiles
-	continue
-	;;
-
-      -dlpreopen)
-	prev=dlprefiles
-	continue
-	;;
-
-      -export-dynamic)
-	export_dynamic=yes
-	continue
-	;;
-
-      -export-symbols | -export-symbols-regex)
-	if test -n "$export_symbols" || test -n "$export_symbols_regex"; then
-	  func_fatal_error "more than one -exported-symbols argument is not allowed"
-	fi
-	if test "X$arg" = "X-export-symbols"; then
-	  prev=expsyms
-	else
-	  prev=expsyms_regex
-	fi
-	continue
-	;;
-
-      -framework)
-	prev=framework
-	continue
-	;;
-
-      -inst-prefix-dir)
-	prev=inst_prefix
-	continue
-	;;
-
-      # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:*
-      # so, if we see these flags be careful not to treat them like -L
-      -L[A-Z][A-Z]*:*)
-	case $with_gcc/$host in
-	no/*-*-irix* | /*-*-irix*)
-	  func_append compile_command " $arg"
-	  func_append finalize_command " $arg"
-	  ;;
-	esac
-	continue
-	;;
-
-      -L*)
-	func_stripname "-L" '' "$arg"
-	if test -z "$func_stripname_result"; then
-	  if test "$#" -gt 0; then
-	    func_fatal_error "require no space between \`-L' and \`$1'"
-	  else
-	    func_fatal_error "need path for \`-L' option"
-	  fi
-	fi
-	func_resolve_sysroot "$func_stripname_result"
-	dir=$func_resolve_sysroot_result
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	*)
-	  absdir=`cd "$dir" && pwd`
-	  test -z "$absdir" && \
-	    func_fatal_error "cannot determine absolute directory name of \`$dir'"
-	  dir="$absdir"
-	  ;;
-	esac
-	case "$deplibs " in
-	*" -L$dir "* | *" $arg "*)
-	  # Will only happen for absolute or sysroot arguments
-	  ;;
-	*)
-	  # Preserve sysroot, but never include relative directories
-	  case $dir in
-	    [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;;
-	    *) func_append deplibs " -L$dir" ;;
-	  esac
-	  func_append lib_search_path " $dir"
-	  ;;
-	esac
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-	  testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'`
-	  case :$dllsearchpath: in
-	  *":$dir:"*) ;;
-	  ::) dllsearchpath=$dir;;
-	  *) func_append dllsearchpath ":$dir";;
-	  esac
-	  case :$dllsearchpath: in
-	  *":$testbindir:"*) ;;
-	  ::) dllsearchpath=$testbindir;;
-	  *) func_append dllsearchpath ":$testbindir";;
-	  esac
-	  ;;
-	esac
-	continue
-	;;
-
-      -l*)
-	if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*)
-	    # These systems don't actually have a C or math library (as such)
-	    continue
-	    ;;
-	  *-*-os2*)
-	    # These systems don't actually have a C library (as such)
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	    # Do not include libc due to us having libc/libc_r.
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C and math libraries are in the System framework
-	    func_append deplibs " System.ltframework"
-	    continue
-	    ;;
-	  *-*-sco3.2v5* | *-*-sco5v6*)
-	    # Causes problems with __ctype
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-	    # Compiler inserts libc in the correct place for threads to work
-	    test "X$arg" = "X-lc" && continue
-	    ;;
-	  esac
-	elif test "X$arg" = "X-lc_r"; then
-	 case $host in
-	 *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	   # Do not include libc_r directly, use -pthread flag.
-	   continue
-	   ;;
-	 esac
-	fi
-	func_append deplibs " $arg"
-	continue
-	;;
-
-      -module)
-	module=yes
-	continue
-	;;
-
-      # Tru64 UNIX uses -model [arg] to determine the layout of C++
-      # classes, name mangling, and exception handling.
-      # Darwin uses the -arch flag to determine output architecture.
-      -model|-arch|-isysroot|--sysroot)
-	func_append compiler_flags " $arg"
-	func_append compile_command " $arg"
-	func_append finalize_command " $arg"
-	prev=xcompiler
-	continue
-	;;
-
-      -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
-      |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
-	func_append compiler_flags " $arg"
-	func_append compile_command " $arg"
-	func_append finalize_command " $arg"
-	case "$new_inherited_linker_flags " in
-	    *" $arg "*) ;;
-	    * ) func_append new_inherited_linker_flags " $arg" ;;
-	esac
-	continue
-	;;
-
-      -multi_module)
-	single_module="${wl}-multi_module"
-	continue
-	;;
-
-      -no-fast-install)
-	fast_install=no
-	continue
-	;;
-
-      -no-install)
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
-	  # The PATH hackery in wrapper scripts is required on Windows
-	  # and Darwin in order for the loader to find any dlls it needs.
-	  func_warning "\`-no-install' is ignored for $host"
-	  func_warning "assuming \`-no-fast-install' instead"
-	  fast_install=no
-	  ;;
-	*) no_install=yes ;;
-	esac
-	continue
-	;;
-
-      -no-undefined)
-	allow_undefined=no
-	continue
-	;;
-
-      -objectlist)
-	prev=objectlist
-	continue
-	;;
-
-      -o) prev=output ;;
-
-      -precious-files-regex)
-	prev=precious_regex
-	continue
-	;;
-
-      -release)
-	prev=release
-	continue
-	;;
-
-      -rpath)
-	prev=rpath
-	continue
-	;;
-
-      -R)
-	prev=xrpath
-	continue
-	;;
-
-      -R*)
-	func_stripname '-R' '' "$arg"
-	dir=$func_stripname_result
-	# We need an absolute path.
-	case $dir in
-	[\\/]* | [A-Za-z]:[\\/]*) ;;
-	=*)
-	  func_stripname '=' '' "$dir"
-	  dir=$lt_sysroot$func_stripname_result
-	  ;;
-	*)
-	  func_fatal_error "only absolute run-paths are allowed"
-	  ;;
-	esac
-	case "$xrpath " in
-	*" $dir "*) ;;
-	*) func_append xrpath " $dir" ;;
-	esac
-	continue
-	;;
-
-      -shared)
-	# The effects of -shared are defined in a previous loop.
-	continue
-	;;
-
-      -shrext)
-	prev=shrext
-	continue
-	;;
-
-      -static | -static-libtool-libs)
-	# The effects of -static are defined in a previous loop.
-	# We used to do the same as -all-static on platforms that
-	# didn't have a PIC flag, but the assumption that the effects
-	# would be equivalent was wrong.  It would break on at least
-	# Digital Unix and AIX.
-	continue
-	;;
-
-      -thread-safe)
-	thread_safe=yes
-	continue
-	;;
-
-      -version-info)
-	prev=vinfo
-	continue
-	;;
-
-      -version-number)
-	prev=vinfo
-	vinfo_number=yes
-	continue
-	;;
-
-      -weak)
-        prev=weak
-	continue
-	;;
-
-      -Wc,*)
-	func_stripname '-Wc,' '' "$arg"
-	args=$func_stripname_result
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-          func_quote_for_eval "$flag"
-	  func_append arg " $func_quote_for_eval_result"
-	  func_append compiler_flags " $func_quote_for_eval_result"
-	done
-	IFS="$save_ifs"
-	func_stripname ' ' '' "$arg"
-	arg=$func_stripname_result
-	;;
-
-      -Wl,*)
-	func_stripname '-Wl,' '' "$arg"
-	args=$func_stripname_result
-	arg=
-	save_ifs="$IFS"; IFS=','
-	for flag in $args; do
-	  IFS="$save_ifs"
-          func_quote_for_eval "$flag"
-	  func_append arg " $wl$func_quote_for_eval_result"
-	  func_append compiler_flags " $wl$func_quote_for_eval_result"
-	  func_append linker_flags " $func_quote_for_eval_result"
-	done
-	IFS="$save_ifs"
-	func_stripname ' ' '' "$arg"
-	arg=$func_stripname_result
-	;;
-
-      -Xcompiler)
-	prev=xcompiler
-	continue
-	;;
-
-      -Xlinker)
-	prev=xlinker
-	continue
-	;;
-
-      -XCClinker)
-	prev=xcclinker
-	continue
-	;;
-
-      # -msg_* for osf cc
-      -msg_*)
-	func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-	;;
-
-      # Flags to be passed through unchanged, with rationale:
-      # -64, -mips[0-9]      enable 64-bit mode for the SGI compiler
-      # -r[0-9][0-9]*        specify processor for the SGI compiler
-      # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler
-      # +DA*, +DD*           enable 64-bit mode for the HP compiler
-      # -q*                  compiler args for the IBM compiler
-      # -m*, -t[45]*, -txscale* architecture-specific flags for GCC
-      # -F/path              path to uninstalled frameworks, gcc on darwin
-      # -p, -pg, --coverage, -fprofile-*  profiling flags for GCC
-      # @file                GCC response files
-      # -tp=*                Portland pgcc target processor selection
-      # --sysroot=*          for sysroot support
-      # -O*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
-      -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
-      -O*|-flto*|-fwhopr*|-fuse-linker-plugin)
-        func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-        func_append compile_command " $arg"
-        func_append finalize_command " $arg"
-        func_append compiler_flags " $arg"
-        continue
-        ;;
-
-      # Some other compiler flag.
-      -* | +*)
-        func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-	;;
-
-      *.$objext)
-	# A standard object.
-	func_append objs " $arg"
-	;;
-
-      *.lo)
-	# A libtool-controlled object.
-
-	# Check to see that this really is a libtool object.
-	if func_lalib_unsafe_p "$arg"; then
-	  pic_object=
-	  non_pic_object=
-
-	  # Read the .lo file
-	  func_source "$arg"
-
-	  if test -z "$pic_object" ||
-	     test -z "$non_pic_object" ||
-	     test "$pic_object" = none &&
-	     test "$non_pic_object" = none; then
-	    func_fatal_error "cannot find name of object for \`$arg'"
-	  fi
-
-	  # Extract subdirectory from the argument.
-	  func_dirname "$arg" "/" ""
-	  xdir="$func_dirname_result"
-
-	  if test "$pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    pic_object="$xdir$pic_object"
-
-	    if test "$prev" = dlfiles; then
-	      if test "$build_libtool_libs" = yes && test "$dlopen_support" = yes; then
-		func_append dlfiles " $pic_object"
-		prev=
-		continue
-	      else
-		# If libtool objects are unsupported, then we need to preload.
-		prev=dlprefiles
-	      fi
-	    fi
-
-	    # CHECK ME:  I think I busted this.  -Ossama
-	    if test "$prev" = dlprefiles; then
-	      # Preload the old-style object.
-	      func_append dlprefiles " $pic_object"
-	      prev=
-	    fi
-
-	    # A PIC object.
-	    func_append libobjs " $pic_object"
-	    arg="$pic_object"
-	  fi
-
-	  # Non-PIC object.
-	  if test "$non_pic_object" != none; then
-	    # Prepend the subdirectory the object is found in.
-	    non_pic_object="$xdir$non_pic_object"
-
-	    # A standard non-PIC object
-	    func_append non_pic_objects " $non_pic_object"
-	    if test -z "$pic_object" || test "$pic_object" = none ; then
-	      arg="$non_pic_object"
-	    fi
-	  else
-	    # If the PIC object exists, use it instead.
-	    # $xdir was prepended to $pic_object above.
-	    non_pic_object="$pic_object"
-	    func_append non_pic_objects " $non_pic_object"
-	  fi
-	else
-	  # Only an error if not doing a dry-run.
-	  if $opt_dry_run; then
-	    # Extract subdirectory from the argument.
-	    func_dirname "$arg" "/" ""
-	    xdir="$func_dirname_result"
-
-	    func_lo2o "$arg"
-	    pic_object=$xdir$objdir/$func_lo2o_result
-	    non_pic_object=$xdir$func_lo2o_result
-	    func_append libobjs " $pic_object"
-	    func_append non_pic_objects " $non_pic_object"
-	  else
-	    func_fatal_error "\`$arg' is not a valid libtool object"
-	  fi
-	fi
-	;;
-
-      *.$libext)
-	# An archive.
-	func_append deplibs " $arg"
-	func_append old_deplibs " $arg"
-	continue
-	;;
-
-      *.la)
-	# A libtool-controlled library.
-
-	func_resolve_sysroot "$arg"
-	if test "$prev" = dlfiles; then
-	  # This library was specified with -dlopen.
-	  func_append dlfiles " $func_resolve_sysroot_result"
-	  prev=
-	elif test "$prev" = dlprefiles; then
-	  # The library was specified with -dlpreopen.
-	  func_append dlprefiles " $func_resolve_sysroot_result"
-	  prev=
-	else
-	  func_append deplibs " $func_resolve_sysroot_result"
-	fi
-	continue
-	;;
-
-      # Some other compiler argument.
-      *)
-	# Unknown arguments in both finalize_command and compile_command need
-	# to be aesthetically quoted because they are evaled later.
-	func_quote_for_eval "$arg"
-	arg="$func_quote_for_eval_result"
-	;;
-      esac # arg
-
-      # Now actually substitute the argument into the commands.
-      if test -n "$arg"; then
-	func_append compile_command " $arg"
-	func_append finalize_command " $arg"
-      fi
-    done # argument parsing loop
-
-    test -n "$prev" && \
-      func_fatal_help "the \`$prevarg' option requires an argument"
-
-    if test "$export_dynamic" = yes && test -n "$export_dynamic_flag_spec"; then
-      eval arg=\"$export_dynamic_flag_spec\"
-      func_append compile_command " $arg"
-      func_append finalize_command " $arg"
-    fi
-
-    oldlibs=
-    # calculate the name of the file, without its directory
-    func_basename "$output"
-    outputname="$func_basename_result"
-    libobjs_save="$libobjs"
-
-    if test -n "$shlibpath_var"; then
-      # get the directories listed in $shlibpath_var
-      eval shlib_search_path=\`\$ECHO \"\${$shlibpath_var}\" \| \$SED \'s/:/ /g\'\`
-    else
-      shlib_search_path=
-    fi
-    eval sys_lib_search_path=\"$sys_lib_search_path_spec\"
-    eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\"
-
-    func_dirname "$output" "/" ""
-    output_objdir="$func_dirname_result$objdir"
-    func_to_tool_file "$output_objdir/"
-    tool_output_objdir=$func_to_tool_file_result
-    # Create the object directory.
-    func_mkdir_p "$output_objdir"
-
-    # Determine the type of output
-    case $output in
-    "")
-      func_fatal_help "you must specify an output file"
-      ;;
-    *.$libext) linkmode=oldlib ;;
-    *.lo | *.$objext) linkmode=obj ;;
-    *.la) linkmode=lib ;;
-    *) linkmode=prog ;; # Anything else should be a program.
-    esac
-
-    specialdeplibs=
-
-    libs=
-    # Find all interdependent deplibs by searching for libraries
-    # that are linked more than once (e.g. -la -lb -la)
-    for deplib in $deplibs; do
-      if $opt_preserve_dup_deps ; then
-	case "$libs " in
-	*" $deplib "*) func_append specialdeplibs " $deplib" ;;
-	esac
-      fi
-      func_append libs " $deplib"
-    done
-
-    if test "$linkmode" = lib; then
-      libs="$predeps $libs $compiler_lib_search_path $postdeps"
-
-      # Compute libraries that are listed more than once in $predeps
-      # $postdeps and mark them as special (i.e., whose duplicates are
-      # not to be eliminated).
-      pre_post_deps=
-      if $opt_duplicate_compiler_generated_deps; then
-	for pre_post_dep in $predeps $postdeps; do
-	  case "$pre_post_deps " in
-	  *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;;
-	  esac
-	  func_append pre_post_deps " $pre_post_dep"
-	done
-      fi
-      pre_post_deps=
-    fi
-
-    deplibs=
-    newdependency_libs=
-    newlib_search_path=
-    need_relink=no # whether we're linking any uninstalled libtool libraries
-    notinst_deplibs= # not-installed libtool libraries
-    notinst_path= # paths that contain not-installed libtool libraries
-
-    case $linkmode in
-    lib)
-	passes="conv dlpreopen link"
-	for file in $dlfiles $dlprefiles; do
-	  case $file in
-	  *.la) ;;
-	  *)
-	    func_fatal_help "libraries can \`-dlopen' only libtool libraries: $file"
-	    ;;
-	  esac
-	done
-	;;
-    prog)
-	compile_deplibs=
-	finalize_deplibs=
-	alldeplibs=no
-	newdlfiles=
-	newdlprefiles=
-	passes="conv scan dlopen dlpreopen link"
-	;;
-    *)  passes="conv"
-	;;
-    esac
-
-    for pass in $passes; do
-      # The preopen pass in lib mode reverses $deplibs; put it back here
-      # so that -L comes before libs that need it for instance...
-      if test "$linkmode,$pass" = "lib,link"; then
-	## FIXME: Find the place where the list is rebuilt in the wrong
-	##        order, and fix it there properly
-        tmp_deplibs=
-	for deplib in $deplibs; do
-	  tmp_deplibs="$deplib $tmp_deplibs"
-	done
-	deplibs="$tmp_deplibs"
-      fi
-
-      if test "$linkmode,$pass" = "lib,link" ||
-	 test "$linkmode,$pass" = "prog,scan"; then
-	libs="$deplibs"
-	deplibs=
-      fi
-      if test "$linkmode" = prog; then
-	case $pass in
-	dlopen) libs="$dlfiles" ;;
-	dlpreopen) libs="$dlprefiles" ;;
-	link) libs="$deplibs %DEPLIBS% $dependency_libs" ;;
-	esac
-      fi
-      if test "$linkmode,$pass" = "lib,dlpreopen"; then
-	# Collect and forward deplibs of preopened libtool libs
-	for lib in $dlprefiles; do
-	  # Ignore non-libtool-libs
-	  dependency_libs=
-	  func_resolve_sysroot "$lib"
-	  case $lib in
-	  *.la)	func_source "$func_resolve_sysroot_result" ;;
-	  esac
-
-	  # Collect preopened libtool deplibs, except any this library
-	  # has declared as weak libs
-	  for deplib in $dependency_libs; do
-	    func_basename "$deplib"
-            deplib_base=$func_basename_result
-	    case " $weak_libs " in
-	    *" $deplib_base "*) ;;
-	    *) func_append deplibs " $deplib" ;;
-	    esac
-	  done
-	done
-	libs="$dlprefiles"
-      fi
-      if test "$pass" = dlopen; then
-	# Collect dlpreopened libraries
-	save_deplibs="$deplibs"
-	deplibs=
-      fi
-
-      for deplib in $libs; do
-	lib=
-	found=no
-	case $deplib in
-	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
-        |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
-	  if test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$deplib $compile_deplibs"
-	    finalize_deplibs="$deplib $finalize_deplibs"
-	  else
-	    func_append compiler_flags " $deplib"
-	    if test "$linkmode" = lib ; then
-		case "$new_inherited_linker_flags " in
-		    *" $deplib "*) ;;
-		    * ) func_append new_inherited_linker_flags " $deplib" ;;
-		esac
-	    fi
-	  fi
-	  continue
-	  ;;
-	-l*)
-	  if test "$linkmode" != lib && test "$linkmode" != prog; then
-	    func_warning "\`-l' is ignored for archives/objects"
-	    continue
-	  fi
-	  func_stripname '-l' '' "$deplib"
-	  name=$func_stripname_result
-	  if test "$linkmode" = lib; then
-	    searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
-	  else
-	    searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
-	  fi
-	  for searchdir in $searchdirs; do
-	    for search_ext in .la $std_shrext .so .a; do
-	      # Search the libtool library
-	      lib="$searchdir/lib${name}${search_ext}"
-	      if test -f "$lib"; then
-		if test "$search_ext" = ".la"; then
-		  found=yes
-		else
-		  found=no
-		fi
-		break 2
-	      fi
-	    done
-	  done
-	  if test "$found" != yes; then
-	    # deplib doesn't seem to be a libtool library
-	    if test "$linkmode,$pass" = "prog,link"; then
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      deplibs="$deplib $deplibs"
-	      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    continue
-	  else # deplib is a libtool library
-	    # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib,
-	    # We need to do some special things here, and not later.
-	    if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	      case " $predeps $postdeps " in
-	      *" $deplib "*)
-		if func_lalib_p "$lib"; then
-		  library_names=
-		  old_library=
-		  func_source "$lib"
-		  for l in $old_library $library_names; do
-		    ll="$l"
-		  done
-		  if test "X$ll" = "X$old_library" ; then # only static version available
-		    found=no
-		    func_dirname "$lib" "" "."
-		    ladir="$func_dirname_result"
-		    lib=$ladir/$old_library
-		    if test "$linkmode,$pass" = "prog,link"; then
-		      compile_deplibs="$deplib $compile_deplibs"
-		      finalize_deplibs="$deplib $finalize_deplibs"
-		    else
-		      deplibs="$deplib $deplibs"
-		      test "$linkmode" = lib && newdependency_libs="$deplib $newdependency_libs"
-		    fi
-		    continue
-		  fi
-		fi
-		;;
-	      *) ;;
-	      esac
-	    fi
-	  fi
-	  ;; # -l
-	*.ltframework)
-	  if test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$deplib $compile_deplibs"
-	    finalize_deplibs="$deplib $finalize_deplibs"
-	  else
-	    deplibs="$deplib $deplibs"
-	    if test "$linkmode" = lib ; then
-		case "$new_inherited_linker_flags " in
-		    *" $deplib "*) ;;
-		    * ) func_append new_inherited_linker_flags " $deplib" ;;
-		esac
-	    fi
-	  fi
-	  continue
-	  ;;
-	-L*)
-	  case $linkmode in
-	  lib)
-	    deplibs="$deplib $deplibs"
-	    test "$pass" = conv && continue
-	    newdependency_libs="$deplib $newdependency_libs"
-	    func_stripname '-L' '' "$deplib"
-	    func_resolve_sysroot "$func_stripname_result"
-	    func_append newlib_search_path " $func_resolve_sysroot_result"
-	    ;;
-	  prog)
-	    if test "$pass" = conv; then
-	      deplibs="$deplib $deplibs"
-	      continue
-	    fi
-	    if test "$pass" = scan; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    func_stripname '-L' '' "$deplib"
-	    func_resolve_sysroot "$func_stripname_result"
-	    func_append newlib_search_path " $func_resolve_sysroot_result"
-	    ;;
-	  *)
-	    func_warning "\`-L' is ignored for archives/objects"
-	    ;;
-	  esac # linkmode
-	  continue
-	  ;; # -L
-	-R*)
-	  if test "$pass" = link; then
-	    func_stripname '-R' '' "$deplib"
-	    func_resolve_sysroot "$func_stripname_result"
-	    dir=$func_resolve_sysroot_result
-	    # Make sure the xrpath contains only unique directories.
-	    case "$xrpath " in
-	    *" $dir "*) ;;
-	    *) func_append xrpath " $dir" ;;
-	    esac
-	  fi
-	  deplibs="$deplib $deplibs"
-	  continue
-	  ;;
-	*.la)
-	  func_resolve_sysroot "$deplib"
-	  lib=$func_resolve_sysroot_result
-	  ;;
-	*.$libext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	    continue
-	  fi
-	  case $linkmode in
-	  lib)
-	    # Linking convenience modules into shared libraries is allowed,
-	    # but linking other static libraries is non-portable.
-	    case " $dlpreconveniencelibs " in
-	    *" $deplib "*) ;;
-	    *)
-	      valid_a_lib=no
-	      case $deplibs_check_method in
-		match_pattern*)
-		  set dummy $deplibs_check_method; shift
-		  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-		  if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \
-		    | $EGREP "$match_pattern_regex" > /dev/null; then
-		    valid_a_lib=yes
-		  fi
-		;;
-		pass_all)
-		  valid_a_lib=yes
-		;;
-	      esac
-	      if test "$valid_a_lib" != yes; then
-		echo
-		$ECHO "*** Warning: Trying to link with static lib archive $deplib."
-		echo "*** I have the capability to make that library automatically link in when"
-		echo "*** you link to this library.  But I can only do this if you have a"
-		echo "*** shared version of the library, which you do not appear to have"
-		echo "*** because the file extensions .$libext of this argument makes me believe"
-		echo "*** that it is just a static archive that I should not use here."
-	      else
-		echo
-		$ECHO "*** Warning: Linking the shared library $output against the"
-		$ECHO "*** static library $deplib is not portable!"
-		deplibs="$deplib $deplibs"
-	      fi
-	      ;;
-	    esac
-	    continue
-	    ;;
-	  prog)
-	    if test "$pass" != link; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    fi
-	    continue
-	    ;;
-	  esac # linkmode
-	  ;; # *.$libext
-	*.lo | *.$objext)
-	  if test "$pass" = conv; then
-	    deplibs="$deplib $deplibs"
-	  elif test "$linkmode" = prog; then
-	    if test "$pass" = dlpreopen || test "$dlopen_support" != yes || test "$build_libtool_libs" = no; then
-	      # If there is no dlopen support or we're linking statically,
-	      # we need to preload.
-	      func_append newdlprefiles " $deplib"
-	      compile_deplibs="$deplib $compile_deplibs"
-	      finalize_deplibs="$deplib $finalize_deplibs"
-	    else
-	      func_append newdlfiles " $deplib"
-	    fi
-	  fi
-	  continue
-	  ;;
-	%DEPLIBS%)
-	  alldeplibs=yes
-	  continue
-	  ;;
-	esac # case $deplib
-
-	if test "$found" = yes || test -f "$lib"; then :
-	else
-	  func_fatal_error "cannot find the library \`$lib' or unhandled argument \`$deplib'"
-	fi
-
-	# Check to see that this really is a libtool archive.
-	func_lalib_unsafe_p "$lib" \
-	  || func_fatal_error "\`$lib' is not a valid libtool archive"
-
-	func_dirname "$lib" "" "."
-	ladir="$func_dirname_result"
-
-	dlname=
-	dlopen=
-	dlpreopen=
-	libdir=
-	library_names=
-	old_library=
-	inherited_linker_flags=
-	# If the library was installed with an old release of libtool,
-	# it will not redefine variables installed, or shouldnotlink
-	installed=yes
-	shouldnotlink=no
-	avoidtemprpath=
-
-
-	# Read the .la file
-	func_source "$lib"
-
-	# Convert "-framework foo" to "foo.ltframework"
-	if test -n "$inherited_linker_flags"; then
-	  tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'`
-	  for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do
-	    case " $new_inherited_linker_flags " in
-	      *" $tmp_inherited_linker_flag "*) ;;
-	      *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";;
-	    esac
-	  done
-	fi
-	dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	if test "$linkmode,$pass" = "lib,link" ||
-	   test "$linkmode,$pass" = "prog,scan" ||
-	   { test "$linkmode" != prog && test "$linkmode" != lib; }; then
-	  test -n "$dlopen" && func_append dlfiles " $dlopen"
-	  test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen"
-	fi
-
-	if test "$pass" = conv; then
-	  # Only check for convenience libraries
-	  deplibs="$lib $deplibs"
-	  if test -z "$libdir"; then
-	    if test -z "$old_library"; then
-	      func_fatal_error "cannot find name of link library for \`$lib'"
-	    fi
-	    # It is a libtool convenience library, so add in its objects.
-	    func_append convenience " $ladir/$objdir/$old_library"
-	    func_append old_convenience " $ladir/$objdir/$old_library"
-	  elif test "$linkmode" != prog && test "$linkmode" != lib; then
-	    func_fatal_error "\`$lib' is not a convenience library"
-	  fi
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    deplibs="$deplib $deplibs"
-	    if $opt_preserve_dup_deps ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
-	      esac
-	    fi
-	    func_append tmp_libs " $deplib"
-	  done
-	  continue
-	fi # $pass = conv
-
-
-	# Get the name of the library we link against.
-	linklib=
-	if test -n "$old_library" &&
-	   { test "$prefer_static_libs" = yes ||
-	     test "$prefer_static_libs,$installed" = "built,no"; }; then
-	  linklib=$old_library
-	else
-	  for l in $old_library $library_names; do
-	    linklib="$l"
-	  done
-	fi
-	if test -z "$linklib"; then
-	  func_fatal_error "cannot find name of link library for \`$lib'"
-	fi
-
-	# This library was specified with -dlopen.
-	if test "$pass" = dlopen; then
-	  if test -z "$libdir"; then
-	    func_fatal_error "cannot -dlopen a convenience library: \`$lib'"
-	  fi
-	  if test -z "$dlname" ||
-	     test "$dlopen_support" != yes ||
-	     test "$build_libtool_libs" = no; then
-	    # If there is no dlname, no dlopen support or we're linking
-	    # statically, we need to preload.  We also need to preload any
-	    # dependent libraries so libltdl's deplib preloader doesn't
-	    # bomb out in the load deplibs phase.
-	    func_append dlprefiles " $lib $dependency_libs"
-	  else
-	    func_append newdlfiles " $lib"
-	  fi
-	  continue
-	fi # $pass = dlopen
-
-	# We need an absolute path.
-	case $ladir in
-	[\\/]* | [A-Za-z]:[\\/]*) abs_ladir="$ladir" ;;
-	*)
-	  abs_ladir=`cd "$ladir" && pwd`
-	  if test -z "$abs_ladir"; then
-	    func_warning "cannot determine absolute directory name of \`$ladir'"
-	    func_warning "passing it literally to the linker, although it might fail"
-	    abs_ladir="$ladir"
-	  fi
-	  ;;
-	esac
-	func_basename "$lib"
-	laname="$func_basename_result"
-
-	# Find the relevant object directory and library name.
-	if test "X$installed" = Xyes; then
-	  if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    func_warning "library \`$lib' was moved."
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    libdir="$abs_ladir"
-	  else
-	    dir="$lt_sysroot$libdir"
-	    absdir="$lt_sysroot$libdir"
-	  fi
-	  test "X$hardcode_automatic" = Xyes && avoidtemprpath=yes
-	else
-	  if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then
-	    dir="$ladir"
-	    absdir="$abs_ladir"
-	    # Remove this search path later
-	    func_append notinst_path " $abs_ladir"
-	  else
-	    dir="$ladir/$objdir"
-	    absdir="$abs_ladir/$objdir"
-	    # Remove this search path later
-	    func_append notinst_path " $abs_ladir"
-	  fi
-	fi # $installed = yes
-	func_stripname 'lib' '.la' "$laname"
-	name=$func_stripname_result
-
-	# This library was specified with -dlpreopen.
-	if test "$pass" = dlpreopen; then
-	  if test -z "$libdir" && test "$linkmode" = prog; then
-	    func_fatal_error "only libraries may -dlpreopen a convenience library: \`$lib'"
-	  fi
-	  case "$host" in
-	    # special handling for platforms with PE-DLLs.
-	    *cygwin* | *mingw* | *cegcc* )
-	      # Linker will automatically link against shared library if both
-	      # static and shared are present.  Therefore, ensure we extract
-	      # symbols from the import library if a shared library is present
-	      # (otherwise, the dlopen module name will be incorrect).  We do
-	      # this by putting the import library name into $newdlprefiles.
-	      # We recover the dlopen module name by 'saving' the la file
-	      # name in a special purpose variable, and (later) extracting the
-	      # dlname from the la file.
-	      if test -n "$dlname"; then
-	        func_tr_sh "$dir/$linklib"
-	        eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname"
-	        func_append newdlprefiles " $dir/$linklib"
-	      else
-	        func_append newdlprefiles " $dir/$old_library"
-	        # Keep a list of preopened convenience libraries to check
-	        # that they are being used correctly in the link pass.
-	        test -z "$libdir" && \
-	          func_append dlpreconveniencelibs " $dir/$old_library"
-	      fi
-	    ;;
-	    * )
-	      # Prefer using a static library (so that no silly _DYNAMIC symbols
-	      # are required to link).
-	      if test -n "$old_library"; then
-	        func_append newdlprefiles " $dir/$old_library"
-	        # Keep a list of preopened convenience libraries to check
-	        # that they are being used correctly in the link pass.
-	        test -z "$libdir" && \
-	          func_append dlpreconveniencelibs " $dir/$old_library"
-	      # Otherwise, use the dlname, so that lt_dlopen finds it.
-	      elif test -n "$dlname"; then
-	        func_append newdlprefiles " $dir/$dlname"
-	      else
-	        func_append newdlprefiles " $dir/$linklib"
-	      fi
-	    ;;
-	  esac
-	fi # $pass = dlpreopen
-
-	if test -z "$libdir"; then
-	  # Link the convenience library
-	  if test "$linkmode" = lib; then
-	    deplibs="$dir/$old_library $deplibs"
-	  elif test "$linkmode,$pass" = "prog,link"; then
-	    compile_deplibs="$dir/$old_library $compile_deplibs"
-	    finalize_deplibs="$dir/$old_library $finalize_deplibs"
-	  else
-	    deplibs="$lib $deplibs" # used for prog,scan pass
-	  fi
-	  continue
-	fi
-
-
-	if test "$linkmode" = prog && test "$pass" != link; then
-	  func_append newlib_search_path " $ladir"
-	  deplibs="$lib $deplibs"
-
-	  linkalldeplibs=no
-	  if test "$link_all_deplibs" != no || test -z "$library_names" ||
-	     test "$build_libtool_libs" = no; then
-	    linkalldeplibs=yes
-	  fi
-
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    case $deplib in
-	    -L*) func_stripname '-L' '' "$deplib"
-	         func_resolve_sysroot "$func_stripname_result"
-	         func_append newlib_search_path " $func_resolve_sysroot_result"
-		 ;;
-	    esac
-	    # Need to link against all dependency_libs?
-	    if test "$linkalldeplibs" = yes; then
-	      deplibs="$deplib $deplibs"
-	    else
-	      # Need to hardcode shared library paths
-	      # or/and link against static libraries
-	      newdependency_libs="$deplib $newdependency_libs"
-	    fi
-	    if $opt_preserve_dup_deps ; then
-	      case "$tmp_libs " in
-	      *" $deplib "*) func_append specialdeplibs " $deplib" ;;
-	      esac
-	    fi
-	    func_append tmp_libs " $deplib"
-	  done # for deplib
-	  continue
-	fi # $linkmode = prog...
-
-	if test "$linkmode,$pass" = "prog,link"; then
-	  if test -n "$library_names" &&
-	     { { test "$prefer_static_libs" = no ||
-	         test "$prefer_static_libs,$installed" = "built,yes"; } ||
-	       test -z "$old_library"; }; then
-	    # We need to hardcode the library path
-	    if test -n "$shlibpath_var" && test -z "$avoidtemprpath" ; then
-	      # Make sure the rpath contains only unique directories.
-	      case "$temp_rpath:" in
-	      *"$absdir:"*) ;;
-	      *) func_append temp_rpath "$absdir:" ;;
-	      esac
-	    fi
-
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) func_append compile_rpath " $absdir" ;;
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) func_append finalize_rpath " $libdir" ;;
-	      esac
-	      ;;
-	    esac
-	  fi # $linkmode,$pass = prog,link...
-
-	  if test "$alldeplibs" = yes &&
-	     { test "$deplibs_check_method" = pass_all ||
-	       { test "$build_libtool_libs" = yes &&
-		 test -n "$library_names"; }; }; then
-	    # We only need to search for static libraries
-	    continue
-	  fi
-	fi
-
-	link_static=no # Whether the deplib will be linked statically
-	use_static_libs=$prefer_static_libs
-	if test "$use_static_libs" = built && test "$installed" = yes; then
-	  use_static_libs=no
-	fi
-	if test -n "$library_names" &&
-	   { test "$use_static_libs" = no || test -z "$old_library"; }; then
-	  case $host in
-	  *cygwin* | *mingw* | *cegcc*)
-	      # No point in relinking DLLs because paths are not encoded
-	      func_append notinst_deplibs " $lib"
-	      need_relink=no
-	    ;;
-	  *)
-	    if test "$installed" = no; then
-	      func_append notinst_deplibs " $lib"
-	      need_relink=yes
-	    fi
-	    ;;
-	  esac
-	  # This is a shared library
-
-	  # Warn about portability, can't link against -module's on some
-	  # systems (darwin).  Don't bleat about dlopened modules though!
-	  dlopenmodule=""
-	  for dlpremoduletest in $dlprefiles; do
-	    if test "X$dlpremoduletest" = "X$lib"; then
-	      dlopenmodule="$dlpremoduletest"
-	      break
-	    fi
-	  done
-	  if test -z "$dlopenmodule" && test "$shouldnotlink" = yes && test "$pass" = link; then
-	    echo
-	    if test "$linkmode" = prog; then
-	      $ECHO "*** Warning: Linking the executable $output against the loadable module"
-	    else
-	      $ECHO "*** Warning: Linking the shared library $output against the loadable module"
-	    fi
-	    $ECHO "*** $linklib is not portable!"
-	  fi
-	  if test "$linkmode" = lib &&
-	     test "$hardcode_into_libs" = yes; then
-	    # Hardcode the library path.
-	    # Skip directories that are in the system default run-time
-	    # search path.
-	    case " $sys_lib_dlsearch_path " in
-	    *" $absdir "*) ;;
-	    *)
-	      case "$compile_rpath " in
-	      *" $absdir "*) ;;
-	      *) func_append compile_rpath " $absdir" ;;
-	      esac
-	      ;;
-	    esac
-	    case " $sys_lib_dlsearch_path " in
-	    *" $libdir "*) ;;
-	    *)
-	      case "$finalize_rpath " in
-	      *" $libdir "*) ;;
-	      *) func_append finalize_rpath " $libdir" ;;
-	      esac
-	      ;;
-	    esac
-	  fi
-
-	  if test -n "$old_archive_from_expsyms_cmds"; then
-	    # figure out the soname
-	    set dummy $library_names
-	    shift
-	    realname="$1"
-	    shift
-	    libname=`eval "\\$ECHO \"$libname_spec\""`
-	    # use dlname if we got it. it's perfectly good, no?
-	    if test -n "$dlname"; then
-	      soname="$dlname"
-	    elif test -n "$soname_spec"; then
-	      # bleh windows
-	      case $host in
-	      *cygwin* | mingw* | *cegcc*)
-	        func_arith $current - $age
-		major=$func_arith_result
-		versuffix="-$major"
-		;;
-	      esac
-	      eval soname=\"$soname_spec\"
-	    else
-	      soname="$realname"
-	    fi
-
-	    # Make a new name for the extract_expsyms_cmds to use
-	    soroot="$soname"
-	    func_basename "$soroot"
-	    soname="$func_basename_result"
-	    func_stripname 'lib' '.dll' "$soname"
-	    newlib=libimp-$func_stripname_result.a
-
-	    # If the library has no export list, then create one now
-	    if test -f "$output_objdir/$soname-def"; then :
-	    else
-	      func_verbose "extracting exported symbol list from \`$soname'"
-	      func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
-	    fi
-
-	    # Create $newlib
-	    if test -f "$output_objdir/$newlib"; then :; else
-	      func_verbose "generating import library for \`$soname'"
-	      func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
-	    fi
-	    # make sure the library variables are pointing to the new library
-	    dir=$output_objdir
-	    linklib=$newlib
-	  fi # test -n "$old_archive_from_expsyms_cmds"
-
-	  if test "$linkmode" = prog || test "$opt_mode" != relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    lib_linked=yes
-	    case $hardcode_action in
-	    immediate | unsupported)
-	      if test "$hardcode_direct" = no; then
-		add="$dir/$linklib"
-		case $host in
-		  *-*-sco3.2v5.0.[024]*) add_dir="-L$dir" ;;
-		  *-*-sysv4*uw2*) add_dir="-L$dir" ;;
-		  *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \
-		    *-*-unixware7*) add_dir="-L$dir" ;;
-		  *-*-darwin* )
-		    # if the lib is a (non-dlopened) module then we can not
-		    # link against it, someone is ignoring the earlier warnings
-		    if /usr/bin/file -L $add 2> /dev/null |
-			 $GREP ": [^:]* bundle" >/dev/null ; then
-		      if test "X$dlopenmodule" != "X$lib"; then
-			$ECHO "*** Warning: lib $linklib is a module, not a shared library"
-			if test -z "$old_library" ; then
-			  echo
-			  echo "*** And there doesn't seem to be a static archive available"
-			  echo "*** The link will probably fail, sorry"
-			else
-			  add="$dir/$old_library"
-			fi
-		      elif test -n "$old_library"; then
-			add="$dir/$old_library"
-		      fi
-		    fi
-		esac
-	      elif test "$hardcode_minus_L" = no; then
-		case $host in
-		*-*-sunos*) add_shlibpath="$dir" ;;
-		esac
-		add_dir="-L$dir"
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = no; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    relink)
-	      if test "$hardcode_direct" = yes &&
-	         test "$hardcode_direct_absolute" = no; then
-		add="$dir/$linklib"
-	      elif test "$hardcode_minus_L" = yes; then
-		add_dir="-L$absdir"
-		# Try looking first in the location we're being installed to.
-		if test -n "$inst_prefix_dir"; then
-		  case $libdir in
-		    [\\/]*)
-		      func_append add_dir " -L$inst_prefix_dir$libdir"
-		      ;;
-		  esac
-		fi
-		add="-l$name"
-	      elif test "$hardcode_shlibpath_var" = yes; then
-		add_shlibpath="$dir"
-		add="-l$name"
-	      else
-		lib_linked=no
-	      fi
-	      ;;
-	    *) lib_linked=no ;;
-	    esac
-
-	    if test "$lib_linked" != yes; then
-	      func_fatal_configuration "unsupported hardcode properties"
-	    fi
-
-	    if test -n "$add_shlibpath"; then
-	      case :$compile_shlibpath: in
-	      *":$add_shlibpath:"*) ;;
-	      *) func_append compile_shlibpath "$add_shlibpath:" ;;
-	      esac
-	    fi
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs"
-	      test -n "$add" && compile_deplibs="$add $compile_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	      if test "$hardcode_direct" != yes &&
-		 test "$hardcode_minus_L" != yes &&
-		 test "$hardcode_shlibpath_var" = yes; then
-		case :$finalize_shlibpath: in
-		*":$libdir:"*) ;;
-		*) func_append finalize_shlibpath "$libdir:" ;;
-		esac
-	      fi
-	    fi
-	  fi
-
-	  if test "$linkmode" = prog || test "$opt_mode" = relink; then
-	    add_shlibpath=
-	    add_dir=
-	    add=
-	    # Finalize command for both is simple: just hardcode it.
-	    if test "$hardcode_direct" = yes &&
-	       test "$hardcode_direct_absolute" = no; then
-	      add="$libdir/$linklib"
-	    elif test "$hardcode_minus_L" = yes; then
-	      add_dir="-L$libdir"
-	      add="-l$name"
-	    elif test "$hardcode_shlibpath_var" = yes; then
-	      case :$finalize_shlibpath: in
-	      *":$libdir:"*) ;;
-	      *) func_append finalize_shlibpath "$libdir:" ;;
-	      esac
-	      add="-l$name"
-	    elif test "$hardcode_automatic" = yes; then
-	      if test -n "$inst_prefix_dir" &&
-		 test -f "$inst_prefix_dir$libdir/$linklib" ; then
-		add="$inst_prefix_dir$libdir/$linklib"
-	      else
-		add="$libdir/$linklib"
-	      fi
-	    else
-	      # We cannot seem to hardcode it, guess we'll fake it.
-	      add_dir="-L$libdir"
-	      # Try looking first in the location we're being installed to.
-	      if test -n "$inst_prefix_dir"; then
-		case $libdir in
-		  [\\/]*)
-		    func_append add_dir " -L$inst_prefix_dir$libdir"
-		    ;;
-		esac
-	      fi
-	      add="-l$name"
-	    fi
-
-	    if test "$linkmode" = prog; then
-	      test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs"
-	      test -n "$add" && finalize_deplibs="$add $finalize_deplibs"
-	    else
-	      test -n "$add_dir" && deplibs="$add_dir $deplibs"
-	      test -n "$add" && deplibs="$add $deplibs"
-	    fi
-	  fi
-	elif test "$linkmode" = prog; then
-	  # Here we assume that one of hardcode_direct or hardcode_minus_L
-	  # is not unsupported.  This is valid on all known static and
-	  # shared platforms.
-	  if test "$hardcode_direct" != unsupported; then
-	    test -n "$old_library" && linklib="$old_library"
-	    compile_deplibs="$dir/$linklib $compile_deplibs"
-	    finalize_deplibs="$dir/$linklib $finalize_deplibs"
-	  else
-	    compile_deplibs="-l$name -L$dir $compile_deplibs"
-	    finalize_deplibs="-l$name -L$dir $finalize_deplibs"
-	  fi
-	elif test "$build_libtool_libs" = yes; then
-	  # Not a shared library
-	  if test "$deplibs_check_method" != pass_all; then
-	    # We're trying link a shared library against a static one
-	    # but the system doesn't support it.
-
-	    # Just print a warning and add the library to dependency_libs so
-	    # that the program can be linked against the static library.
-	    echo
-	    $ECHO "*** Warning: This system can not link to static lib archive $lib."
-	    echo "*** I have the capability to make that library automatically link in when"
-	    echo "*** you link to this library.  But I can only do this if you have a"
-	    echo "*** shared version of the library, which you do not appear to have."
-	    if test "$module" = yes; then
-	      echo "*** But as you try to build a module library, libtool will still create "
-	      echo "*** a static module, that should work as long as the dlopening application"
-	      echo "*** is linked with the -dlopen flag to resolve symbols at runtime."
-	      if test -z "$global_symbol_pipe"; then
-		echo
-		echo "*** However, this would only work if libtool was able to extract symbol"
-		echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-		echo "*** not find such a program.  So, this module is probably useless."
-		echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	      fi
-	      if test "$build_old_libs" = no; then
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  else
-	    deplibs="$dir/$old_library $deplibs"
-	    link_static=yes
-	  fi
-	fi # link shared/static library?
-
-	if test "$linkmode" = lib; then
-	  if test -n "$dependency_libs" &&
-	     { test "$hardcode_into_libs" != yes ||
-	       test "$build_old_libs" = yes ||
-	       test "$link_static" = yes; }; then
-	    # Extract -R from dependency_libs
-	    temp_deplibs=
-	    for libdir in $dependency_libs; do
-	      case $libdir in
-	      -R*) func_stripname '-R' '' "$libdir"
-	           temp_xrpath=$func_stripname_result
-		   case " $xrpath " in
-		   *" $temp_xrpath "*) ;;
-		   *) func_append xrpath " $temp_xrpath";;
-		   esac;;
-	      *) func_append temp_deplibs " $libdir";;
-	      esac
-	    done
-	    dependency_libs="$temp_deplibs"
-	  fi
-
-	  func_append newlib_search_path " $absdir"
-	  # Link against this library
-	  test "$link_static" = no && newdependency_libs="$abs_ladir/$laname $newdependency_libs"
-	  # ... and its dependency_libs
-	  tmp_libs=
-	  for deplib in $dependency_libs; do
-	    newdependency_libs="$deplib $newdependency_libs"
-	    case $deplib in
-              -L*) func_stripname '-L' '' "$deplib"
-                   func_resolve_sysroot "$func_stripname_result";;
-              *) func_resolve_sysroot "$deplib" ;;
-            esac
-	    if $opt_preserve_dup_deps ; then
-	      case "$tmp_libs " in
-	      *" $func_resolve_sysroot_result "*)
-                func_append specialdeplibs " $func_resolve_sysroot_result" ;;
-	      esac
-	    fi
-	    func_append tmp_libs " $func_resolve_sysroot_result"
-	  done
-
-	  if test "$link_all_deplibs" != no; then
-	    # Add the search paths of all dependency libraries
-	    for deplib in $dependency_libs; do
-	      path=
-	      case $deplib in
-	      -L*) path="$deplib" ;;
-	      *.la)
-	        func_resolve_sysroot "$deplib"
-	        deplib=$func_resolve_sysroot_result
-	        func_dirname "$deplib" "" "."
-		dir=$func_dirname_result
-		# We need an absolute path.
-		case $dir in
-		[\\/]* | [A-Za-z]:[\\/]*) absdir="$dir" ;;
-		*)
-		  absdir=`cd "$dir" && pwd`
-		  if test -z "$absdir"; then
-		    func_warning "cannot determine absolute directory name of \`$dir'"
-		    absdir="$dir"
-		  fi
-		  ;;
-		esac
-		if $GREP "^installed=no" $deplib > /dev/null; then
-		case $host in
-		*-*-darwin*)
-		  depdepl=
-		  eval deplibrary_names=`${SED} -n -e 's/^library_names=\(.*\)$/\1/p' $deplib`
-		  if test -n "$deplibrary_names" ; then
-		    for tmp in $deplibrary_names ; do
-		      depdepl=$tmp
-		    done
-		    if test -f "$absdir/$objdir/$depdepl" ; then
-		      depdepl="$absdir/$objdir/$depdepl"
-		      darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
-                      if test -z "$darwin_install_name"; then
-                          darwin_install_name=`${OTOOL64} -L $depdepl  | awk '{if (NR == 2) {print $1;exit}}'`
-                      fi
-		      func_append compiler_flags " ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
-		      func_append linker_flags " -dylib_file ${darwin_install_name}:${depdepl}"
-		      path=
-		    fi
-		  fi
-		  ;;
-		*)
-		  path="-L$absdir/$objdir"
-		  ;;
-		esac
-		else
-		  eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $deplib`
-		  test -z "$libdir" && \
-		    func_fatal_error "\`$deplib' is not a valid libtool archive"
-		  test "$absdir" != "$libdir" && \
-		    func_warning "\`$deplib' seems to be moved"
-
-		  path="-L$absdir"
-		fi
-		;;
-	      esac
-	      case " $deplibs " in
-	      *" $path "*) ;;
-	      *) deplibs="$path $deplibs" ;;
-	      esac
-	    done
-	  fi # link_all_deplibs != no
-	fi # linkmode = lib
-      done # for deplib in $libs
-      if test "$pass" = link; then
-	if test "$linkmode" = "prog"; then
-	  compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
-	  finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
-	else
-	  compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	fi
-      fi
-      dependency_libs="$newdependency_libs"
-      if test "$pass" = dlpreopen; then
-	# Link the dlpreopened libraries before other libraries
-	for deplib in $save_deplibs; do
-	  deplibs="$deplib $deplibs"
-	done
-      fi
-      if test "$pass" != dlopen; then
-	if test "$pass" != conv; then
-	  # Make sure lib_search_path contains only unique directories.
-	  lib_search_path=
-	  for dir in $newlib_search_path; do
-	    case "$lib_search_path " in
-	    *" $dir "*) ;;
-	    *) func_append lib_search_path " $dir" ;;
-	    esac
-	  done
-	  newlib_search_path=
-	fi
-
-	if test "$linkmode,$pass" != "prog,link"; then
-	  vars="deplibs"
-	else
-	  vars="compile_deplibs finalize_deplibs"
-	fi
-	for var in $vars dependency_libs; do
-	  # Add libraries to $var in reverse order
-	  eval tmp_libs=\"\$$var\"
-	  new_libs=
-	  for deplib in $tmp_libs; do
-	    # FIXME: Pedantically, this is the right thing to do, so
-	    #        that some nasty dependency loop isn't accidentally
-	    #        broken:
-	    #new_libs="$deplib $new_libs"
-	    # Pragmatically, this seems to cause very few problems in
-	    # practice:
-	    case $deplib in
-	    -L*) new_libs="$deplib $new_libs" ;;
-	    -R*) ;;
-	    *)
-	      # And here is the reason: when a library appears more
-	      # than once as an explicit dependence of a library, or
-	      # is implicitly linked in more than once by the
-	      # compiler, it is considered special, and multiple
-	      # occurrences thereof are not removed.  Compare this
-	      # with having the same library being listed as a
-	      # dependency of multiple other libraries: in this case,
-	      # we know (pedantically, we assume) the library does not
-	      # need to be listed more than once, so we keep only the
-	      # last copy.  This is not always right, but it is rare
-	      # enough that we require users that really mean to play
-	      # such unportable linking tricks to link the library
-	      # using -Wl,-lname, so that libtool does not consider it
-	      # for duplicate removal.
-	      case " $specialdeplibs " in
-	      *" $deplib "*) new_libs="$deplib $new_libs" ;;
-	      *)
-		case " $new_libs " in
-		*" $deplib "*) ;;
-		*) new_libs="$deplib $new_libs" ;;
-		esac
-		;;
-	      esac
-	      ;;
-	    esac
-	  done
-	  tmp_libs=
-	  for deplib in $new_libs; do
-	    case $deplib in
-	    -L*)
-	      case " $tmp_libs " in
-	      *" $deplib "*) ;;
-	      *) func_append tmp_libs " $deplib" ;;
-	      esac
-	      ;;
-	    *) func_append tmp_libs " $deplib" ;;
-	    esac
-	  done
-	  eval $var=\"$tmp_libs\"
-	done # for var
-      fi
-      # Last step: remove runtime libs from dependency_libs
-      # (they stay in deplibs)
-      tmp_libs=
-      for i in $dependency_libs ; do
-	case " $predeps $postdeps $compiler_lib_search_path " in
-	*" $i "*)
-	  i=""
-	  ;;
-	esac
-	if test -n "$i" ; then
-	  func_append tmp_libs " $i"
-	fi
-      done
-      dependency_libs=$tmp_libs
-    done # for pass
-    if test "$linkmode" = prog; then
-      dlfiles="$newdlfiles"
-    fi
-    if test "$linkmode" = prog || test "$linkmode" = lib; then
-      dlprefiles="$newdlprefiles"
-    fi
-
-    case $linkmode in
-    oldlib)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	func_warning "\`-dlopen' is ignored for archives"
-      fi
-
-      case " $deplibs" in
-      *\ -l* | *\ -L*)
-	func_warning "\`-l' and \`-L' are ignored for archives" ;;
-      esac
-
-      test -n "$rpath" && \
-	func_warning "\`-rpath' is ignored for archives"
-
-      test -n "$xrpath" && \
-	func_warning "\`-R' is ignored for archives"
-
-      test -n "$vinfo" && \
-	func_warning "\`-version-info/-version-number' is ignored for archives"
-
-      test -n "$release" && \
-	func_warning "\`-release' is ignored for archives"
-
-      test -n "$export_symbols$export_symbols_regex" && \
-	func_warning "\`-export-symbols' is ignored for archives"
-
-      # Now set the variables for building old libraries.
-      build_libtool_libs=no
-      oldlibs="$output"
-      func_append objs "$old_deplibs"
-      ;;
-
-    lib)
-      # Make sure we only generate libraries of the form `libNAME.la'.
-      case $outputname in
-      lib*)
-	func_stripname 'lib' '.la' "$outputname"
-	name=$func_stripname_result
-	eval shared_ext=\"$shrext_cmds\"
-	eval libname=\"$libname_spec\"
-	;;
-      *)
-	test "$module" = no && \
-	  func_fatal_help "libtool library \`$output' must begin with \`lib'"
-
-	if test "$need_lib_prefix" != no; then
-	  # Add the "lib" prefix for modules if required
-	  func_stripname '' '.la' "$outputname"
-	  name=$func_stripname_result
-	  eval shared_ext=\"$shrext_cmds\"
-	  eval libname=\"$libname_spec\"
-	else
-	  func_stripname '' '.la' "$outputname"
-	  libname=$func_stripname_result
-	fi
-	;;
-      esac
-
-      if test -n "$objs"; then
-	if test "$deplibs_check_method" != pass_all; then
-	  func_fatal_error "cannot build libtool library \`$output' from non-libtool objects on this host:$objs"
-	else
-	  echo
-	  $ECHO "*** Warning: Linking the shared library $output against the non-libtool"
-	  $ECHO "*** objects $objs is not portable!"
-	  func_append libobjs " $objs"
-	fi
-      fi
-
-      test "$dlself" != no && \
-	func_warning "\`-dlopen self' is ignored for libtool libraries"
-
-      set dummy $rpath
-      shift
-      test "$#" -gt 1 && \
-	func_warning "ignoring multiple \`-rpath's for a libtool library"
-
-      install_libdir="$1"
-
-      oldlibs=
-      if test -z "$rpath"; then
-	if test "$build_libtool_libs" = yes; then
-	  # Building a libtool convenience library.
-	  # Some compilers have problems with a `.al' extension so
-	  # convenience libraries should have the same extension an
-	  # archive normally would.
-	  oldlibs="$output_objdir/$libname.$libext $oldlibs"
-	  build_libtool_libs=convenience
-	  build_old_libs=yes
-	fi
-
-	test -n "$vinfo" && \
-	  func_warning "\`-version-info/-version-number' is ignored for convenience libraries"
-
-	test -n "$release" && \
-	  func_warning "\`-release' is ignored for convenience libraries"
-      else
-
-	# Parse the version information argument.
-	save_ifs="$IFS"; IFS=':'
-	set dummy $vinfo 0 0 0
-	shift
-	IFS="$save_ifs"
-
-	test -n "$7" && \
-	  func_fatal_help "too many parameters to \`-version-info'"
-
-	# convert absolute version numbers to libtool ages
-	# this retains compatibility with .la files and attempts
-	# to make the code below a bit more comprehensible
-
-	case $vinfo_number in
-	yes)
-	  number_major="$1"
-	  number_minor="$2"
-	  number_revision="$3"
-	  #
-	  # There are really only two kinds -- those that
-	  # use the current revision as the major version
-	  # and those that subtract age and use age as
-	  # a minor version.  But, then there is irix
-	  # which has an extra 1 added just for fun
-	  #
-	  case $version_type in
-	  # correct linux to gnu/linux during the next big refactor
-	  darwin|linux|osf|windows|none)
-	    func_arith $number_major + $number_minor
-	    current=$func_arith_result
-	    age="$number_minor"
-	    revision="$number_revision"
-	    ;;
-	  freebsd-aout|freebsd-elf|qnx|sunos)
-	    current="$number_major"
-	    revision="$number_minor"
-	    age="0"
-	    ;;
-	  irix|nonstopux)
-	    func_arith $number_major + $number_minor
-	    current=$func_arith_result
-	    age="$number_minor"
-	    revision="$number_minor"
-	    lt_irix_increment=no
-	    ;;
-	  esac
-	  ;;
-	no)
-	  current="$1"
-	  revision="$2"
-	  age="$3"
-	  ;;
-	esac
-
-	# Check that each of the things are valid numbers.
-	case $current in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  func_error "CURRENT \`$current' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	  ;;
-	esac
-
-	case $revision in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  func_error "REVISION \`$revision' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	  ;;
-	esac
-
-	case $age in
-	0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;;
-	*)
-	  func_error "AGE \`$age' must be a nonnegative integer"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	  ;;
-	esac
-
-	if test "$age" -gt "$current"; then
-	  func_error "AGE \`$age' is greater than the current interface number \`$current'"
-	  func_fatal_error "\`$vinfo' is not valid version information"
-	fi
-
-	# Calculate the version variables.
-	major=
-	versuffix=
-	verstring=
-	case $version_type in
-	none) ;;
-
-	darwin)
-	  # Like Linux, but with the current version available in
-	  # verstring for coding it into the library header
-	  func_arith $current - $age
-	  major=.$func_arith_result
-	  versuffix="$major.$age.$revision"
-	  # Darwin ld doesn't like 0 for these options...
-	  func_arith $current + 1
-	  minor_current=$func_arith_result
-	  xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
-	  verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
-	  ;;
-
-	freebsd-aout)
-	  major=".$current"
-	  versuffix=".$current.$revision";
-	  ;;
-
-	freebsd-elf)
-	  major=".$current"
-	  versuffix=".$current"
-	  ;;
-
-	irix | nonstopux)
-	  if test "X$lt_irix_increment" = "Xno"; then
-	    func_arith $current - $age
-	  else
-	    func_arith $current - $age + 1
-	  fi
-	  major=$func_arith_result
-
-	  case $version_type in
-	    nonstopux) verstring_prefix=nonstopux ;;
-	    *)         verstring_prefix=sgi ;;
-	  esac
-	  verstring="$verstring_prefix$major.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$revision
-	  while test "$loop" -ne 0; do
-	    func_arith $revision - $loop
-	    iface=$func_arith_result
-	    func_arith $loop - 1
-	    loop=$func_arith_result
-	    verstring="$verstring_prefix$major.$iface:$verstring"
-	  done
-
-	  # Before this point, $major must not contain `.'.
-	  major=.$major
-	  versuffix="$major.$revision"
-	  ;;
-
-	linux) # correct to gnu/linux during the next big refactor
-	  func_arith $current - $age
-	  major=.$func_arith_result
-	  versuffix="$major.$age.$revision"
-	  ;;
-
-	osf)
-	  func_arith $current - $age
-	  major=.$func_arith_result
-	  versuffix=".$current.$age.$revision"
-	  verstring="$current.$age.$revision"
-
-	  # Add in all the interfaces that we are compatible with.
-	  loop=$age
-	  while test "$loop" -ne 0; do
-	    func_arith $current - $loop
-	    iface=$func_arith_result
-	    func_arith $loop - 1
-	    loop=$func_arith_result
-	    verstring="$verstring:${iface}.0"
-	  done
-
-	  # Make executables depend on our current version.
-	  func_append verstring ":${current}.0"
-	  ;;
-
-	qnx)
-	  major=".$current"
-	  versuffix=".$current"
-	  ;;
-
-	sunos)
-	  major=".$current"
-	  versuffix=".$current.$revision"
-	  ;;
-
-	windows)
-	  # Use '-' rather than '.', since we only want one
-	  # extension on DOS 8.3 filesystems.
-	  func_arith $current - $age
-	  major=$func_arith_result
-	  versuffix="-$major"
-	  ;;
-
-	*)
-	  func_fatal_configuration "unknown library version type \`$version_type'"
-	  ;;
-	esac
-
-	# Clear the version info if we defaulted, and they specified a release.
-	if test -z "$vinfo" && test -n "$release"; then
-	  major=
-	  case $version_type in
-	  darwin)
-	    # we can't check for "0.0" in archive_cmds due to quoting
-	    # problems, so we reset it completely
-	    verstring=
-	    ;;
-	  *)
-	    verstring="0.0"
-	    ;;
-	  esac
-	  if test "$need_version" = no; then
-	    versuffix=
-	  else
-	    versuffix=".0.0"
-	  fi
-	fi
-
-	# Remove version info from name if versioning should be avoided
-	if test "$avoid_version" = yes && test "$need_version" = no; then
-	  major=
-	  versuffix=
-	  verstring=""
-	fi
-
-	# Check to see if the archive will have undefined symbols.
-	if test "$allow_undefined" = yes; then
-	  if test "$allow_undefined_flag" = unsupported; then
-	    func_warning "undefined symbols not allowed in $host shared libraries"
-	    build_libtool_libs=no
-	    build_old_libs=yes
-	  fi
-	else
-	  # Don't allow undefined symbols.
-	  allow_undefined_flag="$no_undefined_flag"
-	fi
-
-      fi
-
-      func_generate_dlsyms "$libname" "$libname" "yes"
-      func_append libobjs " $symfileobj"
-      test "X$libobjs" = "X " && libobjs=
-
-      if test "$opt_mode" != relink; then
-	# Remove our outputs, but don't remove object files since they
-	# may have been created when compiling PIC objects.
-	removelist=
-	tempremovelist=`$ECHO "$output_objdir/*"`
-	for p in $tempremovelist; do
-	  case $p in
-	    *.$objext | *.gcno)
-	       ;;
-	    $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
-	       if test "X$precious_files_regex" != "X"; then
-		 if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1
-		 then
-		   continue
-		 fi
-	       fi
-	       func_append removelist " $p"
-	       ;;
-	    *) ;;
-	  esac
-	done
-	test -n "$removelist" && \
-	  func_show_eval "${RM}r \$removelist"
-      fi
-
-      # Now set the variables for building old libraries.
-      if test "$build_old_libs" = yes && test "$build_libtool_libs" != convenience ; then
-	func_append oldlibs " $output_objdir/$libname.$libext"
-
-	# Transform .lo files to .o files.
-	oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; $lo2o" | $NL2SP`
-      fi
-
-      # Eliminate all temporary directories.
-      #for path in $notinst_path; do
-      #	lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"`
-      #	deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"`
-      #	dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"`
-      #done
-
-      if test -n "$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	temp_xrpath=
-	for libdir in $xrpath; do
-	  func_replace_sysroot "$libdir"
-	  func_append temp_xrpath " -R$func_replace_sysroot_result"
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append finalize_rpath " $libdir" ;;
-	  esac
-	done
-	if test "$hardcode_into_libs" != yes || test "$build_old_libs" = yes; then
-	  dependency_libs="$temp_xrpath $dependency_libs"
-	fi
-      fi
-
-      # Make sure dlfiles contains only unique files that won't be dlpreopened
-      old_dlfiles="$dlfiles"
-      dlfiles=
-      for lib in $old_dlfiles; do
-	case " $dlprefiles $dlfiles " in
-	*" $lib "*) ;;
-	*) func_append dlfiles " $lib" ;;
-	esac
-      done
-
-      # Make sure dlprefiles contains only unique files
-      old_dlprefiles="$dlprefiles"
-      dlprefiles=
-      for lib in $old_dlprefiles; do
-	case "$dlprefiles " in
-	*" $lib "*) ;;
-	*) func_append dlprefiles " $lib" ;;
-	esac
-      done
-
-      if test "$build_libtool_libs" = yes; then
-	if test -n "$rpath"; then
-	  case $host in
-	  *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*)
-	    # these systems don't actually have a c library (as such)!
-	    ;;
-	  *-*-rhapsody* | *-*-darwin1.[012])
-	    # Rhapsody C library is in the System framework
-	    func_append deplibs " System.ltframework"
-	    ;;
-	  *-*-netbsd*)
-	    # Don't link with libc until the a.out ld.so is fixed.
-	    ;;
-	  *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*)
-	    # Do not include libc due to us having libc/libc_r.
-	    ;;
-	  *-*-sco3.2v5* | *-*-sco5v6*)
-	    # Causes problems with __ctype
-	    ;;
-	  *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*)
-	    # Compiler inserts libc in the correct place for threads to work
-	    ;;
-	  *)
-	    # Add libc to deplibs on all other systems if necessary.
-	    if test "$build_libtool_need_lc" = "yes"; then
-	      func_append deplibs " -lc"
-	    fi
-	    ;;
-	  esac
-	fi
-
-	# Transform deplibs into only deplibs that can be linked in shared.
-	name_save=$name
-	libname_save=$libname
-	release_save=$release
-	versuffix_save=$versuffix
-	major_save=$major
-	# I'm not sure if I'm treating the release correctly.  I think
-	# release should show up in the -l (ie -lgmp5) so we don't want to
-	# add it in twice.  Is that correct?
-	release=""
-	versuffix=""
-	major=""
-	newdeplibs=
-	droppeddeps=no
-	case $deplibs_check_method in
-	pass_all)
-	  # Don't check for shared/static.  Everything works.
-	  # This might be a little naive.  We might want to check
-	  # whether the library exists or not.  But this is on
-	  # osf3 & osf4 and I'm not really sure... Just
-	  # implementing what was already the behavior.
-	  newdeplibs=$deplibs
-	  ;;
-	test_compile)
-	  # This code stresses the "libraries are programs" paradigm to its
-	  # limits. Maybe even breaks it.  We compile a program, linking it
-	  # against the deplibs as a proxy for the library.  Then we can check
-	  # whether they linked in statically or dynamically with ldd.
-	  $opt_dry_run || $RM conftest.c
-	  cat > conftest.c <<EOF
-	  int main() { return 0; }
-EOF
-	  $opt_dry_run || $RM conftest
-	  if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
-	    ldd_output=`ldd conftest`
-	    for i in $deplibs; do
-	      case $i in
-	      -l*)
-		func_stripname -l '' "$i"
-		name=$func_stripname_result
-		if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		  case " $predeps $postdeps " in
-		  *" $i "*)
-		    func_append newdeplibs " $i"
-		    i=""
-		    ;;
-		  esac
-		fi
-		if test -n "$i" ; then
-		  libname=`eval "\\$ECHO \"$libname_spec\""`
-		  deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
-		  set dummy $deplib_matches; shift
-		  deplib_match=$1
-		  if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		    func_append newdeplibs " $i"
-		  else
-		    droppeddeps=yes
-		    echo
-		    $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-		    echo "*** I have the capability to make that library automatically link in when"
-		    echo "*** you link to this library.  But I can only do this if you have a"
-		    echo "*** shared version of the library, which I believe you do not have"
-		    echo "*** because a test_compile did reveal that the linker did not use it for"
-		    echo "*** its dynamic dependency list that programs get resolved with at runtime."
-		  fi
-		fi
-		;;
-	      *)
-		func_append newdeplibs " $i"
-		;;
-	      esac
-	    done
-	  else
-	    # Error occurred in the first compile.  Let's try to salvage
-	    # the situation: Compile a separate program for each library.
-	    for i in $deplibs; do
-	      case $i in
-	      -l*)
-		func_stripname -l '' "$i"
-		name=$func_stripname_result
-		$opt_dry_run || $RM conftest
-		if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
-		  ldd_output=`ldd conftest`
-		  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		    case " $predeps $postdeps " in
-		    *" $i "*)
-		      func_append newdeplibs " $i"
-		      i=""
-		      ;;
-		    esac
-		  fi
-		  if test -n "$i" ; then
-		    libname=`eval "\\$ECHO \"$libname_spec\""`
-		    deplib_matches=`eval "\\$ECHO \"$library_names_spec\""`
-		    set dummy $deplib_matches; shift
-		    deplib_match=$1
-		    if test `expr "$ldd_output" : ".*$deplib_match"` -ne 0 ; then
-		      func_append newdeplibs " $i"
-		    else
-		      droppeddeps=yes
-		      echo
-		      $ECHO "*** Warning: dynamic linker does not accept needed library $i."
-		      echo "*** I have the capability to make that library automatically link in when"
-		      echo "*** you link to this library.  But I can only do this if you have a"
-		      echo "*** shared version of the library, which you do not appear to have"
-		      echo "*** because a test_compile did reveal that the linker did not use this one"
-		      echo "*** as a dynamic dependency that programs can get resolved with at runtime."
-		    fi
-		  fi
-		else
-		  droppeddeps=yes
-		  echo
-		  $ECHO "*** Warning!  Library $i is needed by this library but I was not able to"
-		  echo "*** make it link in!  You will probably need to install it or some"
-		  echo "*** library that it depends on before this library will be fully"
-		  echo "*** functional.  Installing it before continuing would be even better."
-		fi
-		;;
-	      *)
-		func_append newdeplibs " $i"
-		;;
-	      esac
-	    done
-	  fi
-	  ;;
-	file_magic*)
-	  set dummy $deplibs_check_method; shift
-	  file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    case $a_deplib in
-	    -l*)
-	      func_stripname -l '' "$a_deplib"
-	      name=$func_stripname_result
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  func_append newdeplibs " $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval "\\$ECHO \"$libname_spec\""`
-		if test -n "$file_magic_glob"; then
-		  libnameglob=`func_echo_all "$libname" | $SED -e $file_magic_glob`
-		else
-		  libnameglob=$libname
-		fi
-		test "$want_nocaseglob" = yes && nocaseglob=`shopt -p nocaseglob`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  if test "$want_nocaseglob" = yes; then
-		    shopt -s nocaseglob
-		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
-		    $nocaseglob
-		  else
-		    potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null`
-		  fi
-		  for potent_lib in $potential_libs; do
-		      # Follow soft links.
-		      if ls -lLd "$potent_lib" 2>/dev/null |
-			 $GREP " -> " >/dev/null; then
-			continue
-		      fi
-		      # The statement above tries to avoid entering an
-		      # endless loop below, in case of cyclic links.
-		      # We might still enter an endless loop, since a link
-		      # loop can be closed while we follow links,
-		      # but so what?
-		      potlib="$potent_lib"
-		      while test -h "$potlib" 2>/dev/null; do
-			potliblink=`ls -ld $potlib | ${SED} 's/.* -> //'`
-			case $potliblink in
-			[\\/]* | [A-Za-z]:[\\/]*) potlib="$potliblink";;
-			*) potlib=`$ECHO "$potlib" | $SED 's,[^/]*$,,'`"$potliblink";;
-			esac
-		      done
-		      if eval $file_magic_cmd \"\$potlib\" 2>/dev/null |
-			 $SED -e 10q |
-			 $EGREP "$file_magic_regex" > /dev/null; then
-			func_append newdeplibs " $a_deplib"
-			a_deplib=""
-			break 2
-		      fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		echo
-		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-		echo "*** I have the capability to make that library automatically link in when"
-		echo "*** you link to this library.  But I can only do this if you have a"
-		echo "*** shared version of the library, which you do not appear to have"
-		echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $ECHO "*** with $libname but no candidates were found. (...for file magic test)"
-		else
-		  $ECHO "*** with $libname and none of the candidates passed a file format test"
-		  $ECHO "*** using a file magic. Last file checked: $potlib"
-		fi
-	      fi
-	      ;;
-	    *)
-	      # Add a -L argument.
-	      func_append newdeplibs " $a_deplib"
-	      ;;
-	    esac
-	  done # Gone through all deplibs.
-	  ;;
-	match_pattern*)
-	  set dummy $deplibs_check_method; shift
-	  match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
-	  for a_deplib in $deplibs; do
-	    case $a_deplib in
-	    -l*)
-	      func_stripname -l '' "$a_deplib"
-	      name=$func_stripname_result
-	      if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-		case " $predeps $postdeps " in
-		*" $a_deplib "*)
-		  func_append newdeplibs " $a_deplib"
-		  a_deplib=""
-		  ;;
-		esac
-	      fi
-	      if test -n "$a_deplib" ; then
-		libname=`eval "\\$ECHO \"$libname_spec\""`
-		for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do
-		  potential_libs=`ls $i/$libname[.-]* 2>/dev/null`
-		  for potent_lib in $potential_libs; do
-		    potlib="$potent_lib" # see symlink-check above in file_magic test
-		    if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \
-		       $EGREP "$match_pattern_regex" > /dev/null; then
-		      func_append newdeplibs " $a_deplib"
-		      a_deplib=""
-		      break 2
-		    fi
-		  done
-		done
-	      fi
-	      if test -n "$a_deplib" ; then
-		droppeddeps=yes
-		echo
-		$ECHO "*** Warning: linker path does not have real file for library $a_deplib."
-		echo "*** I have the capability to make that library automatically link in when"
-		echo "*** you link to this library.  But I can only do this if you have a"
-		echo "*** shared version of the library, which you do not appear to have"
-		echo "*** because I did check the linker path looking for a file starting"
-		if test -z "$potlib" ; then
-		  $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)"
-		else
-		  $ECHO "*** with $libname and none of the candidates passed a file format test"
-		  $ECHO "*** using a regex pattern. Last file checked: $potlib"
-		fi
-	      fi
-	      ;;
-	    *)
-	      # Add a -L argument.
-	      func_append newdeplibs " $a_deplib"
-	      ;;
-	    esac
-	  done # Gone through all deplibs.
-	  ;;
-	none | unknown | *)
-	  newdeplibs=""
-	  tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'`
-	  if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
-	    for i in $predeps $postdeps ; do
-	      # can't use Xsed below, because $i might contain '/'
-	      tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s,$i,,"`
-	    done
-	  fi
-	  case $tmp_deplibs in
-	  *[!\	\ ]*)
-	    echo
-	    if test "X$deplibs_check_method" = "Xnone"; then
-	      echo "*** Warning: inter-library dependencies are not supported in this platform."
-	    else
-	      echo "*** Warning: inter-library dependencies are not known to be supported."
-	    fi
-	    echo "*** All declared inter-library dependencies are being dropped."
-	    droppeddeps=yes
-	    ;;
-	  esac
-	  ;;
-	esac
-	versuffix=$versuffix_save
-	major=$major_save
-	release=$release_save
-	libname=$libname_save
-	name=$name_save
-
-	case $host in
-	*-*-rhapsody* | *-*-darwin1.[012])
-	  # On Rhapsody replace the C library with the System framework
-	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'`
-	  ;;
-	esac
-
-	if test "$droppeddeps" = yes; then
-	  if test "$module" = yes; then
-	    echo
-	    echo "*** Warning: libtool could not satisfy all declared inter-library"
-	    $ECHO "*** dependencies of module $libname.  Therefore, libtool will create"
-	    echo "*** a static module, that should work as long as the dlopening"
-	    echo "*** application is linked with the -dlopen flag."
-	    if test -z "$global_symbol_pipe"; then
-	      echo
-	      echo "*** However, this would only work if libtool was able to extract symbol"
-	      echo "*** lists from a program, using \`nm' or equivalent, but libtool could"
-	      echo "*** not find such a program.  So, this module is probably useless."
-	      echo "*** \`nm' from GNU binutils and a full rebuild may help."
-	    fi
-	    if test "$build_old_libs" = no; then
-	      oldlibs="$output_objdir/$libname.$libext"
-	      build_libtool_libs=module
-	      build_old_libs=yes
-	    else
-	      build_libtool_libs=no
-	    fi
-	  else
-	    echo "*** The inter-library dependencies that have been dropped here will be"
-	    echo "*** automatically added whenever a program is linked with this library"
-	    echo "*** or is declared to -dlopen it."
-
-	    if test "$allow_undefined" = no; then
-	      echo
-	      echo "*** Since this library must not contain undefined symbols,"
-	      echo "*** because either the platform does not support them or"
-	      echo "*** it was explicitly requested with -no-undefined,"
-	      echo "*** libtool will only create a static version of it."
-	      if test "$build_old_libs" = no; then
-		oldlibs="$output_objdir/$libname.$libext"
-		build_libtool_libs=module
-		build_old_libs=yes
-	      else
-		build_libtool_libs=no
-	      fi
-	    fi
-	  fi
-	fi
-	# Done checking deplibs!
-	deplibs=$newdeplibs
-      fi
-      # Time to change all our "foo.ltframework" stuff back to "-framework foo"
-      case $host in
-	*-*-darwin*)
-	  newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	  ;;
-      esac
-
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-	case " $new_libs " in
-	*" -L$path/$objdir "*) ;;
-	*)
-	  case " $deplibs " in
-	  *" -L$path/$objdir "*)
-	    func_append new_libs " -L$path/$objdir" ;;
-	  esac
-	  ;;
-	esac
-      done
-      for deplib in $deplibs; do
-	case $deplib in
-	-L*)
-	  case " $new_libs " in
-	  *" $deplib "*) ;;
-	  *) func_append new_libs " $deplib" ;;
-	  esac
-	  ;;
-	*) func_append new_libs " $deplib" ;;
-	esac
-      done
-      deplibs="$new_libs"
-
-      # All the library-specific variables (install_libdir is set above).
-      library_names=
-      old_library=
-      dlname=
-
-      # Test again, we may have decided not to build it any more
-      if test "$build_libtool_libs" = yes; then
-	# Remove ${wl} instances when linking with ld.
-	# FIXME: should test the right _cmds variable.
-	case $archive_cmds in
-	  *\$LD\ *) wl= ;;
-        esac
-	if test "$hardcode_into_libs" = yes; then
-	  # Hardcode the library paths
-	  hardcode_libdirs=
-	  dep_rpath=
-	  rpath="$finalize_rpath"
-	  test "$opt_mode" != relink && rpath="$compile_rpath$rpath"
-	  for libdir in $rpath; do
-	    if test -n "$hardcode_libdir_flag_spec"; then
-	      if test -n "$hardcode_libdir_separator"; then
-		func_replace_sysroot "$libdir"
-		libdir=$func_replace_sysroot_result
-		if test -z "$hardcode_libdirs"; then
-		  hardcode_libdirs="$libdir"
-		else
-		  # Just accumulate the unique libdirs.
-		  case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-		  *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		    ;;
-		  *)
-		    func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-		    ;;
-		  esac
-		fi
-	      else
-		eval flag=\"$hardcode_libdir_flag_spec\"
-		func_append dep_rpath " $flag"
-	      fi
-	    elif test -n "$runpath_var"; then
-	      case "$perm_rpath " in
-	      *" $libdir "*) ;;
-	      *) func_append perm_rpath " $libdir" ;;
-	      esac
-	    fi
-	  done
-	  # Substitute the hardcoded libdirs into the rpath.
-	  if test -n "$hardcode_libdir_separator" &&
-	     test -n "$hardcode_libdirs"; then
-	    libdir="$hardcode_libdirs"
-	    eval "dep_rpath=\"$hardcode_libdir_flag_spec\""
-	  fi
-	  if test -n "$runpath_var" && test -n "$perm_rpath"; then
-	    # We should set the runpath_var.
-	    rpath=
-	    for dir in $perm_rpath; do
-	      func_append rpath "$dir:"
-	    done
-	    eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var"
-	  fi
-	  test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs"
-	fi
-
-	shlibpath="$finalize_shlibpath"
-	test "$opt_mode" != relink && shlibpath="$compile_shlibpath$shlibpath"
-	if test -n "$shlibpath"; then
-	  eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var"
-	fi
-
-	# Get the real and link names of the library.
-	eval shared_ext=\"$shrext_cmds\"
-	eval library_names=\"$library_names_spec\"
-	set dummy $library_names
-	shift
-	realname="$1"
-	shift
-
-	if test -n "$soname_spec"; then
-	  eval soname=\"$soname_spec\"
-	else
-	  soname="$realname"
-	fi
-	if test -z "$dlname"; then
-	  dlname=$soname
-	fi
-
-	lib="$output_objdir/$realname"
-	linknames=
-	for link
-	do
-	  func_append linknames " $link"
-	done
-
-	# Use standard objects if they are pic
-	test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP`
-	test "X$libobjs" = "X " && libobjs=
-
-	delfiles=
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp"
-	  export_symbols="$output_objdir/$libname.uexp"
-	  func_append delfiles " $export_symbols"
-	fi
-
-	orig_export_symbols=
-	case $host_os in
-	cygwin* | mingw* | cegcc*)
-	  if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
-	    # exporting using user supplied symfile
-	    if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
-	      # and it's NOT already a .def file. Must figure out
-	      # which of the given symbols are data symbols and tag
-	      # them as such. So, trigger use of export_symbols_cmds.
-	      # export_symbols gets reassigned inside the "prepare
-	      # the list of exported symbols" if statement, so the
-	      # include_expsyms logic still works.
-	      orig_export_symbols="$export_symbols"
-	      export_symbols=
-	      always_export_symbols=yes
-	    fi
-	  fi
-	  ;;
-	esac
-
-	# Prepare the list of exported symbols
-	if test -z "$export_symbols"; then
-	  if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
-	    func_verbose "generating symbol list for \`$libname.la'"
-	    export_symbols="$output_objdir/$libname.exp"
-	    $opt_dry_run || $RM $export_symbols
-	    cmds=$export_symbols_cmds
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd1 in $cmds; do
-	      IFS="$save_ifs"
-	      # Take the normal branch if the nm_file_list_spec branch
-	      # doesn't work or if tool conversion is not needed.
-	      case $nm_file_list_spec~$to_tool_file_cmd in
-		*~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*)
-		  try_normal_branch=yes
-		  eval cmd=\"$cmd1\"
-		  func_len " $cmd"
-		  len=$func_len_result
-		  ;;
-		*)
-		  try_normal_branch=no
-		  ;;
-	      esac
-	      if test "$try_normal_branch" = yes \
-		 && { test "$len" -lt "$max_cmd_len" \
-		      || test "$max_cmd_len" -le -1; }
-	      then
-		func_show_eval "$cmd" 'exit $?'
-		skipped_export=false
-	      elif test -n "$nm_file_list_spec"; then
-		func_basename "$output"
-		output_la=$func_basename_result
-		save_libobjs=$libobjs
-		save_output=$output
-		output=${output_objdir}/${output_la}.nm
-		func_to_tool_file "$output"
-		libobjs=$nm_file_list_spec$func_to_tool_file_result
-		func_append delfiles " $output"
-		func_verbose "creating $NM input file list: $output"
-		for obj in $save_libobjs; do
-		  func_to_tool_file "$obj"
-		  $ECHO "$func_to_tool_file_result"
-		done > "$output"
-		eval cmd=\"$cmd1\"
-		func_show_eval "$cmd" 'exit $?'
-		output=$save_output
-		libobjs=$save_libobjs
-		skipped_export=false
-	      else
-		# The command line is too long to execute in one step.
-		func_verbose "using reloadable object file for export list..."
-		skipped_export=:
-		# Break out early, otherwise skipped_export may be
-		# set to false by a later but shorter cmd.
-		break
-	      fi
-	    done
-	    IFS="$save_ifs"
-	    if test -n "$export_symbols_regex" && test "X$skipped_export" != "X:"; then
-	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-	fi
-
-	if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	  tmp_export_symbols="$export_symbols"
-	  test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-	  $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
-	fi
-
-	if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
-	  # The given exports_symbols file has to be filtered, so filter it.
-	  func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
-	  # FIXME: $output_objdir/$libname.filter potentially contains lots of
-	  # 's' commands which not all seds can handle. GNU sed should be fine
-	  # though. Also, the filter scales superlinearly with the number of
-	  # global variables. join(1) would be nice here, but unfortunately
-	  # isn't a blessed tool.
-	  $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-	  func_append delfiles " $export_symbols $output_objdir/$libname.filter"
-	  export_symbols=$output_objdir/$libname.def
-	  $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
-	fi
-
-	tmp_deplibs=
-	for test_deplib in $deplibs; do
-	  case " $convenience " in
-	  *" $test_deplib "*) ;;
-	  *)
-	    func_append tmp_deplibs " $test_deplib"
-	    ;;
-	  esac
-	done
-	deplibs="$tmp_deplibs"
-
-	if test -n "$convenience"; then
-	  if test -n "$whole_archive_flag_spec" &&
-	    test "$compiler_needs_object" = yes &&
-	    test -z "$libobjs"; then
-	    # extract the archives, so we have objects to list.
-	    # TODO: could optimize this to just extract one archive.
-	    whole_archive_flag_spec=
-	  fi
-	  if test -n "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	    test "X$libobjs" = "X " && libobjs=
-	  else
-	    gentop="$output_objdir/${outputname}x"
-	    func_append generated " $gentop"
-
-	    func_extract_archives $gentop $convenience
-	    func_append libobjs " $func_extract_archives_result"
-	    test "X$libobjs" = "X " && libobjs=
-	  fi
-	fi
-
-	if test "$thread_safe" = yes && test -n "$thread_safe_flag_spec"; then
-	  eval flag=\"$thread_safe_flag_spec\"
-	  func_append linker_flags " $flag"
-	fi
-
-	# Make a backup of the uninstalled library when relinking
-	if test "$opt_mode" = relink; then
-	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $?
-	fi
-
-	# Do each of the archive commands.
-	if test "$module" = yes && test -n "$module_cmds" ; then
-	  if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-	    eval test_cmds=\"$module_expsym_cmds\"
-	    cmds=$module_expsym_cmds
-	  else
-	    eval test_cmds=\"$module_cmds\"
-	    cmds=$module_cmds
-	  fi
-	else
-	  if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	    eval test_cmds=\"$archive_expsym_cmds\"
-	    cmds=$archive_expsym_cmds
-	  else
-	    eval test_cmds=\"$archive_cmds\"
-	    cmds=$archive_cmds
-	  fi
-	fi
-
-	if test "X$skipped_export" != "X:" &&
-	   func_len " $test_cmds" &&
-	   len=$func_len_result &&
-	   test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  :
-	else
-	  # The command line is too long to link in one step, link piecewise
-	  # or, if using GNU ld and skipped_export is not :, use a linker
-	  # script.
-
-	  # Save the value of $output and $libobjs because we want to
-	  # use them later.  If we have whole_archive_flag_spec, we
-	  # want to use save_libobjs as it was before
-	  # whole_archive_flag_spec was expanded, because we can't
-	  # assume the linker understands whole_archive_flag_spec.
-	  # This may have to be revisited, in case too many
-	  # convenience libraries get linked in and end up exceeding
-	  # the spec.
-	  if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then
-	    save_libobjs=$libobjs
-	  fi
-	  save_output=$output
-	  func_basename "$output"
-	  output_la=$func_basename_result
-
-	  # Clear the reloadable object creation command queue and
-	  # initialize k to one.
-	  test_cmds=
-	  concat_cmds=
-	  objlist=
-	  last_robj=
-	  k=1
-
-	  if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
-	    output=${output_objdir}/${output_la}.lnkscript
-	    func_verbose "creating GNU ld script: $output"
-	    echo 'INPUT (' > $output
-	    for obj in $save_libobjs
-	    do
-	      func_to_tool_file "$obj"
-	      $ECHO "$func_to_tool_file_result" >> $output
-	    done
-	    echo ')' >> $output
-	    func_append delfiles " $output"
-	    func_to_tool_file "$output"
-	    output=$func_to_tool_file_result
-	  elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
-	    output=${output_objdir}/${output_la}.lnk
-	    func_verbose "creating linker input file list: $output"
-	    : > $output
-	    set x $save_libobjs
-	    shift
-	    firstobj=
-	    if test "$compiler_needs_object" = yes; then
-	      firstobj="$1 "
-	      shift
-	    fi
-	    for obj
-	    do
-	      func_to_tool_file "$obj"
-	      $ECHO "$func_to_tool_file_result" >> $output
-	    done
-	    func_append delfiles " $output"
-	    func_to_tool_file "$output"
-	    output=$firstobj\"$file_list_spec$func_to_tool_file_result\"
-	  else
-	    if test -n "$save_libobjs"; then
-	      func_verbose "creating reloadable object files..."
-	      output=$output_objdir/$output_la-${k}.$objext
-	      eval test_cmds=\"$reload_cmds\"
-	      func_len " $test_cmds"
-	      len0=$func_len_result
-	      len=$len0
-
-	      # Loop over the list of objects to be linked.
-	      for obj in $save_libobjs
-	      do
-		func_len " $obj"
-		func_arith $len + $func_len_result
-		len=$func_arith_result
-		if test "X$objlist" = X ||
-		   test "$len" -lt "$max_cmd_len"; then
-		  func_append objlist " $obj"
-		else
-		  # The command $test_cmds is almost too long, add a
-		  # command to the queue.
-		  if test "$k" -eq 1 ; then
-		    # The first file doesn't have a previous command to add.
-		    reload_objs=$objlist
-		    eval concat_cmds=\"$reload_cmds\"
-		  else
-		    # All subsequent reloadable object files will link in
-		    # the last one created.
-		    reload_objs="$objlist $last_robj"
-		    eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\"
-		  fi
-		  last_robj=$output_objdir/$output_la-${k}.$objext
-		  func_arith $k + 1
-		  k=$func_arith_result
-		  output=$output_objdir/$output_la-${k}.$objext
-		  objlist=" $obj"
-		  func_len " $last_robj"
-		  func_arith $len0 + $func_len_result
-		  len=$func_arith_result
-		fi
-	      done
-	      # Handle the remaining objects by creating one last
-	      # reloadable object file.  All subsequent reloadable object
-	      # files will link in the last one created.
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      reload_objs="$objlist $last_robj"
-	      eval concat_cmds=\"\${concat_cmds}$reload_cmds\"
-	      if test -n "$last_robj"; then
-	        eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
-	      fi
-	      func_append delfiles " $output"
-
-	    else
-	      output=
-	    fi
-
-	    if ${skipped_export-false}; then
-	      func_verbose "generating symbol list for \`$libname.la'"
-	      export_symbols="$output_objdir/$libname.exp"
-	      $opt_dry_run || $RM $export_symbols
-	      libobjs=$output
-	      # Append the command to create the export file.
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
-	      if test -n "$last_robj"; then
-		eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
-	      fi
-	    fi
-
-	    test -n "$save_libobjs" &&
-	      func_verbose "creating a temporary reloadable object file: $output"
-
-	    # Loop through the commands generated above and execute them.
-	    save_ifs="$IFS"; IFS='~'
-	    for cmd in $concat_cmds; do
-	      IFS="$save_ifs"
-	      $opt_silent || {
-		  func_quote_for_expand "$cmd"
-		  eval "func_echo $func_quote_for_expand_result"
-	      }
-	      $opt_dry_run || eval "$cmd" || {
-		lt_exit=$?
-
-		# Restore the uninstalled library and exit
-		if test "$opt_mode" = relink; then
-		  ( cd "$output_objdir" && \
-		    $RM "${realname}T" && \
-		    $MV "${realname}U" "$realname" )
-		fi
-
-		exit $lt_exit
-	      }
-	    done
-	    IFS="$save_ifs"
-
-	    if test -n "$export_symbols_regex" && ${skipped_export-false}; then
-	      func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"'
-	      func_show_eval '$MV "${export_symbols}T" "$export_symbols"'
-	    fi
-	  fi
-
-          if ${skipped_export-false}; then
-	    if test -n "$export_symbols" && test -n "$include_expsyms"; then
-	      tmp_export_symbols="$export_symbols"
-	      test -n "$orig_export_symbols" && tmp_export_symbols="$orig_export_symbols"
-	      $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"'
-	    fi
-
-	    if test -n "$orig_export_symbols"; then
-	      # The given exports_symbols file has to be filtered, so filter it.
-	      func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
-	      # FIXME: $output_objdir/$libname.filter potentially contains lots of
-	      # 's' commands which not all seds can handle. GNU sed should be fine
-	      # though. Also, the filter scales superlinearly with the number of
-	      # global variables. join(1) would be nice here, but unfortunately
-	      # isn't a blessed tool.
-	      $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter
-	      func_append delfiles " $export_symbols $output_objdir/$libname.filter"
-	      export_symbols=$output_objdir/$libname.def
-	      $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols
-	    fi
-	  fi
-
-	  libobjs=$output
-	  # Restore the value of output.
-	  output=$save_output
-
-	  if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then
-	    eval libobjs=\"\$libobjs $whole_archive_flag_spec\"
-	    test "X$libobjs" = "X " && libobjs=
-	  fi
-	  # Expand the library linking commands again to reset the
-	  # value of $libobjs for piecewise linking.
-
-	  # Do each of the archive commands.
-	  if test "$module" = yes && test -n "$module_cmds" ; then
-	    if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then
-	      cmds=$module_expsym_cmds
-	    else
-	      cmds=$module_cmds
-	    fi
-	  else
-	    if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then
-	      cmds=$archive_expsym_cmds
-	    else
-	      cmds=$archive_cmds
-	    fi
-	  fi
-	fi
-
-	if test -n "$delfiles"; then
-	  # Append the command to remove temporary files to $cmds.
-	  eval cmds=\"\$cmds~\$RM $delfiles\"
-	fi
-
-	# Add any objects from preloaded convenience libraries
-	if test -n "$dlprefiles"; then
-	  gentop="$output_objdir/${outputname}x"
-	  func_append generated " $gentop"
-
-	  func_extract_archives $gentop $dlprefiles
-	  func_append libobjs " $func_extract_archives_result"
-	  test "X$libobjs" = "X " && libobjs=
-	fi
-
-	save_ifs="$IFS"; IFS='~'
-	for cmd in $cmds; do
-	  IFS="$save_ifs"
-	  eval cmd=\"$cmd\"
-	  $opt_silent || {
-	    func_quote_for_expand "$cmd"
-	    eval "func_echo $func_quote_for_expand_result"
-	  }
-	  $opt_dry_run || eval "$cmd" || {
-	    lt_exit=$?
-
-	    # Restore the uninstalled library and exit
-	    if test "$opt_mode" = relink; then
-	      ( cd "$output_objdir" && \
-	        $RM "${realname}T" && \
-		$MV "${realname}U" "$realname" )
-	    fi
-
-	    exit $lt_exit
-	  }
-	done
-	IFS="$save_ifs"
-
-	# Restore the uninstalled library and exit
-	if test "$opt_mode" = relink; then
-	  $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $?
-
-	  if test -n "$convenience"; then
-	    if test -z "$whole_archive_flag_spec"; then
-	      func_show_eval '${RM}r "$gentop"'
-	    fi
-	  fi
-
-	  exit $EXIT_SUCCESS
-	fi
-
-	# Create links to the real library.
-	for linkname in $linknames; do
-	  if test "$realname" != "$linkname"; then
-	    func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?'
-	  fi
-	done
-
-	# If -module or -export-dynamic was specified, set the dlname.
-	if test "$module" = yes || test "$export_dynamic" = yes; then
-	  # On all known operating systems, these are identical.
-	  dlname="$soname"
-	fi
-      fi
-      ;;
-
-    obj)
-      if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
-	func_warning "\`-dlopen' is ignored for objects"
-      fi
-
-      case " $deplibs" in
-      *\ -l* | *\ -L*)
-	func_warning "\`-l' and \`-L' are ignored for objects" ;;
-      esac
-
-      test -n "$rpath" && \
-	func_warning "\`-rpath' is ignored for objects"
-
-      test -n "$xrpath" && \
-	func_warning "\`-R' is ignored for objects"
-
-      test -n "$vinfo" && \
-	func_warning "\`-version-info' is ignored for objects"
-
-      test -n "$release" && \
-	func_warning "\`-release' is ignored for objects"
-
-      case $output in
-      *.lo)
-	test -n "$objs$old_deplibs" && \
-	  func_fatal_error "cannot build library object \`$output' from non-libtool objects"
-
-	libobj=$output
-	func_lo2o "$libobj"
-	obj=$func_lo2o_result
-	;;
-      *)
-	libobj=
-	obj="$output"
-	;;
-      esac
-
-      # Delete the old objects.
-      $opt_dry_run || $RM $obj $libobj
-
-      # Objects from convenience libraries.  This assumes
-      # single-version convenience libraries.  Whenever we create
-      # different ones for PIC/non-PIC, this we'll have to duplicate
-      # the extraction.
-      reload_conv_objs=
-      gentop=
-      # reload_cmds runs $LD directly, so let us get rid of
-      # -Wl from whole_archive_flag_spec and hope we can get by with
-      # turning comma into space..
-      wl=
-
-      if test -n "$convenience"; then
-	if test -n "$whole_archive_flag_spec"; then
-	  eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\"
-	  reload_conv_objs=$reload_objs\ `$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'`
-	else
-	  gentop="$output_objdir/${obj}x"
-	  func_append generated " $gentop"
-
-	  func_extract_archives $gentop $convenience
-	  reload_conv_objs="$reload_objs $func_extract_archives_result"
-	fi
-      fi
-
-      # If we're not building shared, we need to use non_pic_objs
-      test "$build_libtool_libs" != yes && libobjs="$non_pic_objects"
-
-      # Create the old-style object.
-      reload_objs="$objs$old_deplibs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.${libext}$/d; /\.lib$/d; $lo2o" | $NL2SP`" $reload_conv_objs" ### testsuite: skip nested quoting test
-
-      output="$obj"
-      func_execute_cmds "$reload_cmds" 'exit $?'
-
-      # Exit if we aren't doing a library object file.
-      if test -z "$libobj"; then
-	if test -n "$gentop"; then
-	  func_show_eval '${RM}r "$gentop"'
-	fi
-
-	exit $EXIT_SUCCESS
-      fi
-
-      if test "$build_libtool_libs" != yes; then
-	if test -n "$gentop"; then
-	  func_show_eval '${RM}r "$gentop"'
-	fi
-
-	# Create an invalid libtool object if no PIC, so that we don't
-	# accidentally link it into a program.
-	# $show "echo timestamp > $libobj"
-	# $opt_dry_run || eval "echo timestamp > $libobj" || exit $?
-	exit $EXIT_SUCCESS
-      fi
-
-      if test -n "$pic_flag" || test "$pic_mode" != default; then
-	# Only do commands if we really have different PIC objects.
-	reload_objs="$libobjs $reload_conv_objs"
-	output="$libobj"
-	func_execute_cmds "$reload_cmds" 'exit $?'
-      fi
-
-      if test -n "$gentop"; then
-	func_show_eval '${RM}r "$gentop"'
-      fi
-
-      exit $EXIT_SUCCESS
-      ;;
-
-    prog)
-      case $host in
-	*cygwin*) func_stripname '' '.exe' "$output"
-	          output=$func_stripname_result.exe;;
-      esac
-      test -n "$vinfo" && \
-	func_warning "\`-version-info' is ignored for programs"
-
-      test -n "$release" && \
-	func_warning "\`-release' is ignored for programs"
-
-      test "$preload" = yes \
-        && test "$dlopen_support" = unknown \
-	&& test "$dlopen_self" = unknown \
-	&& test "$dlopen_self_static" = unknown && \
-	  func_warning "\`LT_INIT([dlopen])' not used. Assuming no dlopen support."
-
-      case $host in
-      *-*-rhapsody* | *-*-darwin1.[012])
-	# On Rhapsody replace the C library is the System framework
-	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'`
-	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'`
-	;;
-      esac
-
-      case $host in
-      *-*-darwin*)
-	# Don't allow lazy linking, it breaks C++ global constructors
-	# But is supposedly fixed on 10.4 or later (yay!).
-	if test "$tagname" = CXX ; then
-	  case ${MACOSX_DEPLOYMENT_TARGET-10.0} in
-	    10.[0123])
-	      func_append compile_command " ${wl}-bind_at_load"
-	      func_append finalize_command " ${wl}-bind_at_load"
-	    ;;
-	  esac
-	fi
-	# Time to change all our "foo.ltframework" stuff back to "-framework foo"
-	compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'`
-	;;
-      esac
-
-
-      # move library search paths that coincide with paths to not yet
-      # installed libraries to the beginning of the library search list
-      new_libs=
-      for path in $notinst_path; do
-	case " $new_libs " in
-	*" -L$path/$objdir "*) ;;
-	*)
-	  case " $compile_deplibs " in
-	  *" -L$path/$objdir "*)
-	    func_append new_libs " -L$path/$objdir" ;;
-	  esac
-	  ;;
-	esac
-      done
-      for deplib in $compile_deplibs; do
-	case $deplib in
-	-L*)
-	  case " $new_libs " in
-	  *" $deplib "*) ;;
-	  *) func_append new_libs " $deplib" ;;
-	  esac
-	  ;;
-	*) func_append new_libs " $deplib" ;;
-	esac
-      done
-      compile_deplibs="$new_libs"
-
-
-      func_append compile_command " $compile_deplibs"
-      func_append finalize_command " $finalize_deplibs"
-
-      if test -n "$rpath$xrpath"; then
-	# If the user specified any rpath flags, then add them.
-	for libdir in $rpath $xrpath; do
-	  # This is the magic to use -rpath.
-	  case "$finalize_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append finalize_rpath " $libdir" ;;
-	  esac
-	done
-      fi
-
-      # Now hardcode the library paths
-      rpath=
-      hardcode_libdirs=
-      for libdir in $compile_rpath $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    func_append rpath " $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append perm_rpath " $libdir" ;;
-	  esac
-	fi
-	case $host in
-	*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
-	  testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
-	  case :$dllsearchpath: in
-	  *":$libdir:"*) ;;
-	  ::) dllsearchpath=$libdir;;
-	  *) func_append dllsearchpath ":$libdir";;
-	  esac
-	  case :$dllsearchpath: in
-	  *":$testbindir:"*) ;;
-	  ::) dllsearchpath=$testbindir;;
-	  *) func_append dllsearchpath ":$testbindir";;
-	  esac
-	  ;;
-	esac
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      compile_rpath="$rpath"
-
-      rpath=
-      hardcode_libdirs=
-      for libdir in $finalize_rpath; do
-	if test -n "$hardcode_libdir_flag_spec"; then
-	  if test -n "$hardcode_libdir_separator"; then
-	    if test -z "$hardcode_libdirs"; then
-	      hardcode_libdirs="$libdir"
-	    else
-	      # Just accumulate the unique libdirs.
-	      case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in
-	      *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*)
-		;;
-	      *)
-		func_append hardcode_libdirs "$hardcode_libdir_separator$libdir"
-		;;
-	      esac
-	    fi
-	  else
-	    eval flag=\"$hardcode_libdir_flag_spec\"
-	    func_append rpath " $flag"
-	  fi
-	elif test -n "$runpath_var"; then
-	  case "$finalize_perm_rpath " in
-	  *" $libdir "*) ;;
-	  *) func_append finalize_perm_rpath " $libdir" ;;
-	  esac
-	fi
-      done
-      # Substitute the hardcoded libdirs into the rpath.
-      if test -n "$hardcode_libdir_separator" &&
-	 test -n "$hardcode_libdirs"; then
-	libdir="$hardcode_libdirs"
-	eval rpath=\" $hardcode_libdir_flag_spec\"
-      fi
-      finalize_rpath="$rpath"
-
-      if test -n "$libobjs" && test "$build_old_libs" = yes; then
-	# Transform all the library objects into standard objects.
-	compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
-	finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP`
-      fi
-
-      func_generate_dlsyms "$outputname" "@PROGRAM@" "no"
-
-      # template prelinking step
-      if test -n "$prelink_cmds"; then
-	func_execute_cmds "$prelink_cmds" 'exit $?'
-      fi
-
-      wrappers_required=yes
-      case $host in
-      *cegcc* | *mingw32ce*)
-        # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway.
-        wrappers_required=no
-        ;;
-      *cygwin* | *mingw* )
-        if test "$build_libtool_libs" != yes; then
-          wrappers_required=no
-        fi
-        ;;
-      *)
-        if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
-          wrappers_required=no
-        fi
-        ;;
-      esac
-      if test "$wrappers_required" = no; then
-	# Replace the output file specification.
-	compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
-	link_command="$compile_command$compile_rpath"
-
-	# We have no uninstalled library dependencies, so finalize right now.
-	exit_status=0
-	func_show_eval "$link_command" 'exit_status=$?'
-
-	if test -n "$postlink_cmds"; then
-	  func_to_tool_file "$output"
-	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-	  func_execute_cmds "$postlink_cmds" 'exit $?'
-	fi
-
-	# Delete the generated files.
-	if test -f "$output_objdir/${outputname}S.${objext}"; then
-	  func_show_eval '$RM "$output_objdir/${outputname}S.${objext}"'
-	fi
-
-	exit $exit_status
-      fi
-
-      if test -n "$compile_shlibpath$finalize_shlibpath"; then
-	compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command"
-      fi
-      if test -n "$finalize_shlibpath"; then
-	finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command"
-      fi
-
-      compile_var=
-      finalize_var=
-      if test -n "$runpath_var"; then
-	if test -n "$perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $perm_rpath; do
-	    func_append rpath "$dir:"
-	  done
-	  compile_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-	if test -n "$finalize_perm_rpath"; then
-	  # We should set the runpath_var.
-	  rpath=
-	  for dir in $finalize_perm_rpath; do
-	    func_append rpath "$dir:"
-	  done
-	  finalize_var="$runpath_var=\"$rpath\$$runpath_var\" "
-	fi
-      fi
-
-      if test "$no_install" = yes; then
-	# We don't need to create a wrapper script.
-	link_command="$compile_var$compile_command$compile_rpath"
-	# Replace the output file specification.
-	link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'`
-	# Delete the old output file.
-	$opt_dry_run || $RM $output
-	# Link the executable and exit
-	func_show_eval "$link_command" 'exit $?'
-
-	if test -n "$postlink_cmds"; then
-	  func_to_tool_file "$output"
-	  postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-	  func_execute_cmds "$postlink_cmds" 'exit $?'
-	fi
-
-	exit $EXIT_SUCCESS
-      fi
-
-      if test "$hardcode_action" = relink; then
-	# Fast installation is not supported
-	link_command="$compile_var$compile_command$compile_rpath"
-	relink_command="$finalize_var$finalize_command$finalize_rpath"
-
-	func_warning "this platform does not like uninstalled shared libraries"
-	func_warning "\`$output' will be relinked during installation"
-      else
-	if test "$fast_install" != no; then
-	  link_command="$finalize_var$compile_command$finalize_rpath"
-	  if test "$fast_install" = yes; then
-	    relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'`
-	  else
-	    # fast_install is set to needless
-	    relink_command=
-	  fi
-	else
-	  link_command="$compile_var$compile_command$compile_rpath"
-	  relink_command="$finalize_var$finalize_command$finalize_rpath"
-	fi
-      fi
-
-      # Replace the output file specification.
-      link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'`
-
-      # Delete the old output files.
-      $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname
-
-      func_show_eval "$link_command" 'exit $?'
-
-      if test -n "$postlink_cmds"; then
-	func_to_tool_file "$output_objdir/$outputname"
-	postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'`
-	func_execute_cmds "$postlink_cmds" 'exit $?'
-      fi
-
-      # Now create the wrapper script.
-      func_verbose "creating $output"
-
-      # Quote the relink command for shipping.
-      if test -n "$relink_command"; then
-	# Preserve any variables that may affect compiler behavior
-	for var in $variables_saved_for_relink; do
-	  if eval test -z \"\${$var+set}\"; then
-	    relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
-	  elif eval var_value=\$$var; test -z "$var_value"; then
-	    relink_command="$var=; export $var; $relink_command"
-	  else
-	    func_quote_for_eval "$var_value"
-	    relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
-	  fi
-	done
-	relink_command="(cd `pwd`; $relink_command)"
-	relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
-      fi
-
-      # Only actually do things if not in dry run mode.
-      $opt_dry_run || {
-	# win32 will think the script is a binary if it has
-	# a .exe suffix, so we strip it off here.
-	case $output in
-	  *.exe) func_stripname '' '.exe' "$output"
-	         output=$func_stripname_result ;;
-	esac
-	# test for cygwin because mv fails w/o .exe extensions
-	case $host in
-	  *cygwin*)
-	    exeext=.exe
-	    func_stripname '' '.exe' "$outputname"
-	    outputname=$func_stripname_result ;;
-	  *) exeext= ;;
-	esac
-	case $host in
-	  *cygwin* | *mingw* )
-	    func_dirname_and_basename "$output" "" "."
-	    output_name=$func_basename_result
-	    output_path=$func_dirname_result
-	    cwrappersource="$output_path/$objdir/lt-$output_name.c"
-	    cwrapper="$output_path/$output_name.exe"
-	    $RM $cwrappersource $cwrapper
-	    trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15
-
-	    func_emit_cwrapperexe_src > $cwrappersource
-
-	    # The wrapper executable is built using the $host compiler,
-	    # because it contains $host paths and files. If cross-
-	    # compiling, it, like the target executable, must be
-	    # executed on the $host or under an emulation environment.
-	    $opt_dry_run || {
-	      $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
-	      $STRIP $cwrapper
-	    }
-
-	    # Now, create the wrapper script for func_source use:
-	    func_ltwrapper_scriptname $cwrapper
-	    $RM $func_ltwrapper_scriptname_result
-	    trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
-	    $opt_dry_run || {
-	      # note: this script will not be executed, so do not chmod.
-	      if test "x$build" = "x$host" ; then
-		$cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
-	      else
-		func_emit_wrapper no > $func_ltwrapper_scriptname_result
-	      fi
-	    }
-	  ;;
-	  * )
-	    $RM $output
-	    trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
-
-	    func_emit_wrapper no > $output
-	    chmod +x $output
-	  ;;
-	esac
-      }
-      exit $EXIT_SUCCESS
-      ;;
-    esac
-
-    # See if we need to build an old-fashioned archive.
-    for oldlib in $oldlibs; do
-
-      if test "$build_libtool_libs" = convenience; then
-	oldobjs="$libobjs_save $symfileobj"
-	addlibs="$convenience"
-	build_libtool_libs=no
-      else
-	if test "$build_libtool_libs" = module; then
-	  oldobjs="$libobjs_save"
-	  build_libtool_libs=no
-	else
-	  oldobjs="$old_deplibs $non_pic_objects"
-	  if test "$preload" = yes && test -f "$symfileobj"; then
-	    func_append oldobjs " $symfileobj"
-	  fi
-	fi
-	addlibs="$old_convenience"
-      fi
-
-      if test -n "$addlibs"; then
-	gentop="$output_objdir/${outputname}x"
-	func_append generated " $gentop"
-
-	func_extract_archives $gentop $addlibs
-	func_append oldobjs " $func_extract_archives_result"
-      fi
-
-      # Do each command in the archive commands.
-      if test -n "$old_archive_from_new_cmds" && test "$build_libtool_libs" = yes; then
-	cmds=$old_archive_from_new_cmds
-      else
-
-	# Add any objects from preloaded convenience libraries
-	if test -n "$dlprefiles"; then
-	  gentop="$output_objdir/${outputname}x"
-	  func_append generated " $gentop"
-
-	  func_extract_archives $gentop $dlprefiles
-	  func_append oldobjs " $func_extract_archives_result"
-	fi
-
-	# POSIX demands no paths to be encoded in archives.  We have
-	# to avoid creating archives with duplicate basenames if we
-	# might have to extract them afterwards, e.g., when creating a
-	# static archive out of a convenience library, or when linking
-	# the entirety of a libtool archive into another (currently
-	# not supported by libtool).
-	if (for obj in $oldobjs
-	    do
-	      func_basename "$obj"
-	      $ECHO "$func_basename_result"
-	    done | sort | sort -uc >/dev/null 2>&1); then
-	  :
-	else
-	  echo "copying selected object files to avoid basename conflicts..."
-	  gentop="$output_objdir/${outputname}x"
-	  func_append generated " $gentop"
-	  func_mkdir_p "$gentop"
-	  save_oldobjs=$oldobjs
-	  oldobjs=
-	  counter=1
-	  for obj in $save_oldobjs
-	  do
-	    func_basename "$obj"
-	    objbase="$func_basename_result"
-	    case " $oldobjs " in
-	    " ") oldobjs=$obj ;;
-	    *[\ /]"$objbase "*)
-	      while :; do
-		# Make sure we don't pick an alternate name that also
-		# overlaps.
-		newobj=lt$counter-$objbase
-		func_arith $counter + 1
-		counter=$func_arith_result
-		case " $oldobjs " in
-		*[\ /]"$newobj "*) ;;
-		*) if test ! -f "$gentop/$newobj"; then break; fi ;;
-		esac
-	      done
-	      func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj"
-	      func_append oldobjs " $gentop/$newobj"
-	      ;;
-	    *) func_append oldobjs " $obj" ;;
-	    esac
-	  done
-	fi
-	func_to_tool_file "$oldlib" func_convert_file_msys_to_w32
-	tool_oldlib=$func_to_tool_file_result
-	eval cmds=\"$old_archive_cmds\"
-
-	func_len " $cmds"
-	len=$func_len_result
-	if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
-	  cmds=$old_archive_cmds
-	elif test -n "$archiver_list_spec"; then
-	  func_verbose "using command file archive linking..."
-	  for obj in $oldobjs
-	  do
-	    func_to_tool_file "$obj"
-	    $ECHO "$func_to_tool_file_result"
-	  done > $output_objdir/$libname.libcmd
-	  func_to_tool_file "$output_objdir/$libname.libcmd"
-	  oldobjs=" $archiver_list_spec$func_to_tool_file_result"
-	  cmds=$old_archive_cmds
-	else
-	  # the command line is too long to link in one step, link in parts
-	  func_verbose "using piecewise archive linking..."
-	  save_RANLIB=$RANLIB
-	  RANLIB=:
-	  objlist=
-	  concat_cmds=
-	  save_oldobjs=$oldobjs
-	  oldobjs=
-	  # Is there a better way of finding the last object in the list?
-	  for obj in $save_oldobjs
-	  do
-	    last_oldobj=$obj
-	  done
-	  eval test_cmds=\"$old_archive_cmds\"
-	  func_len " $test_cmds"
-	  len0=$func_len_result
-	  len=$len0
-	  for obj in $save_oldobjs
-	  do
-	    func_len " $obj"
-	    func_arith $len + $func_len_result
-	    len=$func_arith_result
-	    func_append objlist " $obj"
-	    if test "$len" -lt "$max_cmd_len"; then
-	      :
-	    else
-	      # the above command should be used before it gets too long
-	      oldobjs=$objlist
-	      if test "$obj" = "$last_oldobj" ; then
-		RANLIB=$save_RANLIB
-	      fi
-	      test -z "$concat_cmds" || concat_cmds=$concat_cmds~
-	      eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
-	      objlist=
-	      len=$len0
-	    fi
-	  done
-	  RANLIB=$save_RANLIB
-	  oldobjs=$objlist
-	  if test "X$oldobjs" = "X" ; then
-	    eval cmds=\"\$concat_cmds\"
-	  else
-	    eval cmds=\"\$concat_cmds~\$old_archive_cmds\"
-	  fi
-	fi
-      fi
-      func_execute_cmds "$cmds" 'exit $?'
-    done
-
-    test -n "$generated" && \
-      func_show_eval "${RM}r$generated"
-
-    # Now create the libtool archive.
-    case $output in
-    *.la)
-      old_library=
-      test "$build_old_libs" = yes && old_library="$libname.$libext"
-      func_verbose "creating $output"
-
-      # Preserve any variables that may affect compiler behavior
-      for var in $variables_saved_for_relink; do
-	if eval test -z \"\${$var+set}\"; then
-	  relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command"
-	elif eval var_value=\$$var; test -z "$var_value"; then
-	  relink_command="$var=; export $var; $relink_command"
-	else
-	  func_quote_for_eval "$var_value"
-	  relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command"
-	fi
-      done
-      # Quote the link command for shipping.
-      relink_command="(cd `pwd`; $SHELL $progpath $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)"
-      relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"`
-      if test "$hardcode_automatic" = yes ; then
-	relink_command=
-      fi
-
-      # Only create the output if not a dry run.
-      $opt_dry_run || {
-	for installed in no yes; do
-	  if test "$installed" = yes; then
-	    if test -z "$install_libdir"; then
-	      break
-	    fi
-	    output="$output_objdir/$outputname"i
-	    # Replace all uninstalled libtool libraries with the installed ones
-	    newdependency_libs=
-	    for deplib in $dependency_libs; do
-	      case $deplib in
-	      *.la)
-		func_basename "$deplib"
-		name="$func_basename_result"
-		func_resolve_sysroot "$deplib"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result`
-		test -z "$libdir" && \
-		  func_fatal_error "\`$deplib' is not a valid libtool archive"
-		func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name"
-		;;
-	      -L*)
-		func_stripname -L '' "$deplib"
-		func_replace_sysroot "$func_stripname_result"
-		func_append newdependency_libs " -L$func_replace_sysroot_result"
-		;;
-	      -R*)
-		func_stripname -R '' "$deplib"
-		func_replace_sysroot "$func_stripname_result"
-		func_append newdependency_libs " -R$func_replace_sysroot_result"
-		;;
-	      *) func_append newdependency_libs " $deplib" ;;
-	      esac
-	    done
-	    dependency_libs="$newdependency_libs"
-	    newdlfiles=
-
-	    for lib in $dlfiles; do
-	      case $lib in
-	      *.la)
-	        func_basename "$lib"
-		name="$func_basename_result"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-		test -z "$libdir" && \
-		  func_fatal_error "\`$lib' is not a valid libtool archive"
-		func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name"
-		;;
-	      *) func_append newdlfiles " $lib" ;;
-	      esac
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      case $lib in
-	      *.la)
-		# Only pass preopened files to the pseudo-archive (for
-		# eventual linking with the app. that links it) if we
-		# didn't already link the preopened objects directly into
-		# the library:
-		func_basename "$lib"
-		name="$func_basename_result"
-		eval libdir=`${SED} -n -e 's/^libdir=\(.*\)$/\1/p' $lib`
-		test -z "$libdir" && \
-		  func_fatal_error "\`$lib' is not a valid libtool archive"
-		func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name"
-		;;
-	      esac
-	    done
-	    dlprefiles="$newdlprefiles"
-	  else
-	    newdlfiles=
-	    for lib in $dlfiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      func_append newdlfiles " $abs"
-	    done
-	    dlfiles="$newdlfiles"
-	    newdlprefiles=
-	    for lib in $dlprefiles; do
-	      case $lib in
-		[\\/]* | [A-Za-z]:[\\/]*) abs="$lib" ;;
-		*) abs=`pwd`"/$lib" ;;
-	      esac
-	      func_append newdlprefiles " $abs"
-	    done
-	    dlprefiles="$newdlprefiles"
-	  fi
-	  $RM $output
-	  # place dlname in correct position for cygwin
-	  # In fact, it would be nice if we could use this code for all target
-	  # systems that can't hard-code library paths into their executables
-	  # and that have no shared library path variable independent of PATH,
-	  # but it turns out we can't easily determine that from inspecting
-	  # libtool variables, so we have to hard-code the OSs to which it
-	  # applies here; at the moment, that means platforms that use the PE
-	  # object format with DLL files.  See the long comment at the top of
-	  # tests/bindir.at for full details.
-	  tdlname=$dlname
-	  case $host,$output,$installed,$module,$dlname in
-	    *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll)
-	      # If a -bindir argument was supplied, place the dll there.
-	      if test "x$bindir" != x ;
-	      then
-		func_relative_path "$install_libdir" "$bindir"
-		tdlname=$func_relative_path_result$dlname
-	      else
-		# Otherwise fall back on heuristic.
-		tdlname=../bin/$dlname
-	      fi
-	      ;;
-	  esac
-	  $ECHO > $output "\
-# $outputname - a libtool library file
-# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-#
-# Please DO NOT delete this file!
-# It is necessary for linking the library.
-
-# The name that we can dlopen(3).
-dlname='$tdlname'
-
-# Names of this library.
-library_names='$library_names'
-
-# The name of the static archive.
-old_library='$old_library'
-
-# Linker flags that can not go in dependency_libs.
-inherited_linker_flags='$new_inherited_linker_flags'
-
-# Libraries that this one depends upon.
-dependency_libs='$dependency_libs'
-
-# Names of additional weak libraries provided by this library
-weak_library_names='$weak_libs'
-
-# Version information for $libname.
-current=$current
-age=$age
-revision=$revision
-
-# Is this an already installed library?
-installed=$installed
-
-# Should we warn about portability when linking against -modules?
-shouldnotlink=$module
-
-# Files to dlopen/dlpreopen
-dlopen='$dlfiles'
-dlpreopen='$dlprefiles'
-
-# Directory that this library needs to be installed in:
-libdir='$install_libdir'"
-	  if test "$installed" = no && test "$need_relink" = yes; then
-	    $ECHO >> $output "\
-relink_command=\"$relink_command\""
-	  fi
-	done
-      }
-
-      # Do a symbolic link so that the libtool archive can be found in
-      # LD_LIBRARY_PATH before the program is installed.
-      func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?'
-      ;;
-    esac
-    exit $EXIT_SUCCESS
-}
-
-{ test "$opt_mode" = link || test "$opt_mode" = relink; } &&
-    func_mode_link ${1+"$@"}
-
-
-# func_mode_uninstall arg...
-func_mode_uninstall ()
-{
-    $opt_debug
-    RM="$nonopt"
-    files=
-    rmforce=
-    exit_status=0
-
-    # This variable tells wrapper scripts just to set variables rather
-    # than running their programs.
-    libtool_install_magic="$magic"
-
-    for arg
-    do
-      case $arg in
-      -f) func_append RM " $arg"; rmforce=yes ;;
-      -*) func_append RM " $arg" ;;
-      *) func_append files " $arg" ;;
-      esac
-    done
-
-    test -z "$RM" && \
-      func_fatal_help "you must specify an RM program"
-
-    rmdirs=
-
-    for file in $files; do
-      func_dirname "$file" "" "."
-      dir="$func_dirname_result"
-      if test "X$dir" = X.; then
-	odir="$objdir"
-      else
-	odir="$dir/$objdir"
-      fi
-      func_basename "$file"
-      name="$func_basename_result"
-      test "$opt_mode" = uninstall && odir="$dir"
-
-      # Remember odir for removal later, being careful to avoid duplicates
-      if test "$opt_mode" = clean; then
-	case " $rmdirs " in
-	  *" $odir "*) ;;
-	  *) func_append rmdirs " $odir" ;;
-	esac
-      fi
-
-      # Don't error if the file doesn't exist and rm -f was used.
-      if { test -L "$file"; } >/dev/null 2>&1 ||
-	 { test -h "$file"; } >/dev/null 2>&1 ||
-	 test -f "$file"; then
-	:
-      elif test -d "$file"; then
-	exit_status=1
-	continue
-      elif test "$rmforce" = yes; then
-	continue
-      fi
-
-      rmfiles="$file"
-
-      case $name in
-      *.la)
-	# Possibly a libtool archive, so verify it.
-	if func_lalib_p "$file"; then
-	  func_source $dir/$name
-
-	  # Delete the libtool libraries and symlinks.
-	  for n in $library_names; do
-	    func_append rmfiles " $odir/$n"
-	  done
-	  test -n "$old_library" && func_append rmfiles " $odir/$old_library"
-
-	  case "$opt_mode" in
-	  clean)
-	    case " $library_names " in
-	    *" $dlname "*) ;;
-	    *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;;
-	    esac
-	    test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i"
-	    ;;
-	  uninstall)
-	    if test -n "$library_names"; then
-	      # Do each command in the postuninstall commands.
-	      func_execute_cmds "$postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
-	    fi
-
-	    if test -n "$old_library"; then
-	      # Do each command in the old_postuninstall commands.
-	      func_execute_cmds "$old_postuninstall_cmds" 'test "$rmforce" = yes || exit_status=1'
-	    fi
-	    # FIXME: should reinstall the best remaining shared library.
-	    ;;
-	  esac
-	fi
-	;;
-
-      *.lo)
-	# Possibly a libtool object, so verify it.
-	if func_lalib_p "$file"; then
-
-	  # Read the .lo file
-	  func_source $dir/$name
-
-	  # Add PIC object to the list of files to remove.
-	  if test -n "$pic_object" &&
-	     test "$pic_object" != none; then
-	    func_append rmfiles " $dir/$pic_object"
-	  fi
-
-	  # Add non-PIC object to the list of files to remove.
-	  if test -n "$non_pic_object" &&
-	     test "$non_pic_object" != none; then
-	    func_append rmfiles " $dir/$non_pic_object"
-	  fi
-	fi
-	;;
-
-      *)
-	if test "$opt_mode" = clean ; then
-	  noexename=$name
-	  case $file in
-	  *.exe)
-	    func_stripname '' '.exe' "$file"
-	    file=$func_stripname_result
-	    func_stripname '' '.exe' "$name"
-	    noexename=$func_stripname_result
-	    # $file with .exe has already been added to rmfiles,
-	    # add $file without .exe
-	    func_append rmfiles " $file"
-	    ;;
-	  esac
-	  # Do a test to see if this is a libtool program.
-	  if func_ltwrapper_p "$file"; then
-	    if func_ltwrapper_executable_p "$file"; then
-	      func_ltwrapper_scriptname "$file"
-	      relink_command=
-	      func_source $func_ltwrapper_scriptname_result
-	      func_append rmfiles " $func_ltwrapper_scriptname_result"
-	    else
-	      relink_command=
-	      func_source $dir/$noexename
-	    fi
-
-	    # note $name still contains .exe if it was in $file originally
-	    # as does the version of $file that was added into $rmfiles
-	    func_append rmfiles " $odir/$name $odir/${name}S.${objext}"
-	    if test "$fast_install" = yes && test -n "$relink_command"; then
-	      func_append rmfiles " $odir/lt-$name"
-	    fi
-	    if test "X$noexename" != "X$name" ; then
-	      func_append rmfiles " $odir/lt-${noexename}.c"
-	    fi
-	  fi
-	fi
-	;;
-      esac
-      func_show_eval "$RM $rmfiles" 'exit_status=1'
-    done
-
-    # Try to remove the ${objdir}s in the directories where we deleted files
-    for dir in $rmdirs; do
-      if test -d "$dir"; then
-	func_show_eval "rmdir $dir >/dev/null 2>&1"
-      fi
-    done
-
-    exit $exit_status
-}
-
-{ test "$opt_mode" = uninstall || test "$opt_mode" = clean; } &&
-    func_mode_uninstall ${1+"$@"}
-
-test -z "$opt_mode" && {
-  help="$generic_help"
-  func_fatal_help "you must specify a MODE"
-}
-
-test -z "$exec_cmd" && \
-  func_fatal_help "invalid operation mode \`$opt_mode'"
-
-if test -n "$exec_cmd"; then
-  eval exec "$exec_cmd"
-  exit $EXIT_FAILURE
-fi
-
-exit $exit_status
-
-
-# The TAGs below are defined such that we never get into a situation
-# in which we disable both kinds of libraries.  Given conflicting
-# choices, we go for a static library, that is the most portable,
-# since we can't tell whether shared libraries were disabled because
-# the user asked for that or because the platform doesn't support
-# them.  This is particularly important on AIX, because we don't
-# support having both static and shared libraries enabled at the same
-# time on that platform, so we default to a shared-only configuration.
-# If a disable-shared tag is given, we'll fallback to a static-only
-# configuration.  But we'll never go from static-only to shared-only.
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-shared
-build_libtool_libs=no
-build_old_libs=yes
-# ### END LIBTOOL TAG CONFIG: disable-shared
-
-# ### BEGIN LIBTOOL TAG CONFIG: disable-static
-build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
-# ### END LIBTOOL TAG CONFIG: disable-static
-
-# Local Variables:
-# mode:shell-script
-# sh-indentation:2
-# End:
-# vi:sw=2
-
diff --git a/m4/apache.m4 b/m4/apache.m4
deleted file mode 100644
index e16385d..0000000
--- a/m4/apache.m4
+++ /dev/null
@@ -1,124 +0,0 @@
-# macro that is used to parse a --with-apxs parameter
-AC_DEFUN([APXS_CHECK],[
-    AC_SUBST(APXS)
-    
-    AC_ARG_WITH(
-        apxs,
-        [  --with-apxs[=/path/to/apxs]     Apache 2 apxs tool location],
-        ,
-        [with_apxs="yes"]
-    )
-    
-    if test "$with_apxs" = "yes"; then
-        AC_PATH_PROG(APXS, apxs2)
-        if test -z "$APXS"; then
-            AC_PATH_PROG(APXS, apxs)
-        fi
-    elif test "$with_apxs" = "no"; then
-        AC_MSG_ERROR(apxs is required and cannot be disabled)
-    else
-        AC_MSG_CHECKING(for apxs usability in $with_apxs)
-        if test -x "$with_apxs"; then
-            APXS=$with_apxs
-            AC_MSG_RESULT(yes)
-        else
-            AC_MSG_ERROR($with_apxs not found or not executable)
-        fi
-    fi
-    if test -z "$APXS"; then
-        AC_MSG_ERROR(apxs utility not found. use --with-apxs to specify its location.)
-    fi
-    AC_SUBST(APXS)
-    APACHE_SBINDIR=`$APXS -q SBINDIR`
-    APACHE_BINDIR=`$APXS -q BINDIR`
-    AC_SUBST(APACHE_SBINDIR)
-    AC_SUBST(APACHE_BINDIR)
-    AC_MSG_CHECKING([for apachectl utility])
-    APACHECTL=
-    if test -x "$APACHE_SBINDIR/apachectl" ; then
-      APACHECTL="$APACHE_SBINDIR/apachectl" 
-    else
-      if test -x "$APACHE_SBINDIR/apache2ctl" ; then
-        APACHECTL="$APACHE_SBINDIR/apache2ctl" 
-      else
-        AC_PATH_PROG(APACHECTL,apachectl)
-        if test -z "$APACHECTL"; then
-          AC_PATH_PROG(APACHECTL,apache2ctl)
-        fi
-      fi
-    fi
-    
-    if test -z "$APACHECTL"; then
-      AC_MSG_RESULT([Unable to find apachectl utility, you will not be able to restart
-                   and install module with the created Makefile])
-    else
-      AC_MSG_RESULT([$APACHECTL])
-    fi
-    AC_SUBST(APACHECTL)
-    AC_SUBST(APACHE_INC,-I`$APXS -q INCLUDEDIR`)
-    AC_SUBST(APACHE_LIBS,`$APXS -q LIBS`)
-    AC_SUBST(APACHE_LDFLAGS,`$APXS -q LDFLAGS`)
-    SBINDIR=`$APXS -q SBINDIR`
-    TARGET=`$APXS -q TARGET`
-    HTTPD="$SBINDIR/$TARGET"
-    AC_SUBST(HTTPD,"$HTTPD")
-    
-])
- 
-AC_DEFUN([APR_CHECK],[
-  AC_SUBST(APRCONFIG)
-  AC_ARG_WITH(apr_config,
-    AC_HELP_STRING([--with-apr-config], [path to apr-config program]),
-    ,
-    [with_apr_config=yes]
-  )
-    if test "$with_apr_config" = "yes"; then
-        AC_MSG_CHECKING(for apr-config in default locations)
-        if test -n "$APXS"; then
-            APXSFULL=`which "$APXS"`
-            APXSDIR=`dirname "$APXSFULL"`
-            if test -x "$APXSDIR/apr-config"; then
-                APRCONFIG="$APXSDIR/apr-config"
-            elif test -x "$APACHE_SBINDIR/apr-config"; then
-                APRCONFIG="$APACHE_SBINDIR/apr-config"
-            elif test -x "$APACHE_BINDIR/apr-config"; then
-                APRCONFIG="$APACHE_BINDIR/apr-config"
-            elif test -x "$APXSDIR/apr-1-config"; then
-                APRCONFIG="$APXSDIR/apr-1-config"
-            elif test -x "$APACHE_SBINDIR/apr-1-config"; then
-                APRCONFIG="$APACHE_SBINDIR/apr-1-config"
-            elif test -x "$APACHE_BINDIR/apr-1-config"; then
-                APRCONFIG="$APACHE_BINDIR/apr-1-config"
-            fi
-        fi
-        if test -z "$APRCONFIG"; then
-            AC_PATH_PROG(APRCONFIG, apr-config)
-        fi
-        if test -z "$APRCONFIG"; then
-            AC_PATH_PROG(APRCONFIG, apr-1-config)
-        fi
-        if test -n "$APRCONFIG"; then
-            AC_MSG_RESULT([using $APRCONFIG, use --with-apr-config=/path/to/apr-(1-)config to modify])
-        else
-            AC_MSG_RESULT([not found])
-        fi
-    elif test "$with_apr_config" = "no"; then
-        AC_MSG_ERROR(apr-config is required and cannot be disabled)
-    else
-        AC_MSG_CHECKING(for apr-config usability in $with_apr_config)
-        if test -x "$with_apr_config"; then
-            APRCONFIG=$with_apr_config
-            AC_MSG_RESULT(yes)
-        else
-            AC_MSG_ERROR($with_apr_config not found or not executable)
-        fi
-    fi
-    if test -z "$APRCONFIG"; then
-        AC_MSG_ERROR(apr-config utility not found. use --with-apr-config to specify its location.)
-    fi
-    AC_SUBST(APRCONFIG)
-    AC_SUBST(APR_CFLAGS,`$APRCONFIG --cppflags --cflags`) 
-    AC_SUBST(APR_INC,`$APRCONFIG --includes`)
-    AC_SUBST(APR_LIBS,`$APRCONFIG --link-libtool`)
-])
-
diff --git a/m4/ax_append_flag.m4 b/m4/ax_append_flag.m4
deleted file mode 100644
index 39c7a86..0000000
--- a/m4/ax_append_flag.m4
+++ /dev/null
@@ -1,241 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en-US" lang="en-US">
-<!-- git web interface version 1.7.2.5, (C) 2005-2006, Kay Sievers <kay.sievers at vrfy.org>, Christian Gierke -->
-<!-- git core binaries version 1.7.2.5 -->
-<head>
-<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
-<meta name="generator" content="gitweb/1.7.2.5 git/1.7.2.5"/>
-<meta name="robots" content="index, nofollow"/>
-<title>Savannah Git Hosting - autoconf-archive.git/summary</title>
-<link rel="stylesheet" type="text/css" href="gitweb.css"/>
-<link rel="alternate" title="autoconf-archive.git - log - RSS feed" href="/gitweb/?p=autoconf-archive.git;a=rss" type="application/rss+xml" />
-<link rel="alternate" title="autoconf-archive.git - log - RSS feed (no merges)" href="/gitweb/?p=autoconf-archive.git;a=rss;opt=--no-merges" type="application/rss+xml" />
-<link rel="alternate" title="autoconf-archive.git - log - Atom feed" href="/gitweb/?p=autoconf-archive.git;a=atom;opt=--no-merges" type="application/atom+xml" />
-<link rel="alternate" title="autoconf-archive.git - log - Atom feed (no merges)" href="/gitweb/?p=autoconf-archive.git;a=atom;opt=--no-merges" type="application/atom+xml" />
-<link rel="shortcut icon" href="git-favicon.png" type="image/png" />
-</head>
-<body>
-<div class="page_header">
-<a title="git homepage" href="http://git-scm.com/"><img src="git-logo.png" width="72" height="27" alt="git" class="logo"/></a><a href="/gitweb/">git at sv</a> / <a href="/gitweb/?p=autoconf-archive.git;a=summary">autoconf-archive.git</a> / summary
-</div>
-<form method="get" action="/gitweb/" enctype="application/x-www-form-urlencoded">
-<div class="search">
-<input name="p" type="hidden" value="autoconf-archive.git" />
-<input name="a" type="hidden" value="search" />
-<input name="h" type="hidden" value="HEAD" />
-<select name="st" >
-<option selected="selected" value="commit">commit</option>
-<option value="grep">grep</option>
-<option value="author">author</option>
-<option value="committer">committer</option>
-<option value="pickaxe">pickaxe</option>
-</select><sup><a href="/gitweb/?p=autoconf-archive.git;a=search_help">?</a></sup> search:
-<input type="text" name="s"  />
-<span title="Extended regular expression"><label><input type="checkbox" name="sr" value="1" />re</label></span></div>
-</form>
-<div class="page_nav">
-summary | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log">log</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=4696309f0f32878dc88f02a912258c27ab732f41">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=4696309f0f32878dc88f02a912258c27ab732f41">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree">tree</a><br/>
-<br/>
-</div>
-<div class="title"> </div>
-<table class="projects_list">
-<tr id="metadata_desc"><td>description</td><td>autoconf-archive</td></tr>
-<tr id="metadata_owner"><td>owner</td><td></td></tr>
-<tr id="metadata_lchange"><td>last change</td><td>Wed, 21 Dec 2011 11:08:23 +0000</td></tr>
-<tr class="metadata_url"><td>URL</td><td>git://git.sv.gnu.org/autoconf-archive.git</td></tr>
-<tr class="metadata_url"><td></td><td>http://git.savannah.gnu.org/r/autoconf-archive.git</td></tr>
-<tr class="metadata_url"><td></td><td>ssh://git.sv.gnu.org/srv/git/autoconf-archive.git</td></tr>
-</table>
-<div class="header">
-<a class="title" href="/gitweb/?p=autoconf-archive.git;a=shortlog">shortlog</a>
-</div>
-<table class="shortlog">
-<tr class="dark">
-<td title="2011-12-21"><i>5 hours ago</i></td>
-<td class="author"><a title="Search for commits authored by Peter Simons" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Peter+Simons;st=author">Peter Simons</a></td><td><a class="list subject" title="README-maint: updated the documentation of the release procedure" href="/gitweb/?p=autoconf-archive.git;a=commit;h=4696309f0f32878dc88f02a912258c27ab732f41">README-maint: updated the documentation of the release... </a> <span class="refs"> <span class="head" title="heads/master"><a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/heads/master">master</a></span></span></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=4696309f0f32878dc88f02a912258c27ab732f41">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=4696309f0f32878dc88f02a912258c27ab732f41">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=4696309f0f32878dc88f02a912258c27ab732f41;hb=4696309f0f32878dc88f02a912258c27ab732f41">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=4696309f0f32878dc88f02a912258c27ab732f41;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="light">
-<td title="2011-12-21"><i>5 hours ago</i></td>
-<td class="author"><a title="Search for commits authored by Peter Simons" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Peter+Simons;st=author">Peter Simons</a></td><td><a class="list subject" href="/gitweb/?p=autoconf-archive.git;a=commit;h=52959f86fa0e77f629551dbc66fcc9ee2d331950">maint: post-release administrivia</a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=52959f86fa0e77f629551dbc66fcc9ee2d331950">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=52959f86fa0e77f629551dbc66fcc9ee2d331950">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=52959f86fa0e77f629551dbc66fcc9ee2d331950;hb=52959f86fa0e77f629551dbc66fcc9ee2d331950">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=52959f86fa0e77f629551dbc66fcc9ee2d331950;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="dark">
-<td title="2011-12-21"><i>5 hours ago</i></td>
-<td class="author"><a title="Search for commits authored by Peter Simons" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Peter+Simons;st=author">Peter Simons</a></td><td><a class="list subject" href="/gitweb/?p=autoconf-archive.git;a=commit;h=77bb2ab18a583eca3717406e47cba73426f59ab1">README, NEWS: bumped version number for release</a> <span class="refs"> <span class="tag indirect" title="tags/v2011.12.21"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=refs/tags/v2011.12.21">v2011.12.21</a></span></span></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=77bb2ab18a583eca3717406e47cba73426f59ab1">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=77bb2ab18a583eca3717406e47cba73426f59ab1">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=77bb2ab18a583eca3717406e47cba73426f59ab1;hb=77bb2ab18a583eca3717406e47cba73426f59ab1">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=77bb2ab18a583eca3717406e47cba73426f59ab1;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="light">
-<td title="2 weeks ago"><i>2011-12-02</i></td>
-<td class="author"><a title="Search for commits authored by Stephan Sürken" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Stephan+S%C3%BCrken;st=author">Stephan Sürken</a></td><td><a class="list subject" title="AX_BERKELEY_DB_CXX: Add 'AC_LANG_ASSERT(C++)' (as suggested by Amir Taaki, thanks!)." href="/gitweb/?p=autoconf-archive.git;a=commit;h=abb350c0ff5ea95f1e309adb8f46ffcd4245c6c6">AX_BERKELEY_DB_CXX: Add 'AC_LANG_ASSERT(C++)' (as sugge... </a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=abb350c0ff5ea95f1e309adb8f46ffcd4245c6c6">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=abb350c0ff5ea95f1e309adb8f46ffcd4245c6c6">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=abb350c0ff5ea95f1e309adb8f46ffcd4245c6c6;hb=abb350c0ff5ea95f1e309adb8f46ffcd4245c6c6">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=abb350c0ff5ea95f1e309adb8f46ffcd4245c6c6;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="dark">
-<td title="4 weeks ago"><i>2011-11-22</i></td>
-<td class="author"><a title="Search for commits authored by Rhys Ulerich" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Rhys+Ulerich;st=author">Rhys Ulerich</a></td><td><a class="list subject" href="/gitweb/?p=autoconf-archive.git;a=commit;h=aaa6e5bfe0ac2a0ceaff9832ef4e8b1c6ba5f160">Fix inadvertent breakage from commit cfea4ee52f7</a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=aaa6e5bfe0ac2a0ceaff9832ef4e8b1c6ba5f160">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=aaa6e5bfe0ac2a0ceaff9832ef4e8b1c6ba5f160">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=aaa6e5bfe0ac2a0ceaff9832ef4e8b1c6ba5f160;hb=aaa6e5bfe0ac2a0ceaff9832ef4e8b1c6ba5f160">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=aaa6e5bfe0ac2a0ceaff9832ef4e8b1c6ba5f160;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="light">
-<td title="4 weeks ago"><i>2011-11-21</i></td>
-<td class="author"><a title="Search for commits authored by Peter Simons" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Peter+Simons;st=author">Peter Simons</a></td><td><a class="list subject" title="AX_PTHREAD: added missing -mt option for Oracle/Sun CC on Solaris" href="/gitweb/?p=autoconf-archive.git;a=commit;h=6c8eddf2606e768cea66e49fc746330ba88de18e">AX_PTHREAD: added missing -mt option for Oracle/Sun... </a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=6c8eddf2606e768cea66e49fc746330ba88de18e">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=6c8eddf2606e768cea66e49fc746330ba88de18e">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=6c8eddf2606e768cea66e49fc746330ba88de18e;hb=6c8eddf2606e768cea66e49fc746330ba88de18e">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=6c8eddf2606e768cea66e49fc746330ba88de18e;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="dark">
-<td title="4 weeks ago"><i>2011-11-21</i></td>
-<td class="author"><a title="Search for commits authored by Michael Terry" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Michael+Terry;st=author">Michael Terry</a></td><td><a class="list subject" href="/gitweb/?p=autoconf-archive.git;a=commit;h=2fca6b72c6a18efd00712c185f22efb4d61c725c">AX_BOOST_PYTHON: fixed under-quoted use of $CPPFLAGS</a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=2fca6b72c6a18efd00712c185f22efb4d61c725c">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=2fca6b72c6a18efd00712c185f22efb4d61c725c">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=2fca6b72c6a18efd00712c185f22efb4d61c725c;hb=2fca6b72c6a18efd00712c185f22efb4d61c725c">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=2fca6b72c6a18efd00712c185f22efb4d61c725c;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="light">
-<td title="4 weeks ago"><i>2011-11-21</i></td>
-<td class="author"><a title="Search for commits authored by Jonathan Wakely" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Jonathan+Wakely;st=author">Jonathan Wakely</a></td><td><a class="list subject" title="AX_CXX_HEADER_STDCXX_0X: updated the list of headers required by C++11 (the standard... " href="/gitweb/?p=autoconf-archive.git;a=commit;h=c398ff19a45daf82754eca619ecea1e9231e8c04">AX_CXX_HEADER_STDCXX_0X: updated the list of headers... </a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=c398ff19a45daf82754eca619ecea1e9231e8c04">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=c398ff19a45daf82754eca619ecea1e9231e8c04">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=c398ff19a45daf82754eca619ecea1e9231e8c04;hb=c398ff19a45daf82754eca619ecea1e9231e8c04">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=c398ff19a45daf82754eca619ecea1e9231e8c04;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="dark">
-<td title="4 weeks ago"><i>2011-11-21</i></td>
-<td class="author"><a title="Search for commits authored by Peter Simons" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Peter+Simons;st=author">Peter Simons</a></td><td><a class="list subject" title="AX_WITH_CURSES: fixed broken AS_IF() test that prevented $CURSES_LIB from being used" href="/gitweb/?p=autoconf-archive.git;a=commit;h=f0e013b8697406c5be33091e83db56a9f07567fc">AX_WITH_CURSES: fixed broken AS_IF() test that prevente... </a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=f0e013b8697406c5be33091e83db56a9f07567fc">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=f0e013b8697406c5be33091e83db56a9f07567fc">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=f0e013b8697406c5be33091e83db56a9f07567fc;hb=f0e013b8697406c5be33091e83db56a9f07567fc">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=f0e013b8697406c5be33091e83db56a9f07567fc;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="light">
-<td title="8 weeks ago"><i>2011-10-22</i></td>
-<td class="author"><a title="Search for commits authored by Peter Simons" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Peter+Simons;st=author">Peter Simons</a></td><td><a class="list subject" title="AX_EXT: fixed compiler tests and added support for detection of SSE4.1, SSE4.2, AVX... " href="/gitweb/?p=autoconf-archive.git;a=commit;h=d85b563135e7f9ed8c8da55df1c590ca064c0c3f">AX_EXT: fixed compiler tests and added support for... </a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=d85b563135e7f9ed8c8da55df1c590ca064c0c3f">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=d85b563135e7f9ed8c8da55df1c590ca064c0c3f">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=d85b563135e7f9ed8c8da55df1c590ca064c0c3f;hb=d85b563135e7f9ed8c8da55df1c590ca064c0c3f">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=d85b563135e7f9ed8c8da55df1c590ca064c0c3f;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="dark">
-<td title="8 weeks ago"><i>2011-10-22</i></td>
-<td class="author"><a title="Search for commits authored by Mateusz Loskot" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Mateusz+Loskot;st=author">Mateusz Loskot</a></td><td><a class="list subject" href="/gitweb/?p=autoconf-archive.git;a=commit;h=8c8faf2f41d81f9acdd09d659f57f392afeb0c2b">AX_LIB_GDAL: new submission</a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=8c8faf2f41d81f9acdd09d659f57f392afeb0c2b">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=8c8faf2f41d81f9acdd09d659f57f392afeb0c2b">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=8c8faf2f41d81f9acdd09d659f57f392afeb0c2b;hb=8c8faf2f41d81f9acdd09d659f57f392afeb0c2b">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=8c8faf2f41d81f9acdd09d659f57f392afeb0c2b;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="light">
-<td title="2 months ago"><i>2011-09-26</i></td>
-<td class="author"><a title="Search for commits authored by Peter Simons" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Peter+Simons;st=author">Peter Simons</a></td><td><a class="list subject" title="AX_LIB_SQLITE3: replace C++-style commend with C-style to improve portability" href="/gitweb/?p=autoconf-archive.git;a=commit;h=c72bfeb5a83529af1c37c87b7e532a2c879baf06">AX_LIB_SQLITE3: replace C++-style commend with C-style... </a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=c72bfeb5a83529af1c37c87b7e532a2c879baf06">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=c72bfeb5a83529af1c37c87b7e532a2c879baf06">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=c72bfeb5a83529af1c37c87b7e532a2c879baf06;hb=c72bfeb5a83529af1c37c87b7e532a2c879baf06">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=c72bfeb5a83529af1c37c87b7e532a2c879baf06;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="dark">
-<td title="2 months ago"><i>2011-09-25</i></td>
-<td class="author"><a title="Search for commits authored by Peter Simons" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Peter+Simons;st=author">Peter Simons</a></td><td><a class="list subject" href="/gitweb/?p=autoconf-archive.git;a=commit;h=f0922d23154cc89303af2f22a17445d91d30006c">AX_ENABLE_BUILDDIR: fixed Darwin support</a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=f0922d23154cc89303af2f22a17445d91d30006c">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=f0922d23154cc89303af2f22a17445d91d30006c">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=f0922d23154cc89303af2f22a17445d91d30006c;hb=f0922d23154cc89303af2f22a17445d91d30006c">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=f0922d23154cc89303af2f22a17445d91d30006c;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="light">
-<td title="3 months ago"><i>2011-09-19</i></td>
-<td class="author"><a title="Search for commits authored by Peter Simons" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Peter+Simons;st=author">Peter Simons</a></td><td><a class="list subject" href="/gitweb/?p=autoconf-archive.git;a=commit;h=374002f42844d25521bc7fc8bd68e3629e1ac3c0">gen-authors.sh: spell Daniel Richard G.'s name consistently</a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=374002f42844d25521bc7fc8bd68e3629e1ac3c0">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=374002f42844d25521bc7fc8bd68e3629e1ac3c0">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=374002f42844d25521bc7fc8bd68e3629e1ac3c0;hb=374002f42844d25521bc7fc8bd68e3629e1ac3c0">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=374002f42844d25521bc7fc8bd68e3629e1ac3c0;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="dark">
-<td title="3 months ago"><i>2011-09-19</i></td>
-<td class="author"><a title="Search for commits authored by Peter Simons" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Peter+Simons;st=author">Peter Simons</a></td><td><a class="list subject" href="/gitweb/?p=autoconf-archive.git;a=commit;h=01738c00a51efab548b7270108d0ed8084a08ac7">Dropped obsolete macros from the distribution.</a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=01738c00a51efab548b7270108d0ed8084a08ac7">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=01738c00a51efab548b7270108d0ed8084a08ac7">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=01738c00a51efab548b7270108d0ed8084a08ac7;hb=01738c00a51efab548b7270108d0ed8084a08ac7">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=01738c00a51efab548b7270108d0ed8084a08ac7;sf=tgz">snapshot</a></td>
-</tr>
-<tr class="light">
-<td title="3 months ago"><i>2011-09-17</i></td>
-<td class="author"><a title="Search for commits authored by Peter Simons" class="list" href="/gitweb/?p=autoconf-archive.git;a=search;s=Peter+Simons;st=author">Peter Simons</a></td><td><a class="list subject" href="/gitweb/?p=autoconf-archive.git;a=commit;h=5ebf13f6985acda24f6751def74b0dab1df3d6d4">maint: post-release administrivia</a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=commit;h=5ebf13f6985acda24f6751def74b0dab1df3d6d4">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=commitdiff;h=5ebf13f6985acda24f6751def74b0dab1df3d6d4">commitdiff</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=5ebf13f6985acda24f6751def74b0dab1df3d6d4;hb=5ebf13f6985acda24f6751def74b0dab1df3d6d4">tree</a> | <a title="in format: tar.gz" href="/gitweb/?p=autoconf-archive.git;a=snapshot;h=5ebf13f6985acda24f6751def74b0dab1df3d6d4;sf=tgz">snapshot</a></td>
-</tr>
-<tr>
-<td colspan="4"><a href="/gitweb/?p=autoconf-archive.git;a=shortlog">...</a></td>
-</tr>
-</table>
-<div class="header">
-<a class="title" href="/gitweb/?p=autoconf-archive.git;a=tags">tags</a>
-</div>
-<table class="tags">
-<tr class="dark">
-<td><i>5 hours ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=77bb2ab18a583eca3717406e47cba73426f59ab1">v2011.12.21</a></td>
-<td><a class="list subject" title="GNU Autoconf Archive Version 2011.12.21" href="/gitweb/?p=autoconf-archive.git;a=tag;h=b57da13e32c04d5a800257ab1b3ca48cd7aa1871">GNU Autoconf Archive Version 2011... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=b57da13e32c04d5a800257ab1b3ca48cd7aa1871">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=77bb2ab18a583eca3717406e47cba73426f59ab1">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2011.12.21">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2011.12.21">log</a></td>
-</tr><tr class="light">
-<td><i>3 months ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=e6d6aa7c38f235c09efbe97976454e4f65a52539">v2011.09.17</a></td>
-<td><a class="list subject" title="GNU Autoconf Archive Version 2011.09.17" href="/gitweb/?p=autoconf-archive.git;a=tag;h=7d6e0f275e488dc135ac0b73330ec69978f9dabf">GNU Autoconf Archive Version 2011... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=7d6e0f275e488dc135ac0b73330ec69978f9dabf">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=e6d6aa7c38f235c09efbe97976454e4f65a52539">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2011.09.17">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2011.09.17">log</a></td>
-</tr><tr class="dark">
-<td><i>5 months ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=756c399edef5a71f73f05b61cefde0ba4842e6c5">v2011.07.17</a></td>
-<td><a class="list subject" title="GNU Autoconf Archive Version 2011.07.17" href="/gitweb/?p=autoconf-archive.git;a=tag;h=7630d0be0daee35103e690dcd98a41e7780dbad9">GNU Autoconf Archive Version 2011... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=7630d0be0daee35103e690dcd98a41e7780dbad9">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=756c399edef5a71f73f05b61cefde0ba4842e6c5">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2011.07.17">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2011.07.17">log</a></td>
-</tr><tr class="light">
-<td><i>8 months ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=7fd27beef29f4d6ff69f4fce874185522174806b">v2011.04.12</a></td>
-<td><a class="list subject" title="GNU Autoconf Archive Version 2011.04.12" href="/gitweb/?p=autoconf-archive.git;a=tag;h=899801493b5120e9d1aaa75146adf04acff3cc99">GNU Autoconf Archive Version 2011... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=899801493b5120e9d1aaa75146adf04acff3cc99">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=7fd27beef29f4d6ff69f4fce874185522174806b">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2011.04.12">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2011.04.12">log</a></td>
-</tr><tr class="dark">
-<td><i>9 months ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=d69f040d752e5369ab7d729a769935161becab7e">v2011.03.17</a></td>
-<td><a class="list subject" title="GNU Autoconf Archive Version 2011.03.17" href="/gitweb/?p=autoconf-archive.git;a=tag;h=2de12abc6dfe6053ff171cdb398c8d331691ae5a">GNU Autoconf Archive Version 2011... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=2de12abc6dfe6053ff171cdb398c8d331691ae5a">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=d69f040d752e5369ab7d729a769935161becab7e">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2011.03.17">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2011.03.17">log</a></td>
-</tr><tr class="light">
-<td><i>11 months ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=93d8aeba2a2208cbd8952e906a3e583786b12286">v2011.01.02</a></td>
-<td><a class="list subject" title="GNU Autoconf Archive Version 2011.01.02" href="/gitweb/?p=autoconf-archive.git;a=tag;h=9dcdf90eb3f267967e619e6e6944a2d623b03992">GNU Autoconf Archive Version 2011... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=9dcdf90eb3f267967e619e6e6944a2d623b03992">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=93d8aeba2a2208cbd8952e906a3e583786b12286">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2011.01.02">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2011.01.02">log</a></td>
-</tr><tr class="dark">
-<td><i>13 months ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=f704f9e49fc0e620bb022937be188ffca4694676">v2010.10.26</a></td>
-<td><a class="list subject" title="GNU Autoconf Archive Version 2010.10.26" href="/gitweb/?p=autoconf-archive.git;a=tag;h=47db176c37a7bf59fe3df0530b87b13659ae11d0">GNU Autoconf Archive Version 2010... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=47db176c37a7bf59fe3df0530b87b13659ae11d0">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=f704f9e49fc0e620bb022937be188ffca4694676">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2010.10.26">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2010.10.26">log</a></td>
-</tr><tr class="light">
-<td><i>16 months ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=2c5e5114a808a6827f77087ed4e785842a63933e">v2010.08.19</a></td>
-<td><a class="list subject" title="GNU Autoconf Archive Version 2010.08.19" href="/gitweb/?p=autoconf-archive.git;a=tag;h=8ec386962567bff3884b71c10d010734a3cfd096">GNU Autoconf Archive Version 2010... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=8ec386962567bff3884b71c10d010734a3cfd096">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=2c5e5114a808a6827f77087ed4e785842a63933e">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2010.08.19">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2010.08.19">log</a></td>
-</tr><tr class="dark">
-<td><i>17 months ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=cf3e3144e3ed6d9ba84c20ecacd2771e5ec26f76">v2010.07.06</a></td>
-<td><a class="list subject" title="GNU Autoconf Archive Version 2010.07.06" href="/gitweb/?p=autoconf-archive.git;a=tag;h=5a22e2859b389d6550f01db7d8e79f794c50d85b">GNU Autoconf Archive Version 2010... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=5a22e2859b389d6550f01db7d8e79f794c50d85b">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=cf3e3144e3ed6d9ba84c20ecacd2771e5ec26f76">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2010.07.06">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2010.07.06">log</a></td>
-</tr><tr class="light">
-<td><i>18 months ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=a4b5c3132e68928f02354ec06ccda28bd63de4e4">v2010.06.04</a></td>
-<td><a class="list subject" title="GNU Autoconf Archive Version 2010.06.04" href="/gitweb/?p=autoconf-archive.git;a=tag;h=8837aac49910c94f3dc33129e01dcad2b880e4db">GNU Autoconf Archive Version 2010... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=8837aac49910c94f3dc33129e01dcad2b880e4db">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=a4b5c3132e68928f02354ec06ccda28bd63de4e4">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2010.06.04">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2010.06.04">log</a></td>
-</tr><tr class="dark">
-<td><i>22 months ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=4bd00f3f40a681cc492cdae312d4ace73c0d6232">v2010.02.14</a></td>
-<td><a class="list subject" href="/gitweb/?p=autoconf-archive.git;a=tag;h=2320490582aaacc524c13068dc0921944d12b828">Autoconf Archive Version 2010.02.14</a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=2320490582aaacc524c13068dc0921944d12b828">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=4bd00f3f40a681cc492cdae312d4ace73c0d6232">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2010.02.14">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2010.02.14">log</a></td>
-</tr><tr class="light">
-<td><i>2 years ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=5abf6d91814a0bd79698abbb27fb1a26b21fba58">v2009.12.16</a></td>
-<td><a class="list subject" title="Autoconf Archive release 2009.12.16 is an alpha release that's been" href="/gitweb/?p=autoconf-archive.git;a=tag;h=f763b3bdf1a1e44d0b43b28bea556aae9111fbe6">Autoconf Archive release 2009.12... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=f763b3bdf1a1e44d0b43b28bea556aae9111fbe6">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=5abf6d91814a0bd79698abbb27fb1a26b21fba58">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2009.12.16">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2009.12.16">log</a></td>
-</tr><tr class="dark">
-<td><i>2 years ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=commit;h=822cdbb0d636d26bc3557c11cf22fed152434c19">v2009.07.20</a></td>
-<td><a class="list subject" title="Autoconf Archive version 2009.07.20 is an interim release, mostly for" href="/gitweb/?p=autoconf-archive.git;a=tag;h=914875eae2d5b5b02f2525fd071c20c53c9cbef0">Autoconf Archive version 2009.07... </a></td>
-<td class="selflink"><a href="/gitweb/?p=autoconf-archive.git;a=tag;h=914875eae2d5b5b02f2525fd071c20c53c9cbef0">tag</a></td>
-<td class="link"> | <a href="/gitweb/?p=autoconf-archive.git;a=commit;h=822cdbb0d636d26bc3557c11cf22fed152434c19">commit</a> | <a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/tags/v2009.07.20">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/tags/v2009.07.20">log</a></td>
-</tr></table>
-<div class="header">
-<a class="title" href="/gitweb/?p=autoconf-archive.git;a=heads">heads</a>
-</div>
-<table class="heads">
-<tr class="dark">
-<td><i>5 hours ago</i></td>
-<td class="current_head"><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/heads/master">master</a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/heads/master">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/heads/master">log</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=refs/heads/master;hb=master">tree</a></td>
-</tr><tr class="light">
-<td><i>2 years ago</i></td>
-<td><a class="list name" href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/heads/pre-savannah-history">pre-savannah-history</a></td>
-<td class="link"><a href="/gitweb/?p=autoconf-archive.git;a=shortlog;h=refs/heads/pre-savannah-history">shortlog</a> | <a href="/gitweb/?p=autoconf-archive.git;a=log;h=refs/heads/pre-savannah-history">log</a> | <a href="/gitweb/?p=autoconf-archive.git;a=tree;h=refs/heads/pre-savannah-history;hb=pre-savannah-history">tree</a></td>
-</tr></table>
-<div class="page_footer">
-<div class="page_footer_text">autoconf-archive</div>
-<a class="rss_logo" title="log RSS feed" href="/gitweb/?p=autoconf-archive.git;a=rss">RSS</a>
-<a class="rss_logo" title="log Atom feed" href="/gitweb/?p=autoconf-archive.git;a=atom">Atom</a>
-</div>
-<script type="text/javascript" src="gitweb.js"></script>
-</body>
-</html>
\ No newline at end of file
diff --git a/m4/ax_cflags_warn_all.m4 b/m4/ax_cflags_warn_all.m4
deleted file mode 100644
index ae0e7ef..0000000
--- a/m4/ax_cflags_warn_all.m4
+++ /dev/null
@@ -1,120 +0,0 @@
-dnl @synopsis AX_CFLAGS_WARN_ALL [(shellvar [,default, [A/NA]])]
-dnl
-dnl Try to find a compiler option that enables most reasonable
-dnl warnings. This macro is directly derived from VL_PROG_CC_WARNINGS
-dnl which is split up into two AX_CFLAGS_WARN_ALL and
-dnl AX_CFLAGS_WARN_ALL_ANSI
-dnl
-dnl For the GNU CC compiler it will be -Wall (and -ansi -pedantic) The
-dnl result is added to the shellvar being CFLAGS by default.
-dnl
-dnl Currently this macro knows about GCC, Solaris C compiler, Digital
-dnl Unix C compiler, C for AIX Compiler, HP-UX C compiler, IRIX C
-dnl compiler, NEC SX-5 (Super-UX 10) C compiler, and Cray J90 (Unicos
-dnl 10.0.0.8) C compiler.
-dnl
-dnl  - $1 shell-variable-to-add-to : CFLAGS
-dnl  - $2 add-value-if-not-found : nothing
-dnl  - $3 action-if-found : add value to shellvariable
-dnl  - $4 action-if-not-found : nothing
-dnl
-dnl @category C
-dnl @author Guido Draheim <guidod at gmx.de>
-dnl @version 2003-01-06
-dnl @license GPLWithACException
-
-AC_DEFUN([AX_CFLAGS_WARN_ALL],[dnl
-AS_VAR_PUSHDEF([FLAGS],[CFLAGS])dnl
-AS_VAR_PUSHDEF([VAR],[ac_cv_cflags_warn_all])dnl
-AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings],
-VAR,[VAR="no, unknown"
- AC_LANG_SAVE
- AC_LANG(C)
- ac_save_[]FLAGS="$[]FLAGS"
-for ac_arg dnl
-in "-pedantic -Wdeclaration-after-statement % dnl
-       -Wall -Wdeclaration-after-statement" dnl works since GCC version 3
-   "-pedantic  % -Wall"       dnl older GCC
-   "-xstrconst % -v"          dnl Solaris C
-   "-std1      % -verbose -w0 -warnprotos" dnl Digital Unix
-   "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX
-   "-ansi -ansiE % -fullwarn" dnl IRIX
-   "+ESlit     % +w1"         dnl HP-UX C
-   "-Xc        % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10)
-   "-h conform % -h msglevel 2" dnl Cray C (Unicos)
-   #
-do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
-   AC_TRY_COMPILE([],[return 0;],
-   [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
-done
- FLAGS="$ac_save_[]FLAGS"
- AC_LANG_RESTORE
-])
-case ".$VAR" in
-     .ok|.ok,*) m4_ifvaln($3,$3) ;;
-   .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
-        AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
-                      m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
-   *) m4_ifvaln($3,$3,[
-   if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
-   then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
-   else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
-                      m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
-   fi ]) ;;
-esac
-AS_VAR_POPDEF([VAR])dnl
-AS_VAR_POPDEF([FLAGS])dnl
-])
-
-dnl the only difference - the LANG selection... and the default FLAGS
-
-AC_DEFUN([AX_CXXFLAGS_WARN_ALL],[dnl
-AS_VAR_PUSHDEF([FLAGS],[CXXFLAGS])dnl
-AS_VAR_PUSHDEF([VAR],[ac_cv_cxxflags_warn_all])dnl
-AC_CACHE_CHECK([m4_ifval($1,$1,FLAGS) for maximum warnings],
-VAR,[VAR="no, unknown"
- AC_LANG_SAVE
- AC_LANG(C++)
- ac_save_[]FLAGS="$[]FLAGS"
-for ac_arg dnl
-in "-pedantic  % -Wall"       dnl   GCC
-   "-xstrconst % -v"          dnl Solaris C
-   "-std1      % -verbose -w0 -warnprotos" dnl Digital Unix
-   "-qlanglvl=ansi % -qsrcmsg -qinfo=all:noppt:noppc:noobs:nocnd" dnl AIX
-   "-ansi -ansiE % -fullwarn" dnl IRIX
-   "+ESlit     % +w1"         dnl HP-UX C
-   "-Xc        % -pvctl[,]fullmsg" dnl NEC SX-5 (Super-UX 10)
-   "-h conform % -h msglevel 2" dnl Cray C (Unicos)
-   #
-do FLAGS="$ac_save_[]FLAGS "`echo $ac_arg | sed -e 's,%%.*,,' -e 's,%,,'`
-   AC_TRY_COMPILE([],[return 0;],
-   [VAR=`echo $ac_arg | sed -e 's,.*% *,,'` ; break])
-done
- FLAGS="$ac_save_[]FLAGS"
- AC_LANG_RESTORE
-])
-case ".$VAR" in
-     .ok|.ok,*) m4_ifvaln($3,$3) ;;
-   .|.no|.no,*) m4_ifvaln($4,$4,[m4_ifval($2,[
-        AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])
-                      m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $2"])]) ;;
-   *) m4_ifvaln($3,$3,[
-   if echo " $[]m4_ifval($1,$1,FLAGS) " | grep " $VAR " 2>&1 >/dev/null
-   then AC_RUN_LOG([: m4_ifval($1,$1,FLAGS) does contain $VAR])
-   else AC_RUN_LOG([: m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"])
-                      m4_ifval($1,$1,FLAGS)="$m4_ifval($1,$1,FLAGS) $VAR"
-   fi ]) ;;
-esac
-AS_VAR_POPDEF([VAR])dnl
-AS_VAR_POPDEF([FLAGS])dnl
-])
-
-dnl  implementation tactics:
-dnl   the for-argument contains a list of options. The first part of
-dnl   these does only exist to detect the compiler - usually it is
-dnl   a global option to enable -ansi or -extrawarnings. All other
-dnl   compilers will fail about it. That was needed since a lot of
-dnl   compilers will give false positives for some option-syntax
-dnl   like -Woption or -Xoption as they think of it is a pass-through
-dnl   to later compile stages or something. The "%" is used as a
-dnl   delimimiter. A non-option comment can be given after "%%" marks.
diff --git a/m4/ax_jni_include_dir.m4 b/m4/ax_jni_include_dir.m4
deleted file mode 100644
index 57511bb..0000000
--- a/m4/ax_jni_include_dir.m4
+++ /dev/null
@@ -1,121 +0,0 @@
-# ===========================================================================
-#    http://www.gnu.org/software/autoconf-archive/ax_jni_include_dir.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_JNI_INCLUDE_DIR
-#
-# DESCRIPTION
-#
-#   AX_JNI_INCLUDE_DIR finds include directories needed for compiling
-#   programs using the JNI interface.
-#
-#   JNI include directories are usually in the java distribution This is
-#   deduced from the value of JAVAC. When this macro completes, a list of
-#   directories is left in the variable JNI_INCLUDE_DIRS.
-#
-#   Example usage follows:
-#
-#     AX_JNI_INCLUDE_DIR
-#
-#     for JNI_INCLUDE_DIR in $JNI_INCLUDE_DIRS
-#     do
-#             CPPFLAGS="$CPPFLAGS -I$JNI_INCLUDE_DIR"
-#     done
-#
-#   If you want to force a specific compiler:
-#
-#   - at the configure.in level, set JAVAC=yourcompiler before calling
-#   AX_JNI_INCLUDE_DIR
-#
-#   - at the configure level, setenv JAVAC
-#
-#   Note: This macro can work with the autoconf M4 macros for Java programs.
-#   This particular macro is not part of the original set of macros.
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Don Anderson <dda at sleepycat.com>
-#
-#   Copying and distribution of this file, with or without modification, are
-#   permitted in any medium without royalty provided the copyright notice
-#   and this notice are preserved. This file is offered as-is, without any
-#   warranty.
-
-#serial 7
-
-AU_ALIAS([AC_JNI_INCLUDE_DIR], [AX_JNI_INCLUDE_DIR])
-AC_DEFUN([AX_JNI_INCLUDE_DIR],[
-
-JNI_INCLUDE_DIRS=""
-
-test "x$JAVAC" = x && AC_MSG_ERROR(['\$JAVAC' undefined])
-AC_PATH_PROG([_ACJNI_JAVAC], [$JAVAC], [no])
-if test "x$_ACJNI_JAVAC" = xno; then
-   AC_MSG_RESULT([$JAVAC could not be found in path])
-else
-   _ACJNI_FOLLOW_SYMLINKS("$_ACJNI_JAVAC")
-   _JTOPDIR=`echo "$_ACJNI_FOLLOWED" | sed -e 's://*:/:g' -e 's:/[[^/]]*$::'`
-   case "$host_os" in
-           darwin*)        _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
-                           _JINC="$_JTOPDIR/Headers";;
-           *)              _JINC="$_JTOPDIR/include";;
-   esac
-   _AS_ECHO_LOG([_JTOPDIR=$_JTOPDIR])
-   _AS_ECHO_LOG([_JINC=$_JINC])
-   
-   # On Mac OS X 10.6.4, jni.h is a symlink:
-   # /System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers/jni.h
-   # -> ../../CurrentJDK/Headers/jni.h.
-   if test -f "$_JINC/jni.h" || test -L "$_JINC/jni.h"; then
-           JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JINC"
-   else
-           _JTOPDIR=`echo "$_JTOPDIR" | sed -e 's:/[[^/]]*$::'`
-           if test -f "$_JTOPDIR/include/jni.h"; then
-                   JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include"
-           else
-                   AC_MSG_ERROR([cannot find java include files])
-           fi
-   fi
-   
-   # get the likely subdirectories for system specific java includes
-   case "$host_os" in
-   bsdi*)          _JNI_INC_SUBDIRS="bsdos";;
-   linux*)         _JNI_INC_SUBDIRS="linux genunix";;
-   osf*)           _JNI_INC_SUBDIRS="alpha";;
-   solaris*)       _JNI_INC_SUBDIRS="solaris";;
-   mingw*)		_JNI_INC_SUBDIRS="win32";;
-   cygwin*)	_JNI_INC_SUBDIRS="win32";;
-   *)              _JNI_INC_SUBDIRS="genunix";;
-   esac
-   
-   # add any subdirectories that are present
-   for JINCSUBDIR in $_JNI_INC_SUBDIRS
-   do
-       if test -d "$_JTOPDIR/include/$JINCSUBDIR"; then
-            JNI_INCLUDE_DIRS="$JNI_INCLUDE_DIRS $_JTOPDIR/include/$JINCSUBDIR"
-       fi
-   done
-fi
-])
-
-# _ACJNI_FOLLOW_SYMLINKS <path>
-# Follows symbolic links on <path>,
-# finally setting variable _ACJNI_FOLLOWED
-# ----------------------------------------
-AC_DEFUN([_ACJNI_FOLLOW_SYMLINKS],[
-# find the include directory relative to the javac executable
-_cur="$1"
-while ls -ld "$_cur" 2>/dev/null | grep " -> " >/dev/null; do
-        AC_MSG_CHECKING([symlink for $_cur])
-        _slink=`ls -ld "$_cur" | sed 's/.* -> //'`
-        case "$_slink" in
-        /*) _cur="$_slink";;
-        # 'X' avoids triggering unwanted echo options.
-        *) _cur=`echo "X$_cur" | sed -e 's/^X//' -e 's:[[^/]]*$::'`"$_slink";;
-        esac
-        AC_MSG_RESULT([$_cur])
-done
-_ACJNI_FOLLOWED="$_cur"
-])# _ACJNI
diff --git a/m4/ax_pkg_swig.m4 b/m4/ax_pkg_swig.m4
deleted file mode 100644
index e112f3d..0000000
--- a/m4/ax_pkg_swig.m4
+++ /dev/null
@@ -1,135 +0,0 @@
-# ===========================================================================
-#        http://www.gnu.org/software/autoconf-archive/ax_pkg_swig.html
-# ===========================================================================
-#
-# SYNOPSIS
-#
-#   AX_PKG_SWIG([major.minor.micro], [action-if-found], [action-if-not-found])
-#
-# DESCRIPTION
-#
-#   This macro searches for a SWIG installation on your system. If found,
-#   then SWIG is AC_SUBST'd; if not found, then $SWIG is empty.  If SWIG is
-#   found, then SWIG_LIB is set to the SWIG library path, and AC_SUBST'd.
-#
-#   You can use the optional first argument to check if the version of the
-#   available SWIG is greater than or equal to the value of the argument. It
-#   should have the format: N[.N[.N]] (N is a number between 0 and 999. Only
-#   the first N is mandatory.) If the version argument is given (e.g.
-#   1.3.17), AX_PKG_SWIG checks that the swig package is this version number
-#   or higher.
-#
-#   As usual, action-if-found is executed if SWIG is found, otherwise
-#   action-if-not-found is executed.
-#
-#   In configure.in, use as:
-#
-#     AX_PKG_SWIG(1.3.17, [], [ AC_MSG_ERROR([SWIG is required to build..]) ])
-#     AX_SWIG_ENABLE_CXX
-#     AX_SWIG_MULTI_MODULE_SUPPORT
-#     AX_SWIG_PYTHON
-#
-# LICENSE
-#
-#   Copyright (c) 2008 Sebastian Huber <sebastian-huber at web.de>
-#   Copyright (c) 2008 Alan W. Irwin <irwin at beluga.phys.uvic.ca>
-#   Copyright (c) 2008 Rafael Laboissiere <rafael at laboissiere.net>
-#   Copyright (c) 2008 Andrew Collier <colliera at ukzn.ac.za>
-#   Copyright (c) 2011 Murray Cumming <murrayc at openismus.com>
-#
-#   This program is free software; you can redistribute it and/or modify it
-#   under the terms of the GNU General Public License as published by the
-#   Free Software Foundation; either version 2 of the License, or (at your
-#   option) any later version.
-#
-#   This program is distributed in the hope that it will be useful, but
-#   WITHOUT ANY WARRANTY; without even the implied warranty of
-#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
-#   Public License for more details.
-#
-#   You should have received a copy of the GNU General Public License along
-#   with this program. If not, see <http://www.gnu.org/licenses/>.
-#
-#   As a special exception, the respective Autoconf Macro's copyright owner
-#   gives unlimited permission to copy, distribute and modify the configure
-#   scripts that are the output of Autoconf when processing the Macro. You
-#   need not follow the terms of the GNU General Public License when using
-#   or distributing such scripts, even though portions of the text of the
-#   Macro appear in them. The GNU General Public License (GPL) does govern
-#   all other use of the material that constitutes the Autoconf Macro.
-#
-#   This special exception to the GPL applies to versions of the Autoconf
-#   Macro released by the Autoconf Archive. When you make and distribute a
-#   modified version of the Autoconf Macro, you may extend this special
-#   exception to the GPL to apply to your modified version as well.
-
-#serial 8
-
-AC_DEFUN([AX_PKG_SWIG],[
-        # Ubuntu has swig 2.0 as /usr/bin/swig2.0
-        AC_PATH_PROGS([SWIG],[swig swig2.0])
-        if test -z "$SWIG" ; then
-                m4_ifval([$3],[$3],[:])
-        elif test -n "$1" ; then
-                AC_MSG_CHECKING([SWIG version])
-                [swig_version=`$SWIG -version 2>&1 | grep 'SWIG Version' | sed 's/.*\([0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\).*/\1/g'`]
-                AC_MSG_RESULT([$swig_version])
-                if test -n "$swig_version" ; then
-                        # Calculate the required version number components
-                        [required=$1]
-                        [required_major=`echo $required | sed 's/[^0-9].*//'`]
-                        if test -z "$required_major" ; then
-                                [required_major=0]
-                        fi
-                        [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
-                        [required_minor=`echo $required | sed 's/[^0-9].*//'`]
-                        if test -z "$required_minor" ; then
-                                [required_minor=0]
-                        fi
-                        [required=`echo $required | sed 's/[0-9]*[^0-9]//'`]
-                        [required_patch=`echo $required | sed 's/[^0-9].*//'`]
-                        if test -z "$required_patch" ; then
-                                [required_patch=0]
-                        fi
-                        # Calculate the available version number components
-                        [available=$swig_version]
-                        [available_major=`echo $available | sed 's/[^0-9].*//'`]
-                        if test -z "$available_major" ; then
-                                [available_major=0]
-                        fi
-                        [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
-                        [available_minor=`echo $available | sed 's/[^0-9].*//'`]
-                        if test -z "$available_minor" ; then
-                                [available_minor=0]
-                        fi
-                        [available=`echo $available | sed 's/[0-9]*[^0-9]//'`]
-                        [available_patch=`echo $available | sed 's/[^0-9].*//'`]
-                        if test -z "$available_patch" ; then
-                                [available_patch=0]
-                        fi
-                        # Convert the version tuple into a single number for easier comparison.
-                        # Using base 100 should be safe since SWIG internally uses BCD values
-                        # to encode its version number.
-                        required_swig_vernum=`expr $required_major \* 10000 \
-                            \+ $required_minor \* 100 \+ $required_patch`
-                        available_swig_vernum=`expr $available_major \* 10000 \
-                            \+ $available_minor \* 100 \+ $available_patch`
-
-                        if test $available_swig_vernum -lt $required_swig_vernum; then
-                                AC_MSG_WARN([SWIG version >= $1 is required.  You have $swig_version.])
-                                SWIG=''
-                                m4_ifval([$3],[$3],[])
-                        else
-                                AC_MSG_CHECKING([for SWIG library])
-                                SWIG_LIB=`$SWIG -swiglib`
-                                AC_MSG_RESULT([$SWIG_LIB])
-                                m4_ifval([$2],[$2],[])
-                        fi
-                else
-                        AC_MSG_WARN([cannot determine SWIG version])
-                        SWIG=''
-                        m4_ifval([$3],[$3],[])
-                fi
-        fi
-        AC_SUBST([SWIG_LIB])
-])
diff --git a/m4/libtool.m4 b/m4/libtool.m4
deleted file mode 100644
index 44e0ecf..0000000
--- a/m4/libtool.m4
+++ /dev/null
@@ -1,7982 +0,0 @@
-# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*-
-#
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-m4_define([_LT_COPYING], [dnl
-#   Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005,
-#                 2006, 2007, 2008, 2009, 2010, 2011 Free Software
-#                 Foundation, Inc.
-#   Written by Gordon Matzigkeit, 1996
-#
-#   This file is part of GNU Libtool.
-#
-# GNU Libtool is free software; you can redistribute it and/or
-# modify it under the terms of the GNU General Public License as
-# published by the Free Software Foundation; either version 2 of
-# the License, or (at your option) any later version.
-#
-# As a special exception to the GNU General Public License,
-# if you distribute this file as part of a program or library that
-# is built using GNU Libtool, you may include this file under the
-# same distribution terms that you use for the rest of that program.
-#
-# GNU Libtool is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with GNU Libtool; see the file COPYING.  If not, a copy
-# can be downloaded from http://www.gnu.org/licenses/gpl.html, or
-# obtained by writing to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-])
-
-# serial 57 LT_INIT
-
-
-# LT_PREREQ(VERSION)
-# ------------------
-# Complain and exit if this libtool version is less that VERSION.
-m4_defun([LT_PREREQ],
-[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1,
-       [m4_default([$3],
-		   [m4_fatal([Libtool version $1 or higher is required],
-		             63)])],
-       [$2])])
-
-
-# _LT_CHECK_BUILDDIR
-# ------------------
-# Complain if the absolute build directory name contains unusual characters
-m4_defun([_LT_CHECK_BUILDDIR],
-[case `pwd` in
-  *\ * | *\	*)
-    AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;;
-esac
-])
-
-
-# LT_INIT([OPTIONS])
-# ------------------
-AC_DEFUN([LT_INIT],
-[AC_PREREQ([2.58])dnl We use AC_INCLUDES_DEFAULT
-AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl
-AC_BEFORE([$0], [LT_LANG])dnl
-AC_BEFORE([$0], [LT_OUTPUT])dnl
-AC_BEFORE([$0], [LTDL_INIT])dnl
-m4_require([_LT_CHECK_BUILDDIR])dnl
-
-dnl Autoconf doesn't catch unexpanded LT_ macros by default:
-m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl
-m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl
-dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4
-dnl unless we require an AC_DEFUNed macro:
-AC_REQUIRE([LTOPTIONS_VERSION])dnl
-AC_REQUIRE([LTSUGAR_VERSION])dnl
-AC_REQUIRE([LTVERSION_VERSION])dnl
-AC_REQUIRE([LTOBSOLETE_VERSION])dnl
-m4_require([_LT_PROG_LTMAIN])dnl
-
-_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}])
-
-dnl Parse OPTIONS
-_LT_SET_OPTIONS([$0], [$1])
-
-# This can be used to rebuild libtool when needed
-LIBTOOL_DEPS="$ltmain"
-
-# Always use our own libtool.
-LIBTOOL='$(SHELL) $(top_builddir)/libtool'
-AC_SUBST(LIBTOOL)dnl
-
-_LT_SETUP
-
-# Only expand once:
-m4_define([LT_INIT])
-])# LT_INIT
-
-# Old names:
-AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT])
-AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PROG_LIBTOOL], [])
-dnl AC_DEFUN([AM_PROG_LIBTOOL], [])
-
-
-# _LT_CC_BASENAME(CC)
-# -------------------
-# Calculate cc_basename.  Skip known compiler wrappers and cross-prefix.
-m4_defun([_LT_CC_BASENAME],
-[for cc_temp in $1""; do
-  case $cc_temp in
-    compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;;
-    distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;;
-    \-*) ;;
-    *) break;;
-  esac
-done
-cc_basename=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"`
-])
-
-
-# _LT_FILEUTILS_DEFAULTS
-# ----------------------
-# It is okay to use these file commands and assume they have been set
-# sensibly after `m4_require([_LT_FILEUTILS_DEFAULTS])'.
-m4_defun([_LT_FILEUTILS_DEFAULTS],
-[: ${CP="cp -f"}
-: ${MV="mv -f"}
-: ${RM="rm -f"}
-])# _LT_FILEUTILS_DEFAULTS
-
-
-# _LT_SETUP
-# ---------
-m4_defun([_LT_SETUP],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl
-
-_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl
-dnl
-_LT_DECL([], [host_alias], [0], [The host system])dnl
-_LT_DECL([], [host], [0])dnl
-_LT_DECL([], [host_os], [0])dnl
-dnl
-_LT_DECL([], [build_alias], [0], [The build system])dnl
-_LT_DECL([], [build], [0])dnl
-_LT_DECL([], [build_os], [0])dnl
-dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-dnl
-AC_REQUIRE([AC_PROG_LN_S])dnl
-test -z "$LN_S" && LN_S="ln -s"
-_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl
-dnl
-AC_REQUIRE([LT_CMD_MAX_LEN])dnl
-_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl
-_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl
-dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl
-m4_require([_LT_CMD_RELOAD])dnl
-m4_require([_LT_CHECK_MAGIC_METHOD])dnl
-m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl
-m4_require([_LT_CMD_OLD_ARCHIVE])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_WITH_SYSROOT])dnl
-
-_LT_CONFIG_LIBTOOL_INIT([
-# See if we are running on zsh, and set the options which allow our
-# commands through without removal of \ escapes INIT.
-if test -n "\${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-])
-if test -n "${ZSH_VERSION+set}" ; then
-   setopt NO_GLOB_SUBST
-fi
-
-_LT_CHECK_OBJDIR
-
-m4_require([_LT_TAG_COMPILER])dnl
-
-case $host_os in
-aix3*)
-  # AIX sometimes has problems with the GCC collect2 program.  For some
-  # reason, if we set the COLLECT_NAMES environment variable, the problems
-  # vanish in a puff of smoke.
-  if test "X${COLLECT_NAMES+set}" != Xset; then
-    COLLECT_NAMES=
-    export COLLECT_NAMES
-  fi
-  ;;
-esac
-
-# Global variables:
-ofile=libtool
-can_build_shared=yes
-
-# All known linkers require a `.a' archive for static linking (except MSVC,
-# which needs '.lib').
-libext=a
-
-with_gnu_ld="$lt_cv_prog_gnu_ld"
-
-old_CC="$CC"
-old_CFLAGS="$CFLAGS"
-
-# Set sane defaults for various variables
-test -z "$CC" && CC=cc
-test -z "$LTCC" && LTCC=$CC
-test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS
-test -z "$LD" && LD=ld
-test -z "$ac_objext" && ac_objext=o
-
-_LT_CC_BASENAME([$compiler])
-
-# Only perform the check for file, if the check method requires it
-test -z "$MAGIC_CMD" && MAGIC_CMD=file
-case $deplibs_check_method in
-file_magic*)
-  if test "$file_magic_cmd" = '$MAGIC_CMD'; then
-    _LT_PATH_MAGIC
-  fi
-  ;;
-esac
-
-# Use C for the default configuration in the libtool script
-LT_SUPPORTED_TAG([CC])
-_LT_LANG_C_CONFIG
-_LT_LANG_DEFAULT_CONFIG
-_LT_CONFIG_COMMANDS
-])# _LT_SETUP
-
-
-# _LT_PREPARE_SED_QUOTE_VARS
-# --------------------------
-# Define a few sed substitution that help us do robust quoting.
-m4_defun([_LT_PREPARE_SED_QUOTE_VARS],
-[# Backslashify metacharacters that are still active within
-# double-quoted strings.
-sed_quote_subst='s/\([["`$\\]]\)/\\\1/g'
-
-# Same as above, but do not quote variable references.
-double_quote_subst='s/\([["`\\]]\)/\\\1/g'
-
-# Sed substitution to delay expansion of an escaped shell variable in a
-# double_quote_subst'ed string.
-delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g'
-
-# Sed substitution to delay expansion of an escaped single quote.
-delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g'
-
-# Sed substitution to avoid accidental globbing in evaled expressions
-no_glob_subst='s/\*/\\\*/g'
-])
-
-# _LT_PROG_LTMAIN
-# ---------------
-# Note that this code is called both from `configure', and `config.status'
-# now that we use AC_CONFIG_COMMANDS to generate libtool.  Notably,
-# `config.status' has no value for ac_aux_dir unless we are using Automake,
-# so we pass a copy along to make sure it has a sensible value anyway.
-m4_defun([_LT_PROG_LTMAIN],
-[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl
-_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir'])
-ltmain="$ac_aux_dir/ltmain.sh"
-])# _LT_PROG_LTMAIN
-
-
-## ------------------------------------- ##
-## Accumulate code for creating libtool. ##
-## ------------------------------------- ##
-
-# So that we can recreate a full libtool script including additional
-# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS
-# in macros and then make a single call at the end using the `libtool'
-# label.
-
-
-# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS])
-# ----------------------------------------
-# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL_INIT],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_INIT],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_INIT])
-
-
-# _LT_CONFIG_LIBTOOL([COMMANDS])
-# ------------------------------
-# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later.
-m4_define([_LT_CONFIG_LIBTOOL],
-[m4_ifval([$1],
-          [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS],
-                     [$1
-])])])
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS])
-
-
-# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS])
-# -----------------------------------------------------
-m4_defun([_LT_CONFIG_SAVE_COMMANDS],
-[_LT_CONFIG_LIBTOOL([$1])
-_LT_CONFIG_LIBTOOL_INIT([$2])
-])
-
-
-# _LT_FORMAT_COMMENT([COMMENT])
-# -----------------------------
-# Add leading comment marks to the start of each line, and a trailing
-# full-stop to the whole comment if one is not present already.
-m4_define([_LT_FORMAT_COMMENT],
-[m4_ifval([$1], [
-m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])],
-              [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.])
-)])
-
-
-
-## ------------------------ ##
-## FIXME: Eliminate VARNAME ##
-## ------------------------ ##
-
-
-# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?])
-# -------------------------------------------------------------------
-# CONFIGNAME is the name given to the value in the libtool script.
-# VARNAME is the (base) name used in the configure script.
-# VALUE may be 0, 1 or 2 for a computed quote escaped value based on
-# VARNAME.  Any other value will be used directly.
-m4_define([_LT_DECL],
-[lt_if_append_uniq([lt_decl_varnames], [$2], [, ],
-    [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name],
-	[m4_ifval([$1], [$1], [$2])])
-    lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3])
-    m4_ifval([$4],
-	[lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])])
-    lt_dict_add_subkey([lt_decl_dict], [$2],
-	[tagged?], [m4_ifval([$5], [yes], [no])])])
-])
-
-
-# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION])
-# --------------------------------------------------------
-m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])])
-
-
-# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_tag_varnames],
-[_lt_decl_filter([tagged?], [yes], $@)])
-
-
-# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..])
-# ---------------------------------------------------------
-m4_define([_lt_decl_filter],
-[m4_case([$#],
-  [0], [m4_fatal([$0: too few arguments: $#])],
-  [1], [m4_fatal([$0: too few arguments: $#: $1])],
-  [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)],
-  [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)],
-  [lt_dict_filter([lt_decl_dict], $@)])[]dnl
-])
-
-
-# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...])
-# --------------------------------------------------
-m4_define([lt_decl_quote_varnames],
-[_lt_decl_filter([value], [1], $@)])
-
-
-# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_dquote_varnames],
-[_lt_decl_filter([value], [2], $@)])
-
-
-# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...])
-# ---------------------------------------------------
-m4_define([lt_decl_varnames_tagged],
-[m4_assert([$# <= 2])dnl
-_$0(m4_quote(m4_default([$1], [[, ]])),
-    m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]),
-    m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))])
-m4_define([_lt_decl_varnames_tagged],
-[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])])
-
-
-# lt_decl_all_varnames([SEPARATOR], [VARNAME1...])
-# ------------------------------------------------
-m4_define([lt_decl_all_varnames],
-[_$0(m4_quote(m4_default([$1], [[, ]])),
-     m4_if([$2], [],
-	   m4_quote(lt_decl_varnames),
-	m4_quote(m4_shift($@))))[]dnl
-])
-m4_define([_lt_decl_all_varnames],
-[lt_join($@, lt_decl_varnames_tagged([$1],
-			lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl
-])
-
-
-# _LT_CONFIG_STATUS_DECLARE([VARNAME])
-# ------------------------------------
-# Quote a variable value, and forward it to `config.status' so that its
-# declaration there will have the same value as in `configure'.  VARNAME
-# must have a single quote delimited value for this to work.
-m4_define([_LT_CONFIG_STATUS_DECLARE],
-[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`'])
-
-
-# _LT_CONFIG_STATUS_DECLARATIONS
-# ------------------------------
-# We delimit libtool config variables with single quotes, so when
-# we write them to config.status, we have to be sure to quote all
-# embedded single quotes properly.  In configure, this macro expands
-# each variable declared with _LT_DECL (and _LT_TAGDECL) into:
-#
-#    <var>='`$ECHO "$<var>" | $SED "$delay_single_quote_subst"`'
-m4_defun([_LT_CONFIG_STATUS_DECLARATIONS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames),
-    [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAGS
-# ----------------
-# Output comment and list of tags supported by the script
-m4_defun([_LT_LIBTOOL_TAGS],
-[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl
-available_tags="_LT_TAGS"dnl
-])
-
-
-# _LT_LIBTOOL_DECLARE(VARNAME, [TAG])
-# -----------------------------------
-# Extract the dictionary values for VARNAME (optionally with TAG) and
-# expand to a commented shell variable setting:
-#
-#    # Some comment about what VAR is for.
-#    visible_name=$lt_internal_name
-m4_define([_LT_LIBTOOL_DECLARE],
-[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1],
-					   [description])))[]dnl
-m4_pushdef([_libtool_name],
-    m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl
-m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])),
-    [0], [_libtool_name=[$]$1],
-    [1], [_libtool_name=$lt_[]$1],
-    [2], [_libtool_name=$lt_[]$1],
-    [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl
-m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl
-])
-
-
-# _LT_LIBTOOL_CONFIG_VARS
-# -----------------------
-# Produce commented declarations of non-tagged libtool config variables
-# suitable for insertion in the LIBTOOL CONFIG section of the `libtool'
-# script.  Tagged libtool config variables (even for the LIBTOOL CONFIG
-# section) are produced by _LT_LIBTOOL_TAG_VARS.
-m4_defun([_LT_LIBTOOL_CONFIG_VARS],
-[m4_foreach([_lt_var],
-    m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])])
-
-
-# _LT_LIBTOOL_TAG_VARS(TAG)
-# -------------------------
-m4_define([_LT_LIBTOOL_TAG_VARS],
-[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames),
-    [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])])
-
-
-# _LT_TAGVAR(VARNAME, [TAGNAME])
-# ------------------------------
-m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])])
-
-
-# _LT_CONFIG_COMMANDS
-# -------------------
-# Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
-# variables for single and double quote escaping we saved from calls
-# to _LT_DECL, we can put quote escaped variables declarations
-# into `config.status', and then the shell code to quote escape them in
-# for loops in `config.status'.  Finally, any additional code accumulated
-# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded.
-m4_defun([_LT_CONFIG_COMMANDS],
-[AC_PROVIDE_IFELSE([LT_OUTPUT],
-	dnl If the libtool generation code has been placed in $CONFIG_LT,
-	dnl instead of duplicating it all over again into config.status,
-	dnl then we will have config.status run $CONFIG_LT later, so it
-	dnl needs to know what name is stored there:
-        [AC_CONFIG_COMMANDS([libtool],
-            [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])],
-    dnl If the libtool generation code is destined for config.status,
-    dnl expand the accumulated commands and init code now:
-    [AC_CONFIG_COMMANDS([libtool],
-        [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])])
-])#_LT_CONFIG_COMMANDS
-
-
-# Initialize.
-m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT],
-[
-
-# The HP-UX ksh and POSIX shell print the target directory to stdout
-# if CDPATH is set.
-(unset CDPATH) >/dev/null 2>&1 && unset CDPATH
-
-sed_quote_subst='$sed_quote_subst'
-double_quote_subst='$double_quote_subst'
-delay_variable_subst='$delay_variable_subst'
-_LT_CONFIG_STATUS_DECLARATIONS
-LTCC='$LTCC'
-LTCFLAGS='$LTCFLAGS'
-compiler='$compiler_DEFAULT'
-
-# A function that is used when there is no print builtin or printf.
-func_fallback_echo ()
-{
-  eval 'cat <<_LTECHO_EOF
-\$[]1
-_LTECHO_EOF'
-}
-
-# Quote evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_quote_varnames); do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-# Double-quote double-evaled strings.
-for var in lt_decl_all_varnames([[ \
-]], lt_decl_dquote_varnames); do
-    case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in
-    *[[\\\\\\\`\\"\\\$]]*)
-      eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\""
-      ;;
-    *)
-      eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\""
-      ;;
-    esac
-done
-
-_LT_OUTPUT_LIBTOOL_INIT
-])
-
-# _LT_GENERATED_FILE_INIT(FILE, [COMMENT])
-# ------------------------------------
-# Generate a child script FILE with all initialization necessary to
-# reuse the environment learned by the parent script, and make the
-# file executable.  If COMMENT is supplied, it is inserted after the
-# `#!' sequence but before initialization text begins.  After this
-# macro, additional text can be appended to FILE to form the body of
-# the child script.  The macro ends with non-zero status if the
-# file could not be fully written (such as if the disk is full).
-m4_ifdef([AS_INIT_GENERATED],
-[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])],
-[m4_defun([_LT_GENERATED_FILE_INIT],
-[m4_require([AS_PREPARE])]dnl
-[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl
-[lt_write_fail=0
-cat >$1 <<_ASEOF || lt_write_fail=1
-#! $SHELL
-# Generated by $as_me.
-$2
-SHELL=\${CONFIG_SHELL-$SHELL}
-export SHELL
-_ASEOF
-cat >>$1 <<\_ASEOF || lt_write_fail=1
-AS_SHELL_SANITIZE
-_AS_PREPARE
-exec AS_MESSAGE_FD>&1
-_ASEOF
-test $lt_write_fail = 0 && chmod +x $1[]dnl
-m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT
-
-# LT_OUTPUT
-# ---------
-# This macro allows early generation of the libtool script (before
-# AC_OUTPUT is called), incase it is used in configure for compilation
-# tests.
-AC_DEFUN([LT_OUTPUT],
-[: ${CONFIG_LT=./config.lt}
-AC_MSG_NOTICE([creating $CONFIG_LT])
-_LT_GENERATED_FILE_INIT(["$CONFIG_LT"],
-[# Run this file to recreate a libtool stub with the current configuration.])
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-lt_cl_silent=false
-exec AS_MESSAGE_LOG_FD>>config.log
-{
-  echo
-  AS_BOX([Running $as_me.])
-} >&AS_MESSAGE_LOG_FD
-
-lt_cl_help="\
-\`$as_me' creates a local libtool stub from the current configuration,
-for use in further configure time tests before the real libtool is
-generated.
-
-Usage: $[0] [[OPTIONS]]
-
-  -h, --help      print this help, then exit
-  -V, --version   print version number, then exit
-  -q, --quiet     do not print progress messages
-  -d, --debug     don't remove temporary files
-
-Report bugs to <bug-libtool at gnu.org>."
-
-lt_cl_version="\
-m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl
-m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION])
-configured by $[0], generated by m4_PACKAGE_STRING.
-
-Copyright (C) 2011 Free Software Foundation, Inc.
-This config.lt script is free software; the Free Software Foundation
-gives unlimited permision to copy, distribute and modify it."
-
-while test $[#] != 0
-do
-  case $[1] in
-    --version | --v* | -V )
-      echo "$lt_cl_version"; exit 0 ;;
-    --help | --h* | -h )
-      echo "$lt_cl_help"; exit 0 ;;
-    --debug | --d* | -d )
-      debug=: ;;
-    --quiet | --q* | --silent | --s* | -q )
-      lt_cl_silent=: ;;
-
-    -*) AC_MSG_ERROR([unrecognized option: $[1]
-Try \`$[0] --help' for more information.]) ;;
-
-    *) AC_MSG_ERROR([unrecognized argument: $[1]
-Try \`$[0] --help' for more information.]) ;;
-  esac
-  shift
-done
-
-if $lt_cl_silent; then
-  exec AS_MESSAGE_FD>/dev/null
-fi
-_LTEOF
-
-cat >>"$CONFIG_LT" <<_LTEOF
-_LT_OUTPUT_LIBTOOL_COMMANDS_INIT
-_LTEOF
-
-cat >>"$CONFIG_LT" <<\_LTEOF
-AC_MSG_NOTICE([creating $ofile])
-_LT_OUTPUT_LIBTOOL_COMMANDS
-AS_EXIT(0)
-_LTEOF
-chmod +x "$CONFIG_LT"
-
-# configure is writing to config.log, but config.lt does its own redirection,
-# appending to config.log, which fails on DOS, as config.log is still kept
-# open by configure.  Here we exec the FD to /dev/null, effectively closing
-# config.log, so it can be properly (re)opened and appended to by config.lt.
-lt_cl_success=:
-test "$silent" = yes &&
-  lt_config_lt_args="$lt_config_lt_args --quiet"
-exec AS_MESSAGE_LOG_FD>/dev/null
-$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false
-exec AS_MESSAGE_LOG_FD>>config.log
-$lt_cl_success || AS_EXIT(1)
-])# LT_OUTPUT
-
-
-# _LT_CONFIG(TAG)
-# ---------------
-# If TAG is the built-in tag, create an initial libtool script with a
-# default configuration from the untagged config vars.  Otherwise add code
-# to config.status for appending the configuration named by TAG from the
-# matching tagged config vars.
-m4_defun([_LT_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_CONFIG_SAVE_COMMANDS([
-  m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl
-  m4_if(_LT_TAG, [C], [
-    # See if we are running on zsh, and set the options which allow our
-    # commands through without removal of \ escapes.
-    if test -n "${ZSH_VERSION+set}" ; then
-      setopt NO_GLOB_SUBST
-    fi
-
-    cfgfile="${ofile}T"
-    trap "$RM \"$cfgfile\"; exit 1" 1 2 15
-    $RM "$cfgfile"
-
-    cat <<_LT_EOF >> "$cfgfile"
-#! $SHELL
-
-# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services.
-# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION
-# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`:
-# NOTE: Changes made to this file will be lost: look at ltmain.sh.
-#
-_LT_COPYING
-_LT_LIBTOOL_TAGS
-
-# ### BEGIN LIBTOOL CONFIG
-_LT_LIBTOOL_CONFIG_VARS
-_LT_LIBTOOL_TAG_VARS
-# ### END LIBTOOL CONFIG
-
-_LT_EOF
-
-  case $host_os in
-  aix3*)
-    cat <<\_LT_EOF >> "$cfgfile"
-# AIX sometimes has problems with the GCC collect2 program.  For some
-# reason, if we set the COLLECT_NAMES environment variable, the problems
-# vanish in a puff of smoke.
-if test "X${COLLECT_NAMES+set}" != Xset; then
-  COLLECT_NAMES=
-  export COLLECT_NAMES
-fi
-_LT_EOF
-    ;;
-  esac
-
-  _LT_PROG_LTMAIN
-
-  # We use sed instead of cat because bash on DJGPP gets confused if
-  # if finds mixed CR/LF and LF-only lines.  Since sed operates in
-  # text mode, it properly converts lines to CR/LF.  This bash problem
-  # is reportedly fixed, but why not run on old versions too?
-  sed '$q' "$ltmain" >> "$cfgfile" \
-     || (rm -f "$cfgfile"; exit 1)
-
-  _LT_PROG_REPLACE_SHELLFNS
-
-   mv -f "$cfgfile" "$ofile" ||
-    (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile")
-  chmod +x "$ofile"
-],
-[cat <<_LT_EOF >> "$ofile"
-
-dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded
-dnl in a comment (ie after a #).
-# ### BEGIN LIBTOOL TAG CONFIG: $1
-_LT_LIBTOOL_TAG_VARS(_LT_TAG)
-# ### END LIBTOOL TAG CONFIG: $1
-_LT_EOF
-])dnl /m4_if
-],
-[m4_if([$1], [], [
-    PACKAGE='$PACKAGE'
-    VERSION='$VERSION'
-    TIMESTAMP='$TIMESTAMP'
-    RM='$RM'
-    ofile='$ofile'], [])
-])dnl /_LT_CONFIG_SAVE_COMMANDS
-])# _LT_CONFIG
-
-
-# LT_SUPPORTED_TAG(TAG)
-# ---------------------
-# Trace this macro to discover what tags are supported by the libtool
-# --tag option, using:
-#    autoconf --trace 'LT_SUPPORTED_TAG:$1'
-AC_DEFUN([LT_SUPPORTED_TAG], [])
-
-
-# C support is built-in for now
-m4_define([_LT_LANG_C_enabled], [])
-m4_define([_LT_TAGS], [])
-
-
-# LT_LANG(LANG)
-# -------------
-# Enable libtool support for the given language if not already enabled.
-AC_DEFUN([LT_LANG],
-[AC_BEFORE([$0], [LT_OUTPUT])dnl
-m4_case([$1],
-  [C],			[_LT_LANG(C)],
-  [C++],		[_LT_LANG(CXX)],
-  [Go],			[_LT_LANG(GO)],
-  [Java],		[_LT_LANG(GCJ)],
-  [Fortran 77],		[_LT_LANG(F77)],
-  [Fortran],		[_LT_LANG(FC)],
-  [Windows Resource],	[_LT_LANG(RC)],
-  [m4_ifdef([_LT_LANG_]$1[_CONFIG],
-    [_LT_LANG($1)],
-    [m4_fatal([$0: unsupported language: "$1"])])])dnl
-])# LT_LANG
-
-
-# _LT_LANG(LANGNAME)
-# ------------------
-m4_defun([_LT_LANG],
-[m4_ifdef([_LT_LANG_]$1[_enabled], [],
-  [LT_SUPPORTED_TAG([$1])dnl
-  m4_append([_LT_TAGS], [$1 ])dnl
-  m4_define([_LT_LANG_]$1[_enabled], [])dnl
-  _LT_LANG_$1_CONFIG($1)])dnl
-])# _LT_LANG
-
-
-m4_ifndef([AC_PROG_GO], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_GO.  When it is available in    #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-m4_defun([AC_PROG_GO],
-[AC_LANG_PUSH(Go)dnl
-AC_ARG_VAR([GOC],     [Go compiler command])dnl
-AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl
-_AC_ARG_VAR_LDFLAGS()dnl
-AC_CHECK_TOOL(GOC, gccgo)
-if test -z "$GOC"; then
-  if test -n "$ac_tool_prefix"; then
-    AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo])
-  fi
-fi
-if test -z "$GOC"; then
-  AC_CHECK_PROG(GOC, gccgo, gccgo, false)
-fi
-])#m4_defun
-])#m4_ifndef
-
-
-# _LT_LANG_DEFAULT_CONFIG
-# -----------------------
-m4_defun([_LT_LANG_DEFAULT_CONFIG],
-[AC_PROVIDE_IFELSE([AC_PROG_CXX],
-  [LT_LANG(CXX)],
-  [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_F77],
-  [LT_LANG(F77)],
-  [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])])
-
-AC_PROVIDE_IFELSE([AC_PROG_FC],
-  [LT_LANG(FC)],
-  [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])])
-
-dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal
-dnl pulling things in needlessly.
-AC_PROVIDE_IFELSE([AC_PROG_GCJ],
-  [LT_LANG(GCJ)],
-  [AC_PROVIDE_IFELSE([A][M_PROG_GCJ],
-    [LT_LANG(GCJ)],
-    [AC_PROVIDE_IFELSE([LT_PROG_GCJ],
-      [LT_LANG(GCJ)],
-      [m4_ifdef([AC_PROG_GCJ],
-	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([A][M_PROG_GCJ],
-	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
-       m4_ifdef([LT_PROG_GCJ],
-	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
-AC_PROVIDE_IFELSE([AC_PROG_GO],
-  [LT_LANG(GO)],
-  [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
-
-AC_PROVIDE_IFELSE([LT_PROG_RC],
-  [LT_LANG(RC)],
-  [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
-
-# Obsolete macros:
-AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
-AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)])
-AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)])
-AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)])
-AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_CXX], [])
-dnl AC_DEFUN([AC_LIBTOOL_F77], [])
-dnl AC_DEFUN([AC_LIBTOOL_FC], [])
-dnl AC_DEFUN([AC_LIBTOOL_GCJ], [])
-dnl AC_DEFUN([AC_LIBTOOL_RC], [])
-
-
-# _LT_TAG_COMPILER
-# ----------------
-m4_defun([_LT_TAG_COMPILER],
-[AC_REQUIRE([AC_PROG_CC])dnl
-
-_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl
-_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl
-_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl
-_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl
-
-# If no C compiler was specified, use CC.
-LTCC=${LTCC-"$CC"}
-
-# If no C compiler flags were specified, use CFLAGS.
-LTCFLAGS=${LTCFLAGS-"$CFLAGS"}
-
-# Allow CC to be a program name with arguments.
-compiler=$CC
-])# _LT_TAG_COMPILER
-
-
-# _LT_COMPILER_BOILERPLATE
-# ------------------------
-# Check for compiler boilerplate output or warnings with
-# the simple compiler test code.
-m4_defun([_LT_COMPILER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_compile_test_code" >conftest.$ac_ext
-eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_compiler_boilerplate=`cat conftest.err`
-$RM conftest*
-])# _LT_COMPILER_BOILERPLATE
-
-
-# _LT_LINKER_BOILERPLATE
-# ----------------------
-# Check for linker boilerplate output or warnings with
-# the simple link test code.
-m4_defun([_LT_LINKER_BOILERPLATE],
-[m4_require([_LT_DECL_SED])dnl
-ac_outfile=conftest.$ac_objext
-echo "$lt_simple_link_test_code" >conftest.$ac_ext
-eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err
-_lt_linker_boilerplate=`cat conftest.err`
-$RM -r conftest*
-])# _LT_LINKER_BOILERPLATE
-
-# _LT_REQUIRED_DARWIN_CHECKS
-# -------------------------
-m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[
-  case $host_os in
-    rhapsody* | darwin*)
-    AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:])
-    AC_CHECK_TOOL([NMEDIT], [nmedit], [:])
-    AC_CHECK_TOOL([LIPO], [lipo], [:])
-    AC_CHECK_TOOL([OTOOL], [otool], [:])
-    AC_CHECK_TOOL([OTOOL64], [otool64], [:])
-    _LT_DECL([], [DSYMUTIL], [1],
-      [Tool to manipulate archived DWARF debug symbol files on Mac OS X])
-    _LT_DECL([], [NMEDIT], [1],
-      [Tool to change global to local symbols on Mac OS X])
-    _LT_DECL([], [LIPO], [1],
-      [Tool to manipulate fat objects and archives on Mac OS X])
-    _LT_DECL([], [OTOOL], [1],
-      [ldd/readelf like tool for Mach-O binaries on Mac OS X])
-    _LT_DECL([], [OTOOL64], [1],
-      [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4])
-
-    AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod],
-      [lt_cv_apple_cc_single_mod=no
-      if test -z "${LT_MULTI_MODULE}"; then
-	# By default we will add the -single_module flag. You can override
-	# by either setting the environment variable LT_MULTI_MODULE
-	# non-empty at configure time, or by adding -multi_module to the
-	# link flags.
-	rm -rf libconftest.dylib*
-	echo "int foo(void){return 1;}" > conftest.c
-	echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
--dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD
-	$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \
-	  -dynamiclib -Wl,-single_module conftest.c 2>conftest.err
-        _lt_result=$?
-	# If there is a non-empty error log, and "single_module"
-	# appears in it, assume the flag caused a linker warning
-        if test -s conftest.err && $GREP single_module conftest.err; then
-	  cat conftest.err >&AS_MESSAGE_LOG_FD
-	# Otherwise, if the output was created with a 0 exit code from
-	# the compiler, it worked.
-	elif test -f libconftest.dylib && test $_lt_result -eq 0; then
-	  lt_cv_apple_cc_single_mod=yes
-	else
-	  cat conftest.err >&AS_MESSAGE_LOG_FD
-	fi
-	rm -rf libconftest.dylib*
-	rm -f conftest.*
-      fi])
-
-    AC_CACHE_CHECK([for -exported_symbols_list linker flag],
-      [lt_cv_ld_exported_symbols_list],
-      [lt_cv_ld_exported_symbols_list=no
-      save_LDFLAGS=$LDFLAGS
-      echo "_main" > conftest.sym
-      LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym"
-      AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-	[lt_cv_ld_exported_symbols_list=yes],
-	[lt_cv_ld_exported_symbols_list=no])
-	LDFLAGS="$save_LDFLAGS"
-    ])
-
-    AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load],
-      [lt_cv_ld_force_load=no
-      cat > conftest.c << _LT_EOF
-int forced_loaded() { return 2;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD
-      $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD
-      echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD
-      $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD
-      echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD
-      $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD
-      cat > conftest.c << _LT_EOF
-int main() { return 0;}
-_LT_EOF
-      echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD
-      $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err
-      _lt_result=$?
-      if test -s conftest.err && $GREP force_load conftest.err; then
-	cat conftest.err >&AS_MESSAGE_LOG_FD
-      elif test -f conftest && test $_lt_result -eq 0 && $GREP forced_load conftest >/dev/null 2>&1 ; then
-	lt_cv_ld_force_load=yes
-      else
-	cat conftest.err >&AS_MESSAGE_LOG_FD
-      fi
-        rm -f conftest.err libconftest.a conftest conftest.c
-        rm -rf conftest.dSYM
-    ])
-    case $host_os in
-    rhapsody* | darwin1.[[012]])
-      _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;;
-    darwin1.*)
-      _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-    darwin*) # darwin 5.x on
-      # if running on 10.5 or later, the deployment target defaults
-      # to the OS version, if on x86, and 10.4, the deployment
-      # target defaults to 10.4. Don't you love it?
-      case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in
-	10.0,*86*-darwin8*|10.0,*-darwin[[91]]*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-	10.[[012]]*)
-	  _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;;
-	10.*)
-	  _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;;
-      esac
-    ;;
-  esac
-    if test "$lt_cv_apple_cc_single_mod" = "yes"; then
-      _lt_dar_single_mod='$single_module'
-    fi
-    if test "$lt_cv_ld_exported_symbols_list" = "yes"; then
-      _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym'
-    else
-      _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}'
-    fi
-    if test "$DSYMUTIL" != ":" && test "$lt_cv_ld_force_load" = "no"; then
-      _lt_dsymutil='~$DSYMUTIL $lib || :'
-    else
-      _lt_dsymutil=
-    fi
-    ;;
-  esac
-])
-
-
-# _LT_DARWIN_LINKER_FEATURES([TAG])
-# ---------------------------------
-# Checks for linker and compiler features on darwin
-m4_defun([_LT_DARWIN_LINKER_FEATURES],
-[
-  m4_require([_LT_REQUIRED_DARWIN_CHECKS])
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_automatic, $1)=yes
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  if test "$lt_cv_ld_force_load" = "yes"; then
-    _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience ${wl}-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`'
-    m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes],
-                  [FC],  [_LT_TAGVAR(compiler_needs_object, $1)=yes])
-  else
-    _LT_TAGVAR(whole_archive_flag_spec, $1)=''
-  fi
-  _LT_TAGVAR(link_all_deplibs, $1)=yes
-  _LT_TAGVAR(allow_undefined_flag, $1)="$_lt_dar_allow_undefined"
-  case $cc_basename in
-     ifort*) _lt_dar_can_shared=yes ;;
-     *) _lt_dar_can_shared=$GCC ;;
-  esac
-  if test "$_lt_dar_can_shared" = "yes"; then
-    output_verbose_link_cmd=func_echo_all
-    _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}"
-    _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}"
-    _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}"
-    _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}"
-    m4_if([$1], [CXX],
-[   if test "$lt_cv_apple_cc_single_mod" != "yes"; then
-      _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}"
-      _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}"
-    fi
-],[])
-  else
-  _LT_TAGVAR(ld_shlibs, $1)=no
-  fi
-])
-
-# _LT_SYS_MODULE_PATH_AIX([TAGNAME])
-# ----------------------------------
-# Links a minimal program and checks the executable
-# for the system default hardcoded library path. In most cases,
-# this is /usr/lib:/lib, but when the MPI compilers are used
-# the location of the communication and MPI libs are included too.
-# If we don't find anything, use the default library path according
-# to the aix ld manual.
-# Store the results from the different compilers for each TAGNAME.
-# Allow to override them for all tags through lt_cv_aix_libpath.
-m4_defun([_LT_SYS_MODULE_PATH_AIX],
-[m4_require([_LT_DECL_SED])dnl
-if test "${lt_cv_aix_libpath+set}" = set; then
-  aix_libpath=$lt_cv_aix_libpath
-else
-  AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])],
-  [AC_LINK_IFELSE([AC_LANG_PROGRAM],[
-  lt_aix_libpath_sed='[
-      /Import File Strings/,/^$/ {
-	  /^0/ {
-	      s/^0  *\([^ ]*\) *$/\1/
-	      p
-	  }
-      }]'
-  _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  # Check for a 64-bit object if we didn't find anything.
-  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"`
-  fi],[])
-  if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then
-    _LT_TAGVAR([lt_cv_aix_libpath_], [$1])="/usr/lib:/lib"
-  fi
-  ])
-  aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])
-fi
-])# _LT_SYS_MODULE_PATH_AIX
-
-
-# _LT_SHELL_INIT(ARG)
-# -------------------
-m4_define([_LT_SHELL_INIT],
-[m4_divert_text([M4SH-INIT], [$1
-])])# _LT_SHELL_INIT
-
-
-
-# _LT_PROG_ECHO_BACKSLASH
-# -----------------------
-# Find how we can fake an echo command that does not interpret backslash.
-# In particular, with Autoconf 2.60 or later we add some code to the start
-# of the generated configure script which will find a shell with a builtin
-# printf (which we can use as an echo command).
-m4_defun([_LT_PROG_ECHO_BACKSLASH],
-[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-
-AC_MSG_CHECKING([how to print strings])
-# Test print first, because it will be a builtin if present.
-if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \
-   test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='print -r --'
-elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then
-  ECHO='printf %s\n'
-else
-  # Use this function as a fallback that always works.
-  func_fallback_echo ()
-  {
-    eval 'cat <<_LTECHO_EOF
-$[]1
-_LTECHO_EOF'
-  }
-  ECHO='func_fallback_echo'
-fi
-
-# func_echo_all arg...
-# Invoke $ECHO with all args, space-separated.
-func_echo_all ()
-{
-    $ECHO "$*" 
-}
-
-case "$ECHO" in
-  printf*) AC_MSG_RESULT([printf]) ;;
-  print*) AC_MSG_RESULT([print -r]) ;;
-  *) AC_MSG_RESULT([cat]) ;;
-esac
-
-m4_ifdef([_AS_DETECT_SUGGESTED],
-[_AS_DETECT_SUGGESTED([
-  test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || (
-    ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'
-    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO
-    ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO
-    PATH=/empty FPATH=/empty; export PATH FPATH
-    test "X`printf %s $ECHO`" = "X$ECHO" \
-      || test "X`print -r -- $ECHO`" = "X$ECHO" )])])
-
-_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts])
-_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes])
-])# _LT_PROG_ECHO_BACKSLASH
-
-
-# _LT_WITH_SYSROOT
-# ----------------
-AC_DEFUN([_LT_WITH_SYSROOT],
-[AC_MSG_CHECKING([for sysroot])
-AC_ARG_WITH([sysroot],
-[  --with-sysroot[=DIR] Search for dependent libraries within DIR
-                        (or the compiler's sysroot if not specified).],
-[], [with_sysroot=no])
-
-dnl lt_sysroot will always be passed unquoted.  We quote it here
-dnl in case the user passed a directory name.
-lt_sysroot=
-case ${with_sysroot} in #(
- yes)
-   if test "$GCC" = yes; then
-     lt_sysroot=`$CC --print-sysroot 2>/dev/null`
-   fi
-   ;; #(
- /*)
-   lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"`
-   ;; #(
- no|'')
-   ;; #(
- *)
-   AC_MSG_RESULT([${with_sysroot}])
-   AC_MSG_ERROR([The sysroot must be an absolute path.])
-   ;;
-esac
-
- AC_MSG_RESULT([${lt_sysroot:-no}])
-_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl
-[dependent libraries, and in which our libraries should be installed.])])
-
-# _LT_ENABLE_LOCK
-# ---------------
-m4_defun([_LT_ENABLE_LOCK],
-[AC_ARG_ENABLE([libtool-lock],
-  [AS_HELP_STRING([--disable-libtool-lock],
-    [avoid locking (might break parallel builds)])])
-test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes
-
-# Some flags need to be propagated to the compiler or linker for good
-# libtool support.
-case $host in
-ia64-*-hpux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.$ac_objext` in
-      *ELF-32*)
-	HPUX_IA64_MODE="32"
-	;;
-      *ELF-64*)
-	HPUX_IA64_MODE="64"
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-*-*-irix6*)
-  # Find out which ABI we are using.
-  echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    if test "$lt_cv_prog_gnu_ld" = yes; then
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -melf32bsmip"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -melf32bmipn32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -melf64bmip"
-	;;
-      esac
-    else
-      case `/usr/bin/file conftest.$ac_objext` in
-	*32-bit*)
-	  LD="${LD-ld} -32"
-	  ;;
-	*N32*)
-	  LD="${LD-ld} -n32"
-	  ;;
-	*64-bit*)
-	  LD="${LD-ld} -64"
-	  ;;
-      esac
-    fi
-  fi
-  rm -rf conftest*
-  ;;
-
-x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \
-s390*-*linux*|s390*-*tpf*|sparc*-*linux*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-      *32-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_i386_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_i386"
-	    ;;
-	  ppc64-*linux*|powerpc64-*linux*)
-	    LD="${LD-ld} -m elf32ppclinux"
-	    ;;
-	  s390x-*linux*)
-	    LD="${LD-ld} -m elf_s390"
-	    ;;
-	  sparc64-*linux*)
-	    LD="${LD-ld} -m elf32_sparc"
-	    ;;
-	esac
-	;;
-      *64-bit*)
-	case $host in
-	  x86_64-*kfreebsd*-gnu)
-	    LD="${LD-ld} -m elf_x86_64_fbsd"
-	    ;;
-	  x86_64-*linux*)
-	    LD="${LD-ld} -m elf_x86_64"
-	    ;;
-	  ppc*-*linux*|powerpc*-*linux*)
-	    LD="${LD-ld} -m elf64ppc"
-	    ;;
-	  s390*-*linux*|s390*-*tpf*)
-	    LD="${LD-ld} -m elf64_s390"
-	    ;;
-	  sparc*-*linux*)
-	    LD="${LD-ld} -m elf64_sparc"
-	    ;;
-	esac
-	;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-
-*-*-sco3.2v5*)
-  # On SCO OpenServer 5, we need -belf to get full-featured binaries.
-  SAVE_CFLAGS="$CFLAGS"
-  CFLAGS="$CFLAGS -belf"
-  AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf,
-    [AC_LANG_PUSH(C)
-     AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no])
-     AC_LANG_POP])
-  if test x"$lt_cv_cc_needs_belf" != x"yes"; then
-    # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf
-    CFLAGS="$SAVE_CFLAGS"
-  fi
-  ;;
-*-*solaris*)
-  # Find out which ABI we are using.
-  echo 'int i;' > conftest.$ac_ext
-  if AC_TRY_EVAL(ac_compile); then
-    case `/usr/bin/file conftest.o` in
-    *64-bit*)
-      case $lt_cv_prog_gnu_ld in
-      yes*)
-        case $host in
-        i?86-*-solaris*)
-          LD="${LD-ld} -m elf_x86_64"
-          ;;
-        sparc*-*-solaris*)
-          LD="${LD-ld} -m elf64_sparc"
-          ;;
-        esac
-        # GNU ld 2.21 introduced _sol2 emulations.  Use them if available.
-        if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then
-          LD="${LD-ld}_sol2"
-        fi
-        ;;
-      *)
-	if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then
-	  LD="${LD-ld} -64"
-	fi
-	;;
-      esac
-      ;;
-    esac
-  fi
-  rm -rf conftest*
-  ;;
-esac
-
-need_locks="$enable_libtool_lock"
-])# _LT_ENABLE_LOCK
-
-
-# _LT_PROG_AR
-# -----------
-m4_defun([_LT_PROG_AR],
-[AC_CHECK_TOOLS(AR, [ar], false)
-: ${AR=ar}
-: ${AR_FLAGS=cru}
-_LT_DECL([], [AR], [1], [The archiver])
-_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive])
-
-AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file],
-  [lt_cv_ar_at_file=no
-   AC_COMPILE_IFELSE([AC_LANG_PROGRAM],
-     [echo conftest.$ac_objext > conftest.lst
-      lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD'
-      AC_TRY_EVAL([lt_ar_try])
-      if test "$ac_status" -eq 0; then
-	# Ensure the archiver fails upon bogus file names.
-	rm -f conftest.$ac_objext libconftest.a
-	AC_TRY_EVAL([lt_ar_try])
-	if test "$ac_status" -ne 0; then
-          lt_cv_ar_at_file=@
-        fi
-      fi
-      rm -f conftest.* libconftest.a
-     ])
-  ])
-
-if test "x$lt_cv_ar_at_file" = xno; then
-  archiver_list_spec=
-else
-  archiver_list_spec=$lt_cv_ar_at_file
-fi
-_LT_DECL([], [archiver_list_spec], [1],
-  [How to feed a file listing to the archiver])
-])# _LT_PROG_AR
-
-
-# _LT_CMD_OLD_ARCHIVE
-# -------------------
-m4_defun([_LT_CMD_OLD_ARCHIVE],
-[_LT_PROG_AR
-
-AC_CHECK_TOOL(STRIP, strip, :)
-test -z "$STRIP" && STRIP=:
-_LT_DECL([], [STRIP], [1], [A symbol stripping program])
-
-AC_CHECK_TOOL(RANLIB, ranlib, :)
-test -z "$RANLIB" && RANLIB=:
-_LT_DECL([], [RANLIB], [1],
-    [Commands used to install an old-style archive])
-
-# Determine commands to create old-style static archives.
-old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs'
-old_postinstall_cmds='chmod 644 $oldlib'
-old_postuninstall_cmds=
-
-if test -n "$RANLIB"; then
-  case $host_os in
-  openbsd*)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib"
-    ;;
-  *)
-    old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib"
-    ;;
-  esac
-  old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib"
-fi
-
-case $host_os in
-  darwin*)
-    lock_old_archive_extraction=yes ;;
-  *)
-    lock_old_archive_extraction=no ;;
-esac
-_LT_DECL([], [old_postinstall_cmds], [2])
-_LT_DECL([], [old_postuninstall_cmds], [2])
-_LT_TAGDECL([], [old_archive_cmds], [2],
-    [Commands used to build an old-style archive])
-_LT_DECL([], [lock_old_archive_extraction], [0],
-    [Whether to use a lock for old archive extraction])
-])# _LT_CMD_OLD_ARCHIVE
-
-
-# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#		[OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------------------
-# Check whether the given compiler option works
-AC_DEFUN([_LT_COMPILER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4])
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-   lt_compiler_flag="$3"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   # The option is referenced via a variable to avoid confusing sed.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>conftest.err)
-   ac_status=$?
-   cat conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s "$ac_outfile"; then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
-     $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
-       $2=yes
-     fi
-   fi
-   $RM conftest*
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$5], , :, [$5])
-else
-    m4_if([$6], , :, [$6])
-fi
-])# _LT_COMPILER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], [])
-
-
-# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS,
-#                  [ACTION-SUCCESS], [ACTION-FAILURE])
-# ----------------------------------------------------
-# Check whether the given linker option works
-AC_DEFUN([_LT_LINKER_OPTION],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_SED])dnl
-AC_CACHE_CHECK([$1], [$2],
-  [$2=no
-   save_LDFLAGS="$LDFLAGS"
-   LDFLAGS="$LDFLAGS $3"
-   echo "$lt_simple_link_test_code" > conftest.$ac_ext
-   if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then
-     # The linker can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     if test -s conftest.err; then
-       # Append any errors to the config.log.
-       cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
-       $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
-         $2=yes
-       fi
-     else
-       $2=yes
-     fi
-   fi
-   $RM -r conftest*
-   LDFLAGS="$save_LDFLAGS"
-])
-
-if test x"[$]$2" = xyes; then
-    m4_if([$4], , :, [$4])
-else
-    m4_if([$5], , :, [$5])
-fi
-])# _LT_LINKER_OPTION
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], [])
-
-
-# LT_CMD_MAX_LEN
-#---------------
-AC_DEFUN([LT_CMD_MAX_LEN],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-# find the maximum length of command line arguments
-AC_MSG_CHECKING([the maximum length of command line arguments])
-AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl
-  i=0
-  teststring="ABCD"
-
-  case $build_os in
-  msdosdjgpp*)
-    # On DJGPP, this test can blow up pretty badly due to problems in libc
-    # (any single argument exceeding 2000 bytes causes a buffer overrun
-    # during glob expansion).  Even if it were fixed, the result of this
-    # check would be larger than it should be.
-    lt_cv_sys_max_cmd_len=12288;    # 12K is about right
-    ;;
-
-  gnu*)
-    # Under GNU Hurd, this test is not required because there is
-    # no limit to the length of command line arguments.
-    # Libtool will interpret -1 as no limit whatsoever
-    lt_cv_sys_max_cmd_len=-1;
-    ;;
-
-  cygwin* | mingw* | cegcc*)
-    # On Win9x/ME, this test blows up -- it succeeds, but takes
-    # about 5 minutes as the teststring grows exponentially.
-    # Worse, since 9x/ME are not pre-emptively multitasking,
-    # you end up with a "frozen" computer, even though with patience
-    # the test eventually succeeds (with a max line length of 256k).
-    # Instead, let's just punt: use the minimum linelength reported by
-    # all of the supported platforms: 8192 (on NT/2K/XP).
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  mint*)
-    # On MiNT this can take a long time and run out of memory.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  amigaos*)
-    # On AmigaOS with pdksh, this test takes hours, literally.
-    # So we just punt and use a minimum line length of 8192.
-    lt_cv_sys_max_cmd_len=8192;
-    ;;
-
-  netbsd* | freebsd* | openbsd* | darwin* | dragonfly*)
-    # This has been around since 386BSD, at least.  Likely further.
-    if test -x /sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax`
-    elif test -x /usr/sbin/sysctl; then
-      lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax`
-    else
-      lt_cv_sys_max_cmd_len=65536	# usable default for all BSDs
-    fi
-    # And add a safety zone
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-    lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    ;;
-
-  interix*)
-    # We know the value 262144 and hardcode it with a safety zone (like BSD)
-    lt_cv_sys_max_cmd_len=196608
-    ;;
-
-  os2*)
-    # The test takes a long time on OS/2.
-    lt_cv_sys_max_cmd_len=8192
-    ;;
-
-  osf*)
-    # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure
-    # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not
-    # nice to cause kernel panics so lets avoid the loop below.
-    # First set a reasonable default.
-    lt_cv_sys_max_cmd_len=16384
-    #
-    if test -x /sbin/sysconfig; then
-      case `/sbin/sysconfig -q proc exec_disable_arg_limit` in
-        *1*) lt_cv_sys_max_cmd_len=-1 ;;
-      esac
-    fi
-    ;;
-  sco3.2v5*)
-    lt_cv_sys_max_cmd_len=102400
-    ;;
-  sysv5* | sco5v6* | sysv4.2uw2*)
-    kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null`
-    if test -n "$kargmax"; then
-      lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[	 ]]//'`
-    else
-      lt_cv_sys_max_cmd_len=32768
-    fi
-    ;;
-  *)
-    lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null`
-    if test -n "$lt_cv_sys_max_cmd_len"; then
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4`
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3`
-    else
-      # Make teststring a little bigger before we do anything with it.
-      # a 1K string should be a reasonable start.
-      for i in 1 2 3 4 5 6 7 8 ; do
-        teststring=$teststring$teststring
-      done
-      SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}}
-      # If test is not a shell built-in, we'll probably end up computing a
-      # maximum length that is only half of the actual maximum length, but
-      # we can't tell.
-      while { test "X"`env echo "$teststring$teststring" 2>/dev/null` \
-	         = "X$teststring$teststring"; } >/dev/null 2>&1 &&
-	      test $i != 17 # 1/2 MB should be enough
-      do
-        i=`expr $i + 1`
-        teststring=$teststring$teststring
-      done
-      # Only check the string length outside the loop.
-      lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1`
-      teststring=
-      # Add a significant safety factor because C++ compilers can tack on
-      # massive amounts of additional arguments before passing them to the
-      # linker.  It appears as though 1/2 is a usable value.
-      lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2`
-    fi
-    ;;
-  esac
-])
-if test -n $lt_cv_sys_max_cmd_len ; then
-  AC_MSG_RESULT($lt_cv_sys_max_cmd_len)
-else
-  AC_MSG_RESULT(none)
-fi
-max_cmd_len=$lt_cv_sys_max_cmd_len
-_LT_DECL([], [max_cmd_len], [0],
-    [What is the maximum length of a command?])
-])# LT_CMD_MAX_LEN
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], [])
-
-
-# _LT_HEADER_DLFCN
-# ----------------
-m4_defun([_LT_HEADER_DLFCN],
-[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl
-])# _LT_HEADER_DLFCN
-
-
-# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE,
-#                      ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING)
-# ----------------------------------------------------------------
-m4_defun([_LT_TRY_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "$cross_compiling" = yes; then :
-  [$4]
-else
-  lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
-  lt_status=$lt_dlunknown
-  cat > conftest.$ac_ext <<_LT_EOF
-[#line $LINENO "configure"
-#include "confdefs.h"
-
-#if HAVE_DLFCN_H
-#include <dlfcn.h>
-#endif
-
-#include <stdio.h>
-
-#ifdef RTLD_GLOBAL
-#  define LT_DLGLOBAL		RTLD_GLOBAL
-#else
-#  ifdef DL_GLOBAL
-#    define LT_DLGLOBAL		DL_GLOBAL
-#  else
-#    define LT_DLGLOBAL		0
-#  endif
-#endif
-
-/* We may have to define LT_DLLAZY_OR_NOW in the command line if we
-   find out it does not work in some platform. */
-#ifndef LT_DLLAZY_OR_NOW
-#  ifdef RTLD_LAZY
-#    define LT_DLLAZY_OR_NOW		RTLD_LAZY
-#  else
-#    ifdef DL_LAZY
-#      define LT_DLLAZY_OR_NOW		DL_LAZY
-#    else
-#      ifdef RTLD_NOW
-#        define LT_DLLAZY_OR_NOW	RTLD_NOW
-#      else
-#        ifdef DL_NOW
-#          define LT_DLLAZY_OR_NOW	DL_NOW
-#        else
-#          define LT_DLLAZY_OR_NOW	0
-#        endif
-#      endif
-#    endif
-#  endif
-#endif
-
-/* When -fvisbility=hidden is used, assume the code has been annotated
-   correspondingly for the symbols needed.  */
-#if defined(__GNUC__) && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3))
-int fnord () __attribute__((visibility("default")));
-#endif
-
-int fnord () { return 42; }
-int main ()
-{
-  void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW);
-  int status = $lt_dlunknown;
-
-  if (self)
-    {
-      if (dlsym (self,"fnord"))       status = $lt_dlno_uscore;
-      else
-        {
-	  if (dlsym( self,"_fnord"))  status = $lt_dlneed_uscore;
-          else puts (dlerror ());
-	}
-      /* dlclose (self); */
-    }
-  else
-    puts (dlerror ());
-
-  return status;
-}]
-_LT_EOF
-  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext} 2>/dev/null; then
-    (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null
-    lt_status=$?
-    case x$lt_status in
-      x$lt_dlno_uscore) $1 ;;
-      x$lt_dlneed_uscore) $2 ;;
-      x$lt_dlunknown|x*) $3 ;;
-    esac
-  else :
-    # compilation failed
-    $3
-  fi
-fi
-rm -fr conftest*
-])# _LT_TRY_DLOPEN_SELF
-
-
-# LT_SYS_DLOPEN_SELF
-# ------------------
-AC_DEFUN([LT_SYS_DLOPEN_SELF],
-[m4_require([_LT_HEADER_DLFCN])dnl
-if test "x$enable_dlopen" != xyes; then
-  enable_dlopen=unknown
-  enable_dlopen_self=unknown
-  enable_dlopen_self_static=unknown
-else
-  lt_cv_dlopen=no
-  lt_cv_dlopen_libs=
-
-  case $host_os in
-  beos*)
-    lt_cv_dlopen="load_add_on"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ;;
-
-  mingw* | pw32* | cegcc*)
-    lt_cv_dlopen="LoadLibrary"
-    lt_cv_dlopen_libs=
-    ;;
-
-  cygwin*)
-    lt_cv_dlopen="dlopen"
-    lt_cv_dlopen_libs=
-    ;;
-
-  darwin*)
-  # if libdl is installed we need to link against it
-    AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],[
-    lt_cv_dlopen="dyld"
-    lt_cv_dlopen_libs=
-    lt_cv_dlopen_self=yes
-    ])
-    ;;
-
-  *)
-    AC_CHECK_FUNC([shl_load],
-	  [lt_cv_dlopen="shl_load"],
-      [AC_CHECK_LIB([dld], [shl_load],
-	    [lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld"],
-	[AC_CHECK_FUNC([dlopen],
-	      [lt_cv_dlopen="dlopen"],
-	  [AC_CHECK_LIB([dl], [dlopen],
-		[lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl"],
-	    [AC_CHECK_LIB([svld], [dlopen],
-		  [lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld"],
-	      [AC_CHECK_LIB([dld], [dld_link],
-		    [lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld"])
-	      ])
-	    ])
-	  ])
-	])
-      ])
-    ;;
-  esac
-
-  if test "x$lt_cv_dlopen" != xno; then
-    enable_dlopen=yes
-  else
-    enable_dlopen=no
-  fi
-
-  case $lt_cv_dlopen in
-  dlopen)
-    save_CPPFLAGS="$CPPFLAGS"
-    test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H"
-
-    save_LDFLAGS="$LDFLAGS"
-    wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\"
-
-    save_LIBS="$LIBS"
-    LIBS="$lt_cv_dlopen_libs $LIBS"
-
-    AC_CACHE_CHECK([whether a program can dlopen itself],
-	  lt_cv_dlopen_self, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes,
-	    lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross)
-    ])
-
-    if test "x$lt_cv_dlopen_self" = xyes; then
-      wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\"
-      AC_CACHE_CHECK([whether a statically linked program can dlopen itself],
-	  lt_cv_dlopen_self_static, [dnl
-	  _LT_TRY_DLOPEN_SELF(
-	    lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes,
-	    lt_cv_dlopen_self_static=no,  lt_cv_dlopen_self_static=cross)
-      ])
-    fi
-
-    CPPFLAGS="$save_CPPFLAGS"
-    LDFLAGS="$save_LDFLAGS"
-    LIBS="$save_LIBS"
-    ;;
-  esac
-
-  case $lt_cv_dlopen_self in
-  yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;;
-  *) enable_dlopen_self=unknown ;;
-  esac
-
-  case $lt_cv_dlopen_self_static in
-  yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;;
-  *) enable_dlopen_self_static=unknown ;;
-  esac
-fi
-_LT_DECL([dlopen_support], [enable_dlopen], [0],
-	 [Whether dlopen is supported])
-_LT_DECL([dlopen_self], [enable_dlopen_self], [0],
-	 [Whether dlopen of programs is supported])
-_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0],
-	 [Whether dlopen of statically linked programs is supported])
-])# LT_SYS_DLOPEN_SELF
-
-# Old name:
-AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], [])
-
-
-# _LT_COMPILER_C_O([TAGNAME])
-# ---------------------------
-# Check to see if options -c and -o are simultaneously supported by compiler.
-# This macro does not hard code the compiler like AC_PROG_CC_C_O.
-m4_defun([_LT_COMPILER_C_O],
-[m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)],
-  [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no
-   $RM -r conftest 2>/dev/null
-   mkdir conftest
-   cd conftest
-   mkdir out
-   echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-   lt_compiler_flag="-o out/conftest2.$ac_objext"
-   # Insert the option either (1) after the last *FLAGS variable, or
-   # (2) before a word containing "conftest.", or (3) at the end.
-   # Note that $ac_compile itself does not contain backslashes and begins
-   # with a dollar sign (not a hyphen), so the echo should work correctly.
-   lt_compile=`echo "$ac_compile" | $SED \
-   -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-   -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \
-   -e 's:$: $lt_compiler_flag:'`
-   (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD)
-   (eval "$lt_compile" 2>out/conftest.err)
-   ac_status=$?
-   cat out/conftest.err >&AS_MESSAGE_LOG_FD
-   echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD
-   if (exit $ac_status) && test -s out/conftest2.$ac_objext
-   then
-     # The compiler can only warn and ignore the option if not recognized
-     # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
-     $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
-       _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-     fi
-   fi
-   chmod u+w . 2>&AS_MESSAGE_LOG_FD
-   $RM conftest*
-   # SGI C++ compiler will create directory out/ii_files/ for
-   # template instantiation
-   test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files
-   $RM out/* && rmdir out
-   cd ..
-   $RM -r conftest
-   $RM conftest*
-])
-_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1],
-	[Does compiler simultaneously support -c and -o options?])
-])# _LT_COMPILER_C_O
-
-
-# _LT_COMPILER_FILE_LOCKS([TAGNAME])
-# ----------------------------------
-# Check to see if we can do hard links to lock some files if needed
-m4_defun([_LT_COMPILER_FILE_LOCKS],
-[m4_require([_LT_ENABLE_LOCK])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-_LT_COMPILER_C_O([$1])
-
-hard_links="nottested"
-if test "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" = no && test "$need_locks" != no; then
-  # do not overwrite the value of need_locks provided by the user
-  AC_MSG_CHECKING([if we can lock with hard links])
-  hard_links=yes
-  $RM conftest*
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  touch conftest.a
-  ln conftest.a conftest.b 2>&5 || hard_links=no
-  ln conftest.a conftest.b 2>/dev/null && hard_links=no
-  AC_MSG_RESULT([$hard_links])
-  if test "$hard_links" = no; then
-    AC_MSG_WARN([`$CC' does not support `-c -o', so `make -j' may be unsafe])
-    need_locks=warn
-  fi
-else
-  need_locks=no
-fi
-_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?])
-])# _LT_COMPILER_FILE_LOCKS
-
-
-# _LT_CHECK_OBJDIR
-# ----------------
-m4_defun([_LT_CHECK_OBJDIR],
-[AC_CACHE_CHECK([for objdir], [lt_cv_objdir],
-[rm -f .libs 2>/dev/null
-mkdir .libs 2>/dev/null
-if test -d .libs; then
-  lt_cv_objdir=.libs
-else
-  # MS-DOS does not allow filenames that begin with a dot.
-  lt_cv_objdir=_libs
-fi
-rmdir .libs 2>/dev/null])
-objdir=$lt_cv_objdir
-_LT_DECL([], [objdir], [0],
-         [The name of the directory that contains temporary libtool files])dnl
-m4_pattern_allow([LT_OBJDIR])dnl
-AC_DEFINE_UNQUOTED(LT_OBJDIR, "$lt_cv_objdir/",
-  [Define to the sub-directory in which libtool stores uninstalled libraries.])
-])# _LT_CHECK_OBJDIR
-
-
-# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME])
-# --------------------------------------
-# Check hardcoding attributes.
-m4_defun([_LT_LINKER_HARDCODE_LIBPATH],
-[AC_MSG_CHECKING([how to hardcode library paths into programs])
-_LT_TAGVAR(hardcode_action, $1)=
-if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" ||
-   test -n "$_LT_TAGVAR(runpath_var, $1)" ||
-   test "X$_LT_TAGVAR(hardcode_automatic, $1)" = "Xyes" ; then
-
-  # We can hardcode non-existent directories.
-  if test "$_LT_TAGVAR(hardcode_direct, $1)" != no &&
-     # If the only mechanism to avoid hardcoding is shlibpath_var, we
-     # have to relink, otherwise we might link with an installed library
-     # when we should be linking with a yet-to-be-installed one
-     ## test "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" != no &&
-     test "$_LT_TAGVAR(hardcode_minus_L, $1)" != no; then
-    # Linking always hardcodes the temporary library directory.
-    _LT_TAGVAR(hardcode_action, $1)=relink
-  else
-    # We can link without hardcoding, and we can hardcode nonexisting dirs.
-    _LT_TAGVAR(hardcode_action, $1)=immediate
-  fi
-else
-  # We cannot hardcode anything, or else we can only hardcode existing
-  # directories.
-  _LT_TAGVAR(hardcode_action, $1)=unsupported
-fi
-AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)])
-
-if test "$_LT_TAGVAR(hardcode_action, $1)" = relink ||
-   test "$_LT_TAGVAR(inherit_rpath, $1)" = yes; then
-  # Fast installation is not supported
-  enable_fast_install=no
-elif test "$shlibpath_overrides_runpath" = yes ||
-     test "$enable_shared" = no; then
-  # Fast installation is not necessary
-  enable_fast_install=needless
-fi
-_LT_TAGDECL([], [hardcode_action], [0],
-    [How to hardcode a shared library path into an executable])
-])# _LT_LINKER_HARDCODE_LIBPATH
-
-
-# _LT_CMD_STRIPLIB
-# ----------------
-m4_defun([_LT_CMD_STRIPLIB],
-[m4_require([_LT_DECL_EGREP])
-striplib=
-old_striplib=
-AC_MSG_CHECKING([whether stripping libraries is possible])
-if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then
-  test -z "$old_striplib" && old_striplib="$STRIP --strip-debug"
-  test -z "$striplib" && striplib="$STRIP --strip-unneeded"
-  AC_MSG_RESULT([yes])
-else
-# FIXME - insert some real tests, host_os isn't really good enough
-  case $host_os in
-  darwin*)
-    if test -n "$STRIP" ; then
-      striplib="$STRIP -x"
-      old_striplib="$STRIP -S"
-      AC_MSG_RESULT([yes])
-    else
-      AC_MSG_RESULT([no])
-    fi
-    ;;
-  *)
-    AC_MSG_RESULT([no])
-    ;;
-  esac
-fi
-_LT_DECL([], [old_striplib], [1], [Commands to strip libraries])
-_LT_DECL([], [striplib], [1])
-])# _LT_CMD_STRIPLIB
-
-
-# _LT_SYS_DYNAMIC_LINKER([TAG])
-# -----------------------------
-# PORTME Fill in your ld.so characteristics
-m4_defun([_LT_SYS_DYNAMIC_LINKER],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_OBJDUMP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CHECK_SHELL_FEATURES])dnl
-AC_MSG_CHECKING([dynamic linker characteristics])
-m4_if([$1],
-	[], [
-if test "$GCC" = yes; then
-  case $host_os in
-    darwin*) lt_awk_arg="/^libraries:/,/LR/" ;;
-    *) lt_awk_arg="/^libraries:/" ;;
-  esac
-  case $host_os in
-    mingw* | cegcc*) lt_sed_strip_eq="s,=\([[A-Za-z]]:\),\1,g" ;;
-    *) lt_sed_strip_eq="s,=/,/,g" ;;
-  esac
-  lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq`
-  case $lt_search_path_spec in
-  *\;*)
-    # if the path contains ";" then we assume it to be the separator
-    # otherwise default to the standard path separator (i.e. ":") - it is
-    # assumed that no part of a normal pathname contains ";" but that should
-    # okay in the real world where ";" in dirpaths is itself problematic.
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'`
-    ;;
-  *)
-    lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"`
-    ;;
-  esac
-  # Ok, now we have the path, separated by spaces, we can step through it
-  # and add multilib dir if necessary.
-  lt_tmp_lt_search_path_spec=
-  lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null`
-  for lt_sys_path in $lt_search_path_spec; do
-    if test -d "$lt_sys_path/$lt_multi_os_dir"; then
-      lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir"
-    else
-      test -d "$lt_sys_path" && \
-	lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path"
-    fi
-  done
-  lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk '
-BEGIN {RS=" "; FS="/|\n";} {
-  lt_foo="";
-  lt_count=0;
-  for (lt_i = NF; lt_i > 0; lt_i--) {
-    if ($lt_i != "" && $lt_i != ".") {
-      if ($lt_i == "..") {
-        lt_count++;
-      } else {
-        if (lt_count == 0) {
-          lt_foo="/" $lt_i lt_foo;
-        } else {
-          lt_count--;
-        }
-      }
-    }
-  }
-  if (lt_foo != "") { lt_freq[[lt_foo]]++; }
-  if (lt_freq[[lt_foo]] == 1) { print lt_foo; }
-}'`
-  # AWK program above erroneously prepends '/' to C:/dos/paths
-  # for these hosts.
-  case $host_os in
-    mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\
-      $SED 's,/\([[A-Za-z]]:\),\1,g'` ;;
-  esac
-  sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP`
-else
-  sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib"
-fi])
-library_names_spec=
-libname_spec='lib$name'
-soname_spec=
-shrext_cmds=".so"
-postinstall_cmds=
-postuninstall_cmds=
-finish_cmds=
-finish_eval=
-shlibpath_var=
-shlibpath_overrides_runpath=unknown
-version_type=none
-dynamic_linker="$host_os ld.so"
-sys_lib_dlsearch_path_spec="/lib /usr/lib"
-need_lib_prefix=unknown
-hardcode_into_libs=no
-
-# when you set need_version to no, make sure it does not cause -set_version
-# flags to be left without arguments
-need_version=unknown
-
-case $host_os in
-aix3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a'
-  shlibpath_var=LIBPATH
-
-  # AIX 3 has no versioning support, so we append a major version to the name.
-  soname_spec='${libname}${release}${shared_ext}$major'
-  ;;
-
-aix[[4-9]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  hardcode_into_libs=yes
-  if test "$host_cpu" = ia64; then
-    # AIX 5 supports IA64
-    library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}'
-    shlibpath_var=LD_LIBRARY_PATH
-  else
-    # With GCC up to 2.95.x, collect2 would create an import file
-    # for dependence libraries.  The import file would start with
-    # the line `#! .'.  This would cause the generated library to
-    # depend on `.', always an invalid library.  This was fixed in
-    # development snapshots of GCC prior to 3.0.
-    case $host_os in
-      aix4 | aix4.[[01]] | aix4.[[01]].*)
-      if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)'
-	   echo ' yes '
-	   echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then
-	:
-      else
-	can_build_shared=no
-      fi
-      ;;
-    esac
-    # AIX (on Power*) has no versioning support, so currently we can not hardcode correct
-    # soname into executable. Probably we can add versioning support to
-    # collect2, so additional links can be useful in future.
-    if test "$aix_use_runtimelinking" = yes; then
-      # If using run time linking (on AIX 4.2 or later) use lib<name>.so
-      # instead of lib<name>.a to let people know that these are not
-      # typical AIX shared libraries.
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    else
-      # We preserve .a as extension for shared libraries through AIX4.2
-      # and later when we are not doing run time linking.
-      library_names_spec='${libname}${release}.a $libname.a'
-      soname_spec='${libname}${release}${shared_ext}$major'
-    fi
-    shlibpath_var=LIBPATH
-  fi
-  ;;
-
-amigaos*)
-  case $host_cpu in
-  powerpc)
-    # Since July 2007 AmigaOS4 officially supports .so libraries.
-    # When compiling the executable, add -use-dynld -Lsobjs: to the compileline.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    ;;
-  m68k)
-    library_names_spec='$libname.ixlibrary $libname.a'
-    # Create ${libname}_ixlibrary.a entries in /sys/libs.
-    finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done'
-    ;;
-  esac
-  ;;
-
-beos*)
-  library_names_spec='${libname}${shared_ext}'
-  dynamic_linker="$host_os ld.so"
-  shlibpath_var=LIBRARY_PATH
-  ;;
-
-bsdi[[45]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib"
-  sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib"
-  # the default ld.so.conf also contains /usr/contrib/lib and
-  # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow
-  # libtool to hard-code these into programs
-  ;;
-
-cygwin* | mingw* | pw32* | cegcc*)
-  version_type=windows
-  shrext_cmds=".dll"
-  need_version=no
-  need_lib_prefix=no
-
-  case $GCC,$cc_basename in
-  yes,*)
-    # gcc
-    library_names_spec='$libname.dll.a'
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname~
-      chmod a+x \$dldir/$dlname~
-      if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then
-        eval '\''$striplib \$dldir/$dlname'\'' || exit \$?;
-      fi'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-
-    case $host_os in
-    cygwin*)
-      # Cygwin DLLs use 'cyg' prefix rather than 'lib'
-      soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-m4_if([$1], [],[
-      sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"])
-      ;;
-    mingw* | cegcc*)
-      # MinGW DLLs use traditional 'lib' prefix
-      soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    pw32*)
-      # pw32 DLLs use 'pw' prefix rather than 'lib'
-      library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-      ;;
-    esac
-    dynamic_linker='Win32 ld.exe'
-    ;;
-
-  *,cl*)
-    # Native MSVC
-    libname_spec='$name'
-    soname_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext}'
-    library_names_spec='${libname}.dll.lib'
-
-    case $build_os in
-    mingw*)
-      sys_lib_search_path_spec=
-      lt_save_ifs=$IFS
-      IFS=';'
-      for lt_path in $LIB
-      do
-        IFS=$lt_save_ifs
-        # Let DOS variable expansion print the short 8.3 style file name.
-        lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"`
-        sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path"
-      done
-      IFS=$lt_save_ifs
-      # Convert to MSYS style.
-      sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'`
-      ;;
-    cygwin*)
-      # Convert to unix form, then to dos form, then back to unix form
-      # but this time dos style (no spaces!) so that the unix form looks
-      # like /cygdrive/c/PROGRA~1:/cygdr...
-      sys_lib_search_path_spec=`cygpath --path --unix "$LIB"`
-      sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null`
-      sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      ;;
-    *)
-      sys_lib_search_path_spec="$LIB"
-      if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then
-        # It is most probably a Windows format PATH.
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'`
-      else
-        sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"`
-      fi
-      # FIXME: find the short name or the path components, as spaces are
-      # common. (e.g. "Program Files" -> "PROGRA~1")
-      ;;
-    esac
-
-    # DLL is installed to $(libdir)/../bin by postinstall_cmds
-    postinstall_cmds='base_file=`basename \${file}`~
-      dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~
-      dldir=$destdir/`dirname \$dlpath`~
-      test -d \$dldir || mkdir -p \$dldir~
-      $install_prog $dir/$dlname \$dldir/$dlname'
-    postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~
-      dlpath=$dir/\$dldll~
-       $RM \$dlpath'
-    shlibpath_overrides_runpath=yes
-    dynamic_linker='Win32 link.exe'
-    ;;
-
-  *)
-    # Assume MSVC wrapper
-    library_names_spec='${libname}`echo ${release} | $SED -e 's/[[.]]/-/g'`${versuffix}${shared_ext} $libname.lib'
-    dynamic_linker='Win32 ld.exe'
-    ;;
-  esac
-  # FIXME: first we should search . and the directory the executable is in
-  shlibpath_var=PATH
-  ;;
-
-darwin* | rhapsody*)
-  dynamic_linker="$host_os dyld"
-  version_type=darwin
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext'
-  soname_spec='${libname}${release}${major}$shared_ext'
-  shlibpath_overrides_runpath=yes
-  shlibpath_var=DYLD_LIBRARY_PATH
-  shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`'
-m4_if([$1], [],[
-  sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"])
-  sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib'
-  ;;
-
-dgux*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-freebsd* | dragonfly*)
-  # DragonFly does not have aout.  When/if they implement a new
-  # versioning mechanism, adjust this.
-  if test -x /usr/bin/objformat; then
-    objformat=`/usr/bin/objformat`
-  else
-    case $host_os in
-    freebsd[[23]].*) objformat=aout ;;
-    *) objformat=elf ;;
-    esac
-  fi
-  version_type=freebsd-$objformat
-  case $version_type in
-    freebsd-elf*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-      need_version=no
-      need_lib_prefix=no
-      ;;
-    freebsd-*)
-      library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix'
-      need_version=yes
-      ;;
-  esac
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_os in
-  freebsd2.*)
-    shlibpath_overrides_runpath=yes
-    ;;
-  freebsd3.[[01]]* | freebsdelf3.[[01]]*)
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \
-  freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1)
-    shlibpath_overrides_runpath=no
-    hardcode_into_libs=yes
-    ;;
-  *) # from 4.6 on, and DragonFly
-    shlibpath_overrides_runpath=yes
-    hardcode_into_libs=yes
-    ;;
-  esac
-  ;;
-
-gnu*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-haiku*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  dynamic_linker="$host_os runtime_loader"
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib'
-  hardcode_into_libs=yes
-  ;;
-
-hpux9* | hpux10* | hpux11*)
-  # Give a soname corresponding to the major version so that dld.sl refuses to
-  # link against other versions.
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  case $host_cpu in
-  ia64*)
-    shrext_cmds='.so'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.so"
-    shlibpath_var=LD_LIBRARY_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    if test "X$HPUX_IA64_MODE" = X32; then
-      sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib"
-    else
-      sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64"
-    fi
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  hppa*64*)
-    shrext_cmds='.sl'
-    hardcode_into_libs=yes
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH
-    shlibpath_overrides_runpath=yes # Unless +noenvvar is specified.
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64"
-    sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec
-    ;;
-  *)
-    shrext_cmds='.sl'
-    dynamic_linker="$host_os dld.sl"
-    shlibpath_var=SHLIB_PATH
-    shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    ;;
-  esac
-  # HP-UX runs *really* slowly unless shared libraries are mode 555, ...
-  postinstall_cmds='chmod 555 $lib'
-  # or fails outright, so override atomically:
-  install_override_mode=555
-  ;;
-
-interix[[3-9]]*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $host_os in
-    nonstopux*) version_type=nonstopux ;;
-    *)
-	if test "$lt_cv_prog_gnu_ld" = yes; then
-		version_type=linux # correct to gnu/linux during the next big refactor
-	else
-		version_type=irix
-	fi ;;
-  esac
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}'
-  case $host_os in
-  irix5* | nonstopux*)
-    libsuff= shlibsuff=
-    ;;
-  *)
-    case $LD in # libtool.m4 will add one of these switches to LD
-    *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ")
-      libsuff= shlibsuff= libmagic=32-bit;;
-    *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ")
-      libsuff=32 shlibsuff=N32 libmagic=N32;;
-    *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ")
-      libsuff=64 shlibsuff=64 libmagic=64-bit;;
-    *) libsuff= shlibsuff= libmagic=never-match;;
-    esac
-    ;;
-  esac
-  shlibpath_var=LD_LIBRARY${shlibsuff}_PATH
-  shlibpath_overrides_runpath=no
-  sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}"
-  sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}"
-  hardcode_into_libs=yes
-  ;;
-
-# No shared lib support for Linux oldld, aout, or coff.
-linux*oldld* | linux*aout* | linux*coff*)
-  dynamic_linker=no
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-
-  # Some binutils ld are patched to set DT_RUNPATH
-  AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath],
-    [lt_cv_shlibpath_overrides_runpath=no
-    save_LDFLAGS=$LDFLAGS
-    save_libdir=$libdir
-    eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \
-	 LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\""
-    AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])],
-      [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null],
-	 [lt_cv_shlibpath_overrides_runpath=yes])])
-    LDFLAGS=$save_LDFLAGS
-    libdir=$save_libdir
-    ])
-  shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath
-
-  # This implies no fast_install, which is unacceptable.
-  # Some rework will be needed to allow for fast_install
-  # before this can be enabled.
-  hardcode_into_libs=yes
-
-  # Append ld.so.conf contents to the search path
-  if test -f /etc/ld.so.conf; then
-    lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[	 ]*hwcap[	 ]/d;s/[:,	]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '`
-    sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra"
-  fi
-
-  # We used to test for /lib/ld.so.1 and disable shared libraries on
-  # powerpc, because MkLinux only supported shared libraries with the
-  # GNU dynamic linker.  Since this was broken with cross compilers,
-  # most powerpc-linux boxes support dynamic linking these days and
-  # people can always --disable-shared, the test was removed, and we
-  # assume the GNU/Linux dynamic linker is in use.
-  dynamic_linker='GNU/Linux ld.so'
-  ;;
-
-netbsd*)
-  version_type=sunos
-  need_lib_prefix=no
-  need_version=no
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-    finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-    dynamic_linker='NetBSD (a.out) ld.so'
-  else
-    library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}'
-    soname_spec='${libname}${release}${shared_ext}$major'
-    dynamic_linker='NetBSD ld.elf_so'
-  fi
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  ;;
-
-newsos6)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  ;;
-
-*nto* | *qnx*)
-  version_type=qnx
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  dynamic_linker='ldqnx.so'
-  ;;
-
-openbsd*)
-  version_type=sunos
-  sys_lib_dlsearch_path_spec="/usr/lib"
-  need_lib_prefix=no
-  # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs.
-  case $host_os in
-    openbsd3.3 | openbsd3.3.*)	need_version=yes ;;
-    *)				need_version=no  ;;
-  esac
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    case $host_os in
-      openbsd2.[[89]] | openbsd2.[[89]].*)
-	shlibpath_overrides_runpath=no
-	;;
-      *)
-	shlibpath_overrides_runpath=yes
-	;;
-      esac
-  else
-    shlibpath_overrides_runpath=yes
-  fi
-  ;;
-
-os2*)
-  libname_spec='$name'
-  shrext_cmds=".dll"
-  need_lib_prefix=no
-  library_names_spec='$libname${shared_ext} $libname.a'
-  dynamic_linker='OS/2 ld.exe'
-  shlibpath_var=LIBPATH
-  ;;
-
-osf3* | osf4* | osf5*)
-  version_type=osf
-  need_lib_prefix=no
-  need_version=no
-  soname_spec='${libname}${release}${shared_ext}$major'
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib"
-  sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec"
-  ;;
-
-rdos*)
-  dynamic_linker=no
-  ;;
-
-solaris*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  # ldd complains unless libraries are executable
-  postinstall_cmds='chmod +x $lib'
-  ;;
-
-sunos4*)
-  version_type=sunos
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix'
-  finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  if test "$with_gnu_ld" = yes; then
-    need_lib_prefix=no
-  fi
-  need_version=yes
-  ;;
-
-sysv4 | sysv4.3*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  case $host_vendor in
-    sni)
-      shlibpath_overrides_runpath=no
-      need_lib_prefix=no
-      runpath_var=LD_RUN_PATH
-      ;;
-    siemens)
-      need_lib_prefix=no
-      ;;
-    motorola)
-      need_lib_prefix=no
-      need_version=no
-      shlibpath_overrides_runpath=no
-      sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib'
-      ;;
-  esac
-  ;;
-
-sysv4*MP*)
-  if test -d /usr/nec ;then
-    version_type=linux # correct to gnu/linux during the next big refactor
-    library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}'
-    soname_spec='$libname${shared_ext}.$major'
-    shlibpath_var=LD_LIBRARY_PATH
-  fi
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  version_type=freebsd-elf
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=yes
-  hardcode_into_libs=yes
-  if test "$with_gnu_ld" = yes; then
-    sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib'
-  else
-    sys_lib_search_path_spec='/usr/ccs/lib /usr/lib'
-    case $host_os in
-      sco3.2v5*)
-        sys_lib_search_path_spec="$sys_lib_search_path_spec /lib"
-	;;
-    esac
-  fi
-  sys_lib_dlsearch_path_spec='/usr/lib'
-  ;;
-
-tpf*)
-  # TPF is a cross-target only.  Preferred cross-host = GNU/Linux.
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
-uts4*)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}'
-  soname_spec='${libname}${release}${shared_ext}$major'
-  shlibpath_var=LD_LIBRARY_PATH
-  ;;
-
-*)
-  dynamic_linker=no
-  ;;
-esac
-AC_MSG_RESULT([$dynamic_linker])
-test "$dynamic_linker" = no && can_build_shared=no
-
-variables_saved_for_relink="PATH $shlibpath_var $runpath_var"
-if test "$GCC" = yes; then
-  variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH"
-fi
-
-if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then
-  sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec"
-fi
-if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then
-  sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec"
-fi
-
-_LT_DECL([], [variables_saved_for_relink], [1],
-    [Variables whose values should be saved in libtool wrapper scripts and
-    restored at link time])
-_LT_DECL([], [need_lib_prefix], [0],
-    [Do we need the "lib" prefix for modules?])
-_LT_DECL([], [need_version], [0], [Do we need a version for libraries?])
-_LT_DECL([], [version_type], [0], [Library versioning type])
-_LT_DECL([], [runpath_var], [0],  [Shared library runtime path variable])
-_LT_DECL([], [shlibpath_var], [0],[Shared library path variable])
-_LT_DECL([], [shlibpath_overrides_runpath], [0],
-    [Is shlibpath searched before the hard-coded library search path?])
-_LT_DECL([], [libname_spec], [1], [Format of library name prefix])
-_LT_DECL([], [library_names_spec], [1],
-    [[List of archive names.  First name is the real one, the rest are links.
-    The last name is the one that the linker finds with -lNAME]])
-_LT_DECL([], [soname_spec], [1],
-    [[The coded name of the library, if different from the real name]])
-_LT_DECL([], [install_override_mode], [1],
-    [Permission mode override for installation of shared libraries])
-_LT_DECL([], [postinstall_cmds], [2],
-    [Command to use after installation of a shared archive])
-_LT_DECL([], [postuninstall_cmds], [2],
-    [Command to use after uninstallation of a shared archive])
-_LT_DECL([], [finish_cmds], [2],
-    [Commands used to finish a libtool library installation in a directory])
-_LT_DECL([], [finish_eval], [1],
-    [[As "finish_cmds", except a single script fragment to be evaled but
-    not shown]])
-_LT_DECL([], [hardcode_into_libs], [0],
-    [Whether we should hardcode library paths into libraries])
-_LT_DECL([], [sys_lib_search_path_spec], [2],
-    [Compile-time system search path for libraries])
-_LT_DECL([], [sys_lib_dlsearch_path_spec], [2],
-    [Run-time system search path for libraries])
-])# _LT_SYS_DYNAMIC_LINKER
-
-
-# _LT_PATH_TOOL_PREFIX(TOOL)
-# --------------------------
-# find a file program which can recognize shared library
-AC_DEFUN([_LT_PATH_TOOL_PREFIX],
-[m4_require([_LT_DECL_EGREP])dnl
-AC_MSG_CHECKING([for $1])
-AC_CACHE_VAL(lt_cv_path_MAGIC_CMD,
-[case $MAGIC_CMD in
-[[\\/*] |  ?:[\\/]*])
-  lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path.
-  ;;
-*)
-  lt_save_MAGIC_CMD="$MAGIC_CMD"
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-dnl $ac_dummy forces splitting on constant user-supplied paths.
-dnl POSIX.2 word splitting is done only on the output of word expansions,
-dnl not every word.  This closes a longstanding sh security hole.
-  ac_dummy="m4_if([$2], , $PATH, [$2])"
-  for ac_dir in $ac_dummy; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f $ac_dir/$1; then
-      lt_cv_path_MAGIC_CMD="$ac_dir/$1"
-      if test -n "$file_magic_test_file"; then
-	case $deplibs_check_method in
-	"file_magic "*)
-	  file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"`
-	  MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-	  if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null |
-	    $EGREP "$file_magic_regex" > /dev/null; then
-	    :
-	  else
-	    cat <<_LT_EOF 1>&2
-
-*** Warning: the command libtool uses to detect shared libraries,
-*** $file_magic_cmd, produces output that libtool cannot recognize.
-*** The result is that libtool may fail to recognize shared libraries
-*** as such.  This will affect the creation of libtool libraries that
-*** depend on shared libraries, but programs linked with such libtool
-*** libraries will work regardless of this problem.  Nevertheless, you
-*** may want to report the problem to your system manager and/or to
-*** bug-libtool at gnu.org
-
-_LT_EOF
-	  fi ;;
-	esac
-      fi
-      break
-    fi
-  done
-  IFS="$lt_save_ifs"
-  MAGIC_CMD="$lt_save_MAGIC_CMD"
-  ;;
-esac])
-MAGIC_CMD="$lt_cv_path_MAGIC_CMD"
-if test -n "$MAGIC_CMD"; then
-  AC_MSG_RESULT($MAGIC_CMD)
-else
-  AC_MSG_RESULT(no)
-fi
-_LT_DECL([], [MAGIC_CMD], [0],
-	 [Used to examine libraries when file_magic_cmd begins with "file"])dnl
-])# _LT_PATH_TOOL_PREFIX
-
-# Old name:
-AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], [])
-
-
-# _LT_PATH_MAGIC
-# --------------
-# find a file program which can recognize a shared library
-m4_defun([_LT_PATH_MAGIC],
-[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH)
-if test -z "$lt_cv_path_MAGIC_CMD"; then
-  if test -n "$ac_tool_prefix"; then
-    _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH)
-  else
-    MAGIC_CMD=:
-  fi
-fi
-])# _LT_PATH_MAGIC
-
-
-# LT_PATH_LD
-# ----------
-# find the pathname to the GNU or non-GNU linker
-AC_DEFUN([LT_PATH_LD],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PROG_ECHO_BACKSLASH])dnl
-
-AC_ARG_WITH([gnu-ld],
-    [AS_HELP_STRING([--with-gnu-ld],
-	[assume the C compiler uses GNU ld @<:@default=no@:>@])],
-    [test "$withval" = no || with_gnu_ld=yes],
-    [with_gnu_ld=no])dnl
-
-ac_prog=ld
-if test "$GCC" = yes; then
-  # Check if gcc -print-prog-name=ld gives a path.
-  AC_MSG_CHECKING([for ld used by $CC])
-  case $host in
-  *-*-mingw*)
-    # gcc leaves a trailing carriage return which upsets mingw
-    ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;;
-  *)
-    ac_prog=`($CC -print-prog-name=ld) 2>&5` ;;
-  esac
-  case $ac_prog in
-    # Accept absolute paths.
-    [[\\/]]* | ?:[[\\/]]*)
-      re_direlt='/[[^/]][[^/]]*/\.\./'
-      # Canonicalize the pathname of ld
-      ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'`
-      while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do
-	ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"`
-      done
-      test -z "$LD" && LD="$ac_prog"
-      ;;
-  "")
-    # If it fails, then pretend we aren't using GCC.
-    ac_prog=ld
-    ;;
-  *)
-    # If it is relative, then search for the first ld in PATH.
-    with_gnu_ld=unknown
-    ;;
-  esac
-elif test "$with_gnu_ld" = yes; then
-  AC_MSG_CHECKING([for GNU ld])
-else
-  AC_MSG_CHECKING([for non-GNU ld])
-fi
-AC_CACHE_VAL(lt_cv_path_LD,
-[if test -z "$LD"; then
-  lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-  for ac_dir in $PATH; do
-    IFS="$lt_save_ifs"
-    test -z "$ac_dir" && ac_dir=.
-    if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then
-      lt_cv_path_LD="$ac_dir/$ac_prog"
-      # Check to see if the program is GNU ld.  I'd rather use --version,
-      # but apparently some variants of GNU ld only accept -v.
-      # Break only if it was the GNU/non-GNU ld that we prefer.
-      case `"$lt_cv_path_LD" -v 2>&1 </dev/null` in
-      *GNU* | *'with BFD'*)
-	test "$with_gnu_ld" != no && break
-	;;
-      *)
-	test "$with_gnu_ld" != yes && break
-	;;
-      esac
-    fi
-  done
-  IFS="$lt_save_ifs"
-else
-  lt_cv_path_LD="$LD" # Let the user override the test with a path.
-fi])
-LD="$lt_cv_path_LD"
-if test -n "$LD"; then
-  AC_MSG_RESULT($LD)
-else
-  AC_MSG_RESULT(no)
-fi
-test -z "$LD" && AC_MSG_ERROR([no acceptable ld found in \$PATH])
-_LT_PATH_LD_GNU
-AC_SUBST([LD])
-
-_LT_TAGDECL([], [LD], [1], [The linker used to build libraries])
-])# LT_PATH_LD
-
-# Old names:
-AU_ALIAS([AM_PROG_LD], [LT_PATH_LD])
-AU_ALIAS([AC_PROG_LD], [LT_PATH_LD])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_LD], [])
-dnl AC_DEFUN([AC_PROG_LD], [])
-
-
-# _LT_PATH_LD_GNU
-#- --------------
-m4_defun([_LT_PATH_LD_GNU],
-[AC_CACHE_CHECK([if the linker ($LD) is GNU ld], lt_cv_prog_gnu_ld,
-[# I'd rather use --version here, but apparently some GNU lds only accept -v.
-case `$LD -v 2>&1 </dev/null` in
-*GNU* | *'with BFD'*)
-  lt_cv_prog_gnu_ld=yes
-  ;;
-*)
-  lt_cv_prog_gnu_ld=no
-  ;;
-esac])
-with_gnu_ld=$lt_cv_prog_gnu_ld
-])# _LT_PATH_LD_GNU
-
-
-# _LT_CMD_RELOAD
-# --------------
-# find reload flag for linker
-#   -- PORTME Some linkers may need a different reload flag.
-m4_defun([_LT_CMD_RELOAD],
-[AC_CACHE_CHECK([for $LD option to reload object files],
-  lt_cv_ld_reload_flag,
-  [lt_cv_ld_reload_flag='-r'])
-reload_flag=$lt_cv_ld_reload_flag
-case $reload_flag in
-"" | " "*) ;;
-*) reload_flag=" $reload_flag" ;;
-esac
-reload_cmds='$LD$reload_flag -o $output$reload_objs'
-case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    if test "$GCC" != yes; then
-      reload_cmds=false
-    fi
-    ;;
-  darwin*)
-    if test "$GCC" = yes; then
-      reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs'
-    else
-      reload_cmds='$LD$reload_flag -o $output$reload_objs'
-    fi
-    ;;
-esac
-_LT_TAGDECL([], [reload_flag], [1], [How to create reloadable object files])dnl
-_LT_TAGDECL([], [reload_cmds], [2])dnl
-])# _LT_CMD_RELOAD
-
-
-# _LT_CHECK_MAGIC_METHOD
-# ----------------------
-# how to check for library dependencies
-#  -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_MAGIC_METHOD],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-AC_CACHE_CHECK([how to recognize dependent libraries],
-lt_cv_deplibs_check_method,
-[lt_cv_file_magic_cmd='$MAGIC_CMD'
-lt_cv_file_magic_test_file=
-lt_cv_deplibs_check_method='unknown'
-# Need to set the preceding variable on all platforms that support
-# interlibrary dependencies.
-# 'none' -- dependencies not supported.
-# `unknown' -- same as none, but documents that we really don't know.
-# 'pass_all' -- all dependencies passed with no checks.
-# 'test_compile' -- check by making test program.
-# 'file_magic [[regex]]' -- check by looking for files in library path
-# which responds to the $file_magic_cmd with a given extended regex.
-# If you have `file' or equivalent on your system and you're not sure
-# whether `pass_all' will *always* work, you probably want this one.
-
-case $host_os in
-aix[[4-9]]*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-beos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-bsdi[[45]]*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)'
-  lt_cv_file_magic_cmd='/usr/bin/file -L'
-  lt_cv_file_magic_test_file=/shlib/libc.so
-  ;;
-
-cygwin*)
-  # func_win32_libid is a shell function defined in ltmain.sh
-  lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-  lt_cv_file_magic_cmd='func_win32_libid'
-  ;;
-
-mingw* | pw32*)
-  # Base MSYS/MinGW do not provide the 'file' command needed by
-  # func_win32_libid shell function, so use a weaker test based on 'objdump',
-  # unless we find 'file', for example because we are cross-compiling.
-  # func_win32_libid assumes BSD nm, so disallow it if using MS dumpbin.
-  if ( test "$lt_cv_nm_interface" = "BSD nm" && file / ) >/dev/null 2>&1; then
-    lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL'
-    lt_cv_file_magic_cmd='func_win32_libid'
-  else
-    # Keep this pattern in sync with the one in func_win32_libid.
-    lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)'
-    lt_cv_file_magic_cmd='$OBJDUMP -f'
-  fi
-  ;;
-
-cegcc*)
-  # use the weaker test based on 'objdump'. See mingw*.
-  lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?'
-  lt_cv_file_magic_cmd='$OBJDUMP -f'
-  ;;
-
-darwin* | rhapsody*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-freebsd* | dragonfly*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    case $host_cpu in
-    i*86 )
-      # Not sure whether the presence of OpenBSD here was a mistake.
-      # Let's accept both of them until this is cleared up.
-      lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library'
-      lt_cv_file_magic_cmd=/usr/bin/file
-      lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*`
-      ;;
-    esac
-  else
-    lt_cv_deplibs_check_method=pass_all
-  fi
-  ;;
-
-gnu*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-haiku*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-hpux10.20* | hpux11*)
-  lt_cv_file_magic_cmd=/usr/bin/file
-  case $host_cpu in
-  ia64*)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64'
-    lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so
-    ;;
-  hppa*64*)
-    [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]']
-    lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl
-    ;;
-  *)
-    lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library'
-    lt_cv_file_magic_test_file=/usr/lib/libc.sl
-    ;;
-  esac
-  ;;
-
-interix[[3-9]]*)
-  # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here
-  lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$'
-  ;;
-
-irix5* | irix6* | nonstopux*)
-  case $LD in
-  *-32|*"-32 ") libmagic=32-bit;;
-  *-n32|*"-n32 ") libmagic=N32;;
-  *-64|*"-64 ") libmagic=64-bit;;
-  *) libmagic=never-match;;
-  esac
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-netbsd*)
-  if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$'
-  fi
-  ;;
-
-newos6*)
-  lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)'
-  lt_cv_file_magic_cmd=/usr/bin/file
-  lt_cv_file_magic_test_file=/usr/lib/libnls.so
-  ;;
-
-*nto* | *qnx*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-openbsd*)
-  if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$'
-  else
-    lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$'
-  fi
-  ;;
-
-osf3* | osf4* | osf5*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-rdos*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-solaris*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-
-sysv4 | sysv4.3*)
-  case $host_vendor in
-  motorola)
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]'
-    lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*`
-    ;;
-  ncr)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  sequent)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )'
-    ;;
-  sni)
-    lt_cv_file_magic_cmd='/bin/file'
-    lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib"
-    lt_cv_file_magic_test_file=/lib/libc.so
-    ;;
-  siemens)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  pc)
-    lt_cv_deplibs_check_method=pass_all
-    ;;
-  esac
-  ;;
-
-tpf*)
-  lt_cv_deplibs_check_method=pass_all
-  ;;
-esac
-])
-
-file_magic_glob=
-want_nocaseglob=no
-if test "$build" = "$host"; then
-  case $host_os in
-  mingw* | pw32*)
-    if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then
-      want_nocaseglob=yes
-    else
-      file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"`
-    fi
-    ;;
-  esac
-fi
-
-file_magic_cmd=$lt_cv_file_magic_cmd
-deplibs_check_method=$lt_cv_deplibs_check_method
-test -z "$deplibs_check_method" && deplibs_check_method=unknown
-
-_LT_DECL([], [deplibs_check_method], [1],
-    [Method to check whether dependent libraries are shared objects])
-_LT_DECL([], [file_magic_cmd], [1],
-    [Command to use when deplibs_check_method = "file_magic"])
-_LT_DECL([], [file_magic_glob], [1],
-    [How to find potential files when deplibs_check_method = "file_magic"])
-_LT_DECL([], [want_nocaseglob], [1],
-    [Find potential files using nocaseglob when deplibs_check_method = "file_magic"])
-])# _LT_CHECK_MAGIC_METHOD
-
-
-# LT_PATH_NM
-# ----------
-# find the pathname to a BSD- or MS-compatible name lister
-AC_DEFUN([LT_PATH_NM],
-[AC_REQUIRE([AC_PROG_CC])dnl
-AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM,
-[if test -n "$NM"; then
-  # Let the user override the test.
-  lt_cv_path_NM="$NM"
-else
-  lt_nm_to_check="${ac_tool_prefix}nm"
-  if test -n "$ac_tool_prefix" && test "$build" = "$host"; then
-    lt_nm_to_check="$lt_nm_to_check nm"
-  fi
-  for lt_tmp_nm in $lt_nm_to_check; do
-    lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR
-    for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do
-      IFS="$lt_save_ifs"
-      test -z "$ac_dir" && ac_dir=.
-      tmp_nm="$ac_dir/$lt_tmp_nm"
-      if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then
-	# Check to see if the nm accepts a BSD-compat flag.
-	# Adding the `sed 1q' prevents false positives on HP-UX, which says:
-	#   nm: unknown option "B" ignored
-	# Tru64's nm complains that /dev/null is an invalid object file
-	case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in
-	*/dev/null* | *'Invalid file or object type'*)
-	  lt_cv_path_NM="$tmp_nm -B"
-	  break
-	  ;;
-	*)
-	  case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in
-	  */dev/null*)
-	    lt_cv_path_NM="$tmp_nm -p"
-	    break
-	    ;;
-	  *)
-	    lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but
-	    continue # so that we can try to find one that supports BSD flags
-	    ;;
-	  esac
-	  ;;
-	esac
-      fi
-    done
-    IFS="$lt_save_ifs"
-  done
-  : ${lt_cv_path_NM=no}
-fi])
-if test "$lt_cv_path_NM" != "no"; then
-  NM="$lt_cv_path_NM"
-else
-  # Didn't find any BSD compatible name lister, look for dumpbin.
-  if test -n "$DUMPBIN"; then :
-    # Let the user override the test.
-  else
-    AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :)
-    case `$DUMPBIN -symbols /dev/null 2>&1 | sed '1q'` in
-    *COFF*)
-      DUMPBIN="$DUMPBIN -symbols"
-      ;;
-    *)
-      DUMPBIN=:
-      ;;
-    esac
-  fi
-  AC_SUBST([DUMPBIN])
-  if test "$DUMPBIN" != ":"; then
-    NM="$DUMPBIN"
-  fi
-fi
-test -z "$NM" && NM=nm
-AC_SUBST([NM])
-_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl
-
-AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface],
-  [lt_cv_nm_interface="BSD nm"
-  echo "int some_variable = 0;" > conftest.$ac_ext
-  (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$ac_compile" 2>conftest.err)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD)
-  (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD)
-  cat conftest.out >&AS_MESSAGE_LOG_FD
-  if $GREP 'External.*some_variable' conftest.out > /dev/null; then
-    lt_cv_nm_interface="MS dumpbin"
-  fi
-  rm -f conftest*])
-])# LT_PATH_NM
-
-# Old names:
-AU_ALIAS([AM_PROG_NM], [LT_PATH_NM])
-AU_ALIAS([AC_PROG_NM], [LT_PATH_NM])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_PROG_NM], [])
-dnl AC_DEFUN([AC_PROG_NM], [])
-
-# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-# --------------------------------
-# how to determine the name of the shared library
-# associated with a specific link library.
-#  -- PORTME fill in with the dynamic library characteristics
-m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB],
-[m4_require([_LT_DECL_EGREP])
-m4_require([_LT_DECL_OBJDUMP])
-m4_require([_LT_DECL_DLLTOOL])
-AC_CACHE_CHECK([how to associate runtime and link libraries],
-lt_cv_sharedlib_from_linklib_cmd,
-[lt_cv_sharedlib_from_linklib_cmd='unknown'
-
-case $host_os in
-cygwin* | mingw* | pw32* | cegcc*)
-  # two different shell functions defined in ltmain.sh
-  # decide which to use based on capabilities of $DLLTOOL
-  case `$DLLTOOL --help 2>&1` in
-  *--identify-strict*)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib
-    ;;
-  *)
-    lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback
-    ;;
-  esac
-  ;;
-*)
-  # fallback: assume linklib IS sharedlib
-  lt_cv_sharedlib_from_linklib_cmd="$ECHO"
-  ;;
-esac
-])
-sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd
-test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO
-
-_LT_DECL([], [sharedlib_from_linklib_cmd], [1],
-    [Command to associate shared and link libraries])
-])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB
-
-
-# _LT_PATH_MANIFEST_TOOL
-# ----------------------
-# locate the manifest tool
-m4_defun([_LT_PATH_MANIFEST_TOOL],
-[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :)
-test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt
-AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool],
-  [lt_cv_path_mainfest_tool=no
-  echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD
-  $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out
-  cat conftest.err >&AS_MESSAGE_LOG_FD
-  if $GREP 'Manifest Tool' conftest.out > /dev/null; then
-    lt_cv_path_mainfest_tool=yes
-  fi
-  rm -f conftest*])
-if test "x$lt_cv_path_mainfest_tool" != xyes; then
-  MANIFEST_TOOL=:
-fi
-_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl
-])# _LT_PATH_MANIFEST_TOOL
-
-
-# LT_LIB_M
-# --------
-# check for math library
-AC_DEFUN([LT_LIB_M],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-LIBM=
-case $host in
-*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*)
-  # These system don't have libm, or don't need it
-  ;;
-*-ncr-sysv4.3*)
-  AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM="-lmw")
-  AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm")
-  ;;
-*)
-  AC_CHECK_LIB(m, cos, LIBM="-lm")
-  ;;
-esac
-AC_SUBST([LIBM])
-])# LT_LIB_M
-
-# Old name:
-AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_CHECK_LIBM], [])
-
-
-# _LT_COMPILER_NO_RTTI([TAGNAME])
-# -------------------------------
-m4_defun([_LT_COMPILER_NO_RTTI],
-[m4_require([_LT_TAG_COMPILER])dnl
-
-_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-
-if test "$GCC" = yes; then
-  case $cc_basename in
-  nvcc*)
-    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;;
-  *)
-    _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;;
-  esac
-
-  _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions],
-    lt_cv_prog_compiler_rtti_exceptions,
-    [-fno-rtti -fno-exceptions], [],
-    [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"])
-fi
-_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1],
-	[Compiler flag to turn off builtin functions])
-])# _LT_COMPILER_NO_RTTI
-
-
-# _LT_CMD_GLOBAL_SYMBOLS
-# ----------------------
-m4_defun([_LT_CMD_GLOBAL_SYMBOLS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_PROG_CC])dnl
-AC_REQUIRE([AC_PROG_AWK])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-AC_REQUIRE([LT_PATH_LD])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-
-# Check for command to grab the raw symbol name followed by C symbol from nm.
-AC_MSG_CHECKING([command to parse $NM output from $compiler object])
-AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe],
-[
-# These are sane defaults that work on at least a few old systems.
-# [They come from Ultrix.  What could be older than Ultrix?!! ;)]
-
-# Character class describing NM global symbol codes.
-symcode='[[BCDEGRST]]'
-
-# Regexp to match symbols that can be accessed directly from C.
-sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)'
-
-# Define system-specific variables.
-case $host_os in
-aix*)
-  symcode='[[BCDT]]'
-  ;;
-cygwin* | mingw* | pw32* | cegcc*)
-  symcode='[[ABCDGISTW]]'
-  ;;
-hpux*)
-  if test "$host_cpu" = ia64; then
-    symcode='[[ABCDEGRST]]'
-  fi
-  ;;
-irix* | nonstopux*)
-  symcode='[[BCDEGRST]]'
-  ;;
-osf*)
-  symcode='[[BCDEGQRST]]'
-  ;;
-solaris*)
-  symcode='[[BDRT]]'
-  ;;
-sco3.2v5*)
-  symcode='[[DT]]'
-  ;;
-sysv4.2uw2*)
-  symcode='[[DT]]'
-  ;;
-sysv5* | sco5v6* | unixware* | OpenUNIX*)
-  symcode='[[ABDT]]'
-  ;;
-sysv4)
-  symcode='[[DFNSTU]]'
-  ;;
-esac
-
-# If we're using GNU nm, then use its standard symbol codes.
-case `$NM -V 2>&1` in
-*GNU* | *'with BFD'*)
-  symcode='[[ABCDGIRSTW]]' ;;
-esac
-
-# Transform an extracted symbol line into a proper C declaration.
-# Some systems (esp. on ia64) link data and code symbols differently,
-# so use this general approach.
-lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'"
-
-# Transform an extracted symbol line into symbol name and symbol address
-lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p'"
-lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([[^ ]]*\)[[ ]]*$/  {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([[^ ]]*\) \(lib[[^ ]]*\)$/  {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([[^ ]]*\) \([[^ ]]*\)$/  {\"lib\2\", (void *) \&\2},/p'"
-
-# Handle CRLF in mingw tool chain
-opt_cr=
-case $build_os in
-mingw*)
-  opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp
-  ;;
-esac
-
-# Try without a prefix underscore, then with it.
-for ac_symprfx in "" "_"; do
-
-  # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol.
-  symxfrm="\\1 $ac_symprfx\\2 \\2"
-
-  # Write the raw and C identifiers.
-  if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-    # Fake it for dumpbin and say T for any non-static function
-    # and D for any global variable.
-    # Also find C++ and __fastcall symbols from MSVC++,
-    # which start with @ or ?.
-    lt_cv_sys_global_symbol_pipe="$AWK ['"\
-"     {last_section=section; section=\$ 3};"\
-"     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
-"     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
-"     \$ 0!~/External *\|/{next};"\
-"     / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\
-"     {if(hide[section]) next};"\
-"     {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\
-"     {split(\$ 0, a, /\||\r/); split(a[2], s)};"\
-"     s[1]~/^[@?]/{print s[1], s[1]; next};"\
-"     s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\
-"     ' prfx=^$ac_symprfx]"
-  else
-    lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[	 ]]\($symcode$symcode*\)[[	 ]][[	 ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'"
-  fi
-  lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'"
-
-  # Check to see that the pipe works correctly.
-  pipe_works=no
-
-  rm -f conftest*
-  cat > conftest.$ac_ext <<_LT_EOF
-#ifdef __cplusplus
-extern "C" {
-#endif
-char nm_test_var;
-void nm_test_func(void);
-void nm_test_func(void){}
-#ifdef __cplusplus
-}
-#endif
-int main(){nm_test_var='a';nm_test_func();return(0);}
-_LT_EOF
-
-  if AC_TRY_EVAL(ac_compile); then
-    # Now try to grab the symbols.
-    nlist=conftest.nm
-    if AC_TRY_EVAL(NM conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist) && test -s "$nlist"; then
-      # Try sorting and uniquifying the output.
-      if sort "$nlist" | uniq > "$nlist"T; then
-	mv -f "$nlist"T "$nlist"
-      else
-	rm -f "$nlist"T
-      fi
-
-      # Make sure that we snagged all the symbols we need.
-      if $GREP ' nm_test_var$' "$nlist" >/dev/null; then
-	if $GREP ' nm_test_func$' "$nlist" >/dev/null; then
-	  cat <<_LT_EOF > conftest.$ac_ext
-/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests.  */
-#if defined(_WIN32) || defined(__CYGWIN__) || defined(_WIN32_WCE)
-/* DATA imports from DLLs on WIN32 con't be const, because runtime
-   relocations are performed -- see ld's documentation on pseudo-relocs.  */
-# define LT@&t at _DLSYM_CONST
-#elif defined(__osf__)
-/* This system does not cope well with relocations in const data.  */
-# define LT@&t at _DLSYM_CONST
-#else
-# define LT@&t at _DLSYM_CONST const
-#endif
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-_LT_EOF
-	  # Now generate the symbol file.
-	  eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext'
-
-	  cat <<_LT_EOF >> conftest.$ac_ext
-
-/* The mapping between symbol names and symbols.  */
-LT@&t at _DLSYM_CONST struct {
-  const char *name;
-  void       *address;
-}
-lt__PROGRAM__LTX_preloaded_symbols[[]] =
-{
-  { "@PROGRAM@", (void *) 0 },
-_LT_EOF
-	  $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/  {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext
-	  cat <<\_LT_EOF >> conftest.$ac_ext
-  {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
-  return lt__PROGRAM__LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif
-_LT_EOF
-	  # Now try linking the two files.
-	  mv conftest.$ac_objext conftstm.$ac_objext
-	  lt_globsym_save_LIBS=$LIBS
-	  lt_globsym_save_CFLAGS=$CFLAGS
-	  LIBS="conftstm.$ac_objext"
-	  CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)"
-	  if AC_TRY_EVAL(ac_link) && test -s conftest${ac_exeext}; then
-	    pipe_works=yes
-	  fi
-	  LIBS=$lt_globsym_save_LIBS
-	  CFLAGS=$lt_globsym_save_CFLAGS
-	else
-	  echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD
-	fi
-      else
-	echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD
-      fi
-    else
-      echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD
-    fi
-  else
-    echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD
-    cat conftest.$ac_ext >&5
-  fi
-  rm -rf conftest* conftst*
-
-  # Do not use the global_symbol_pipe unless it works.
-  if test "$pipe_works" = yes; then
-    break
-  else
-    lt_cv_sys_global_symbol_pipe=
-  fi
-done
-])
-if test -z "$lt_cv_sys_global_symbol_pipe"; then
-  lt_cv_sys_global_symbol_to_cdecl=
-fi
-if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then
-  AC_MSG_RESULT(failed)
-else
-  AC_MSG_RESULT(ok)
-fi
-
-# Response file support.
-if test "$lt_cv_nm_interface" = "MS dumpbin"; then
-  nm_file_list_spec='@'
-elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then
-  nm_file_list_spec='@'
-fi
-
-_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1],
-    [Take the output of nm and produce a listing of raw symbols and C names])
-_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1],
-    [Transform the output of nm in a proper C declaration])
-_LT_DECL([global_symbol_to_c_name_address],
-    [lt_cv_sys_global_symbol_to_c_name_address], [1],
-    [Transform the output of nm in a C name address pair])
-_LT_DECL([global_symbol_to_c_name_address_lib_prefix],
-    [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1],
-    [Transform the output of nm in a C name address pair when lib prefix is needed])
-_LT_DECL([], [nm_file_list_spec], [1],
-    [Specify filename containing input files for $NM])
-]) # _LT_CMD_GLOBAL_SYMBOLS
-
-
-# _LT_COMPILER_PIC([TAGNAME])
-# ---------------------------
-m4_defun([_LT_COMPILER_PIC],
-[m4_require([_LT_TAG_COMPILER])dnl
-_LT_TAGVAR(lt_prog_compiler_wl, $1)=
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-_LT_TAGVAR(lt_prog_compiler_static, $1)=
-
-m4_if([$1], [CXX], [
-  # C++ specific cases for pic, static, wl, etc.
-  if test "$GXX" = yes; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-    aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-    mingw* | cygwin* | os2* | pw32* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-    *djgpp*)
-      # DJGPP does not support shared libraries at all
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-      ;;
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-      ;;
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-    *qnx* | *nto*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-  else
-    case $host_os in
-      aix[[4-9]]*)
-	# All AIX code is PIC.
-	if test "$host_cpu" = ia64; then
-	  # AIX 5 now supports IA64 processor
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	else
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-	fi
-	;;
-      chorus*)
-	case $cc_basename in
-	cxch68*)
-	  # Green Hills C++ Compiler
-	  # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a"
-	  ;;
-	esac
-	;;
-      mingw* | cygwin* | os2* | pw32* | cegcc*)
-	# This hack is so that the source file can tell whether it is being
-	# built for inclusion in a dll (and should export symbols for example).
-	m4_if([$1], [GCJ], [],
-	  [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-	;;
-      dgux*)
-	case $cc_basename in
-	  ec++*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  ghcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      freebsd* | dragonfly*)
-	# FreeBSD uses GNU C++
-	;;
-      hpux9* | hpux10* | hpux11*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    if test "$host_cpu" != ia64; then
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	    fi
-	    ;;
-	  aCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-	    case $host_cpu in
-	    hppa*64*|ia64*)
-	      # +Z the default
-	      ;;
-	    *)
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	      ;;
-	    esac
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      interix*)
-	# This is c89, which is MS Visual C++ (no shared libs)
-	# Anyone wants to do a port?
-	;;
-      irix5* | irix6* | nonstopux*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    # CC pic flag -KPIC is the default.
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-	case $cc_basename in
-	  KCC*)
-	    # KAI C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    ;;
-	  ecpc* )
-	    # old Intel C++ for x86_64 which still supported -KPIC.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  icpc* )
-	    # Intel C++, used to be incompatible with GCC.
-	    # ICC 10 doesn't accept -KPIC any more.
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	    ;;
-	  pgCC* | pgcpp*)
-	    # Portland Group C++ compiler
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  cxx*)
-	    # Compaq C++
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*)
-	    # IBM XL 8.0, 9.0 on PPC and BlueGene
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-      lynxos*)
-	;;
-      m88k*)
-	;;
-      mvs*)
-	case $cc_basename in
-	  cxx*)
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      netbsd*)
-	;;
-      *qnx* | *nto*)
-        # QNX uses GNU C++, but need to define -shared option too, otherwise
-        # it will coredump.
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-        ;;
-      osf3* | osf4* | osf5*)
-	case $cc_basename in
-	  KCC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,'
-	    ;;
-	  RCC*)
-	    # Rational C++ 2.4.1
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  cxx*)
-	    # Digital/Compaq C++
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    # Make sure the PIC flag is empty.  It appears that all Alpha
-	    # Linux and Compaq Tru64 Unix objects are PIC.
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      psos*)
-	;;
-      solaris*)
-	case $cc_basename in
-	  CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	    ;;
-	  gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sunos4*)
-	case $cc_basename in
-	  CC*)
-	    # Sun C++ 4.x
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	  lcc*)
-	    # Lucid
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-	case $cc_basename in
-	  CC*)
-	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	    ;;
-	esac
-	;;
-      tandem*)
-	case $cc_basename in
-	  NCC*)
-	    # NonStop-UX NCC 3.20
-	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	    ;;
-	  *)
-	    ;;
-	esac
-	;;
-      vxworks*)
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-	;;
-    esac
-  fi
-],
-[
-  if test "$GCC" = yes; then
-    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-
-    case $host_os in
-      aix*)
-      # All AIX code is PIC.
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-        ;;
-      m68k)
-            # FIXME: we need at least 68020 code to build shared libraries, but
-            # adding the `-m68020' flag to GCC prevents building anything better,
-            # like `-m68040'.
-            _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4'
-        ;;
-      esac
-      ;;
-
-    beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*)
-      # PIC is the default for these OSes.
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      # Although the cygwin gcc ignores -fPIC, still need this for old-style
-      # (--disable-auto-import) libraries
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    darwin* | rhapsody*)
-      # PIC is the default on this platform
-      # Common symbols not allowed in MH_DYLIB files
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common'
-      ;;
-
-    haiku*)
-      # PIC is the default for Haiku.
-      # The "-static" flag exists, but is broken.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)=
-      ;;
-
-    hpux*)
-      # PIC is the default for 64-bit PA HP-UX, but not for 32-bit
-      # PA HP-UX.  On IA64 HP-UX, PIC is the default but the pic flag
-      # sets the default TLS model and affects inlining.
-      case $host_cpu in
-      hppa*64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	;;
-      esac
-      ;;
-
-    interix[[3-9]]*)
-      # Interix 3.x gcc -fpic/-fPIC options generate broken code.
-      # Instead, we relocate shared libraries at runtime.
-      ;;
-
-    msdosdjgpp*)
-      # Just because we use GCC doesn't mean we suddenly get shared libraries
-      # on systems that don't support them.
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      enable_shared=no
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic
-      fi
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      ;;
-    esac
-
-    case $cc_basename in
-    nvcc*) # Cuda Compiler Driver 2.2
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker '
-      if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-        _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)"
-      fi
-      ;;
-    esac
-  else
-    # PORTME Check for flag to pass linker flags through the system compiler.
-    case $host_os in
-    aix*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      if test "$host_cpu" = ia64; then
-	# AIX 5 now supports IA64 processor
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      else
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
-      fi
-      ;;
-
-    mingw* | cygwin* | pw32* | os2* | cegcc*)
-      # This hack is so that the source file can tell whether it is being
-      # built for inclusion in a dll (and should export symbols for example).
-      m4_if([$1], [GCJ], [],
-	[_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT'])
-      ;;
-
-    hpux9* | hpux10* | hpux11*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but
-      # not for PA HP-UX.
-      case $host_cpu in
-      hppa*64*|ia64*)
-	# +Z the default
-	;;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z'
-	;;
-      esac
-      # Is there a better lt_prog_compiler_static that works with the bundled CC?
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='${wl}-a ${wl}archive'
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # PIC (with -KPIC) is the default.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    linux* | k*bsd*-gnu | kopensolaris*-gnu)
-      case $cc_basename in
-      # old Intel for x86_64 which still supported -KPIC.
-      ecc*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # icc used to be incompatible with GCC.
-      # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-        ;;
-      # Lahey Fortran 8.1.
-      lf95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='--static'
-	;;
-      nagfor*)
-	# NAG Fortran compiler
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	;;
-      pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*)
-        # Portland Group compilers (*not* the Pentium gcc compiler,
-	# which looks to be a dead project)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-        ;;
-      ccc*)
-        _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-        # All Alpha code is PIC.
-        _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-        ;;
-      xl* | bgxl* | bgf* | mpixl*)
-	# IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink'
-	;;
-      *)
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*)
-	  # Sun Fortran 8.3 passes all unrecognized flags to the linker
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)=''
-	  ;;
-	*Sun\ F* | *Sun*Fortran*)
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-	  ;;
-	*Sun\ C*)
-	  # Sun C 5.9
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  ;;
-        *Intel*\ [[CF]]*Compiler*)
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-	  ;;
-	*Portland\ Group*)
-	  _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-	  _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic'
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-	  ;;
-	esac
-	;;
-      esac
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *nto* | *qnx*)
-      # QNX uses GNU C++, but need to define -shared option too, otherwise
-      # it will coredump.
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared'
-      ;;
-
-    osf3* | osf4* | osf5*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      # All OSF/1 code is PIC.
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    rdos*)
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      case $cc_basename in
-      f77* | f90* | f95* | sunf77* | sunf90* | sunf95*)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';;
-      *)
-	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld '
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4 | sysv4.2uw2* | sysv4.3*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec ;then
-	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic'
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      fi
-      ;;
-
-    sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    unicos*)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
-      ;;
-
-    *)
-      _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no
-      ;;
-    esac
-  fi
-])
-case $host_os in
-  # For platforms which do not support PIC, -DPIC is meaningless:
-  *djgpp*)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)=
-    ;;
-  *)
-    _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])"
-    ;;
-esac
-
-AC_CACHE_CHECK([for $compiler option to produce PIC],
-  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)],
-  [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)])
-_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)
-
-#
-# Check to make sure the PIC flag actually works.
-#
-if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then
-  _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works],
-    [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)],
-    [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t at m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [],
-    [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in
-     "" | " "*) ;;
-     *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;;
-     esac],
-    [_LT_TAGVAR(lt_prog_compiler_pic, $1)=
-     _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no])
-fi
-_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1],
-	[Additional compiler flags for building library objects])
-
-_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1],
-	[How to pass a linker flag through the compiler])
-#
-# Check to make sure the static flag actually works.
-#
-wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\"
-_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works],
-  _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1),
-  $lt_tmp_static_flag,
-  [],
-  [_LT_TAGVAR(lt_prog_compiler_static, $1)=])
-_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1],
-	[Compiler flag to prevent dynamic linking])
-])# _LT_COMPILER_PIC
-
-
-# _LT_LINKER_SHLIBS([TAGNAME])
-# ----------------------------
-# See if the linker supports building shared libraries.
-m4_defun([_LT_LINKER_SHLIBS],
-[AC_REQUIRE([LT_PATH_LD])dnl
-AC_REQUIRE([LT_PATH_NM])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_DECL_SED])dnl
-m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl
-m4_require([_LT_TAG_COMPILER])dnl
-AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-m4_if([$1], [CXX], [
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  case $host_os in
-  aix[[4-9]]*)
-    # If we're using GNU nm, then we don't want the "-C" option.
-    # -C means demangle to AIX nm, but means don't demangle with GNU nm
-    # Also, AIX nm treats weak defined symbols like other global defined
-    # symbols, whereas GNU nm marks them as "W".
-    if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    else
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-    fi
-    ;;
-  pw32*)
-    _LT_TAGVAR(export_symbols_cmds, $1)="$ltdll_cmds"
-    ;;
-  cygwin* | mingw* | cegcc*)
-    case $cc_basename in
-    cl*)
-      _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-      ;;
-    *)
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-      ;;
-    esac
-    ;;
-  *)
-    _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-    ;;
-  esac
-], [
-  runpath_var=
-  _LT_TAGVAR(allow_undefined_flag, $1)=
-  _LT_TAGVAR(always_export_symbols, $1)=no
-  _LT_TAGVAR(archive_cmds, $1)=
-  _LT_TAGVAR(archive_expsym_cmds, $1)=
-  _LT_TAGVAR(compiler_needs_object, $1)=no
-  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-  _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-  _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols'
-  _LT_TAGVAR(hardcode_automatic, $1)=no
-  _LT_TAGVAR(hardcode_direct, $1)=no
-  _LT_TAGVAR(hardcode_direct_absolute, $1)=no
-  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-  _LT_TAGVAR(hardcode_minus_L, $1)=no
-  _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-  _LT_TAGVAR(inherit_rpath, $1)=no
-  _LT_TAGVAR(link_all_deplibs, $1)=unknown
-  _LT_TAGVAR(module_cmds, $1)=
-  _LT_TAGVAR(module_expsym_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_new_cmds, $1)=
-  _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)=
-  _LT_TAGVAR(thread_safe_flag_spec, $1)=
-  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-  # include_expsyms should be a list of space-separated symbols to be *always*
-  # included in the symbol list
-  _LT_TAGVAR(include_expsyms, $1)=
-  # exclude_expsyms can be an extended regexp of symbols to exclude
-  # it will be wrapped by ` (' and `)$', so one must not match beginning or
-  # end of line.  Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc',
-  # as well as any symbol that contains `d'.
-  _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*']
-  # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out
-  # platforms (ab)use it in PIC code, but their linkers get confused if
-  # the symbol is explicitly referenced.  Since portable code cannot
-  # rely on this symbol name, it's probably fine to never include it in
-  # preloaded symbol tables.
-  # Exclude shared library initialization/finalization symbols.
-dnl Note also adjust exclude_expsyms for C++ above.
-  extract_expsyms_cmds=
-
-  case $host_os in
-  cygwin* | mingw* | pw32* | cegcc*)
-    # FIXME: the MSVC++ port hasn't been tested in a loooong time
-    # When not using gcc, we currently assume that we are using
-    # Microsoft Visual C++.
-    if test "$GCC" != yes; then
-      with_gnu_ld=no
-    fi
-    ;;
-  interix*)
-    # we just hope/assume this is gcc and not c89 (= MSVC++)
-    with_gnu_ld=yes
-    ;;
-  openbsd*)
-    with_gnu_ld=no
-    ;;
-  esac
-
-  _LT_TAGVAR(ld_shlibs, $1)=yes
-
-  # On some targets, GNU ld is compatible enough with the native linker
-  # that we're better off using the native interface for both.
-  lt_use_gnu_ld_interface=no
-  if test "$with_gnu_ld" = yes; then
-    case $host_os in
-      aix*)
-	# The AIX port of GNU ld has always aspired to compatibility
-	# with the native linker.  However, as the warning in the GNU ld
-	# block says, versions before 2.19.5* couldn't really create working
-	# shared libraries, regardless of the interface used.
-	case `$LD -v 2>&1` in
-	  *\ \(GNU\ Binutils\)\ 2.19.5*) ;;
-	  *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;;
-	  *\ \(GNU\ Binutils\)\ [[3-9]]*) ;;
-	  *)
-	    lt_use_gnu_ld_interface=yes
-	    ;;
-	esac
-	;;
-      *)
-	lt_use_gnu_ld_interface=yes
-	;;
-    esac
-  fi
-
-  if test "$lt_use_gnu_ld_interface" = yes; then
-    # If archive_cmds runs LD, not CC, wlarc should be empty
-    wlarc='${wl}'
-
-    # Set some defaults for GNU ld with shared library support. These
-    # are reset later if shared libraries are not supported. Putting them
-    # here allows them to be overridden if necessary.
-    runpath_var=LD_RUN_PATH
-    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-    # ancient GNU ld didn't support --whole-archive et. al.
-    if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then
-      _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-    else
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-    supports_anon_versioning=no
-    case `$LD -v 2>&1` in
-      *GNU\ gold*) supports_anon_versioning=yes ;;
-      *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11
-      *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ...
-      *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ...
-      *\ 2.11.*) ;; # other 2.11 versions
-      *) supports_anon_versioning=yes ;;
-    esac
-
-    # See if GNU ld supports shared libraries.
-    case $host_os in
-    aix[[3-9]]*)
-      # On AIX/PPC, the GNU linker is very broken
-      if test "$host_cpu" != ia64; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: the GNU linker, at least up to release 2.19, is reported
-*** to be unable to reliably create shared libraries on AIX.
-*** Therefore, libtool is disabling shared libraries support.  If you
-*** really care for shared libraries, you may want to install binutils
-*** 2.20 or above, or modify your PATH so that a non-GNU linker is found.
-*** You will then need to restart the configuration process.
-
-_LT_EOF
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    beos*)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	# support --undefined.  This deserves some investigation.  FIXME
-	_LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-      # as there is no search path for DLLs.
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=no
-      _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-      _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols'
-      _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname']
-
-      if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	# If the export-symbols file already is a .def file (1st line
-	# is EXPORTS), use it as is; otherwise, prepend...
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	  cp $export_symbols $output_objdir/$soname.def;
-	else
-	  echo EXPORTS > $output_objdir/$soname.def;
-	  cat $export_symbols >> $output_objdir/$soname.def;
-	fi~
-	$CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    haiku*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    interix[[3-9]]*)
-      _LT_TAGVAR(hardcode_direct, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-      # Instead, shared libraries are loaded at an image base (0x10000000 by
-      # default) and relocated if they conflict, which is a slow very memory
-      # consuming and fragmenting process.  To avoid this, we pick a random,
-      # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-      # time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-      ;;
-
-    gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
-      tmp_diet=no
-      if test "$host_os" = linux-dietlibc; then
-	case $cc_basename in
-	  diet\ *) tmp_diet=yes;;	# linux-dietlibc with static linking (!diet-dyn)
-	esac
-      fi
-      if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \
-	 && test "$tmp_diet" = no
-      then
-	tmp_addflag=' $pic_flag'
-	tmp_sharedflag='-shared'
-	case $cc_basename,$host_cpu in
-        pgcc*)				# Portland Group C compiler
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag'
-	  ;;
-	pgf77* | pgf90* | pgf95* | pgfortran*)
-					# Portland Group f77 and f90 compilers
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  tmp_addflag=' $pic_flag -Mnomain' ;;
-	ecc*,ia64* | icc*,ia64*)	# Intel C compiler on ia64
-	  tmp_addflag=' -i_dynamic' ;;
-	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
-	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
-	  tmp_addflag=' -nofor_main' ;;
-	lf95*)				# Lahey Fortran 8.1
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
-	  tmp_sharedflag='--shared' ;;
-	xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below)
-	  tmp_sharedflag='-qmkshrobj'
-	  tmp_addflag= ;;
-	nvcc*)	# Cuda Compiler Driver 2.2
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-	  ;;
-	esac
-	case `$CC -V 2>&1 | sed 5q` in
-	*Sun\ C*)			# Sun C 5.9
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	  _LT_TAGVAR(compiler_needs_object, $1)=yes
-	  tmp_sharedflag='-G' ;;
-	*Sun\ F*)			# Sun Fortran 8.3
-	  tmp_sharedflag='-G' ;;
-	esac
-	_LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-
-        if test "x$supports_anon_versioning" = xyes; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	    cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	    echo "local: *; };" >> $output_objdir/$libname.ver~
-	    $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-        fi
-
-	case $cc_basename in
-	xlf* | bgf* | bgxlf* | mpixlf*)
-	  # IBM XL Fortran 10.1 on PPC cannot create shared libs itself
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib'
-	  if test "x$supports_anon_versioning" = xyes; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-	      cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-	      echo "local: *; };" >> $output_objdir/$libname.ver~
-	      $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib'
-	  fi
-	  ;;
-	esac
-      else
-        _LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
-	wlarc=
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      fi
-      ;;
-
-    solaris*)
-      if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: The releases 2.8.* of the GNU linker cannot reliably
-*** create shared libraries on Solaris systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.9.1 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-      elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*)
-      case `$LD -v 2>&1` in
-        *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*)
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	cat <<_LT_EOF 1>&2
-
-*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not
-*** reliably create shared libraries on SCO systems.  Therefore, libtool
-*** is disabling shared libraries support.  We urge you to upgrade GNU
-*** binutils to release 2.16.91.0.3 or newer.  Another option is to modify
-*** your PATH or compiler configuration so that the native linker is
-*** used, and then restart.
-
-_LT_EOF
-	;;
-	*)
-	  # For security reasons, it is highly recommended that you always
-	  # use absolute paths for naming shared libraries, and exclude the
-	  # DT_RUNPATH tag from executables and libraries.  But doing so
-	  # requires that you compile everything twice, which is a pain.
-	  if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-	  else
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	;;
-      esac
-      ;;
-
-    sunos4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      wlarc=
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-    esac
-
-    if test "$_LT_TAGVAR(ld_shlibs, $1)" = no; then
-      runpath_var=
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=
-      _LT_TAGVAR(whole_archive_flag_spec, $1)=
-    fi
-  else
-    # PORTME fill in a description of your system's linker (not GNU ld)
-    case $host_os in
-    aix3*)
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname'
-      # Note: this linker hardcodes the directories in LIBPATH if there
-      # are no directories specified by -L.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then
-	# Neither direct hardcoding nor static linking is supported with a
-	# broken collect2.
-	_LT_TAGVAR(hardcode_direct, $1)=unsupported
-      fi
-      ;;
-
-    aix[[4-9]]*)
-      if test "$host_cpu" = ia64; then
-	# On IA64, the linker does run time linking by default, so we don't
-	# have to do anything special.
-	aix_use_runtimelinking=no
-	exp_sym_flag='-Bexport'
-	no_entry_flag=""
-      else
-	# If we're using GNU nm, then we don't want the "-C" option.
-	# -C means demangle to AIX nm, but means don't demangle with GNU nm
-	# Also, AIX nm treats weak defined symbols like other global
-	# defined symbols, whereas GNU nm marks them as "W".
-	if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	else
-	  _LT_TAGVAR(export_symbols_cmds, $1)='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && ([substr](\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols'
-	fi
-	aix_use_runtimelinking=no
-
-	# Test if we are trying to use run time linking or normal
-	# AIX style linking. If -brtl is somewhere in LDFLAGS, we
-	# need to do runtime linking.
-	case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	  for ld_flag in $LDFLAGS; do
-	  if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then
-	    aix_use_runtimelinking=yes
-	    break
-	  fi
-	  done
-	  ;;
-	esac
-
-	exp_sym_flag='-bexport'
-	no_entry_flag='-bnoentry'
-      fi
-
-      # When large executables or shared objects are built, AIX ld can
-      # have problems creating the table of contents.  If linking a library
-      # or program results in "error TOC overflow" add -mminimal-toc to
-      # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-      # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-      _LT_TAGVAR(archive_cmds, $1)=''
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
-      if test "$GCC" = yes; then
-	case $host_os in aix4.[[012]]|aix4.[[012]].*)
-	# We only want to do this on AIX 4.2 and lower, the check
-	# below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	   strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	  # We have reworked collect2
-	  :
-	  else
-	  # We have old collect2
-	  _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	  # It fails to find uninstalled libraries when the uninstalled
-	  # path is not listed in the libpath.  Setting hardcode_minus_L
-	  # to unsupported forces relinking
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-	  ;;
-	esac
-	shared_flag='-shared'
-	if test "$aix_use_runtimelinking" = yes; then
-	  shared_flag="$shared_flag "'${wl}-G'
-	fi
-      else
-	# not using gcc
-	if test "$host_cpu" = ia64; then
-	# VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	# chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-	else
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag='${wl}-G'
-	  else
-	    shared_flag='${wl}-bM:SRE'
-	  fi
-	fi
-      fi
-
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-      # It seems that -bexpall does not export symbols beginning with
-      # underscore (_), so it is better to generate a list of symbols to export.
-      _LT_TAGVAR(always_export_symbols, $1)=yes
-      if test "$aix_use_runtimelinking" = yes; then
-	# Warning - without using the other runtime loading flags (-brtl),
-	# -berok will link without error, but may produce a broken library.
-	_LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-        # Determine the default libpath from the value encoded in an
-        # empty executable.
-        _LT_SYS_MODULE_PATH_AIX([$1])
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-      else
-	if test "$host_cpu" = ia64; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	  _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-	else
-	 # Determine the default libpath from the value encoded in an
-	 # empty executable.
-	 _LT_SYS_MODULE_PATH_AIX([$1])
-	 _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	  # Warning - without using the other run time loading flags,
-	  # -berok will link without error, but may produce a broken library.
-	  _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	  if test "$with_gnu_ld" = yes; then
-	    # We only use this code for GNU lds that support --whole-archive.
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	  else
-	    # Exported symbols can be pulled into shared objects from archives
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	  fi
-	  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  # This is similar to how AIX traditionally builds its shared libraries.
-	  _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-	fi
-      fi
-      ;;
-
-    amigaos*)
-      case $host_cpu in
-      powerpc)
-            # see comment about AmigaOS4 .so support
-            _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-            _LT_TAGVAR(archive_expsym_cmds, $1)=''
-        ;;
-      m68k)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)'
-            _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes
-        ;;
-      esac
-      ;;
-
-    bsdi[[45]]*)
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic
-      ;;
-
-    cygwin* | mingw* | pw32* | cegcc*)
-      # When not using gcc, we currently assume that we are using
-      # Microsoft Visual C++.
-      # hardcode_libdir_flag_spec is actually meaningless, as there is
-      # no search path for DLLs.
-      case $cc_basename in
-      cl*)
-	# Native MSVC
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	_LT_TAGVAR(always_export_symbols, $1)=yes
-	_LT_TAGVAR(file_list_spec, $1)='@'
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	_LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	    sed -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	  else
-	    sed -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	  fi~
-	  $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	  linknames='
-	# The linker will not automatically build a static lib if we build a DLL.
-	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	_LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
-	_LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols'
-	# Don't use ranlib
-	_LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-	_LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-	  lt_tool_outputfile="@TOOL_OUTPUT@"~
-	  case $lt_outputfile in
-	    *.exe|*.EXE) ;;
-	    *)
-	      lt_outputfile="$lt_outputfile.exe"
-	      lt_tool_outputfile="$lt_tool_outputfile.exe"
-	      ;;
-	  esac~
-	  if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	    $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	    $RM "$lt_outputfile.manifest";
-	  fi'
-	;;
-      *)
-	# Assume MSVC wrapper
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	# Tell ltmain to make .lib files, not .a files.
-	libext=lib
-	# Tell ltmain to make .dll files, not .so files.
-	shrext_cmds=".dll"
-	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
-	# The linker will automatically build a .lib file if we build a DLL.
-	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	# FIXME: Should let the user specify the lib program.
-	_LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs'
-	_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	;;
-      esac
-      ;;
-
-    darwin* | rhapsody*)
-      _LT_DARWIN_LINKER_FEATURES($1)
-      ;;
-
-    dgux*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor
-    # support.  Future versions do this automatically, but an explicit c++rt0.o
-    # does not break anything, and helps significantly (at the cost of a little
-    # extra space).
-    freebsd2.2*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # Unfortunately, older versions of FreeBSD 2 do not have this feature.
-    freebsd2.*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    # FreeBSD 3 and greater uses gcc -shared to do shared libraries.
-    freebsd* | dragonfly*)
-      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    hpux9*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-
-      # hardcode_minus_L: Not really in the search PATH,
-      # but as the default location of the library.
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-      ;;
-
-    hpux10*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	# hardcode_minus_L: Not really in the search PATH,
-	# but as the default location of the library.
-	_LT_TAGVAR(hardcode_minus_L, $1)=yes
-      fi
-      ;;
-
-    hpux11*)
-      if test "$GCC" = yes && test "$with_gnu_ld" = no; then
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	esac
-      else
-	case $host_cpu in
-	hppa*64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	ia64*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	m4_if($1, [], [
-	  # Older versions of the 11.00 compiler do not understand -b yet
-	  # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does)
-	  _LT_LINKER_OPTION([if $CC understands -b],
-	    _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b],
-	    [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'],
-	    [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])],
-	  [_LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags'])
-	  ;;
-	esac
-      fi
-      if test "$with_gnu_ld" = no; then
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	case $host_cpu in
-	hppa*64*|ia64*)
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  ;;
-	*)
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-
-	  # hardcode_minus_L: Not really in the search PATH,
-	  # but as the default location of the library.
-	  _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	  ;;
-	esac
-      fi
-      ;;
-
-    irix5* | irix6* | nonstopux*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	# Try to use the -exported_symbol ld option, if it does not
-	# work, assume that -exports_file does not work either and
-	# implicitly export all symbols.
-	# This should be the same for all languages, so no per-tag cache variable.
-	AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol],
-	  [lt_cv_irix_exported_symbol],
-	  [save_LDFLAGS="$LDFLAGS"
-	   LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null"
-	   AC_LINK_IFELSE(
-	     [AC_LANG_SOURCE(
-	        [AC_LANG_CASE([C], [[int foo (void) { return 0; }]],
-			      [C++], [[int foo (void) { return 0; }]],
-			      [Fortran 77], [[
-      subroutine foo
-      end]],
-			      [Fortran], [[
-      subroutine foo
-      end]])])],
-	      [lt_cv_irix_exported_symbol=yes],
-	      [lt_cv_irix_exported_symbol=no])
-           LDFLAGS="$save_LDFLAGS"])
-	if test "$lt_cv_irix_exported_symbol" = yes; then
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib'
-	fi
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(inherit_rpath, $1)=yes
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    netbsd*)
-      if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags'      # ELF
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    newsos6)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *nto* | *qnx*)
-      ;;
-
-    openbsd*)
-      if test -f /usr/libexec/ld.so; then
-	_LT_TAGVAR(hardcode_direct, $1)=yes
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	else
-	  case $host_os in
-	   openbsd[[01]].* | openbsd2.[[0-7]] | openbsd2.[[0-7]].*)
-	     _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	     ;;
-	   *)
-	     _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags'
-	     _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	     ;;
-	  esac
-	fi
-      else
-	_LT_TAGVAR(ld_shlibs, $1)=no
-      fi
-      ;;
-
-    os2*)
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-      _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~echo DATA >> $output_objdir/$libname.def~echo " SINGLE NONSHARED" >> $output_objdir/$libname.def~echo EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def'
-      _LT_TAGVAR(old_archive_from_new_cmds, $1)='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def'
-      ;;
-
-    osf3*)
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    osf4* | osf5*)	# as osf3* with the addition of -msym flag
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $pic_flag $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-      else
-	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-	$CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp'
-
-	# Both c and cxx compiler support -rpath directly
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-      fi
-      _LT_TAGVAR(archive_cmds_need_lc, $1)='no'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-      ;;
-
-    solaris*)
-      _LT_TAGVAR(no_undefined_flag, $1)=' -z defs'
-      if test "$GCC" = yes; then
-	wlarc='${wl}'
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -shared $pic_flag ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-      else
-	case `$CC -V 2>&1` in
-	*"Compilers 5.0"*)
-	  wlarc=''
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
-	  ;;
-	*)
-	  wlarc='${wl}'
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	  $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
-	  ;;
-	esac
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      case $host_os in
-      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-      *)
-	# The compiler driver will combine and reorder linker options,
-	# but understands `-z linker_flag'.  GCC discards it without `$wl',
-	# but is careful enough not to reorder.
-	# Supported since Solaris 2.6 (maybe 2.5.1?)
-	if test "$GCC" = yes; then
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-	else
-	  _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	fi
-	;;
-      esac
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      ;;
-
-    sunos4*)
-      if test "x$host_vendor" = xsequent; then
-	# Use $CC to link under sequent, because it throws in some extra .o
-	# files that make .init and .fini sections work.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags'
-      fi
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_direct, $1)=yes
-      _LT_TAGVAR(hardcode_minus_L, $1)=yes
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4)
-      case $host_vendor in
-	sni)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true???
-	;;
-	siemens)
-	  ## LD is ld it makes a PLAMLIB
-	  ## CC just makes a GrossModule.
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs'
-	  _LT_TAGVAR(hardcode_direct, $1)=no
-        ;;
-	motorola)
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie
-	;;
-      esac
-      runpath_var='LD_RUN_PATH'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    sysv4.3*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport'
-      ;;
-
-    sysv4*MP*)
-      if test -d /usr/nec; then
-	_LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	runpath_var=LD_RUN_PATH
-	hardcode_runpath_var=yes
-	_LT_TAGVAR(ld_shlibs, $1)=yes
-      fi
-      ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    sysv5* | sco3.2v5* | sco5v6*)
-      # Note: We can NOT use -z defs as we might desire, because we do not
-      # link with -lc, and that would cause any symbols used from libc to
-      # always be unresolved, which means just about no library would
-      # ever link correctly.  If we're not using GNU ld we use -z text
-      # though, which does catch some bad symbols but isn't as heavy-handed
-      # as -z defs.
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-      _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-      _LT_TAGVAR(link_all_deplibs, $1)=yes
-      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-      runpath_var='LD_RUN_PATH'
-
-      if test "$GCC" = yes; then
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      else
-	_LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-      fi
-      ;;
-
-    uts4*)
-      _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags'
-      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      ;;
-
-    *)
-      _LT_TAGVAR(ld_shlibs, $1)=no
-      ;;
-    esac
-
-    if test x$host_vendor = xsni; then
-      case $host in
-      sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*)
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Blargedynsym'
-	;;
-      esac
-    fi
-  fi
-])
-AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld
-
-_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl
-_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl
-_LT_DECL([], [extract_expsyms_cmds], [2],
-    [The commands to extract the exported symbol list from a shared archive])
-
-#
-# Do we need to explicitly link libc?
-#
-case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in
-x|xyes)
-  # Assume -lc should be added
-  _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-
-  if test "$enable_shared" = yes && test "$GCC" = yes; then
-    case $_LT_TAGVAR(archive_cmds, $1) in
-    *'~'*)
-      # FIXME: we may have to deal with multi-command sequences.
-      ;;
-    '$CC '*)
-      # Test whether the compiler implicitly links with -lc since on some
-      # systems, -lgcc has to come before -lc. If gcc already passes -lc
-      # to ld, don't add -lc before -lgcc.
-      AC_CACHE_CHECK([whether -lc should be explicitly linked in],
-	[lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1),
-	[$RM conftest*
-	echo "$lt_simple_compile_test_code" > conftest.$ac_ext
-
-	if AC_TRY_EVAL(ac_compile) 2>conftest.err; then
-	  soname=conftest
-	  lib=conftest
-	  libobjs=conftest.$ac_objext
-	  deplibs=
-	  wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1)
-	  pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1)
-	  compiler_flags=-v
-	  linker_flags=-v
-	  verstring=
-	  output_objdir=.
-	  libname=conftest
-	  lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1)
-	  _LT_TAGVAR(allow_undefined_flag, $1)=
-	  if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1)
-	  then
-	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	  else
-	    lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	  fi
-	  _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag
-	else
-	  cat conftest.err 1>&5
-	fi
-	$RM conftest*
-	])
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)
-      ;;
-    esac
-  fi
-  ;;
-esac
-
-_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0],
-    [Whether or not to add -lc for building shared libraries])
-_LT_TAGDECL([allow_libtool_libs_with_static_runtimes],
-    [enable_shared_with_static_runtimes], [0],
-    [Whether or not to disallow shared libs when runtime libs are static])
-_LT_TAGDECL([], [export_dynamic_flag_spec], [1],
-    [Compiler flag to allow reflexive dlopens])
-_LT_TAGDECL([], [whole_archive_flag_spec], [1],
-    [Compiler flag to generate shared objects directly from archives])
-_LT_TAGDECL([], [compiler_needs_object], [1],
-    [Whether the compiler copes with passing no objects directly])
-_LT_TAGDECL([], [old_archive_from_new_cmds], [2],
-    [Create an old-style archive from a shared archive])
-_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2],
-    [Create a temporary old-style archive to link instead of a shared archive])
-_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive])
-_LT_TAGDECL([], [archive_expsym_cmds], [2])
-_LT_TAGDECL([], [module_cmds], [2],
-    [Commands used to build a loadable module if different from building
-    a shared archive.])
-_LT_TAGDECL([], [module_expsym_cmds], [2])
-_LT_TAGDECL([], [with_gnu_ld], [1],
-    [Whether we are building with GNU ld or not])
-_LT_TAGDECL([], [allow_undefined_flag], [1],
-    [Flag that allows shared libraries with undefined symbols to be built])
-_LT_TAGDECL([], [no_undefined_flag], [1],
-    [Flag that enforces no undefined symbols])
-_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1],
-    [Flag to hardcode $libdir into a binary during linking.
-    This must work even if $libdir does not exist])
-_LT_TAGDECL([], [hardcode_libdir_separator], [1],
-    [Whether we need a single "-rpath" flag with a separated argument])
-_LT_TAGDECL([], [hardcode_direct], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-    DIR into the resulting binary])
-_LT_TAGDECL([], [hardcode_direct_absolute], [0],
-    [Set to "yes" if using DIR/libNAME${shared_ext} during linking hardcodes
-    DIR into the resulting binary and the resulting library dependency is
-    "absolute", i.e impossible to change by setting ${shlibpath_var} if the
-    library is relocated])
-_LT_TAGDECL([], [hardcode_minus_L], [0],
-    [Set to "yes" if using the -LDIR flag during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_shlibpath_var], [0],
-    [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR
-    into the resulting binary])
-_LT_TAGDECL([], [hardcode_automatic], [0],
-    [Set to "yes" if building a shared library automatically hardcodes DIR
-    into the library and all subsequent libraries and executables linked
-    against it])
-_LT_TAGDECL([], [inherit_rpath], [0],
-    [Set to yes if linker adds runtime paths of dependent libraries
-    to runtime path list])
-_LT_TAGDECL([], [link_all_deplibs], [0],
-    [Whether libtool must link a program against all its dependency libraries])
-_LT_TAGDECL([], [always_export_symbols], [0],
-    [Set to "yes" if exported symbols are required])
-_LT_TAGDECL([], [export_symbols_cmds], [2],
-    [The commands to list exported symbols])
-_LT_TAGDECL([], [exclude_expsyms], [1],
-    [Symbols that should not be listed in the preloaded symbols])
-_LT_TAGDECL([], [include_expsyms], [1],
-    [Symbols that must always be exported])
-_LT_TAGDECL([], [prelink_cmds], [2],
-    [Commands necessary for linking programs (against libraries) with templates])
-_LT_TAGDECL([], [postlink_cmds], [2],
-    [Commands necessary for finishing linking programs])
-_LT_TAGDECL([], [file_list_spec], [1],
-    [Specify filename containing input files])
-dnl FIXME: Not yet implemented
-dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1],
-dnl    [Compiler flag to generate thread safe objects])
-])# _LT_LINKER_SHLIBS
-
-
-# _LT_LANG_C_CONFIG([TAG])
-# ------------------------
-# Ensure that the configuration variables for a C compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_C_CONFIG],
-[m4_require([_LT_DECL_EGREP])dnl
-lt_save_CC="$CC"
-AC_LANG_PUSH(C)
-
-# Source file extension for C test sources.
-ac_ext=c
-
-# Object file extension for compiled C test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="int some_variable = 0;"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='int main(){return(0);}'
-
-_LT_TAG_COMPILER
-# Save the default compiler, since it gets overwritten when the other
-# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP.
-compiler_DEFAULT=$CC
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_SYS_DYNAMIC_LINKER($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-  LT_SYS_DLOPEN_SELF
-  _LT_CMD_STRIPLIB
-
-  # Report which library types will actually be built
-  AC_MSG_CHECKING([if libtool supports shared libraries])
-  AC_MSG_RESULT([$can_build_shared])
-
-  AC_MSG_CHECKING([whether to build shared libraries])
-  test "$can_build_shared" = "no" && enable_shared=no
-
-  # On AIX, shared libraries and static libraries use the same namespace, and
-  # are all built from PIC.
-  case $host_os in
-  aix3*)
-    test "$enable_shared" = yes && enable_static=no
-    if test -n "$RANLIB"; then
-      archive_cmds="$archive_cmds~\$RANLIB \$lib"
-      postinstall_cmds='$RANLIB $lib'
-    fi
-    ;;
-
-  aix[[4-9]]*)
-    if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-      test "$enable_shared" = yes && enable_static=no
-    fi
-    ;;
-  esac
-  AC_MSG_RESULT([$enable_shared])
-
-  AC_MSG_CHECKING([whether to build static libraries])
-  # Make sure either enable_shared or enable_static is yes.
-  test "$enable_shared" = yes || enable_static=yes
-  AC_MSG_RESULT([$enable_static])
-
-  _LT_CONFIG($1)
-fi
-AC_LANG_POP
-CC="$lt_save_CC"
-])# _LT_LANG_C_CONFIG
-
-
-# _LT_LANG_CXX_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a C++ compiler are suitably
-# defined.  These variables are subsequently used by _LT_CONFIG to write
-# the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_CXX_CONFIG],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-m4_require([_LT_DECL_EGREP])dnl
-m4_require([_LT_PATH_MANIFEST_TOOL])dnl
-if test -n "$CXX" && ( test "X$CXX" != "Xno" &&
-    ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) ||
-    (test "X$CXX" != "Xg++"))) ; then
-  AC_PROG_CXXCPP
-else
-  _lt_caught_CXX_error=yes
-fi
-
-AC_LANG_PUSH(C++)
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(compiler_needs_object, $1)=no
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for C++ test sources.
-ac_ext=cpp
-
-# Object file extension for compiled C++ test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the CXX compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_caught_CXX_error" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="int some_variable = 0;"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }'
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC=$CC
-  lt_save_CFLAGS=$CFLAGS
-  lt_save_LD=$LD
-  lt_save_GCC=$GCC
-  GCC=$GXX
-  lt_save_with_gnu_ld=$with_gnu_ld
-  lt_save_path_LD=$lt_cv_path_LD
-  if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then
-    lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx
-  else
-    $as_unset lt_cv_prog_gnu_ld
-  fi
-  if test -n "${lt_cv_path_LDCXX+set}"; then
-    lt_cv_path_LD=$lt_cv_path_LDCXX
-  else
-    $as_unset lt_cv_path_LD
-  fi
-  test -z "${LDCXX+set}" || LD=$LDCXX
-  CC=${CXX-"c++"}
-  CFLAGS=$CXXFLAGS
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    # We don't want -fno-exception when compiling C++ code, so set the
-    # no_builtin_flag separately
-    if test "$GXX" = yes; then
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin'
-    else
-      _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=
-    fi
-
-    if test "$GXX" = yes; then
-      # Set up default GNU C++ configuration
-
-      LT_PATH_LD
-
-      # Check if GNU C++ uses GNU ld as the underlying linker, since the
-      # archiving commands below assume that GNU ld is being used.
-      if test "$with_gnu_ld" = yes; then
-        _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-        # If archive_cmds runs LD, not CC, wlarc should be empty
-        # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to
-        #     investigate it a little bit more. (MM)
-        wlarc='${wl}'
-
-        # ancient GNU ld didn't support --whole-archive et. al.
-        if eval "`$CC -print-prog-name=ld` --help 2>&1" |
-	  $GREP 'no-whole-archive' > /dev/null; then
-          _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-        else
-          _LT_TAGVAR(whole_archive_flag_spec, $1)=
-        fi
-      else
-        with_gnu_ld=no
-        wlarc=
-
-        # A generic and very simple default shared library creation
-        # command for GNU C++ for the case where it uses the native
-        # linker, instead of GNU ld.  If possible, this setting should
-        # overridden to take advantage of the native linker features on
-        # the platform it is being used on.
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-      fi
-
-      # Commands to make compiler produce verbose output that lists
-      # what "hidden" libraries, object files and flags are used when
-      # linking a shared library.
-      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-    else
-      GXX=no
-      with_gnu_ld=no
-      wlarc=
-    fi
-
-    # PORTME: fill in a description of your system's C++ link characteristics
-    AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries])
-    _LT_TAGVAR(ld_shlibs, $1)=yes
-    case $host_os in
-      aix3*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-      aix[[4-9]]*)
-        if test "$host_cpu" = ia64; then
-          # On IA64, the linker does run time linking by default, so we don't
-          # have to do anything special.
-          aix_use_runtimelinking=no
-          exp_sym_flag='-Bexport'
-          no_entry_flag=""
-        else
-          aix_use_runtimelinking=no
-
-          # Test if we are trying to use run time linking or normal
-          # AIX style linking. If -brtl is somewhere in LDFLAGS, we
-          # need to do runtime linking.
-          case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*)
-	    for ld_flag in $LDFLAGS; do
-	      case $ld_flag in
-	      *-brtl*)
-	        aix_use_runtimelinking=yes
-	        break
-	        ;;
-	      esac
-	    done
-	    ;;
-          esac
-
-          exp_sym_flag='-bexport'
-          no_entry_flag='-bnoentry'
-        fi
-
-        # When large executables or shared objects are built, AIX ld can
-        # have problems creating the table of contents.  If linking a library
-        # or program results in "error TOC overflow" add -mminimal-toc to
-        # CXXFLAGS/CFLAGS for g++/gcc.  In the cases where that is not
-        # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS.
-
-        _LT_TAGVAR(archive_cmds, $1)=''
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-        _LT_TAGVAR(link_all_deplibs, $1)=yes
-        _LT_TAGVAR(file_list_spec, $1)='${wl}-f,'
-
-        if test "$GXX" = yes; then
-          case $host_os in aix4.[[012]]|aix4.[[012]].*)
-          # We only want to do this on AIX 4.2 and lower, the check
-          # below for broken collect2 doesn't work under 4.3+
-	  collect2name=`${CC} -print-prog-name=collect2`
-	  if test -f "$collect2name" &&
-	     strings "$collect2name" | $GREP resolve_lib_name >/dev/null
-	  then
-	    # We have reworked collect2
-	    :
-	  else
-	    # We have old collect2
-	    _LT_TAGVAR(hardcode_direct, $1)=unsupported
-	    # It fails to find uninstalled libraries when the uninstalled
-	    # path is not listed in the libpath.  Setting hardcode_minus_L
-	    # to unsupported forces relinking
-	    _LT_TAGVAR(hardcode_minus_L, $1)=yes
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=
-	  fi
-          esac
-          shared_flag='-shared'
-	  if test "$aix_use_runtimelinking" = yes; then
-	    shared_flag="$shared_flag "'${wl}-G'
-	  fi
-        else
-          # not using gcc
-          if test "$host_cpu" = ia64; then
-	  # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release
-	  # chokes on -Wl,-G. The following line is correct:
-	  shared_flag='-G'
-          else
-	    if test "$aix_use_runtimelinking" = yes; then
-	      shared_flag='${wl}-G'
-	    else
-	      shared_flag='${wl}-bM:SRE'
-	    fi
-          fi
-        fi
-
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-bexpall'
-        # It seems that -bexpall does not export symbols beginning with
-        # underscore (_), so it is better to generate a list of symbols to
-	# export.
-        _LT_TAGVAR(always_export_symbols, $1)=yes
-        if test "$aix_use_runtimelinking" = yes; then
-          # Warning - without using the other runtime loading flags (-brtl),
-          # -berok will link without error, but may produce a broken library.
-          _LT_TAGVAR(allow_undefined_flag, $1)='-berok'
-          # Determine the default libpath from the value encoded in an empty
-          # executable.
-          _LT_SYS_MODULE_PATH_AIX([$1])
-          _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-
-          _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then func_echo_all "${wl}${allow_undefined_flag}"; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag"
-        else
-          if test "$host_cpu" = ia64; then
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $libdir:/usr/lib:/lib'
-	    _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs"
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols"
-          else
-	    # Determine the default libpath from the value encoded in an
-	    # empty executable.
-	    _LT_SYS_MODULE_PATH_AIX([$1])
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-blibpath:$libdir:'"$aix_libpath"
-	    # Warning - without using the other run time loading flags,
-	    # -berok will link without error, but may produce a broken library.
-	    _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-bernotok'
-	    _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-berok'
-	    if test "$with_gnu_ld" = yes; then
-	      # We only use this code for GNU lds that support --whole-archive.
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    else
-	      # Exported symbols can be pulled into shared objects from archives
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience'
-	    fi
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=yes
-	    # This is similar to how AIX traditionally builds its shared
-	    # libraries.
-	    _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname'
-          fi
-        fi
-        ;;
-
-      beos*)
-	if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  # Joseph Beckenbach <jrb3 at best.com> says some releases of gcc
-	  # support --undefined.  This deserves some investigation.  FIXME
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      chorus*)
-        case $cc_basename in
-          *)
-	  # FIXME: insert proper C++ library support
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	  ;;
-        esac
-        ;;
-
-      cygwin* | mingw* | pw32* | cegcc*)
-	case $GXX,$cc_basename in
-	,cl* | no,cl*)
-	  # Native MSVC
-	  # hardcode_libdir_flag_spec is actually meaningless, as there is
-	  # no search path for DLLs.
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  _LT_TAGVAR(always_export_symbols, $1)=yes
-	  _LT_TAGVAR(file_list_spec, $1)='@'
-	  # Tell ltmain to make .lib files, not .a files.
-	  libext=lib
-	  # Tell ltmain to make .dll files, not .so files.
-	  shrext_cmds=".dll"
-	  # FIXME: Setting linknames here is a bad hack.
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-dll~linknames='
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      $SED -n -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' -e '1\\\!p' < $export_symbols > $output_objdir/$soname.exp;
-	    else
-	      $SED -e 's/\\\\\\\(.*\\\\\\\)/-link\\\ -EXPORT:\\\\\\\1/' < $export_symbols > $output_objdir/$soname.exp;
-	    fi~
-	    $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
-	    linknames='
-	  # The linker will not automatically build a static lib if we build a DLL.
-	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
-	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-	  # Don't use ranlib
-	  _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib'
-	  _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~
-	    lt_tool_outputfile="@TOOL_OUTPUT@"~
-	    case $lt_outputfile in
-	      *.exe|*.EXE) ;;
-	      *)
-		lt_outputfile="$lt_outputfile.exe"
-		lt_tool_outputfile="$lt_tool_outputfile.exe"
-		;;
-	    esac~
-	    func_to_tool_file "$lt_outputfile"~
-	    if test "$MANIFEST_TOOL" != ":" && test -f "$lt_outputfile.manifest"; then
-	      $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1;
-	      $RM "$lt_outputfile.manifest";
-	    fi'
-	  ;;
-	*)
-	  # g++
-	  # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless,
-	  # as there is no search path for DLLs.
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir'
-	  _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-all-symbols'
-	  _LT_TAGVAR(allow_undefined_flag, $1)=unsupported
-	  _LT_TAGVAR(always_export_symbols, $1)=no
-	  _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes
-
-	  if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	    # If the export-symbols file already is a .def file (1st line
-	    # is EXPORTS), use it as is; otherwise, prepend...
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then
-	      cp $export_symbols $output_objdir/$soname.def;
-	    else
-	      echo EXPORTS > $output_objdir/$soname.def;
-	      cat $export_symbols >> $output_objdir/$soname.def;
-	    fi~
-	    $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib'
-	  else
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	  fi
-	  ;;
-	esac
-	;;
-      darwin* | rhapsody*)
-        _LT_DARWIN_LINKER_FEATURES($1)
-	;;
-
-      dgux*)
-        case $cc_basename in
-          ec++*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          ghcx*)
-	    # Green Hills C++ Compiler
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      freebsd2.*)
-        # C++ shared libraries reported to be fairly broken before
-	# switch to ELF
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      freebsd-elf*)
-        _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-        ;;
-
-      freebsd* | dragonfly*)
-        # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF
-        # conventions
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-        ;;
-
-      gnu*)
-        ;;
-
-      haiku*)
-        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-        _LT_TAGVAR(link_all_deplibs, $1)=yes
-        ;;
-
-      hpux9*)
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-        _LT_TAGVAR(hardcode_direct, $1)=yes
-        _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-				             # but as the default
-				             # location of the library.
-
-        case $cc_basename in
-          CC*)
-            # FIXME: insert proper C++ library support
-            _LT_TAGVAR(ld_shlibs, $1)=no
-            ;;
-          aCC*)
-            _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            # Commands to make compiler produce verbose output that lists
-            # what "hidden" libraries, object files and flags are used when
-            # linking a shared library.
-            #
-            # There doesn't appear to be a way to prevent this compiler from
-            # explicitly linking system object files so we need to strip them
-            # from the output so that they don't get included in the library
-            # dependencies.
-            output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-            ;;
-          *)
-            if test "$GXX" = yes; then
-              _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib'
-            else
-              # FIXME: insert proper C++ library support
-              _LT_TAGVAR(ld_shlibs, $1)=no
-            fi
-            ;;
-        esac
-        ;;
-
-      hpux10*|hpux11*)
-        if test $with_gnu_ld = no; then
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}+b ${wl}$libdir'
-	  _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-          case $host_cpu in
-            hppa*64*|ia64*)
-              ;;
-            *)
-	      _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-              ;;
-          esac
-        fi
-        case $host_cpu in
-          hppa*64*|ia64*)
-            _LT_TAGVAR(hardcode_direct, $1)=no
-            _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-            ;;
-          *)
-            _LT_TAGVAR(hardcode_direct, $1)=yes
-            _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-            _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH,
-					         # but as the default
-					         # location of the library.
-            ;;
-        esac
-
-        case $cc_basename in
-          CC*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          aCC*)
-	    case $host_cpu in
-	      hppa*64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      ia64*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	      *)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	        ;;
-	    esac
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test $with_gnu_ld = no; then
-	        case $host_cpu in
-	          hppa*64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          ia64*)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	          *)
-	            _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	            ;;
-	        esac
-	      fi
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      interix[[3-9]]*)
-	_LT_TAGVAR(hardcode_direct, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	# Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc.
-	# Instead, shared libraries are loaded at an image base (0x10000000 by
-	# default) and relocated if they conflict, which is a slow very memory
-	# consuming and fragmenting process.  To avoid this, we pick a random,
-	# 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link
-	# time.  Moving up from 0x10000000 also allows more sbrk(2) space.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib'
-	;;
-      irix5* | irix6*)
-        case $cc_basename in
-          CC*)
-	    # SGI C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -ar", where "CC" is the IRIX C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    if test "$GXX" = yes; then
-	      if test "$with_gnu_ld" = no; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-	      else
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` -o $lib'
-	      fi
-	    fi
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-	    ;;
-        esac
-        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-        _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-        _LT_TAGVAR(inherit_rpath, $1)=yes
-        ;;
-
-      linux* | k*bsd*-gnu | kopensolaris*-gnu)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib'
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
-	    ;;
-	  icpc* | ecpc* )
-	    # Intel C++
-	    with_gnu_ld=yes
-	    # version 8.0 and above of icpc choke on multiply defined symbols
-	    # if we add $predep_objects and $postdep_objects, however 7.1 and
-	    # earlier do not add the objects themselves.
-	    case `$CC -V 2>&1` in
-	      *"Version 7."*)
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	      *)  # Version 8.0 or newer
-	        tmp_idyn=
-	        case $host_cpu in
-		  ia64*) tmp_idyn=' -i_dynamic';;
-		esac
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-		_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib'
-		;;
-	    esac
-	    _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive$convenience ${wl}--no-whole-archive'
-	    ;;
-          pgCC* | pgcpp*)
-            # Portland Group C++ compiler
-	    case `$CC -V` in
-	    *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*)
-	      _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~
-		compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"'
-	      _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~
-		$AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~
-		$RANLIB $oldlib'
-	      _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~
-		rm -rf $tpldir~
-		$CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~
-		$CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    *) # Version 6 and above use weak symbols
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib'
-	      ;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}--rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`for conv in $convenience\"\"; do test  -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-            ;;
-	  cxx*)
-	    # Compaq C++
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname  -o $lib ${wl}-retain-symbols-file $wl$export_symbols'
-
-	    runpath_var=LD_RUN_PATH
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed'
-	    ;;
-	  xl* | mpixl* | bgxl*)
-	    # IBM XL 8.0 on PPC, with GNU ld
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}--export-dynamic'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib'
-	    if test "x$supports_anon_versioning" = xyes; then
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~
-		cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~
-		echo "local: *; };" >> $output_objdir/$libname.ver~
-		$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib'
-	    fi
-	    ;;
-	  *)
-	    case `$CC -V 2>&1 | sed 5q` in
-	    *Sun\ C*)
-	      # Sun C++ 5.9
-	      _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	      _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	      _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols'
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	      _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` ${wl}--no-whole-archive'
-	      _LT_TAGVAR(compiler_needs_object, $1)=yes
-
-	      # Not sure whether something based on
-	      # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1
-	      # would be better.
-	      output_verbose_link_cmd='func_echo_all'
-
-	      # Archives containing C++ object files must be created using
-	      # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	      # necessary to make sure instantiated templates are included
-	      # in the archive.
-	      _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	      ;;
-	    esac
-	    ;;
-	esac
-	;;
-
-      lynxos*)
-        # FIXME: insert proper C++ library support
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      m88k*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      mvs*)
-        case $cc_basename in
-          cxx*)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	  *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-	esac
-	;;
-
-      netbsd*)
-        if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
-	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
-	  wlarc=
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	fi
-	# Workaround some broken pre-1.5 toolchains
-	output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"'
-	;;
-
-      *nto* | *qnx*)
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-	;;
-
-      openbsd2*)
-        # C++ shared libraries are fairly broken
-	_LT_TAGVAR(ld_shlibs, $1)=no
-	;;
-
-      openbsd*)
-	if test -f /usr/libexec/ld.so; then
-	  _LT_TAGVAR(hardcode_direct, $1)=yes
-	  _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	  _LT_TAGVAR(hardcode_direct_absolute, $1)=yes
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib'
-	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	  if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib'
-	    _LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-E'
-	    _LT_TAGVAR(whole_archive_flag_spec, $1)="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive'
-	  fi
-	  output_verbose_link_cmd=func_echo_all
-	else
-	  _LT_TAGVAR(ld_shlibs, $1)=no
-	fi
-	;;
-
-      osf3* | osf4* | osf5*)
-        case $cc_basename in
-          KCC*)
-	    # Kuck and Associates, Inc. (KAI) C++ Compiler
-
-	    # KCC will only create a shared library if the output file
-	    # ends with ".so" (or ".sl" for HP-UX), so rename the library
-	    # to its proper name (with version) after linking.
-	    _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath,$libdir'
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Archives containing C++ object files must be created using
-	    # the KAI C++ compiler.
-	    case $host in
-	      osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;;
-	      *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;;
-	    esac
-	    ;;
-          RCC*)
-	    # Rational C++ 2.4.1
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          cxx*)
-	    case $host in
-	      osf3*)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && func_echo_all "${wl}-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-		;;
-	      *)
-	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-	          echo "-hidden">> $lib.exp~
-	          $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry ${output_objdir}/so_locations -o $lib~
-	          $RM $lib.exp'
-	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
-		;;
-	    esac
-
-	    _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	    # Commands to make compiler produce verbose output that lists
-	    # what "hidden" libraries, object files and flags are used when
-	    # linking a shared library.
-	    #
-	    # There doesn't appear to be a way to prevent this compiler from
-	    # explicitly linking system object files so we need to strip them
-	    # from the output so that they don't get included in the library
-	    # dependencies.
-	    output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"'
-	    ;;
-	  *)
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(allow_undefined_flag, $1)=' ${wl}-expect_unresolved ${wl}\*'
-	      case $host in
-	        osf3*)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	        *)
-	          _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && func_echo_all "${wl}-set_version ${wl}$verstring"` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib'
-		  ;;
-	      esac
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-rpath ${wl}$libdir'
-	      _LT_TAGVAR(hardcode_libdir_separator, $1)=:
-
-	      # Commands to make compiler produce verbose output that lists
-	      # what "hidden" libraries, object files and flags are used when
-	      # linking a shared library.
-	      output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-
-	    else
-	      # FIXME: insert proper C++ library support
-	      _LT_TAGVAR(ld_shlibs, $1)=no
-	    fi
-	    ;;
-        esac
-        ;;
-
-      psos*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      sunos4*)
-        case $cc_basename in
-          CC*)
-	    # Sun C++ 4.x
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          lcc*)
-	    # Lucid
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      solaris*)
-        case $cc_basename in
-          CC* | sunCC*)
-	    # Sun C++ 4.2, 5.x and Centerline C++
-            _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
-	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G${allow_undefined_flag}  -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-	      $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
-	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	    case $host_os in
-	      solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-	      *)
-		# The compiler driver will combine and reorder linker options,
-		# but understands `-z linker_flag'.
-	        # Supported since Solaris 2.6 (maybe 2.5.1?)
-		_LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract'
-	        ;;
-	    esac
-	    _LT_TAGVAR(link_all_deplibs, $1)=yes
-
-	    output_verbose_link_cmd='func_echo_all'
-
-	    # Archives containing C++ object files must be created using
-	    # "CC -xar", where "CC" is the Sun C++ compiler.  This is
-	    # necessary to make sure instantiated templates are included
-	    # in the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs'
-	    ;;
-          gcx*)
-	    # Green Hills C++ Compiler
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-
-	    # The C++ compiler must be used to create the archive.
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs'
-	    ;;
-          *)
-	    # GNU C++ compiler with Solaris linker
-	    if test "$GXX" = yes && test "$with_gnu_ld" = no; then
-	      _LT_TAGVAR(no_undefined_flag, $1)=' ${wl}-z ${wl}defs'
-	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -shared $pic_flag -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      else
-	        # g++ 2.7 appears to require `-G' NOT `-shared' on this
-	        # platform.
-	        _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-		  $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
-
-	        # Commands to make compiler produce verbose output that lists
-	        # what "hidden" libraries, object files and flags are used when
-	        # linking a shared library.
-	        output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP "\-L"'
-	      fi
-
-	      _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R $wl$libdir'
-	      case $host_os in
-		solaris2.[[0-5]] | solaris2.[[0-5]].*) ;;
-		*)
-		  _LT_TAGVAR(whole_archive_flag_spec, $1)='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract'
-		  ;;
-	      esac
-	    fi
-	    ;;
-        esac
-        ;;
-
-    sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*)
-      _LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-      _LT_TAGVAR(archive_cmds_need_lc, $1)=no
-      _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-      runpath_var='LD_RUN_PATH'
-
-      case $cc_basename in
-        CC*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-	*)
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	  ;;
-      esac
-      ;;
-
-      sysv5* | sco3.2v5* | sco5v6*)
-	# Note: We can NOT use -z defs as we might desire, because we do not
-	# link with -lc, and that would cause any symbols used from libc to
-	# always be unresolved, which means just about no library would
-	# ever link correctly.  If we're not using GNU ld we use -z text
-	# though, which does catch some bad symbols but isn't as heavy-handed
-	# as -z defs.
-	_LT_TAGVAR(no_undefined_flag, $1)='${wl}-z,text'
-	_LT_TAGVAR(allow_undefined_flag, $1)='${wl}-z,nodefs'
-	_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-	_LT_TAGVAR(hardcode_shlibpath_var, $1)=no
-	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='${wl}-R,$libdir'
-	_LT_TAGVAR(hardcode_libdir_separator, $1)=':'
-	_LT_TAGVAR(link_all_deplibs, $1)=yes
-	_LT_TAGVAR(export_dynamic_flag_spec, $1)='${wl}-Bexport'
-	runpath_var='LD_RUN_PATH'
-
-	case $cc_basename in
-          CC*)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~
-	      '"$_LT_TAGVAR(old_archive_cmds, $1)"
-	    _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~
-	      '"$_LT_TAGVAR(reload_cmds, $1)"
-	    ;;
-	  *)
-	    _LT_TAGVAR(archive_cmds, $1)='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags'
-	    ;;
-	esac
-      ;;
-
-      tandem*)
-        case $cc_basename in
-          NCC*)
-	    # NonStop-UX NCC 3.20
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-          *)
-	    # FIXME: insert proper C++ library support
-	    _LT_TAGVAR(ld_shlibs, $1)=no
-	    ;;
-        esac
-        ;;
-
-      vxworks*)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-
-      *)
-        # FIXME: insert proper C++ library support
-        _LT_TAGVAR(ld_shlibs, $1)=no
-        ;;
-    esac
-
-    AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)])
-    test "$_LT_TAGVAR(ld_shlibs, $1)" = no && can_build_shared=no
-
-    _LT_TAGVAR(GCC, $1)="$GXX"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-  LDCXX=$LD
-  LD=$lt_save_LD
-  GCC=$lt_save_GCC
-  with_gnu_ld=$lt_save_with_gnu_ld
-  lt_cv_path_LDCXX=$lt_cv_path_LD
-  lt_cv_path_LD=$lt_save_path_LD
-  lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld
-  lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld
-fi # test "$_lt_caught_CXX_error" != yes
-
-AC_LANG_POP
-])# _LT_LANG_CXX_CONFIG
-
-
-# _LT_FUNC_STRIPNAME_CNF
-# ----------------------
-# func_stripname_cnf prefix suffix name
-# strip PREFIX and SUFFIX off of NAME.
-# PREFIX and SUFFIX must not contain globbing or regex special
-# characters, hashes, percent signs, but SUFFIX may contain a leading
-# dot (in which case that matches only a dot).
-#
-# This function is identical to the (non-XSI) version of func_stripname,
-# except this one can be used by m4 code that may be executed by configure,
-# rather than the libtool script.
-m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl
-AC_REQUIRE([_LT_DECL_SED])
-AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])
-func_stripname_cnf ()
-{
-  case ${2} in
-  .*) func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%\\\\${2}\$%%"`;;
-  *)  func_stripname_result=`$ECHO "${3}" | $SED "s%^${1}%%; s%${2}\$%%"`;;
-  esac
-} # func_stripname_cnf
-])# _LT_FUNC_STRIPNAME_CNF
-
-# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME])
-# ---------------------------------
-# Figure out "hidden" library dependencies from verbose
-# compiler output when linking a shared library.
-# Parse the compiler output and extract the necessary
-# objects, libraries and library flags.
-m4_defun([_LT_SYS_HIDDEN_LIBDEPS],
-[m4_require([_LT_FILEUTILS_DEFAULTS])dnl
-AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl
-# Dependencies to place before and after the object being linked:
-_LT_TAGVAR(predep_objects, $1)=
-_LT_TAGVAR(postdep_objects, $1)=
-_LT_TAGVAR(predeps, $1)=
-_LT_TAGVAR(postdeps, $1)=
-_LT_TAGVAR(compiler_lib_search_path, $1)=
-
-dnl we can't use the lt_simple_compile_test_code here,
-dnl because it contains code intended for an executable,
-dnl not a library.  It's possible we should let each
-dnl tag define a new lt_????_link_test_code variable,
-dnl but it's only used here...
-m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF
-int a;
-void foo (void) { a = 0; }
-_LT_EOF
-], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF
-class Foo
-{
-public:
-  Foo (void) { a = 0; }
-private:
-  int a;
-};
-_LT_EOF
-], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer*4 a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF
-      subroutine foo
-      implicit none
-      integer a
-      a=0
-      return
-      end
-_LT_EOF
-], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF
-public class foo {
-  private int a;
-  public void bar (void) {
-    a = 0;
-  }
-};
-_LT_EOF
-], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF
-package foo
-func foo() {
-}
-_LT_EOF
-])
-
-_lt_libdeps_save_CFLAGS=$CFLAGS
-case "$CC $CFLAGS " in #(
-*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;;
-*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;;
-*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;;
-esac
-
-dnl Parse the compiler output and extract the necessary
-dnl objects, libraries and library flags.
-if AC_TRY_EVAL(ac_compile); then
-  # Parse the compiler output and extract the necessary
-  # objects, libraries and library flags.
-
-  # Sentinel used to keep track of whether or not we are before
-  # the conftest object file.
-  pre_test_object_deps_done=no
-
-  for p in `eval "$output_verbose_link_cmd"`; do
-    case ${prev}${p} in
-
-    -L* | -R* | -l*)
-       # Some compilers place space between "-{L,R}" and the path.
-       # Remove the space.
-       if test $p = "-L" ||
-          test $p = "-R"; then
-	 prev=$p
-	 continue
-       fi
-
-       # Expand the sysroot to ease extracting the directories later.
-       if test -z "$prev"; then
-         case $p in
-         -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;;
-         -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;;
-         -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;;
-         esac
-       fi
-       case $p in
-       =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;;
-       esac
-       if test "$pre_test_object_deps_done" = no; then
-	 case ${prev} in
-	 -L | -R)
-	   # Internal compiler library paths should come after those
-	   # provided the user.  The postdeps already come after the
-	   # user supplied libs so there is no need to process them.
-	   if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${prev}${p}"
-	   else
-	     _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} ${prev}${p}"
-	   fi
-	   ;;
-	 # The "-l" case would never come before the object being
-	 # linked, so don't bother handling this case.
-	 esac
-       else
-	 if test -z "$_LT_TAGVAR(postdeps, $1)"; then
-	   _LT_TAGVAR(postdeps, $1)="${prev}${p}"
-	 else
-	   _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} ${prev}${p}"
-	 fi
-       fi
-       prev=
-       ;;
-
-    *.lto.$objext) ;; # Ignore GCC LTO objects
-    *.$objext)
-       # This assumes that the test object file only shows up
-       # once in the compiler output.
-       if test "$p" = "conftest.$objext"; then
-	 pre_test_object_deps_done=yes
-	 continue
-       fi
-
-       if test "$pre_test_object_deps_done" = no; then
-	 if test -z "$_LT_TAGVAR(predep_objects, $1)"; then
-	   _LT_TAGVAR(predep_objects, $1)="$p"
-	 else
-	   _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p"
-	 fi
-       else
-	 if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then
-	   _LT_TAGVAR(postdep_objects, $1)="$p"
-	 else
-	   _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p"
-	 fi
-       fi
-       ;;
-
-    *) ;; # Ignore the rest.
-
-    esac
-  done
-
-  # Clean up.
-  rm -f a.out a.exe
-else
-  echo "libtool.m4: error: problem compiling $1 test program"
-fi
-
-$RM -f confest.$objext
-CFLAGS=$_lt_libdeps_save_CFLAGS
-
-# PORTME: override above test on systems where it is broken
-m4_if([$1], [CXX],
-[case $host_os in
-interix[[3-9]]*)
-  # Interix 3.5 installs completely hosed .la files for C++, so rather than
-  # hack all around it, let's just trust "g++" to DTRT.
-  _LT_TAGVAR(predep_objects,$1)=
-  _LT_TAGVAR(postdep_objects,$1)=
-  _LT_TAGVAR(postdeps,$1)=
-  ;;
-
-linux*)
-  case `$CC -V 2>&1 | sed 5q` in
-  *Sun\ C*)
-    # Sun C++ 5.9
-
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-
-solaris*)
-  case $cc_basename in
-  CC* | sunCC*)
-    # The more standards-conforming stlport4 library is
-    # incompatible with the Cstd library. Avoid specifying
-    # it if it's in CXXFLAGS. Ignore libCrun as
-    # -library=stlport4 depends on it.
-    case " $CXX $CXXFLAGS " in
-    *" -library=stlport4 "*)
-      solaris_use_stlport4=yes
-      ;;
-    esac
-
-    # Adding this requires a known-good setup of shared libraries for
-    # Sun compiler versions before 5.6, else PIC objects from an old
-    # archive will be linked into the output, leading to subtle bugs.
-    if test "$solaris_use_stlport4" != yes; then
-      _LT_TAGVAR(postdeps,$1)='-library=Cstd -library=Crun'
-    fi
-    ;;
-  esac
-  ;;
-esac
-])
-
-case " $_LT_TAGVAR(postdeps, $1) " in
-*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;;
-esac
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=
-if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then
- _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | ${SED} -e 's! -L! !g' -e 's!^ !!'`
-fi
-_LT_TAGDECL([], [compiler_lib_search_dirs], [1],
-    [The directories searched by this compiler when creating a shared library])
-_LT_TAGDECL([], [predep_objects], [1],
-    [Dependencies to place before and after the objects being linked to
-    create a shared library])
-_LT_TAGDECL([], [postdep_objects], [1])
-_LT_TAGDECL([], [predeps], [1])
-_LT_TAGDECL([], [postdeps], [1])
-_LT_TAGDECL([], [compiler_lib_search_path], [1],
-    [The library search path used internally by the compiler when linking
-    a shared library])
-])# _LT_SYS_HIDDEN_LIBDEPS
-
-
-# _LT_LANG_F77_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for a Fortran 77 compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_F77_CONFIG],
-[AC_LANG_PUSH(Fortran 77)
-if test -z "$F77" || test "X$F77" = "Xno"; then
-  _lt_disable_F77=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for f77 test sources.
-ac_ext=f
-
-# Object file extension for compiled f77 test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the F77 compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_F77" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
-  lt_save_GCC=$GCC
-  lt_save_CFLAGS=$CFLAGS
-  CC=${F77-"f77"}
-  CFLAGS=$FFLAGS
-  compiler=$CC
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-  GCC=$G77
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test "$enable_shared" = yes && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)="$G77"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC="$lt_save_CC"
-  CFLAGS="$lt_save_CFLAGS"
-fi # test "$_lt_disable_F77" != yes
-
-AC_LANG_POP
-])# _LT_LANG_F77_CONFIG
-
-
-# _LT_LANG_FC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for a Fortran compiler are
-# suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_FC_CONFIG],
-[AC_LANG_PUSH(Fortran)
-
-if test -z "$FC" || test "X$FC" = "Xno"; then
-  _lt_disable_FC=yes
-fi
-
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-_LT_TAGVAR(allow_undefined_flag, $1)=
-_LT_TAGVAR(always_export_symbols, $1)=no
-_LT_TAGVAR(archive_expsym_cmds, $1)=
-_LT_TAGVAR(export_dynamic_flag_spec, $1)=
-_LT_TAGVAR(hardcode_direct, $1)=no
-_LT_TAGVAR(hardcode_direct_absolute, $1)=no
-_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=
-_LT_TAGVAR(hardcode_libdir_separator, $1)=
-_LT_TAGVAR(hardcode_minus_L, $1)=no
-_LT_TAGVAR(hardcode_automatic, $1)=no
-_LT_TAGVAR(inherit_rpath, $1)=no
-_LT_TAGVAR(module_cmds, $1)=
-_LT_TAGVAR(module_expsym_cmds, $1)=
-_LT_TAGVAR(link_all_deplibs, $1)=unknown
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-_LT_TAGVAR(no_undefined_flag, $1)=
-_LT_TAGVAR(whole_archive_flag_spec, $1)=
-_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no
-
-# Source file extension for fc test sources.
-ac_ext=${ac_fc_srcext-f}
-
-# Object file extension for compiled fc test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# No sense in running all these tests if we already determined that
-# the FC compiler isn't working.  Some variables (like enable_shared)
-# are currently assumed to apply to all compilers on this platform,
-# and will be corrupted by setting them based on a non-working compiler.
-if test "$_lt_disable_FC" != yes; then
-  # Code to be used in simple compile tests
-  lt_simple_compile_test_code="\
-      subroutine t
-      return
-      end
-"
-
-  # Code to be used in simple link tests
-  lt_simple_link_test_code="\
-      program t
-      end
-"
-
-  # ltmain only uses $CC for tagged configurations so make sure $CC is set.
-  _LT_TAG_COMPILER
-
-  # save warnings/boilerplate of simple test code
-  _LT_COMPILER_BOILERPLATE
-  _LT_LINKER_BOILERPLATE
-
-  # Allow CC to be a program name with arguments.
-  lt_save_CC="$CC"
-  lt_save_GCC=$GCC
-  lt_save_CFLAGS=$CFLAGS
-  CC=${FC-"f95"}
-  CFLAGS=$FCFLAGS
-  compiler=$CC
-  GCC=$ac_cv_fc_compiler_gnu
-
-  _LT_TAGVAR(compiler, $1)=$CC
-  _LT_CC_BASENAME([$compiler])
-
-  if test -n "$compiler"; then
-    AC_MSG_CHECKING([if libtool supports shared libraries])
-    AC_MSG_RESULT([$can_build_shared])
-
-    AC_MSG_CHECKING([whether to build shared libraries])
-    test "$can_build_shared" = "no" && enable_shared=no
-
-    # On AIX, shared libraries and static libraries use the same namespace, and
-    # are all built from PIC.
-    case $host_os in
-      aix3*)
-        test "$enable_shared" = yes && enable_static=no
-        if test -n "$RANLIB"; then
-          archive_cmds="$archive_cmds~\$RANLIB \$lib"
-          postinstall_cmds='$RANLIB $lib'
-        fi
-        ;;
-      aix[[4-9]]*)
-	if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then
-	  test "$enable_shared" = yes && enable_static=no
-	fi
-        ;;
-    esac
-    AC_MSG_RESULT([$enable_shared])
-
-    AC_MSG_CHECKING([whether to build static libraries])
-    # Make sure either enable_shared or enable_static is yes.
-    test "$enable_shared" = yes || enable_static=yes
-    AC_MSG_RESULT([$enable_static])
-
-    _LT_TAGVAR(GCC, $1)="$ac_cv_fc_compiler_gnu"
-    _LT_TAGVAR(LD, $1)="$LD"
-
-    ## CAVEAT EMPTOR:
-    ## There is no encapsulation within the following macros, do not change
-    ## the running order or otherwise move them around unless you know exactly
-    ## what you are doing...
-    _LT_SYS_HIDDEN_LIBDEPS($1)
-    _LT_COMPILER_PIC($1)
-    _LT_COMPILER_C_O($1)
-    _LT_COMPILER_FILE_LOCKS($1)
-    _LT_LINKER_SHLIBS($1)
-    _LT_SYS_DYNAMIC_LINKER($1)
-    _LT_LINKER_HARDCODE_LIBPATH($1)
-
-    _LT_CONFIG($1)
-  fi # test -n "$compiler"
-
-  GCC=$lt_save_GCC
-  CC=$lt_save_CC
-  CFLAGS=$lt_save_CFLAGS
-fi # test "$_lt_disable_FC" != yes
-
-AC_LANG_POP
-])# _LT_LANG_FC_CONFIG
-
-
-# _LT_LANG_GCJ_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Java Compiler compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GCJ_CONFIG],
-[AC_REQUIRE([LT_PROG_GCJ])dnl
-AC_LANG_SAVE
-
-# Source file extension for Java test sources.
-ac_ext=java
-
-# Object file extension for compiled Java test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="class foo {}"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GCJ-"gcj"}
-CFLAGS=$GCJFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# GCJ did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-
-  _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GCJ_CONFIG
-
-
-# _LT_LANG_GO_CONFIG([TAG])
-# --------------------------
-# Ensure that the configuration variables for the GNU Go compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_GO_CONFIG],
-[AC_REQUIRE([LT_PROG_GO])dnl
-AC_LANG_SAVE
-
-# Source file extension for Go test sources.
-ac_ext=go
-
-# Object file extension for compiled Go test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code="package main; func main() { }"
-
-# Code to be used in simple link tests
-lt_simple_link_test_code='package main; func main() { }'
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC=$CC
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=yes
-CC=${GOC-"gccgo"}
-CFLAGS=$GOFLAGS
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_TAGVAR(LD, $1)="$LD"
-_LT_CC_BASENAME([$compiler])
-
-# Go did not exist at the time GCC didn't implicitly link libc in.
-_LT_TAGVAR(archive_cmds_need_lc, $1)=no
-
-_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
-_LT_TAGVAR(reload_flag, $1)=$reload_flag
-_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
-
-## CAVEAT EMPTOR:
-## There is no encapsulation within the following macros, do not change
-## the running order or otherwise move them around unless you know exactly
-## what you are doing...
-if test -n "$compiler"; then
-  _LT_COMPILER_NO_RTTI($1)
-  _LT_COMPILER_PIC($1)
-  _LT_COMPILER_C_O($1)
-  _LT_COMPILER_FILE_LOCKS($1)
-  _LT_LINKER_SHLIBS($1)
-  _LT_LINKER_HARDCODE_LIBPATH($1)
-
-  _LT_CONFIG($1)
-fi
-
-AC_LANG_RESTORE
-
-GCC=$lt_save_GCC
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_GO_CONFIG
-
-
-# _LT_LANG_RC_CONFIG([TAG])
-# -------------------------
-# Ensure that the configuration variables for the Windows resource compiler
-# are suitably defined.  These variables are subsequently used by _LT_CONFIG
-# to write the compiler configuration to `libtool'.
-m4_defun([_LT_LANG_RC_CONFIG],
-[AC_REQUIRE([LT_PROG_RC])dnl
-AC_LANG_SAVE
-
-# Source file extension for RC test sources.
-ac_ext=rc
-
-# Object file extension for compiled RC test sources.
-objext=o
-_LT_TAGVAR(objext, $1)=$objext
-
-# Code to be used in simple compile tests
-lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }'
-
-# Code to be used in simple link tests
-lt_simple_link_test_code="$lt_simple_compile_test_code"
-
-# ltmain only uses $CC for tagged configurations so make sure $CC is set.
-_LT_TAG_COMPILER
-
-# save warnings/boilerplate of simple test code
-_LT_COMPILER_BOILERPLATE
-_LT_LINKER_BOILERPLATE
-
-# Allow CC to be a program name with arguments.
-lt_save_CC="$CC"
-lt_save_CFLAGS=$CFLAGS
-lt_save_GCC=$GCC
-GCC=
-CC=${RC-"windres"}
-CFLAGS=
-compiler=$CC
-_LT_TAGVAR(compiler, $1)=$CC
-_LT_CC_BASENAME([$compiler])
-_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
-
-if test -n "$compiler"; then
-  :
-  _LT_CONFIG($1)
-fi
-
-GCC=$lt_save_GCC
-AC_LANG_RESTORE
-CC=$lt_save_CC
-CFLAGS=$lt_save_CFLAGS
-])# _LT_LANG_RC_CONFIG
-
-
-# LT_PROG_GCJ
-# -----------
-AC_DEFUN([LT_PROG_GCJ],
-[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ],
-  [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ],
-    [AC_CHECK_TOOL(GCJ, gcj,)
-      test "x${GCJFLAGS+set}" = xset || GCJFLAGS="-g -O2"
-      AC_SUBST(GCJFLAGS)])])[]dnl
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_GCJ], [])
-
-
-# LT_PROG_GO
-# ----------
-AC_DEFUN([LT_PROG_GO],
-[AC_CHECK_TOOL(GOC, gccgo,)
-])
-
-
-# LT_PROG_RC
-# ----------
-AC_DEFUN([LT_PROG_RC],
-[AC_CHECK_TOOL(RC, windres,)
-])
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_RC], [])
-
-
-# _LT_DECL_EGREP
-# --------------
-# If we don't have a new enough Autoconf to choose the best grep
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_EGREP],
-[AC_REQUIRE([AC_PROG_EGREP])dnl
-AC_REQUIRE([AC_PROG_FGREP])dnl
-test -z "$GREP" && GREP=grep
-_LT_DECL([], [GREP], [1], [A grep program that handles long lines])
-_LT_DECL([], [EGREP], [1], [An ERE matcher])
-_LT_DECL([], [FGREP], [1], [A literal string matcher])
-dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too
-AC_SUBST([GREP])
-])
-
-
-# _LT_DECL_OBJDUMP
-# --------------
-# If we don't have a new enough Autoconf to choose the best objdump
-# available, choose the one first in the user's PATH.
-m4_defun([_LT_DECL_OBJDUMP],
-[AC_CHECK_TOOL(OBJDUMP, objdump, false)
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper])
-AC_SUBST([OBJDUMP])
-])
-
-# _LT_DECL_DLLTOOL
-# ----------------
-# Ensure DLLTOOL variable is set.
-m4_defun([_LT_DECL_DLLTOOL],
-[AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])
-AC_SUBST([DLLTOOL])
-])
-
-# _LT_DECL_SED
-# ------------
-# Check for a fully-functional sed program, that truncates
-# as few characters as possible.  Prefer GNU sed if found.
-m4_defun([_LT_DECL_SED],
-[AC_PROG_SED
-test -z "$SED" && SED=sed
-Xsed="$SED -e 1s/^X//"
-_LT_DECL([], [SED], [1], [A sed program that does not truncate output])
-_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"],
-    [Sed that helps us avoid accidentally triggering echo(1) options like -n])
-])# _LT_DECL_SED
-
-m4_ifndef([AC_PROG_SED], [
-############################################################
-# NOTE: This macro has been submitted for inclusion into   #
-#  GNU Autoconf as AC_PROG_SED.  When it is available in   #
-#  a released version of Autoconf we should remove this    #
-#  macro and use it instead.                               #
-############################################################
-
-m4_defun([AC_PROG_SED],
-[AC_MSG_CHECKING([for a sed that does not truncate output])
-AC_CACHE_VAL(lt_cv_path_SED,
-[# Loop through the user's path and test for sed and gsed.
-# Then use that list of sed's as ones to test for truncation.
-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
-for as_dir in $PATH
-do
-  IFS=$as_save_IFS
-  test -z "$as_dir" && as_dir=.
-  for lt_ac_prog in sed gsed; do
-    for ac_exec_ext in '' $ac_executable_extensions; do
-      if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then
-        lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext"
-      fi
-    done
-  done
-done
-IFS=$as_save_IFS
-lt_ac_max=0
-lt_ac_count=0
-# Add /usr/xpg4/bin/sed as it is typically found on Solaris
-# along with /bin/sed that truncates output.
-for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do
-  test ! -f $lt_ac_sed && continue
-  cat /dev/null > conftest.in
-  lt_ac_count=0
-  echo $ECHO_N "0123456789$ECHO_C" >conftest.in
-  # Check for GNU sed and select it if it is found.
-  if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then
-    lt_cv_path_SED=$lt_ac_sed
-    break
-  fi
-  while true; do
-    cat conftest.in conftest.in >conftest.tmp
-    mv conftest.tmp conftest.in
-    cp conftest.in conftest.nl
-    echo >>conftest.nl
-    $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break
-    cmp -s conftest.out conftest.nl || break
-    # 10000 chars as input seems more than enough
-    test $lt_ac_count -gt 10 && break
-    lt_ac_count=`expr $lt_ac_count + 1`
-    if test $lt_ac_count -gt $lt_ac_max; then
-      lt_ac_max=$lt_ac_count
-      lt_cv_path_SED=$lt_ac_sed
-    fi
-  done
-done
-])
-SED=$lt_cv_path_SED
-AC_SUBST([SED])
-AC_MSG_RESULT([$SED])
-])#AC_PROG_SED
-])#m4_ifndef
-
-# Old name:
-AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED])
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([LT_AC_PROG_SED], [])
-
-
-# _LT_CHECK_SHELL_FEATURES
-# ------------------------
-# Find out whether the shell is Bourne or XSI compatible,
-# or has some other useful features.
-m4_defun([_LT_CHECK_SHELL_FEATURES],
-[AC_MSG_CHECKING([whether the shell understands some XSI constructs])
-# Try some XSI features
-xsi_shell=no
-( _lt_dummy="a/b/c"
-  test "${_lt_dummy##*/},${_lt_dummy%/*},${_lt_dummy#??}"${_lt_dummy%"$_lt_dummy"}, \
-      = c,a/b,b/c, \
-    && eval 'test $(( 1 + 1 )) -eq 2 \
-    && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \
-  && xsi_shell=yes
-AC_MSG_RESULT([$xsi_shell])
-_LT_CONFIG_LIBTOOL_INIT([xsi_shell='$xsi_shell'])
-
-AC_MSG_CHECKING([whether the shell understands "+="])
-lt_shell_append=no
-( foo=bar; set foo baz; eval "$[1]+=\$[2]" && test "$foo" = barbaz ) \
-    >/dev/null 2>&1 \
-  && lt_shell_append=yes
-AC_MSG_RESULT([$lt_shell_append])
-_LT_CONFIG_LIBTOOL_INIT([lt_shell_append='$lt_shell_append'])
-
-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then
-  lt_unset=unset
-else
-  lt_unset=false
-fi
-_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl
-
-# test EBCDIC or ASCII
-case `echo X|tr X '\101'` in
- A) # ASCII based system
-    # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr
-  lt_SP2NL='tr \040 \012'
-  lt_NL2SP='tr \015\012 \040\040'
-  ;;
- *) # EBCDIC based system
-  lt_SP2NL='tr \100 \n'
-  lt_NL2SP='tr \r\n \100\100'
-  ;;
-esac
-_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl
-_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl
-])# _LT_CHECK_SHELL_FEATURES
-
-
-# _LT_PROG_FUNCTION_REPLACE (FUNCNAME, REPLACEMENT-BODY)
-# ------------------------------------------------------
-# In `$cfgfile', look for function FUNCNAME delimited by `^FUNCNAME ()$' and
-# '^} FUNCNAME ', and replace its body with REPLACEMENT-BODY.
-m4_defun([_LT_PROG_FUNCTION_REPLACE],
-[dnl {
-sed -e '/^$1 ()$/,/^} # $1 /c\
-$1 ()\
-{\
-m4_bpatsubsts([$2], [$], [\\], [^\([	 ]\)], [\\\1])
-} # Extended-shell $1 implementation' "$cfgfile" > $cfgfile.tmp \
-  && mv -f "$cfgfile.tmp" "$cfgfile" \
-    || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-test 0 -eq $? || _lt_function_replace_fail=:
-])
-
-
-# _LT_PROG_REPLACE_SHELLFNS
-# -------------------------
-# Replace existing portable implementations of several shell functions with
-# equivalent extended shell implementations where those features are available..
-m4_defun([_LT_PROG_REPLACE_SHELLFNS],
-[if test x"$xsi_shell" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_dirname], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_basename], [dnl
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_dirname_and_basename], [dnl
-    case ${1} in
-      */*) func_dirname_result="${1%/*}${2}" ;;
-      *  ) func_dirname_result="${3}" ;;
-    esac
-    func_basename_result="${1##*/}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_stripname], [dnl
-    # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are
-    # positional parameters, so assign one to ordinary parameter first.
-    func_stripname_result=${3}
-    func_stripname_result=${func_stripname_result#"${1}"}
-    func_stripname_result=${func_stripname_result%"${2}"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_long_opt], [dnl
-    func_split_long_opt_name=${1%%=*}
-    func_split_long_opt_arg=${1#*=}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_split_short_opt], [dnl
-    func_split_short_opt_arg=${1#??}
-    func_split_short_opt_name=${1%"$func_split_short_opt_arg"}])
-
-  _LT_PROG_FUNCTION_REPLACE([func_lo2o], [dnl
-    case ${1} in
-      *.lo) func_lo2o_result=${1%.lo}.${objext} ;;
-      *)    func_lo2o_result=${1} ;;
-    esac])
-
-  _LT_PROG_FUNCTION_REPLACE([func_xform], [    func_xform_result=${1%.*}.lo])
-
-  _LT_PROG_FUNCTION_REPLACE([func_arith], [    func_arith_result=$(( $[*] ))])
-
-  _LT_PROG_FUNCTION_REPLACE([func_len], [    func_len_result=${#1}])
-fi
-
-if test x"$lt_shell_append" = xyes; then
-  _LT_PROG_FUNCTION_REPLACE([func_append], [    eval "${1}+=\\${2}"])
-
-  _LT_PROG_FUNCTION_REPLACE([func_append_quoted], [dnl
-    func_quote_for_eval "${2}"
-dnl m4 expansion turns \\\\ into \\, and then the shell eval turns that into \
-    eval "${1}+=\\\\ \\$func_quote_for_eval_result"])
-
-  # Save a `func_append' function call where possible by direct use of '+='
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1+="%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-else
-  # Save a `func_append' function call even when '+=' is not available
-  sed -e 's%func_append \([[a-zA-Z_]]\{1,\}\) "%\1="$\1%g' $cfgfile > $cfgfile.tmp \
-    && mv -f "$cfgfile.tmp" "$cfgfile" \
-      || (rm -f "$cfgfile" && cp "$cfgfile.tmp" "$cfgfile" && rm -f "$cfgfile.tmp")
-  test 0 -eq $? || _lt_function_replace_fail=:
-fi
-
-if test x"$_lt_function_replace_fail" = x":"; then
-  AC_MSG_WARN([Unable to substitute extended shell functions in $ofile])
-fi
-])
-
-# _LT_PATH_CONVERSION_FUNCTIONS
-# -----------------------------
-# Determine which file name conversion functions should be used by
-# func_to_host_file (and, implicitly, by func_to_host_path).  These are needed
-# for certain cross-compile configurations and native mingw.
-m4_defun([_LT_PATH_CONVERSION_FUNCTIONS],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-AC_REQUIRE([AC_CANONICAL_BUILD])dnl
-AC_MSG_CHECKING([how to convert $build file names to $host format])
-AC_CACHE_VAL(lt_cv_to_host_file_cmd,
-[case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32
-        ;;
-    esac
-    ;;
-  *-*-cygwin* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin
-        ;;
-      *-*-cygwin* )
-        lt_cv_to_host_file_cmd=func_convert_file_noop
-        ;;
-      * ) # otherwise, assume *nix
-        lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin
-        ;;
-    esac
-    ;;
-  * ) # unhandled hosts (and "normal" native builds)
-    lt_cv_to_host_file_cmd=func_convert_file_noop
-    ;;
-esac
-])
-to_host_file_cmd=$lt_cv_to_host_file_cmd
-AC_MSG_RESULT([$lt_cv_to_host_file_cmd])
-_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd],
-         [0], [convert $build file names to $host format])dnl
-
-AC_MSG_CHECKING([how to convert $build file names to toolchain format])
-AC_CACHE_VAL(lt_cv_to_tool_file_cmd,
-[#assume ordinary cross tools, or native build.
-lt_cv_to_tool_file_cmd=func_convert_file_noop
-case $host in
-  *-*-mingw* )
-    case $build in
-      *-*-mingw* ) # actually msys
-        lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32
-        ;;
-    esac
-    ;;
-esac
-])
-to_tool_file_cmd=$lt_cv_to_tool_file_cmd
-AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
-_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
-         [0], [convert $build files to toolchain format])dnl
-])# _LT_PATH_CONVERSION_FUNCTIONS
diff --git a/m4/ltoptions.m4 b/m4/ltoptions.m4
deleted file mode 100644
index 5d9acd8..0000000
--- a/m4/ltoptions.m4
+++ /dev/null
@@ -1,384 +0,0 @@
-# Helper functions for option handling.                    -*- Autoconf -*-
-#
-#   Copyright (C) 2004, 2005, 2007, 2008, 2009 Free Software Foundation,
-#   Inc.
-#   Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 7 ltoptions.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
-
-
-# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
-# ------------------------------------------
-m4_define([_LT_MANGLE_OPTION],
-[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
-
-
-# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
-# ---------------------------------------
-# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
-# matching handler defined, dispatch to it.  Other OPTION-NAMEs are
-# saved as a flag.
-m4_define([_LT_SET_OPTION],
-[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
-m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
-        _LT_MANGLE_DEFUN([$1], [$2]),
-    [m4_warning([Unknown $1 option `$2'])])[]dnl
-])
-
-
-# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
-# ------------------------------------------------------------
-# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
-m4_define([_LT_IF_OPTION],
-[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
-
-
-# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
-# -------------------------------------------------------
-# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
-# are set.
-m4_define([_LT_UNLESS_OPTIONS],
-[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-	    [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
-		      [m4_define([$0_found])])])[]dnl
-m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
-])[]dnl
-])
-
-
-# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
-# ----------------------------------------
-# OPTION-LIST is a space-separated list of Libtool options associated
-# with MACRO-NAME.  If any OPTION has a matching handler declared with
-# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
-# the unknown option and exit.
-m4_defun([_LT_SET_OPTIONS],
-[# Set options
-m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
-    [_LT_SET_OPTION([$1], _LT_Option)])
-
-m4_if([$1],[LT_INIT],[
-  dnl
-  dnl Simply set some default values (i.e off) if boolean options were not
-  dnl specified:
-  _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
-  ])
-  _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
-  ])
-  dnl
-  dnl If no reference was made to various pairs of opposing options, then
-  dnl we run the default mode handler for the pair.  For example, if neither
-  dnl `shared' nor `disable-shared' was passed, we enable building of shared
-  dnl archives by default:
-  _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
-  _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
-  _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
-  		   [_LT_ENABLE_FAST_INSTALL])
-  ])
-])# _LT_SET_OPTIONS
-
-
-## --------------------------------- ##
-## Macros to handle LT_INIT options. ##
-## --------------------------------- ##
-
-# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
-# -----------------------------------------
-m4_define([_LT_MANGLE_DEFUN],
-[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
-
-
-# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
-# -----------------------------------------------
-m4_define([LT_OPTION_DEFINE],
-[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
-])# LT_OPTION_DEFINE
-
-
-# dlopen
-# ------
-LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
-])
-
-AU_DEFUN([AC_LIBTOOL_DLOPEN],
-[_LT_SET_OPTION([LT_INIT], [dlopen])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `dlopen' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
-
-
-# win32-dll
-# ---------
-# Declare package support for building win32 dll's.
-LT_OPTION_DEFINE([LT_INIT], [win32-dll],
-[enable_win32_dll=yes
-
-case $host in
-*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*)
-  AC_CHECK_TOOL(AS, as, false)
-  AC_CHECK_TOOL(DLLTOOL, dlltool, false)
-  AC_CHECK_TOOL(OBJDUMP, objdump, false)
-  ;;
-esac
-
-test -z "$AS" && AS=as
-_LT_DECL([], [AS],      [1], [Assembler program])dnl
-
-test -z "$DLLTOOL" && DLLTOOL=dlltool
-_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl
-
-test -z "$OBJDUMP" && OBJDUMP=objdump
-_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl
-])# win32-dll
-
-AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
-[AC_REQUIRE([AC_CANONICAL_HOST])dnl
-_LT_SET_OPTION([LT_INIT], [win32-dll])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `win32-dll' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
-
-
-# _LT_ENABLE_SHARED([DEFAULT])
-# ----------------------------
-# implement the --enable-shared flag, and supports the `shared' and
-# `disable-shared' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_SHARED],
-[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([shared],
-    [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
-	[build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_shared=yes ;;
-    no) enable_shared=no ;;
-    *)
-      enable_shared=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_shared=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_shared=]_LT_ENABLE_SHARED_DEFAULT)
-
-    _LT_DECL([build_libtool_libs], [enable_shared], [0],
-	[Whether or not to build shared libraries])
-])# _LT_ENABLE_SHARED
-
-LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
-])
-
-AC_DEFUN([AC_DISABLE_SHARED],
-[_LT_SET_OPTION([LT_INIT], [disable-shared])
-])
-
-AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
-AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_SHARED], [])
-dnl AC_DEFUN([AM_DISABLE_SHARED], [])
-
-
-
-# _LT_ENABLE_STATIC([DEFAULT])
-# ----------------------------
-# implement the --enable-static flag, and support the `static' and
-# `disable-static' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_STATIC],
-[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([static],
-    [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
-	[build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_static=yes ;;
-    no) enable_static=no ;;
-    *)
-     enable_static=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_static=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_static=]_LT_ENABLE_STATIC_DEFAULT)
-
-    _LT_DECL([build_old_libs], [enable_static], [0],
-	[Whether or not to build static libraries])
-])# _LT_ENABLE_STATIC
-
-LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
-
-# Old names:
-AC_DEFUN([AC_ENABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
-])
-
-AC_DEFUN([AC_DISABLE_STATIC],
-[_LT_SET_OPTION([LT_INIT], [disable-static])
-])
-
-AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
-AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AM_ENABLE_STATIC], [])
-dnl AC_DEFUN([AM_DISABLE_STATIC], [])
-
-
-
-# _LT_ENABLE_FAST_INSTALL([DEFAULT])
-# ----------------------------------
-# implement the --enable-fast-install flag, and support the `fast-install'
-# and `disable-fast-install' LT_INIT options.
-# DEFAULT is either `yes' or `no'.  If omitted, it defaults to `yes'.
-m4_define([_LT_ENABLE_FAST_INSTALL],
-[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
-AC_ARG_ENABLE([fast-install],
-    [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
-    [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])],
-    [p=${PACKAGE-default}
-    case $enableval in
-    yes) enable_fast_install=yes ;;
-    no) enable_fast_install=no ;;
-    *)
-      enable_fast_install=no
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for pkg in $enableval; do
-	IFS="$lt_save_ifs"
-	if test "X$pkg" = "X$p"; then
-	  enable_fast_install=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
-
-_LT_DECL([fast_install], [enable_fast_install], [0],
-	 [Whether or not to optimize for fast installation])dnl
-])# _LT_ENABLE_FAST_INSTALL
-
-LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
-LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
-
-# Old names:
-AU_DEFUN([AC_ENABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `fast-install' option into LT_INIT's first parameter.])
-])
-
-AU_DEFUN([AC_DISABLE_FAST_INSTALL],
-[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you put
-the `disable-fast-install' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
-dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
-
-
-# _LT_WITH_PIC([MODE])
-# --------------------
-# implement the --with-pic flag, and support the `pic-only' and `no-pic'
-# LT_INIT options.
-# MODE is either `yes' or `no'.  If omitted, it defaults to `both'.
-m4_define([_LT_WITH_PIC],
-[AC_ARG_WITH([pic],
-    [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@],
-	[try to use only PIC/non-PIC objects @<:@default=use both@:>@])],
-    [lt_p=${PACKAGE-default}
-    case $withval in
-    yes|no) pic_mode=$withval ;;
-    *)
-      pic_mode=default
-      # Look at the argument we got.  We use all the common list separators.
-      lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR,"
-      for lt_pkg in $withval; do
-	IFS="$lt_save_ifs"
-	if test "X$lt_pkg" = "X$lt_p"; then
-	  pic_mode=yes
-	fi
-      done
-      IFS="$lt_save_ifs"
-      ;;
-    esac],
-    [pic_mode=default])
-
-test -z "$pic_mode" && pic_mode=m4_default([$1], [default])
-
-_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
-])# _LT_WITH_PIC
-
-LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
-LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
-
-# Old name:
-AU_DEFUN([AC_LIBTOOL_PICMODE],
-[_LT_SET_OPTION([LT_INIT], [pic-only])
-AC_DIAGNOSE([obsolete],
-[$0: Remove this warning and the call to _LT_SET_OPTION when you
-put the `pic-only' option into LT_INIT's first parameter.])
-])
-
-dnl aclocal-1.4 backwards compatibility:
-dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
-
-## ----------------- ##
-## LTDL_INIT Options ##
-## ----------------- ##
-
-m4_define([_LTDL_MODE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
-		 [m4_define([_LTDL_MODE], [nonrecursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [recursive],
-		 [m4_define([_LTDL_MODE], [recursive])])
-LT_OPTION_DEFINE([LTDL_INIT], [subproject],
-		 [m4_define([_LTDL_MODE], [subproject])])
-
-m4_define([_LTDL_TYPE], [])
-LT_OPTION_DEFINE([LTDL_INIT], [installable],
-		 [m4_define([_LTDL_TYPE], [installable])])
-LT_OPTION_DEFINE([LTDL_INIT], [convenience],
-		 [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/m4/ltsugar.m4 b/m4/ltsugar.m4
deleted file mode 100644
index 9000a05..0000000
--- a/m4/ltsugar.m4
+++ /dev/null
@@ -1,123 +0,0 @@
-# ltsugar.m4 -- libtool m4 base layer.                         -*-Autoconf-*-
-#
-# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
-# Written by Gary V. Vaughan, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 6 ltsugar.m4
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
-
-
-# lt_join(SEP, ARG1, [ARG2...])
-# -----------------------------
-# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
-# associated separator.
-# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
-# versions in m4sugar had bugs.
-m4_define([lt_join],
-[m4_if([$#], [1], [],
-       [$#], [2], [[$2]],
-       [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
-m4_define([_lt_join],
-[m4_if([$#$2], [2], [],
-       [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
-
-
-# lt_car(LIST)
-# lt_cdr(LIST)
-# ------------
-# Manipulate m4 lists.
-# These macros are necessary as long as will still need to support
-# Autoconf-2.59 which quotes differently.
-m4_define([lt_car], [[$1]])
-m4_define([lt_cdr],
-[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
-       [$#], 1, [],
-       [m4_dquote(m4_shift($@))])])
-m4_define([lt_unquote], $1)
-
-
-# lt_append(MACRO-NAME, STRING, [SEPARATOR])
-# ------------------------------------------
-# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
-# Note that neither SEPARATOR nor STRING are expanded; they are appended
-# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
-# No SEPARATOR is output if MACRO-NAME was previously undefined (different
-# than defined and empty).
-#
-# This macro is needed until we can rely on Autoconf 2.62, since earlier
-# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
-m4_define([lt_append],
-[m4_define([$1],
-	   m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
-
-
-
-# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
-# ----------------------------------------------------------
-# Produce a SEP delimited list of all paired combinations of elements of
-# PREFIX-LIST with SUFFIX1 through SUFFIXn.  Each element of the list
-# has the form PREFIXmINFIXSUFFIXn.
-# Needed until we can rely on m4_combine added in Autoconf 2.62.
-m4_define([lt_combine],
-[m4_if(m4_eval([$# > 3]), [1],
-       [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
-[[m4_foreach([_Lt_prefix], [$2],
-	     [m4_foreach([_Lt_suffix],
-		]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
-	[_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
-
-
-# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
-# -----------------------------------------------------------------------
-# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
-# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
-m4_define([lt_if_append_uniq],
-[m4_ifdef([$1],
-	  [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
-		 [lt_append([$1], [$2], [$3])$4],
-		 [$5])],
-	  [lt_append([$1], [$2], [$3])$4])])
-
-
-# lt_dict_add(DICT, KEY, VALUE)
-# -----------------------------
-m4_define([lt_dict_add],
-[m4_define([$1($2)], [$3])])
-
-
-# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
-# --------------------------------------------
-m4_define([lt_dict_add_subkey],
-[m4_define([$1($2:$3)], [$4])])
-
-
-# lt_dict_fetch(DICT, KEY, [SUBKEY])
-# ----------------------------------
-m4_define([lt_dict_fetch],
-[m4_ifval([$3],
-	m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
-    m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
-
-
-# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
-# -----------------------------------------------------------------
-m4_define([lt_if_dict_fetch],
-[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
-	[$5],
-    [$6])])
-
-
-# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
-# --------------------------------------------------------------
-m4_define([lt_dict_filter],
-[m4_if([$5], [], [],
-  [lt_join(m4_quote(m4_default([$4], [[, ]])),
-           lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
-		      [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
-])
diff --git a/m4/ltversion.m4 b/m4/ltversion.m4
deleted file mode 100644
index 07a8602..0000000
--- a/m4/ltversion.m4
+++ /dev/null
@@ -1,23 +0,0 @@
-# ltversion.m4 -- version numbers			-*- Autoconf -*-
-#
-#   Copyright (C) 2004 Free Software Foundation, Inc.
-#   Written by Scott James Remnant, 2004
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# @configure_input@
-
-# serial 3337 ltversion.m4
-# This file is part of GNU Libtool
-
-m4_define([LT_PACKAGE_VERSION], [2.4.2])
-m4_define([LT_PACKAGE_REVISION], [1.3337])
-
-AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.4.2'
-macro_revision='1.3337'
-_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
-_LT_DECL(, macro_revision, 0)
-])
diff --git a/m4/lt~obsolete.m4 b/m4/lt~obsolete.m4
deleted file mode 100644
index c573da9..0000000
--- a/m4/lt~obsolete.m4
+++ /dev/null
@@ -1,98 +0,0 @@
-# lt~obsolete.m4 -- aclocal satisfying obsolete definitions.    -*-Autoconf-*-
-#
-#   Copyright (C) 2004, 2005, 2007, 2009 Free Software Foundation, Inc.
-#   Written by Scott James Remnant, 2004.
-#
-# This file is free software; the Free Software Foundation gives
-# unlimited permission to copy and/or distribute it, with or without
-# modifications, as long as this notice is preserved.
-
-# serial 5 lt~obsolete.m4
-
-# These exist entirely to fool aclocal when bootstrapping libtool.
-#
-# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
-# which have later been changed to m4_define as they aren't part of the
-# exported API, or moved to Autoconf or Automake where they belong.
-#
-# The trouble is, aclocal is a bit thick.  It'll see the old AC_DEFUN
-# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
-# using a macro with the same name in our local m4/libtool.m4 it'll
-# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
-# and doesn't know about Autoconf macros at all.)
-#
-# So we provide this file, which has a silly filename so it's always
-# included after everything else.  This provides aclocal with the
-# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
-# because those macros already exist, or will be overwritten later.
-# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. 
-#
-# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
-# Yes, that means every name once taken will need to remain here until
-# we give up compatibility with versions before 1.7, at which point
-# we need to keep only those names which we still refer to.
-
-# This is to help aclocal find these macros, as it can't see m4_define.
-AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
-
-m4_ifndef([AC_LIBTOOL_LINKER_OPTION],	[AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
-m4_ifndef([AC_PROG_EGREP],		[AC_DEFUN([AC_PROG_EGREP])])
-m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_AC_SHELL_INIT],		[AC_DEFUN([_LT_AC_SHELL_INIT])])
-m4_ifndef([_LT_AC_SYS_LIBPATH_AIX],	[AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
-m4_ifndef([_LT_PROG_LTMAIN],		[AC_DEFUN([_LT_PROG_LTMAIN])])
-m4_ifndef([_LT_AC_TAGVAR],		[AC_DEFUN([_LT_AC_TAGVAR])])
-m4_ifndef([AC_LTDL_ENABLE_INSTALL],	[AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
-m4_ifndef([AC_LTDL_PREOPEN],		[AC_DEFUN([AC_LTDL_PREOPEN])])
-m4_ifndef([_LT_AC_SYS_COMPILER],	[AC_DEFUN([_LT_AC_SYS_COMPILER])])
-m4_ifndef([_LT_AC_LOCK],		[AC_DEFUN([_LT_AC_LOCK])])
-m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE],	[AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
-m4_ifndef([_LT_AC_TRY_DLOPEN_SELF],	[AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
-m4_ifndef([AC_LIBTOOL_PROG_CC_C_O],	[AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
-m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
-m4_ifndef([AC_LIBTOOL_OBJDIR],		[AC_DEFUN([AC_LIBTOOL_OBJDIR])])
-m4_ifndef([AC_LTDL_OBJDIR],		[AC_DEFUN([AC_LTDL_OBJDIR])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
-m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP],	[AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
-m4_ifndef([AC_PATH_MAGIC],		[AC_DEFUN([AC_PATH_MAGIC])])
-m4_ifndef([AC_PROG_LD_GNU],		[AC_DEFUN([AC_PROG_LD_GNU])])
-m4_ifndef([AC_PROG_LD_RELOAD_FLAG],	[AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
-m4_ifndef([AC_DEPLIBS_CHECK_METHOD],	[AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
-m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
-m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
-m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS],	[AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
-m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP],	[AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
-m4_ifndef([LT_AC_PROG_EGREP],		[AC_DEFUN([LT_AC_PROG_EGREP])])
-m4_ifndef([LT_AC_PROG_SED],		[AC_DEFUN([LT_AC_PROG_SED])])
-m4_ifndef([_LT_CC_BASENAME],		[AC_DEFUN([_LT_CC_BASENAME])])
-m4_ifndef([_LT_COMPILER_BOILERPLATE],	[AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
-m4_ifndef([_LT_LINKER_BOILERPLATE],	[AC_DEFUN([_LT_LINKER_BOILERPLATE])])
-m4_ifndef([_AC_PROG_LIBTOOL],		[AC_DEFUN([_AC_PROG_LIBTOOL])])
-m4_ifndef([AC_LIBTOOL_SETUP],		[AC_DEFUN([AC_LIBTOOL_SETUP])])
-m4_ifndef([_LT_AC_CHECK_DLFCN],		[AC_DEFUN([_LT_AC_CHECK_DLFCN])])
-m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER],	[AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
-m4_ifndef([_LT_AC_TAGCONFIG],		[AC_DEFUN([_LT_AC_TAGCONFIG])])
-m4_ifndef([AC_DISABLE_FAST_INSTALL],	[AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
-m4_ifndef([_LT_AC_LANG_CXX],		[AC_DEFUN([_LT_AC_LANG_CXX])])
-m4_ifndef([_LT_AC_LANG_F77],		[AC_DEFUN([_LT_AC_LANG_F77])])
-m4_ifndef([_LT_AC_LANG_GCJ],		[AC_DEFUN([_LT_AC_LANG_GCJ])])
-m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
-m4_ifndef([_LT_AC_LANG_C_CONFIG],	[AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
-m4_ifndef([_LT_AC_LANG_CXX_CONFIG],	[AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
-m4_ifndef([_LT_AC_LANG_F77_CONFIG],	[AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
-m4_ifndef([_LT_AC_LANG_GCJ_CONFIG],	[AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
-m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG],	[AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
-m4_ifndef([_LT_AC_LANG_RC_CONFIG],	[AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
-m4_ifndef([AC_LIBTOOL_CONFIG],		[AC_DEFUN([AC_LIBTOOL_CONFIG])])
-m4_ifndef([_LT_AC_FILE_LTDLL_C],	[AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
-m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS],	[AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])])
-m4_ifndef([_LT_AC_PROG_CXXCPP],		[AC_DEFUN([_LT_AC_PROG_CXXCPP])])
-m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS],	[AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])])
-m4_ifndef([_LT_PROG_ECHO_BACKSLASH],	[AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])])
-m4_ifndef([_LT_PROG_F77],		[AC_DEFUN([_LT_PROG_F77])])
-m4_ifndef([_LT_PROG_FC],		[AC_DEFUN([_LT_PROG_FC])])
-m4_ifndef([_LT_PROG_CXX],		[AC_DEFUN([_LT_PROG_CXX])])
diff --git a/m4/mapserver.m4 b/m4/mapserver.m4
deleted file mode 100644
index 43f1118..0000000
--- a/m4/mapserver.m4
+++ /dev/null
@@ -1,386 +0,0 @@
-AC_DEFUN([PROG_CXX_WORKS],
-[AC_REQUIRE([AC_PROG_CXX])dnl
-AC_CACHE_CHECK([whether the C++ compiler works],
-               [rw_cv_prog_cxx_works],
-               [AC_LANG_PUSH([C++])
-                AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])],
-                               [],
-                               [AC_MSG_ERROR([$CXX cannot compile])])
-                AC_LANG_POP([C++])])
-])
-
-dnl
-dnl AC_EXPAND_PATH(path, variable)
-dnl
-dnl expands path to an absolute path and assigns it to variable
-dnl
-AC_DEFUN([AC_EXPAND_PATH],[
-  if test -z "$1" || echo "$1" | grep '^/' >/dev/null ; then
-    $2="$1"
-  else
-    $2="`pwd`/$1"
-  fi
-])
-
-
-dnl
-dnl AC_PARSE_WITH_LIB_STATIC(with_param, out_libpath, out_isstatic)
-dnl
-dnl parse a --with-lib=[static,]/path/to/lib string, and set out_libpath 
-dnl with the library path, and out_isstatic=yes if "static," was there.
-dnl
-AC_DEFUN([AC_PARSE_WITH_LIB_STATIC],[
-  if echo "$1" | grep '^static,' >/dev/null ; then
-    $2=`echo "$1" | sed "s/^static,//"`
-    $3=yes
-  else
-    $2=$1
-    $3=no
-  fi
-])
-
-
-AC_DEFUN([AC_COMPILER_PIC],
-[
-	echo 'void f(){}' > conftest.c
-	if test -z "`${CC} -fPIC -c conftest.c 2>&1`"; then
-	  C_PIC=-fPIC
-	else
-	  C_PIC=
-	fi
-	rm -f conftest*
-
-	AC_SUBST(C_PIC,$C_PIC)
-])
-
-
-dnl
-dnl check for -R, etc. switch
-dnl 
-dnl This was borrowed and adapted from the PHP configure.in script
-dnl
-AC_DEFUN([AC_RUNPATH_SWITCH],
-[
-  AC_MSG_CHECKING(if compiler supports -R)
-  AC_CACHE_VAL(php_cv_cc_dashr,[
-	SAVE_LIBS="${LIBS}"
-	LIBS="-R /usr/lib ${LIBS}"
-	AC_TRY_LINK([], [], php_cv_cc_dashr=yes, php_cv_cc_dashr=no)
-	LIBS="${SAVE_LIBS}"])
-  AC_MSG_RESULT($php_cv_cc_dashr)
-  if test $php_cv_cc_dashr = "yes"; then
-	ld_runpath_switch="-R"
-	apxs_runpath_switch="-Wl,-R'"
-  fi
-  if test -z "$ld_runpath_switch" ; then
-	AC_MSG_CHECKING([if compiler supports -Wl,-rpath,])
-	AC_CACHE_VAL(php_cv_cc_rpath,[
-		SAVE_LIBS="${LIBS}"
-		LIBS="-Wl,-rpath,/usr/lib ${LIBS}"
-		AC_TRY_LINK([], [], php_cv_cc_rpath=yes, php_cv_cc_rpath=no)
-		LIBS="${SAVE_LIBS}"])
-	AC_MSG_RESULT($php_cv_cc_rpath)
-	if test $php_cv_cc_rpath = "yes"; then
-		ld_runpath_switch="-Wl,-rpath,"
-		apxs_runpath_switch="-Wl,'-rpath "
-	fi
-  fi
-  if test -z "$ld_runpath_switch" ; then
-	AC_MSG_CHECKING([if compiler supports -Wl,-R])
-	AC_CACHE_VAL(php_cv_cc_dashwlr,[
-		SAVE_LIBS="${LIBS}"
-		LIBS="-Wl,-R/usr/lib ${LIBS}"
-		AC_TRY_LINK([], [], php_cv_cc_dashwlr=yes, php_cv_cc_dashwlr=no)
-		LIBS="${SAVE_LIBS}"])
-	AC_MSG_RESULT($php_cv_cc_dashwlr)
-	if test $php_cv_cc_rpath = "yes"; then
-		ld_runpath_switch="-Wl,-R"
-		apxs_runpath_switch="-Wl,-R'"
-	fi
-  fi
-  if test -z "$ld_runpath_switch" ; then
-	dnl something innocuous
-	ld_runpath_switch="-L"
-	apxs_runpath_switch="-L'"
-  fi
-  
-])
-
-
-dnl
-dnl AC_PHP_ONCE(namespace, variable, code)
-dnl
-dnl execute code, if variable is not set in namespace
-dnl
-AC_DEFUN([AC_PHP_ONCE],[
-  unique=`echo $ac_n "$2$ac_c" | tr -c -d a-zA-Z0-9`
-  cmd="echo $ac_n \"\$$1$unique$ac_c\""
-  if test -n "$unique" && test "`eval $cmd`" = "" ; then
-    eval "$1$unique=set"
-    $3
-  fi
-])
-
-dnl
-dnl AC_ADD_RUNPATH(path)
-dnl
-dnl add a library to linkpath/runpath stored in RPATH 
-dnl works together with AC_RUNPATH_SWITCH()
-dnl
-AC_DEFUN([AC_ADD_RUNPATH],[
-  if test "$1" != "/usr/lib"; then
-    AC_EXPAND_PATH($1, ai_p)
-    AC_PHP_ONCE(LIBPATH, $ai_p, [
-      EXTRA_LIBS="$EXTRA_LIBS -L$ai_p"
-dnl      if test -n "$APXS" ; then
-dnl        RPATHS="$RPATHS ${apxs_runpath_switch}$ai_p'"
-dnl      else
-        RPATHS="$RPATHS ${ld_runpath_switch}$ai_p"
-dnl      fi
-    ])
-  fi
-])
-
-
-
-dnl
-dnl Try to find something to link shared libraries with.  Use "c++ -shared"
-dnl in preference to "ld -shared" because it will link in required c++
-dnl run time support for us. 
-dnl
-AC_DEFUN([AC_LD_SHARED],
-[
-
-  echo 'void g(); int main(){ g(); return 0; }' > conftest1.c
-
-  echo '#include <stdio.h>' > conftest2.c
-  echo 'void g(); void g(){printf("");}' >> conftest2.c
-  ${CC} ${C_PIC} -c conftest2.c
-  SO_EXT="so"
-  SO_COMMAND_NAME="-soname"
-  export SO_EXT
-  export SO_COMMAND_NAME 
-  LD_SHARED="/bin/true"
-  if test ! -z "`uname -a | grep IRIX`" ; then
-    IRIX_ALL=-all
-  else
-    IRIX_ALL=
-  fi
-
-  AC_ARG_WITH(ld-shared,[  --with-ld-shared=CMD    Specify link command to use to build shared libs
-  --without-ld-shared     Disable shared library support],,)
-
-  dnl using --with-ld-shared with no CMD arg has no effect (but some people
-  dnl still try it!)
-  if test "$with_ld_shared" != "" -a "$with_ld_shared" != "yes"; then
-    if test "$with_ld_shared" = "no" ; then
-      AC_MSG_RESULT([user disabled shared library support.])
-    else
-      AC_MSG_RESULT([using user supplied .so link command ... $with_ld_shared])	
-    fi
-    LD_SHARED="$with_ld_shared"
-  fi
-
-  dnl Check For Cygwin case.  Actually verify that the produced DLL works.
-  if test ! -z "`uname -a | grep CYGWIN`" \
-        -a "$LD_SHARED" = "/bin/true" ; then
-    if test -z "`gcc -shared conftest2.o -o libconftest.dll`" ; then
-      if test -z "`${CC} conftest1.c -L./ -lconftest -o conftest1 2>&1`"; then
-        LD_LIBRARY_PATH_OLD="$LD_LIBRARY_PATH"
-        if test -z "$LD_LIBRARY_PATH" ; then
-          LD_LIBRARY_PATH="`pwd`"
-        else
-          LD_LIBRARY_PATH="`pwd`:$LD_LIBRARY_PATH"
-        fi
-        export LD_LIBRARY_PATH
-        if test -z "`./conftest1 2>&1`" ; then
-          echo "checking for Cygwin gcc -shared ... yes"
-          LD_SHARED="c++ -shared"
-          SO_EXT="dll"
-        fi
-        LD_LIBRARY_PATH="$LD_LIBRARY_PATH_OLD"
-      fi
-    fi
-  fi
-
-
-  dnl Test special MacOS (Darwin) case. 
-  if test ! -z "`uname | grep Darwin`" \
-          -a "$LD_SHARED" = "/bin/true" ; then
-    if test -z "`${CXX} -dynamiclib conftest2.o -o libconftest.so 2>&1`" ; then
-      ${CC} -c conftest1.c
-      if test -z "`${CXX} conftest1.o libconftest.so -o conftest1 2>&1`"; then
-        DYLD_LIBRARY_PATH_OLD="$DYLD_LIBRARY_PATH"
-        if test -z "$DYLD_LIBRARY_PATH" ; then
-          DYLD_LIBRARY_PATH="`pwd`"
-        else
-          DYLD_LIBRARY_PATH="`pwd`:$DYLD_LIBRARY_PATH"
-        fi
-        export DYLD_LIBRARY_PATH
-        if test -z "`./conftest1 2>&1`" ; then
-          echo "checking for ${CXX} -dynamiclib ... yes"
-          LD_SHARED="${CXX} -dynamiclib -single_module -flat_namespace -undefined suppress"
-	  SO_EXT=dylib
-          SO_COMMAND_NAME='-dylib_install_name'
-        fi
-        DYLD_LIBRARY_PATH="$DYLD_LIBRARY_PATH_OLD"
-      fi
-      rm -f conftest1.o
-    fi 
-  fi
-
-  if test "$LD_SHARED" = "/bin/true" \
-	-a -z "`${CXX} -shared $IRIX_ALL conftest2.o -o libconftest.so 2>&1|grep -v WARNING`" ; then
-    if test -z "`${CC} conftest1.c libconftest.so -o conftest1 2>&1`"; then
-      LD_LIBRARY_PATH_OLD="$LD_LIBRARY_PATH"
-      if test -z "$LD_LIBRARY_PATH" ; then
-        LD_LIBRARY_PATH="`pwd`"
-      else
-        LD_LIBRARY_PATH="`pwd`:$LD_LIBRARY_PATH"
-      fi
-      export LD_LIBRARY_PATH
-      if test -z "`./conftest1 2>&1`" ; then
-        echo "checking for ${CXX} -shared ... yes"
-        LD_SHARED="${CXX} -shared $IRIX_ALL"
-      else
-        echo "checking for ${CXX} -shared ... no(3)"
-      fi
-      LD_LIBRARY_PATH="$LD_LIBRARY_PATH_OLD"
-    else
-      echo "checking for ${CXX} -shared ... no(2)"
-    fi
-  else 
-    if test "$LD_SHARED" = "/bin/true" ; then
-      echo "checking for ${CXX} -shared ... no(1)"
-    fi
-  fi
-
-  if test "$LD_SHARED" = "/bin/true" \
-          -a -z "`ld -shared conftest2.o -o libconftest.so 2>&1`" ; then
-    if test -z "`${CC} conftest1.c libconftest.so -o conftest1 2>&1`"; then
-      LD_LIBRARY_PATH_OLD="$LD_LIBRARY_PATH"
-      if test -z "$LD_LIBRARY_PATH" ; then
-        LD_LIBRARY_PATH="`pwd`"
-      else
-        LD_LIBRARY_PATH="`pwd`:$LD_LIBRARY_PATH"
-      fi
-      export LD_LIBRARY_PATH
-      if test -z "`./conftest1 2>&1`" ; then
-        echo "checking for ld -shared ... yes"
-        LD_SHARED="ld -shared"
-      fi
-      LD_LIBRARY_PATH="$LD_LIBRARY_PATH_OLD"
-    fi
-  fi
-
-  if test "$LD_SHARED" = "/bin/true" ; then
-    echo "checking for ld -shared ... no"
-    if test ! -x /bin/true ; then
-      LD_SHARED=/usr/bin/true
-    fi
-  fi
-  if test "$LD_SHARED" = "no" ; then
-    if test -x /bin/true ; then
-      LD_SHARED=/bin/true
-    else
-      LD_SHARED=/usr/bin/true
-    fi
-  fi
-
-  rm -f conftest* libconftest* 
-
-  AC_SUBST(LD_SHARED,$LD_SHARED)
-  AC_SUBST(SO_EXT,$SO_EXT)
-  AC_SUBST(SO_COMMAND_NAME,$SO_COMMAND_NAME)
-])
-
-dnl
-dnl PHP on OSX (and potentially other platforms) does not use the 
-dnl same options for creating a shared MapScript that Python 
-dnl and a normal 'make shared' need to use.  The only way around 
-dnl this is to use our normal LD_SHARED stuff for everything 
-dnl except MacOSX.
-dnl
-
-AC_DEFUN([AC_PHP_LD_SHARED],[
-
-
-  AC_LD_SHARED()
-  
-  dnl Test special MacOS (Darwin) case.
-  if test ! -z "`uname | grep Darwin`" ;then
-          PHP_LD_SHARED="${CXX} -bundle -flat_namespace -undefined suppress"
-  else
-	  PHP_LD_SHARED=$LD_SHARED
-  fi
-
-export PHP_LD_SHARED
-AC_SUBST(PHP_LD_SHARED,$PHP_LD_SHARED)
-
-])
-
-dnl
-dnl The following macro is actually based on the "setup" script that
-dnl was included in the php-3.0.14 dl directory and will look at the 
-dnl Perl compile flags to figure the mechanism to build a shared lib
-dnl on this system.
-dnl This is the preferred macro for the PHP module, but if perl is not
-dnl available then we can always fallback on AC_LD_SHARED above.
-dnl
-
-AC_DEFUN([AC_LD_SHARED_FROM_PERL],
-[
-#
-# The following is a massive hack.  It tries to steal the
-# mechanism for build a dynamic library from Perl's -V output
-# If this script fails on this machine, try running 'perl -V'
-# manually and pick out the setting for:
-#   
-#    cc, optimize, ccflags, ld, cccdlflags and lddlflags
-#
-# Replace the below definitions with the output you see.
-#
-
-if test ! -r "perl.out"; then
-	perl -V > perl.out
-fi
-
-# if the greps and cuts don't do the job, set these manually
-PERL_CC="`grep ' cc=' perl.out | cut -d, -f1 | cut -d\' -f2 | grep -v undef`"
-PERL_OPT="`grep ' optimize=' perl.out | cut -d, -f2 | cut -d\' -f2 | grep -v undef`"
-PERL_CCFLAGS="`grep ' ccflags' perl.out | cut -d, -f1 | grep cflags | cut -d\' -f2 | grep -v undef` `grep ' ccflags' perl.out | cut -d, -f2 | grep ccflags | cut -d\' -f2 | grep -v undef`"
-PERL_LD="`grep ' ld=' perl.out | cut -d, -f1 | cut -d\' -f2 | grep -v undef`"
-PERL_LFLAGS="`grep ' cccdlflags=' perl.out | cut -d, -f1 | cut -d\' -f2 | grep -v undef`"
-PERL_CCDLFLAGS="`grep ' ccdlflags=' perl.out | cut -d, -f4 | cut -d\' -f2 | sed 's, ,,' | grep -v undef`"
-PERL_LDDLFLAGS=`grep ' lddlflags' perl.out | cut -d, -f2 | cut -d\' -f2 | grep -v undef`
-#--------
-
-#if test -n "$PERL_CCDLFLAGS" ; then
-#	echo "-------------------------"
-#	echo "----- IMPORTANT !!! -----"
-#	echo "-------------------------"
-#	echo "To use PHP extensions on your OS, you will need to recompile "
-#	echo "PHP.                                                         "
-#	echo "You need to edit the Makefile in the php3 directory and add  "
-#	echo "$PERL_CCDLFLAGS to the start of the LDFLAGS line at the top  "
-#	echo "of the Makefile.  Then type: 'make clean; make'              "
-#	echo "You can still go ahead and build the extensions now by typing"
-#	echo "'make' in this directory.  They just won't work correctly    "
-#	echo "until you recompile your PHP.                                "
-#        echo "If you are compiling php as a module, you should also add    "
-#        echo "$PERL_CCDLFLAGS to the start of the EXTRA_LDFLAGS in Apache  "
-#        echo "Configuration file.  Note that if you are using the APACI    "
-#        echo "build mechanism you should make this change in the           "
-#        echo "Configuration.tmpl file instead.                             "
-#	echo "-------------------------"
-#	echo "-------------------------"
-#	echo "-------------------------"
-#fi
-
-PERL_CC="$PERL_CC $PERL_OPT $PERL_CCFLAGS -I. -I.. $PERL_LFLAGS"
-PERL_LD="$PERL_LD $PERL_LDDLFLAGS $PERL_CCDLFLAGS"
-
-rm -f perl.out
-
-])
-
diff --git a/mapagg.cpp b/mapagg.cpp
index 7d837f5..9622be7 100644
--- a/mapagg.cpp
+++ b/mapagg.cpp
@@ -28,7 +28,6 @@
  *****************************************************************************/
 
 #include "mapserver.h"
-#include "mapagg.h"
 #include <assert.h>
 #include "renderers/agg/include/agg_color_rgba.h"
 #include "renderers/agg/include/agg_pixfmt_rgba.h"
@@ -110,6 +109,123 @@ fontMetrics rasterfont_sizes[] = {
   {7,mapserver::mcs7x12_mono_high[0]}
 };
 
+/*
+ * interface to a shapeObj representing lines, providing the functions
+ * needed by the agg rasterizer. treats shapeObjs with multiple linestrings.
+ */
+class line_adaptor
+{
+public:
+  line_adaptor(shapeObj *shape):s(shape) {
+    m_line=s->line; /*first line*/
+    m_point=m_line->point; /*current vertex is first vertex of first line*/
+    m_lend=&(s->line[s->numlines]); /*pointer to after last line*/
+    m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
+  }
+
+  /* a class with virtual functions should also provide a virtual destructor */
+  virtual ~line_adaptor() {}
+
+  void rewind(unsigned) {
+    m_line=s->line; /*first line*/
+    m_point=m_line->point; /*current vertex is first vertex of first line*/
+    m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
+  }
+
+  virtual unsigned vertex(double* x, double* y) {
+    if(m_point < m_pend) {
+      /*here we treat the case where a real vertex is returned*/
+      bool first = m_point == m_line->point; /*is this the first vertex of a line*/
+      *x = m_point->x;
+      *y = m_point->y;
+      m_point++;
+      return first ? mapserver::path_cmd_move_to : mapserver::path_cmd_line_to;
+    }
+    /*if here, we're at the end of a line*/
+    m_line++;
+    *x = *y = 0.0;
+    if(m_line>=m_lend) /*is this the last line of the shapObj. normally,
+        (m_line==m_lend) should be a sufficient test, as the caller should not call
+        this function if a previous call returned path_cmd_stop.*/
+      return mapserver::path_cmd_stop; /*no more points to process*/
+
+    /*if here, there are more lines in the shapeObj, continue with next one*/
+    m_point=m_line->point; /*pointer to first point of next line*/
+    m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last point of next line*/
+
+    return vertex(x,y); /*this will return the first point of the next line*/
+  }
+private:
+  shapeObj *s;
+  lineObj *m_line, /*current line pointer*/
+          *m_lend; /*points to after the last line*/
+  pointObj *m_point, /*current point*/
+           *m_pend; /*points to after last point of current line*/
+};
+
+class polygon_adaptor
+{
+public:
+  polygon_adaptor(shapeObj *shape):s(shape),m_stop(false) {
+    m_line=s->line; /*first lines*/
+    m_point=m_line->point; /*first vertex of first line*/
+    m_lend=&(s->line[s->numlines]); /*pointer to after last line*/
+    m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
+  }
+
+  /* a class with virtual functions should also provide a virtual destructor */
+  virtual ~polygon_adaptor() {}
+
+  void rewind(unsigned) {
+    /*reset pointers*/
+    m_stop=false;
+    m_line=s->line;
+    m_point=m_line->point;
+    m_pend=&(m_line->point[m_line->numpoints]);
+  }
+
+  virtual unsigned vertex(double* x, double* y) {
+    if(m_point < m_pend) {
+      /*if here, we have a real vertex*/
+      bool first = m_point == m_line->point;
+      *x = m_point->x;
+      *y = m_point->y;
+      m_point++;
+      return first ? mapserver::path_cmd_move_to : mapserver::path_cmd_line_to;
+    }
+    *x = *y = 0.0;
+    if(!m_stop) {
+      /*if here, we're after the last vertex of the current line
+       * we return the command to close the current polygon*/
+      m_line++;
+      if(m_line>=m_lend) {
+        /*if here, we've finished all the vertexes of the shape.
+         * we still return the command to close the current polygon,
+         * but set m_stop so the subsequent call to vertex() will return
+         * the stop command*/
+        m_stop=true;
+        return mapserver::path_cmd_end_poly;
+      }
+      /*if here, there's another line in the shape, so we set the pointers accordingly
+       * and return the command to close the current polygon*/
+      m_point=m_line->point; /*first vertex of next line*/
+      m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of next line*/
+      return mapserver::path_cmd_end_poly;
+    }
+    /*if here, a previous call to vertex informed us that we'd consumed all the vertexes
+     * of the shape. return the command to stop processing this shape*/
+    return mapserver::path_cmd_stop;
+  }
+private:
+  shapeObj *s;
+  double ox,oy;
+  lineObj *m_line, /*pointer to current line*/
+          *m_lend; /*pointer to after last line of the shape*/
+  pointObj *m_point, /*pointer to current vertex*/
+           *m_pend; /*pointer to after last vertex of current line*/
+  bool m_stop; /*should next call return stop command*/
+};
+
 #define aggColor(c) mapserver::rgba8_pre(c->red, c->green, c->blue, c->alpha)
 
 class aggRendererCache
@@ -130,7 +246,23 @@ public:
     m_renderer_primitives(m_renderer_base),
     m_rasterizer_primitives(m_renderer_primitives)
 #endif
-  {}
+  {
+    stroke = NULL;
+    dash = NULL;
+    stroke_dash = NULL;
+  }
+
+  ~AGG2Renderer() {
+    if(stroke) {
+      delete stroke;
+    }
+    if(dash) {
+      delete dash;
+    }
+    if(stroke_dash) {
+      delete stroke_dash;
+    }
+  }
 
   band_type* buffer;
   rendering_buffer m_rendering_buffer;
@@ -148,6 +280,9 @@ public:
   mapserver::scanline_u8 sl_line; /*unpacked scanlines, works faster if the area is roughly
     equal to the perimeter, in number of pixels*/
   bool use_alpha;
+  mapserver::conv_stroke<line_adaptor> *stroke;
+  mapserver::conv_dash<line_adaptor> *dash;
+  mapserver::conv_stroke<mapserver::conv_dash<line_adaptor> > *stroke_dash;
 };
 
 #define AGG_RENDERER(image) ((AGG2Renderer*) (image)->img.plugin)
@@ -220,22 +355,36 @@ int agg2RenderLine(imageObj *img, shapeObj *p, strokeStyleObj *style)
   r->m_renderer_scanline.color(aggColor(style->color));
 
   if (style->patternlength <= 0) {
-    mapserver::conv_stroke<line_adaptor> stroke(lines);
-    stroke.width(style->width);
+    if(!r->stroke) {
+      r->stroke = new mapserver::conv_stroke<line_adaptor>(lines);
+    } else {
+      r->stroke->attach(lines);
+    }
+    r->stroke->width(style->width);
     if(style->width>1) {
-      applyCJC(stroke, style->linecap, style->linejoin);
+      applyCJC(*r->stroke, style->linecap, style->linejoin);
     } else {
-      stroke.inner_join(mapserver::inner_bevel);
-      stroke.line_join(mapserver::bevel_join);
+      r->stroke->inner_join(mapserver::inner_bevel);
+      r->stroke->line_join(mapserver::bevel_join);
     }
-    r->m_rasterizer_aa.add_path(stroke);
+    r->m_rasterizer_aa.add_path(*r->stroke);
   } else {
-    mapserver::conv_dash<line_adaptor> dash(lines);
-    mapserver::conv_stroke<mapserver::conv_dash<line_adaptor> > stroke_dash(dash);
+    if(!r->dash) {
+      r->dash = new mapserver::conv_dash<line_adaptor>(lines);
+    } else {
+      r->dash->remove_all_dashes();
+      r->dash->dash_start(0.0);
+      r->dash->attach(lines);
+    }
+    if(!r->stroke_dash) {
+      r->stroke_dash = new mapserver::conv_stroke<mapserver::conv_dash<line_adaptor> > (*r->dash);
+    } else {
+      r->stroke_dash->attach(*r->dash);
+    }
     int patt_length = 0;
     for (int i = 0; i < style->patternlength; i += 2) {
       if (i < style->patternlength - 1) {
-        dash.add_dash(MS_MAX(1,MS_NINT(style->pattern[i])),
+        r->dash->add_dash(MS_MAX(1,MS_NINT(style->pattern[i])),
                       MS_MAX(1,MS_NINT(style->pattern[i + 1])));
         if(style->patternoffset) {
           patt_length += MS_MAX(1,MS_NINT(style->pattern[i])) +
@@ -244,16 +393,16 @@ int agg2RenderLine(imageObj *img, shapeObj *p, strokeStyleObj *style)
       }
     }
     if(style->patternoffset > 0) {
-      dash.dash_start(patt_length - style->patternoffset);
+      r->dash->dash_start(patt_length - style->patternoffset);
     }
-    stroke_dash.width(style->width);
+    r->stroke_dash->width(style->width);
     if(style->width>1) {
-      applyCJC(stroke_dash, style->linecap, style->linejoin);
+      applyCJC(*r->stroke_dash, style->linecap, style->linejoin);
     } else {
-      stroke_dash.inner_join(mapserver::inner_bevel);
-      stroke_dash.line_join(mapserver::bevel_join);
+      r->stroke_dash->inner_join(mapserver::inner_bevel);
+      r->stroke_dash->line_join(mapserver::bevel_join);
     }
-    r->m_rasterizer_aa.add_path(stroke_dash);
+    r->m_rasterizer_aa.add_path(*r->stroke_dash);
   }
   mapserver::render_scanlines(r->m_rasterizer_aa, r->sl_line, r->m_renderer_scanline);
   return MS_SUCCESS;
@@ -793,7 +942,7 @@ imageObj *agg2CreateImage(int width, int height, outputFormatObj *format, colorO
   r->buffer = (band_type*)malloc(width * height * 4 * sizeof(band_type));
   if (r->buffer == NULL) {
     msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "agg2CreateImage()",
-               __FILE__, __LINE__, width * height * 4 * sizeof(band_type));
+               __FILE__, __LINE__, (unsigned int)(width * height * 4 * sizeof(band_type)));
     free(image);
     return NULL;
   }
diff --git a/mapagg.h b/mapagg.h
deleted file mode 100644
index 3ad4594..0000000
--- a/mapagg.h
+++ /dev/null
@@ -1,186 +0,0 @@
-/******************************************************************************
- * $Id$
- *
- * Project:  MapServer
- * Purpose:  AGG template library types.
- * Author:   John Novak (jnovak at novacell.com)
- *
- ******************************************************************************
- * Copyright (c) 1996-2007 Regents of the University of Minnesota.
- *
- * 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 of this Software or works derived from this 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 OR COPYRIGHT HOLDERS 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.
- ******************************************************************************/
-
-#include "renderers/agg/include/agg_rendering_buffer.h"
-
-/*
- * interface to a shapeObj representing lines, providing the functions
- * needed by the agg rasterizer. treats shapeObjs with multiple linestrings.
- */
-class line_adaptor
-{
-public:
-  line_adaptor(shapeObj *shape):s(shape) {
-    m_line=s->line; /*first line*/
-    m_point=m_line->point; /*current vertex is first vertex of first line*/
-    m_lend=&(s->line[s->numlines]); /*pointer to after last line*/
-    m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
-  }
-
-  /* a class with virtual functions should also provide a virtual destructor */
-  virtual ~line_adaptor() {}
-
-  void rewind(unsigned) {
-    m_line=s->line; /*first line*/
-    m_point=m_line->point; /*current vertex is first vertex of first line*/
-    m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
-  }
-
-  virtual unsigned vertex(double* x, double* y) {
-    if(m_point < m_pend) {
-      /*here we treat the case where a real vertex is returned*/
-      bool first = m_point == m_line->point; /*is this the first vertex of a line*/
-      *x = m_point->x;
-      *y = m_point->y;
-      m_point++;
-      return first ? mapserver::path_cmd_move_to : mapserver::path_cmd_line_to;
-    }
-    /*if here, we're at the end of a line*/
-    m_line++;
-    *x = *y = 0.0;
-    if(m_line>=m_lend) /*is this the last line of the shapObj. normally,
-        (m_line==m_lend) should be a sufficient test, as the caller should not call
-        this function if a previous call returned path_cmd_stop.*/
-      return mapserver::path_cmd_stop; /*no more points to process*/
-
-    /*if here, there are more lines in the shapeObj, continue with next one*/
-    m_point=m_line->point; /*pointer to first point of next line*/
-    m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last point of next line*/
-
-    return vertex(x,y); /*this will return the first point of the next line*/
-  }
-private:
-  shapeObj *s;
-  lineObj *m_line, /*current line pointer*/
-          *m_lend; /*points to after the last line*/
-  pointObj *m_point, /*current point*/
-           *m_pend; /*points to after last point of current line*/
-};
-
-class offset_line_adaptor: public line_adaptor
-{
-public:
-  offset_line_adaptor(shapeObj *shape, double ox, double oy):line_adaptor(shape),ox(ox),oy(oy) {
-  }
-
-  unsigned vertex(double* x, double* y) {
-    unsigned ret = line_adaptor::vertex(x,y);
-    *x+=ox;
-    *y+=oy;
-    return ret;
-  }
-private:
-  double ox,oy;
-};
-
-
-
-class polygon_adaptor
-{
-public:
-  polygon_adaptor(shapeObj *shape):s(shape),m_stop(false) {
-    m_line=s->line; /*first lines*/
-    m_point=m_line->point; /*first vertex of first line*/
-    m_lend=&(s->line[s->numlines]); /*pointer to after last line*/
-    m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of first line*/
-  }
-
-  /* a class with virtual functions should also provide a virtual destructor */
-  virtual ~polygon_adaptor() {}
-
-  void rewind(unsigned) {
-    /*reset pointers*/
-    m_stop=false;
-    m_line=s->line;
-    m_point=m_line->point;
-    m_pend=&(m_line->point[m_line->numpoints]);
-  }
-
-  virtual unsigned vertex(double* x, double* y) {
-    if(m_point < m_pend) {
-      /*if here, we have a real vertex*/
-      bool first = m_point == m_line->point;
-      *x = m_point->x;
-      *y = m_point->y;
-      m_point++;
-      return first ? mapserver::path_cmd_move_to : mapserver::path_cmd_line_to;
-    }
-    *x = *y = 0.0;
-    if(!m_stop) {
-      /*if here, we're after the last vertex of the current line
-       * we return the command to close the current polygon*/
-      m_line++;
-      if(m_line>=m_lend) {
-        /*if here, we've finished all the vertexes of the shape.
-         * we still return the command to close the current polygon,
-         * but set m_stop so the subsequent call to vertex() will return
-         * the stop command*/
-        m_stop=true;
-        return mapserver::path_cmd_end_poly;
-      }
-      /*if here, there's another line in the shape, so we set the pointers accordingly
-       * and return the command to close the current polygon*/
-      m_point=m_line->point; /*first vertex of next line*/
-      m_pend=&(m_line->point[m_line->numpoints]); /*pointer to after last vertex of next line*/
-      return mapserver::path_cmd_end_poly;
-    }
-    /*if here, a previous call to vertex informed us that we'd consumed all the vertexes
-     * of the shape. return the command to stop processing this shape*/
-    return mapserver::path_cmd_stop;
-  }
-private:
-  shapeObj *s;
-  double ox,oy;
-  lineObj *m_line, /*pointer to current line*/
-          *m_lend; /*pointer to after last line of the shape*/
-  pointObj *m_point, /*pointer to current vertex*/
-           *m_pend; /*pointer to after last vertex of current line*/
-  bool m_stop; /*should next call return stop command*/
-};
-
-class offset_polygon_adaptor: public polygon_adaptor
-{
-public:
-  offset_polygon_adaptor(shapeObj *shape, double ox, double oy):polygon_adaptor(shape),ox(ox),oy(oy) {
-  }
-
-  unsigned vertex(double* x, double* y) {
-    unsigned ret = polygon_adaptor::vertex(x,y);
-    *x+=ox;
-    *y+=oy;
-    return ret;
-  }
-private:
-  double ox,oy;
-};
-
-
-
-
-
diff --git a/mapcairo.c b/mapcairo.c
index 302cb5c..372debc 100644
--- a/mapcairo.c
+++ b/mapcairo.c
@@ -41,6 +41,17 @@
 
 #ifdef USE_SVG_CAIRO
 #include <svg-cairo.h>
+#else
+#ifdef USE_RSVG
+  #include <librsvg/rsvg.h>
+  #ifndef LIBRSVG_CHECK_VERSION
+    #include <librsvg/librsvg-features.h>
+  #endif
+  #ifndef RSVG_CAIRO_H
+    #include <librsvg/rsvg-cairo.h>
+  #endif
+  #include <glib-object.h>
+#endif
 #endif
 
 #ifdef USE_GDAL
@@ -201,6 +212,7 @@ int renderLineCairo(imageObj *img, shapeObj *p, strokeStyleObj *stroke)
   msCairoSetSourceColor(r->cr,stroke->color);
   for(i=0; i<p->numlines; i++) {
     lineObj *l = &(p->line[i]);
+    if(l->numpoints == 0) continue;
     cairo_move_to(r->cr,l->point[0].x,l->point[0].y);
     for(j=1; j<l->numpoints; j++) {
       cairo_line_to(r->cr,l->point[j].x,l->point[j].y);
@@ -346,10 +358,14 @@ int renderVectorSymbolCairo(imageObj *img, double x, double y, symbolObj *symbol
   return MS_SUCCESS;
 }
 
-#ifdef USE_SVG_CAIRO
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
 struct svg_symbol_cache {
-  rasterBufferObj pixmap_buffer;
+  rasterBufferObj *pixmap_buffer;
+#ifdef USE_RSVG
+  RsvgHandle *svgc;
+#else
   svg_cairo_t *svgc;
+#endif
   double scale,rotation;
 } ;
 #endif
@@ -357,12 +373,11 @@ struct svg_symbol_cache {
 int renderSVGSymbolCairo(imageObj *img, double x, double y, symbolObj *symbol,
                          symbolStyleObj *style)
 {
-#ifdef USE_SVG_CAIRO
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
+  struct svg_symbol_cache *cache;
   cairo_renderer *r = CAIRO_RENDERER(img);
-  //double ox=symbol->sizex*0.5,oy=symbol->sizey*0.5;
 
-  svg_cairo_status_t status;
-  struct svg_symbol_cache *cache;
+
 
   msPreloadSVGSymbol(symbol);
   assert(symbol->renderer_cache);
@@ -378,10 +393,24 @@ int renderSVGSymbolCairo(imageObj *img, double x, double y, symbolObj *symbol,
   } else
     cairo_translate (r->cr, -(int)(symbol->sizex/2), -(int)(symbol->sizey/2));
 
-  status = svg_cairo_render(cache->svgc, r->cr);
+#ifdef USE_SVG_CAIRO
+  {
+    svg_cairo_status_t status;
+    status = svg_cairo_render(cache->svgc, r->cr);
+    if(status != SVG_CAIRO_STATUS_SUCCESS) {
+      cairo_restore(r->cr);
+      return MS_FAILURE;
+    }
+  }
+#else
+  rsvg_handle_render_cairo(cache->svgc, r->cr);
+#endif
+
   cairo_restore(r->cr);
+
   return MS_SUCCESS;
 
+
 #else
   msSetError(MS_MISCERR, "SVG Symbols requested but is not built with libsvgcairo",
              "renderSVGSymbolCairo()");
@@ -731,7 +760,7 @@ imageObj* createImageCairo(int width, int height, outputFormatObj *format,colorO
 
 static void msTransformToGeospatialPDF(imageObj *img, mapObj *map, cairo_renderer *r)
 {
-  /* We need a GDAL 2.0 PDF driver at runtime, but as far as the C API is concerned, GDAL 1.9 is */
+  /* We need a GDAL 1.10 PDF driver at runtime, but as far as the C API is concerned, GDAL 1.9 is */
   /* largely sufficient. */
 #if defined(USE_GDAL) && defined(GDAL_VERSION_NUM) && GDAL_VERSION_NUM >= 1900
   GDALDatasetH hDS = NULL;
@@ -854,7 +883,7 @@ int saveImageCairo(imageObj *img, mapObj *map, FILE *fp, outputFormatObj *format
     if (map != NULL && !strcasecmp(img->format->driver,"cairo/pdf"))
       msTransformToGeospatialPDF(img, map, r);
 
-    fwrite(r->outputStream->data,r->outputStream->size,1,fp);
+    msIO_fwrite(r->outputStream->data,r->outputStream->size,1,fp);
   } else {
     /* not supported */
   }
@@ -873,40 +902,6 @@ unsigned char* saveImageBufferCairo(imageObj *img, int *size_ptr, outputFormatOb
   return data;
 }
 
-void *msCreateTileEllipseCairo(double width, double height, double angle,
-                               colorObj *c, colorObj *bc, colorObj *oc, double ow)
-{
-  double s = (MS_MAX(width,height)+ow)*1.5;
-  cairo_surface_t *surface = cairo_image_surface_create (CAIRO_FORMAT_ARGB32,
-                             s,s);
-  cairo_t *cr = cairo_create(surface);
-  /* cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND); */
-  /* cairo_set_line_join(cr, CAIRO_LINE_JOIN_ROUND); */
-  if (bc && MS_VALID_COLOR(*bc)) {
-    msCairoSetSourceColor(cr, bc);
-    cairo_paint(cr);
-  }
-  cairo_save(cr);
-  cairo_translate(cr,s/2,s/2);
-  cairo_rotate(cr, -angle);
-  cairo_scale(cr, width/2,height/2);
-  cairo_arc(cr, 0, 0, 1, 0, 2 * MS_PI);
-  cairo_restore(cr);
-  if (c != NULL && MS_VALID_COLOR(*c)) {
-    msCairoSetSourceColor(cr, c);
-    cairo_fill_preserve(cr);
-  }
-  if (oc != NULL && MS_VALID_COLOR(*oc)) {
-    cairo_set_line_width(cr, ow);
-    msCairoSetSourceColor(cr, oc);
-    cairo_stroke_preserve(cr);
-  }
-  cairo_new_path(cr);
-  cairo_destroy(cr);
-  return surface;
-
-}
-
 int renderEllipseSymbolCairo(imageObj *img, double x, double y, symbolObj *symbol,
                              symbolStyleObj *style)
 {
@@ -1039,6 +1034,29 @@ int mergeRasterBufferCairo(imageObj *img, rasterBufferObj *rb, double opacity,
   return MS_SUCCESS;
 }
 
+
+void freeSVGCache(symbolObj *s) {
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
+      struct svg_symbol_cache *cache = s->renderer_cache;
+      assert(cache->svgc);
+#ifdef USE_SVG_CAIRO
+      svg_cairo_destroy(cache->svgc);
+#else
+      rsvg_handle_close(cache->svgc, NULL);
+  #if LIBRSVG_CHECK_VERSION(2,35,0)
+      g_object_unref(cache->svgc);
+  #else
+      rsvg_handle_free(cache->svgc);
+  #endif
+#endif
+      if(cache->pixmap_buffer) {
+        msFreeRasterBuffer(cache->pixmap_buffer);
+        free(cache->pixmap_buffer);
+      }
+      msFree(s->renderer_cache);
+#endif
+}
+
 int freeSymbolCairo(symbolObj *s)
 {
   if(!s->renderer_cache)
@@ -1050,15 +1068,9 @@ int freeSymbolCairo(symbolObj *s)
     case MS_SYMBOL_PIXMAP:
       cairo_surface_destroy(s->renderer_cache);
       break;
-    case MS_SYMBOL_SVG: {
-#ifdef USE_SVG_CAIRO
-      struct svg_symbol_cache *cache = s->renderer_cache;
-      assert(cache->svgc);
-      svg_cairo_destroy(cache->svgc);
-      msFree(s->renderer_cache);
-#endif
-    }
-    break;
+    case MS_SYMBOL_SVG:
+      freeSVGCache(s);
+      break;
   }
   s->renderer_cache=NULL;
   return MS_SUCCESS;
@@ -1082,58 +1094,54 @@ int initializeRasterBufferCairo(rasterBufferObj *rb, int width, int height, int
 
 int msPreloadSVGSymbol(symbolObj *symbol)
 {
-#ifdef USE_SVG_CAIRO
-  int status;
-  unsigned int svg_width, svg_height;
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
   struct svg_symbol_cache *cache;
 
   if(!symbol->renderer_cache) {
     cache = msSmallCalloc(1,sizeof(struct svg_symbol_cache));
+    symbol->renderer_free_func = &freeSVGCache;
   } else {
     cache = symbol->renderer_cache;
   }
   if(cache->svgc)
     return MS_SUCCESS;
 
-  if (!symbol->svg_text) {
-    FILE *stream;
-    long int file_len;
-
-    if ((stream = fopen(symbol->full_pixmap_path, "rb")) == NULL) {
-      msSetError(MS_IOERR, "Could not open svg file %s", "msPreloadSVGSymbol()",symbol->full_pixmap_path);
-      return (MS_FAILURE);
+#ifdef USE_SVG_CAIRO
+  {
+    unsigned int svg_width, svg_height;
+    int status;
+    status = svg_cairo_create(&cache->svgc);
+    if (status) {
+      msSetError(MS_RENDERERERR, "problem creating cairo svg", "msPreloadSVGSymbol()");
+      return MS_FAILURE;
     }
-    fseek(stream, 0, SEEK_END);
-    file_len = ftell(stream);
-    rewind(stream);
-    symbol->svg_text = (char*) msSmallMalloc(sizeof (char) * file_len);
-    if (1 != fread(symbol->svg_text, file_len, 1, stream)) {
-      msSetError(MS_IOERR, "failed to read %d bytes from svg file %s", "loadSymbol()", file_len, symbol->full_pixmap_path);
-      free(symbol->svg_text);
+    status = svg_cairo_parse(cache->svgc, symbol->full_pixmap_path);
+    if (status) {
+      msSetError(MS_RENDERERERR, "problem parsing svg symbol", "msPreloadSVGSymbol()");
+      return MS_FAILURE;
+    }
+    svg_cairo_get_size (cache->svgc, &svg_width, &svg_height);
+    if (svg_width == 0 || svg_height == 0) {
+      msSetError(MS_RENDERERERR, "problem parsing svg symbol", "msPreloadSVGSymbol()");
       return MS_FAILURE;
     }
-    symbol->svg_text[file_len - 1] = '\0';
-    fclose(stream);
-  }
 
-  status = svg_cairo_create(&cache->svgc);
-  if (status) {
-    msSetError(MS_RENDERERERR, "problem creating cairo svg", "msPreloadSVGSymbol()");
-    return MS_FAILURE;
+    symbol->sizex = svg_width;
+    symbol->sizey = svg_height;
   }
-  status = svg_cairo_parse_buffer(cache->svgc, symbol->svg_text, strlen(symbol->svg_text));
-  if (status) {
-    msSetError(MS_RENDERERERR, "problem parsing svg symbol", "msPreloadSVGSymbol()");
-    return MS_FAILURE;
-  }
-  svg_cairo_get_size (cache->svgc, &svg_width, &svg_height);
-  if (svg_width == 0 || svg_height == 0) {
-    msSetError(MS_RENDERERERR, "problem parsing svg symbol", "msPreloadSVGSymbol()");
-    return MS_FAILURE;
+#else
+  {
+    RsvgDimensionData dim;
+    cache->svgc = rsvg_handle_new_from_file(symbol->full_pixmap_path,NULL);
+    if(!cache->svgc) {
+      msSetError(MS_RENDERERERR,"failed to load svg file %s", "msPreloadSVGSymbol()", symbol->full_pixmap_path);
+    }
+    rsvg_handle_get_dimensions_sub (cache->svgc, &dim, NULL);
+    symbol->sizex = dim.width;
+    symbol->sizey = dim.height;
   }
+#endif
 
-  symbol->sizex = svg_width;
-  symbol->sizey = svg_height;
   symbol->renderer_cache = cache;
 
   return MS_SUCCESS;
@@ -1150,23 +1158,32 @@ int msPreloadSVGSymbol(symbolObj *symbol)
 int msRenderRasterizedSVGSymbol(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj *style)
 {
 
-#ifdef USE_SVG_CAIRO
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
   struct svg_symbol_cache *svg_cache;
   symbolStyleObj pixstyle;
   symbolObj pixsymbol;
 
-  //already rendered at the right size and scale? return
+  if(img->format->renderer == MS_RENDER_WITH_GD) {
+    msSetError(MS_MISCERR, "GD renderer does not support SVG symbols", "msRenderRasterizedSVGSymbol()");
+    return MS_FAILURE;
+  }
+
   if(MS_SUCCESS != msPreloadSVGSymbol(symbol))
     return MS_FAILURE;
   svg_cache = (struct svg_symbol_cache*) symbol->renderer_cache;
 
+  //already rendered at the right size and scale? return
   if(svg_cache->scale != style->scale || svg_cache->rotation != style->rotation) {
     cairo_t *cr;
     cairo_surface_t *surface;
     unsigned char *pb;
     int width, height, surface_w, surface_h;
     /* need to recompute the pixmap */
-    msFreeRasterBuffer(&svg_cache->pixmap_buffer);
+    if(svg_cache->pixmap_buffer) {
+      msFreeRasterBuffer(svg_cache->pixmap_buffer);
+    } else {
+      svg_cache->pixmap_buffer = msSmallCalloc(1,sizeof(rasterBufferObj));
+    }
 
     //increase pixmap size to accomodate scaling/rotation
     if (style->scale != 1.0) {
@@ -1192,26 +1209,30 @@ int msRenderRasterizedSVGSymbol(imageObj *img, double x, double y, symbolObj *sy
     if (style->scale != 1.0) {
       cairo_scale(cr, style->scale, style->scale);
     }
+#ifdef USE_SVG_CAIRO
     if(svg_cairo_render(svg_cache->svgc, cr) != SVG_CAIRO_STATUS_SUCCESS) {
       return MS_FAILURE;
     }
+#else
+  rsvg_handle_render_cairo(svg_cache->svgc, cr);
+#endif
     pb = cairo_image_surface_get_data(surface);
 
     //set up raster
-    initializeRasterBufferCairo(&svg_cache->pixmap_buffer, surface_w, surface_h, 0);
-    memcpy(svg_cache->pixmap_buffer.data.rgba.pixels, pb, surface_w * surface_h * 4 * sizeof (unsigned char));
+    initializeRasterBufferCairo(svg_cache->pixmap_buffer, surface_w, surface_h, 0);
+    memcpy(svg_cache->pixmap_buffer->data.rgba.pixels, pb, surface_w * surface_h * 4 * sizeof (unsigned char));
     svg_cache->scale = style->scale;
     svg_cache->rotation = style->rotation;
     cairo_destroy(cr);
     cairo_surface_destroy(surface);
   }
-  assert(svg_cache->pixmap_buffer.height && svg_cache->pixmap_buffer.width);
+  assert(svg_cache->pixmap_buffer->height && svg_cache->pixmap_buffer->width);
 
   pixstyle = *style;
   pixstyle.rotation = 0.0;
   pixstyle.scale = 1.0;
 
-  pixsymbol.pixmap_buffer = &svg_cache->pixmap_buffer;
+  pixsymbol.pixmap_buffer = svg_cache->pixmap_buffer;
   pixsymbol.type = MS_SYMBOL_PIXMAP;
 
   MS_IMAGE_RENDERER(img)->renderPixmapSymbol(img,x,y,&pixsymbol,&pixstyle);
@@ -1270,7 +1291,7 @@ int msPopulateRendererVTableCairoRaster( rendererVTableObj *renderer )
 #endif
 }
 
-inline int populateRendererVTableCairoVector( rendererVTableObj *renderer )
+int populateRendererVTableCairoVector( rendererVTableObj *renderer )
 {
 #ifdef USE_CAIRO
   renderer->use_imagecache=0;
diff --git a/mapchart.c b/mapchart.c
index bcbf257..9c2267b 100644
--- a/mapchart.c
+++ b/mapchart.c
@@ -109,7 +109,7 @@ int findChartPoint(mapObj *map, shapeObj *shape, int width, int height, pointObj
   }
 }
 
-void drawRectangle(mapObj *map, imageObj *image, float mx, float my, float Mx, float My,
+void drawRectangle(mapObj *map, imageObj *image, double mx, double my, double Mx, double My,
                    styleObj *style)
 {
   shapeObj shape;
@@ -129,13 +129,13 @@ void drawRectangle(mapObj *map, imageObj *image, float mx, float my, float Mx, f
 }
 
 int msDrawVBarChart(mapObj *map, imageObj *image, pointObj *center,
-                    float *values, styleObj **styles, int numvalues,
-                    float barWidth)
+                    double *values, styleObj **styles, int numvalues,
+                    double barWidth)
 {
 
   int c;
-  float left,bottom,cur; /*shortcut to pixel boundaries of the chart*/
-  float height = 0;
+  double left,bottom,cur; /*shortcut to pixel boundaries of the chart*/
+  double height = 0;
 
   for(c=0; c<numvalues; c++) {
     height += values[c];
@@ -153,15 +153,15 @@ int msDrawVBarChart(mapObj *map, imageObj *image, pointObj *center,
 
 
 int msDrawBarChart(mapObj *map, imageObj *image, pointObj *center,
-                   float *values, styleObj **styles, int numvalues,
-                   float width, float height, float *maxVal, float *minVal, float barWidth)
+                   double *values, styleObj **styles, int numvalues,
+                   double width, double height, double *maxVal, double *minVal, double barWidth)
 {
 
-  float upperLimit,lowerLimit;
-  float shapeMaxVal,shapeMinVal,pixperval;
+  double upperLimit,lowerLimit;
+  double shapeMaxVal,shapeMinVal,pixperval;
   int c;
-  float vertOrigin,vertOriginClipped,horizStart,y;
-  float left,top,bottom; /*shortcut to pixel boundaries of the chart*/
+  double vertOrigin,vertOriginClipped,horizStart,y;
+  double left,top,bottom; /*shortcut to pixel boundaries of the chart*/
 
   top=center->y-height/2.;
   bottom=center->y+height/2.;
@@ -189,7 +189,7 @@ int msDrawBarChart(mapObj *map, imageObj *image, pointObj *center,
     lowerLimit-=0.5;
   }
 
-  pixperval=(float)height/(upperLimit-lowerLimit);
+  pixperval=height/(upperLimit-lowerLimit);
   vertOrigin=bottom+lowerLimit*pixperval;
   vertOriginClipped=(vertOrigin<top) ? top :
                     (vertOrigin>bottom) ? bottom : vertOrigin;
@@ -199,7 +199,7 @@ int msDrawBarChart(mapObj *map, imageObj *image, pointObj *center,
   gdImageRectangle(image->img.gd, left-1,top-1, center.x+width/2.+1,bottom+1,color);
   */
   for(c=0; c<numvalues; c++) {
-    int barHeight=values[c]*pixperval;
+    double barHeight=values[c]*pixperval;
     /*clip bars*/
     y=((vertOrigin-barHeight)<top) ? top :
       (vertOrigin-barHeight>bottom) ? bottom : vertOrigin-barHeight;
@@ -215,8 +215,8 @@ int msDrawBarChart(mapObj *map, imageObj *image, pointObj *center,
 }
 
 int msDrawPieChart(mapObj *map, imageObj *image,
-                   pointObj *center, float diameter,
-                   float *values, styleObj **styles, int numvalues)
+                   pointObj *center, double diameter,
+                   double *values, styleObj **styles, int numvalues)
 {
   int i;
   double dTotal=0.,start=0;
@@ -230,7 +230,7 @@ int msDrawPieChart(mapObj *map, imageObj *image,
   }
 
   for(i=0; i < numvalues; i++) {
-    float angle = values[i];
+    double angle = values[i];
     if(angle==0) continue; /*no need to draw. causes artifacts with outlines*/
     angle*=360.0/dTotal;
     msDrawPieSlice(&map->symbolset,image, center, styles[i], diameter/2., start, start+angle);
@@ -240,7 +240,7 @@ int msDrawPieChart(mapObj *map, imageObj *image,
   return MS_SUCCESS;
 }
 
-int getNextShape(mapObj *map, layerObj *layer, float *values, int *nvalues, styleObj **styles, shapeObj *shape)
+int getNextShape(mapObj *map, layerObj *layer, double *values, int *nvalues, styleObj **styles, shapeObj *shape)
 {
   int status;
   int c;
@@ -273,7 +273,7 @@ int pieLayerProcessDynamicDiameter(layerObj *layer)
 {
   const char *chartRangeProcessingKey=NULL;
   char *attrib;
-  float mindiameter=-1, maxdiameter, minvalue, maxvalue;
+  double mindiameter=-1, maxdiameter, minvalue, maxvalue;
   classObj *newclass;
   styleObj *newstyle;
   const char *chartSizeProcessingKey=msLayerGetProcessingKey( layer,"CHART_SIZE" );
@@ -283,7 +283,7 @@ int pieLayerProcessDynamicDiameter(layerObj *layer)
   if(chartRangeProcessingKey==NULL)
     return MS_FALSE;
   attrib = msSmallMalloc(strlen(chartRangeProcessingKey)+1);
-  switch(sscanf(chartRangeProcessingKey,"%s %f %f %f %f",attrib,
+  switch(sscanf(chartRangeProcessingKey,"%s %lf %lf %lf %lf",attrib,
                 &mindiameter,&maxdiameter,&minvalue,&maxvalue)) {
     case 1: /*we only have the attribute*/
     case 5: /*we have the attribute and the four range values*/
@@ -322,6 +322,16 @@ int pieLayerProcessDynamicDiameter(layerObj *layer)
 
 }
 
+/* clean up the class added temporarily */
+static void pieLayerCleanupDynamicDiameter(layerObj *layer)
+{
+  if( layer->numclasses > 0 && EQUALN(layer->class[layer->numclasses - 1]->name, "__MS_SIZE_ATTRIBUTE_", 20) ) {
+    classObj *c=msRemoveClass(layer, layer->numclasses - 1);
+    freeClass(c);
+    msFree(c);
+  }
+}
+
 
 int msDrawPieChartLayer(mapObj *map, layerObj *layer, imageObj *image)
 {
@@ -329,8 +339,8 @@ int msDrawPieChartLayer(mapObj *map, layerObj *layer, imageObj *image)
   int         status=MS_SUCCESS;
   const char *chartRangeProcessingKey=NULL;
   const char *chartSizeProcessingKey=msLayerGetProcessingKey( layer,"CHART_SIZE" );
-  float diameter, mindiameter=-1, maxdiameter, minvalue, maxvalue, exponent=0;
-  float *values;
+  double diameter, mindiameter=-1, maxdiameter, minvalue, maxvalue, exponent=0;
+  double *values;
   styleObj **styles;
   pointObj center;
   int numvalues = layer->numclasses; /* the number of classes to represent in the graph */
@@ -341,11 +351,11 @@ int msDrawPieChartLayer(mapObj *map, layerObj *layer, imageObj *image)
     if(chartRangeProcessingKey==NULL)
       diameter=20;
     else {
-      sscanf(chartRangeProcessingKey,"%*s %f %f %f %f %f",
+      sscanf(chartRangeProcessingKey,"%*s %lf %lf %lf %lf %lf",
              &mindiameter,&maxdiameter,&minvalue,&maxvalue,&exponent);
     }
   } else {
-    if(sscanf(chartSizeProcessingKey ,"%f",&diameter)!=1) {
+    if(sscanf(chartSizeProcessingKey ,"%lf",&diameter)!=1) {
       msSetError(MS_MISCERR, "msDrawChart format error for processing key \"CHART_SIZE\"", "msDrawPieChartLayer()");
       return MS_FAILURE;
     }
@@ -353,12 +363,12 @@ int msDrawPieChartLayer(mapObj *map, layerObj *layer, imageObj *image)
   /* step through the target shapes */
   msInitShape(&shape);
 
-  values=(float*)calloc(numvalues,sizeof(float));
-  MS_CHECK_ALLOC(values, numvalues*sizeof(float), MS_FAILURE);
+  values=(double*)calloc(numvalues,sizeof(double));
+  MS_CHECK_ALLOC(values, numvalues*sizeof(double), MS_FAILURE);
   styles = (styleObj**)malloc((numvalues)*sizeof(styleObj*));
   if (styles == NULL) {
     msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msDrawPieChartLayer()",
-               __FILE__, __LINE__, numvalues*sizeof(styleObj*));
+               __FILE__, __LINE__, (unsigned int)(numvalues*sizeof(styleObj*)));
     free(values);
     return MS_FAILURE;
   }
@@ -412,8 +422,8 @@ int msDrawVBarChartLayer(mapObj *map, layerObj *layer, imageObj *image)
   int         status=MS_SUCCESS;
   const char *chartSizeProcessingKey=msLayerGetProcessingKey( layer,"CHART_SIZE" );
   const char *chartScaleProcessingKey=msLayerGetProcessingKey( layer,"CHART_SCALE" );
-  float barWidth,scale=1.0;
-  float *values;
+  double barWidth,scale=1.0;
+  double *values;
   styleObj **styles;
   pointObj center;
   int numvalues = layer->numclasses;
@@ -421,26 +431,26 @@ int msDrawVBarChartLayer(mapObj *map, layerObj *layer, imageObj *image)
   if(chartSizeProcessingKey==NULL) {
     barWidth=20;
   } else {
-    if(sscanf(chartSizeProcessingKey ,"%f",&barWidth) != 1) {
+    if(sscanf(chartSizeProcessingKey ,"%lf",&barWidth) != 1) {
       msSetError(MS_MISCERR, "msDrawChart format error for processing key \"CHART_SIZE\"", "msDrawVBarChartLayer()");
       return MS_FAILURE;
     }
   }
 
   if(chartScaleProcessingKey) {
-    if(sscanf(chartScaleProcessingKey,"%f",&scale)!=1) {
+    if(sscanf(chartScaleProcessingKey,"%lf",&scale)!=1) {
       msSetError(MS_MISCERR, "Error reading value for processing key \"CHART_SCALE\"", "msDrawVBarChartLayer()");
       return MS_FAILURE;
     }
   }
   msInitShape(&shape);
 
-  values=(float*)calloc(numvalues,sizeof(float));
-  MS_CHECK_ALLOC(values, numvalues*sizeof(float), MS_FAILURE);
+  values=(double*)calloc(numvalues,sizeof(double));
+  MS_CHECK_ALLOC(values, numvalues*sizeof(double), MS_FAILURE);
   styles = (styleObj**)malloc(numvalues*sizeof(styleObj*));
   if (styles == NULL) {
     msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msDrawVBarChartLayer()",
-               __FILE__, __LINE__, numvalues*sizeof(styleObj*));
+               __FILE__, __LINE__, (unsigned int)(numvalues*sizeof(styleObj*)));
     free(values);
     return MS_FAILURE;
   }
@@ -478,18 +488,18 @@ int msDrawBarChartLayer(mapObj *map, layerObj *layer, imageObj *image)
   const char *chartSizeProcessingKey=msLayerGetProcessingKey( layer,"CHART_SIZE" );
   const char *barMax=msLayerGetProcessingKey( layer,"CHART_BAR_MAXVAL" );
   const char *barMin=msLayerGetProcessingKey( layer,"CHART_BAR_MINVAL" );
-  float width,height;
-  float barWidth;
-  float *values;
+  double width,height;
+  double barWidth;
+  double *values;
   styleObj **styles;
   pointObj center;
-  float barMaxVal,barMinVal;
+  double barMaxVal,barMinVal;
   int numvalues = layer->numclasses;
   int numvalues_for_shape;
   if(chartSizeProcessingKey==NULL) {
     width=height=20;
   } else {
-    switch(sscanf(chartSizeProcessingKey ,"%f %f",&width,&height)) {
+    switch(sscanf(chartSizeProcessingKey ,"%lf %lf",&width,&height)) {
       case 2:
         break;
       case 1:
@@ -502,13 +512,13 @@ int msDrawBarChartLayer(mapObj *map, layerObj *layer, imageObj *image)
   }
 
   if(barMax) {
-    if(sscanf(barMax,"%f",&barMaxVal)!=1) {
+    if(sscanf(barMax,"%lf",&barMaxVal)!=1) {
       msSetError(MS_MISCERR, "Error reading value for processing key \"CHART_BAR_MAXVAL\"", "msDrawBarChartLayer()");
       return MS_FAILURE;
     }
   }
   if(barMin) {
-    if(sscanf(barMin,"%f",&barMinVal)!=1) {
+    if(sscanf(barMin,"%lf",&barMinVal)!=1) {
       msSetError(MS_MISCERR, "Error reading value for processing key \"CHART_BAR_MINVAL\"", "msDrawBarChartLayer()");
       return MS_FAILURE;
     }
@@ -517,7 +527,7 @@ int msDrawBarChartLayer(mapObj *map, layerObj *layer, imageObj *image)
     msSetError(MS_MISCERR, "\"CHART_BAR_MINVAL\" must be less than \"CHART_BAR_MAXVAL\"", "msDrawBarChartLayer()");
     return MS_FAILURE;
   }
-  barWidth=(float)width/(float)layer->numclasses;
+  barWidth=(double)width/(double)layer->numclasses;
   if(!barWidth) {
     msSetError(MS_MISCERR, "Specified width of chart too small to fit given number of classes", "msDrawBarChartLayer()");
     return MS_FAILURE;
@@ -525,12 +535,12 @@ int msDrawBarChartLayer(mapObj *map, layerObj *layer, imageObj *image)
 
   msInitShape(&shape);
 
-  values=(float*)calloc(numvalues,sizeof(float));
-  MS_CHECK_ALLOC(values, numvalues*sizeof(float), MS_FAILURE);
+  values=(double*)calloc(numvalues,sizeof(double));
+  MS_CHECK_ALLOC(values, numvalues*sizeof(double), MS_FAILURE);
   styles = (styleObj**)malloc(numvalues*sizeof(styleObj*));
   if (styles == NULL) {
     msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msDrawBarChartLayer()",
-               __FILE__, __LINE__, numvalues*sizeof(styleObj*));
+               __FILE__, __LINE__, (unsigned int)(numvalues*sizeof(styleObj*)));
     free(values);
     return MS_FAILURE;
   }
@@ -614,9 +624,13 @@ int msDrawChartLayer(mapObj *map, layerObj *layer, imageObj *image)
     status = msLayerWhichShapes(layer, searchrect, MS_FALSE);
     if(status == MS_DONE) { /* no overlap */
       msLayerClose(layer);
+      if(chartType == MS_CHART_TYPE_PIE)
+        pieLayerCleanupDynamicDiameter(layer);
       return MS_SUCCESS;
     } else if(status != MS_SUCCESS) {
       msLayerClose(layer);
+      if(chartType == MS_CHART_TYPE_PIE)
+        pieLayerCleanupDynamicDiameter(layer);
       return MS_FAILURE;
     }
     switch(chartType) {
@@ -634,6 +648,9 @@ int msDrawChartLayer(mapObj *map, layerObj *layer, imageObj *image)
     }
 
     msLayerClose(layer);
+
+    if(chartType == MS_CHART_TYPE_PIE)
+      pieLayerCleanupDynamicDiameter(layer);
   }
   return status;
 }
diff --git a/mapcontext.c b/mapcontext.c
index a47770c..c0fcc24 100644
--- a/mapcontext.c
+++ b/mapcontext.c
@@ -1067,7 +1067,7 @@ int msLoadMapContextURL(mapObj *map, char *urlfilename, int unique_layer_names)
   }
 
   pszTmpFile = msTmpFile(map, map->mappath, NULL, "context.xml");
-  if (msHTTPGetFile(urlfilename, pszTmpFile, &status,-1, 0, 0) ==  MS_SUCCESS) {
+  if (msHTTPGetFile(urlfilename, pszTmpFile, &status,-1, 0, 0, 0) ==  MS_SUCCESS) {
     return msLoadMapContext(map, pszTmpFile, unique_layer_names);
   } else {
     msSetError(MS_MAPCONTEXTERR,
diff --git a/mapcontour.c b/mapcontour.c
new file mode 100644
index 0000000..12ae259
--- /dev/null
+++ b/mapcontour.c
@@ -0,0 +1,882 @@
+/**********************************************************************
+ * $Id: mapcontour.c 12629 2011-10-06 18:06:34Z aboudreault $
+ *
+ * Project:  MapServer
+ * Purpose:  Contour Layer
+ * Author:   Alan Boudreault (aboudreault at mapgears.com)
+ * Author:   Daniel Morissette (dmorissette at mapgears.com)
+ *
+ **********************************************************************
+ * Copyright (c) 2011, Alan Boudreault, MapGears
+ *
+ * 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 of this Software or works derived from this 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 OR COPYRIGHT HOLDERS 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.
+ **********************************************************************/
+
+#include "mapserver.h"
+#include "mapcopy.h"
+#include "mapresample.h"
+#ifdef USE_GDAL
+
+#include "ogr_api.h"
+#include "ogr_srs_api.h"
+#include "gdal.h"
+#include "gdal_alg.h"
+
+#include "mapthread.h"
+#include "cpl_string.h"
+
+#define GEO_TRANS(tr,x,y)  ((tr)[0]+(tr)[1]*(x)+(tr)[2]*(y))
+
+extern int InvGeoTransform(double *gt_in, double *gt_out);
+
+typedef struct {
+
+  /* OGR DataSource */
+  layerObj ogrLayer;
+
+  /* internal use */
+  GDALDatasetH hOrigDS;
+  GDALDatasetH  hDS;
+  double *buffer; /* memory dataset buffer */
+  rectObj extent; /* original dataset extent */
+  OGRDataSourceH hOGRDS;
+  double cellsize;
+
+} contourLayerInfo;
+
+
+static int msContourLayerInitItemInfo(layerObj *layer)
+{
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (clinfo == NULL) {
+    msSetError(MS_MISCERR, "Assertion failed: Contour layer not opened!!!",
+               "msContourLayerInitItemInfo()");
+    return MS_FAILURE;
+  }
+
+  return msLayerInitItemInfo(&clinfo->ogrLayer);
+}
+
+static void msContourLayerFreeItemInfo(layerObj *layer)
+{
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (clinfo == NULL) {
+    msSetError(MS_MISCERR, "Assertion failed: Contour layer not opened!!!",
+               "msContourLayerFreeItemInfo()");
+    return;
+  }
+
+  msLayerFreeItemInfo(&clinfo->ogrLayer);
+}
+
+static void msContourLayerInfoInitialize(layerObj *layer)
+{
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (clinfo != NULL)
+    return;
+
+  clinfo = (contourLayerInfo *) msSmallCalloc(1,sizeof(contourLayerInfo));
+  layer->layerinfo = clinfo;
+  clinfo->hOrigDS = NULL;  
+  clinfo->hDS = NULL;
+  clinfo->extent.minx = -1.0;
+  clinfo->extent.miny = -1.0;
+  clinfo->extent.maxx = -1.0;
+  clinfo->extent.maxy = -1.0;
+  
+  initLayer(&clinfo->ogrLayer, layer->map);
+  clinfo->ogrLayer.type = layer->type;
+  clinfo->ogrLayer.debug = layer->debug;
+  clinfo->ogrLayer.connectiontype = MS_OGR;
+  clinfo->ogrLayer.name = msStrdup(layer->name);
+  clinfo->ogrLayer.connection = (char*)msSmallMalloc(strlen(layer->name)+13);
+  sprintf(clinfo->ogrLayer.connection, "__%s_CONTOUR__", layer->name);
+  clinfo->ogrLayer.units = layer->units;
+}
+
+static void msContourLayerInfoFree(layerObj *layer)
+{
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (clinfo == NULL)
+    return;
+
+  freeLayer(&clinfo->ogrLayer);
+  free(clinfo);
+
+  layer->layerinfo = NULL;
+}
+
+static int msContourLayerReadRaster(layerObj *layer, rectObj rect)
+{
+  mapObj *map = layer->map;  
+  char **bands;
+  char pointer[64], memDSPointer[128];
+  int band = 1;
+  double adfGeoTransform[6], adfInvGeoTransform[6];
+  double llx, lly, urx, ury;  
+  rectObj copyRect, mapRect;
+  int dst_xsize, dst_ysize;
+  int virtual_grid_step_x, virtual_grid_step_y;
+  int src_xoff, src_yoff, src_xsize, src_ysize;  
+  double map_cellsize_x, map_cellsize_y, dst_cellsize_x, dst_cellsize_y;
+  GDALRasterBandH hBand = NULL;
+  CPLErr eErr;
+  
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (layer->debug)
+    msDebug("Entering msContourLayerReadRaster().\n");
+
+  if (clinfo == NULL || clinfo->hOrigDS == NULL) {
+    msSetError(MS_MISCERR, "Assertion failed: Contour layer not opened!!!",
+               "msContourLayerReadRaster()");
+    return MS_FAILURE;    
+  }
+
+  bands = CSLTokenizeStringComplex(
+               CSLFetchNameValue(layer->processing,"BANDS"), " ,", FALSE, FALSE );
+  if (CSLCount(bands) > 0) {
+    band = atoi(bands[0]);
+    if (band < 1 || band > GDALGetRasterCount(clinfo->hOrigDS)) {
+      msSetError( MS_IMGERR,
+                  "BANDS PROCESSING directive includes illegal band '%d', should be from 1 to %d.",
+                  "msContourLayerReadRaster()",
+                  band, GDALGetRasterCount(clinfo->hOrigDS));
+      CSLDestroy(bands);
+      return MS_FAILURE;
+    }
+  }
+  CSLDestroy(bands);
+
+  hBand = GDALGetRasterBand(clinfo->hOrigDS, band);
+  if (hBand == NULL)
+  {
+    msSetError(MS_IMGERR,
+               "Band %d does not exist on dataset.",
+               "msContourLayerReadRaster()", band);
+    return MS_FAILURE;
+  }
+
+  if (layer->projection.numargs > 0 &&
+      EQUAL(layer->projection.args[0], "auto")) {
+    const char *wkt;
+    wkt = GDALGetProjectionRef(clinfo->hOrigDS);
+    if (wkt != NULL && strlen(wkt) > 0) {
+      if (msOGCWKT2ProjectionObj(wkt, &(layer->projection),
+                                 layer->debug) != MS_SUCCESS) {
+        char  msg[MESSAGELENGTH*2];
+        errorObj *ms_error = msGetErrorObj();
+
+        snprintf( msg, sizeof(msg),
+                  "%s\n"
+                  "PROJECTION AUTO cannot be used for this "
+                  "GDAL raster (`%s').",
+                  ms_error->message, layer->data);
+        msg[MESSAGELENGTH-1] = '\0';
+
+        msSetError(MS_OGRERR, "%s","msDrawRasterLayer()",
+                   msg);
+        return MS_FAILURE;
+      }
+    }
+  }
+  
+  /*
+   * Compute the georeferenced window of overlap, and read the source data
+   * downsampled to match output resolution, or at full resolution if
+   * output resolution is lower than the source resolution.
+   *
+   * A large portion of this overlap calculation code was borrowed from 
+   * msDrawRasterLayerGDAL(). 
+   * Would be possible to move some of this to a reusable function?
+   *
+   * Note: This code works only if no reprojection is involved. It would
+   * need rework to support cases where output projection differs from source
+   * data file projection.
+   */
+  
+  src_xsize = GDALGetRasterXSize(clinfo->hOrigDS);
+  src_ysize = GDALGetRasterYSize(clinfo->hOrigDS);
+
+  /* set the Dataset extent */
+  msGetGDALGeoTransform(clinfo->hOrigDS, map, layer, adfGeoTransform);  
+  clinfo->extent.minx = adfGeoTransform[0];
+  clinfo->extent.maxy = adfGeoTransform[3];
+  clinfo->extent.maxx = adfGeoTransform[0] + src_xsize * adfGeoTransform[1];
+  clinfo->extent.miny = adfGeoTransform[3] + src_ysize * adfGeoTransform[5];
+  
+  if (layer->transform) {
+    if (layer->debug)
+      msDebug("msContourLayerReadRaster(): Entering transform.\n");
+
+    InvGeoTransform(adfGeoTransform, adfInvGeoTransform);
+
+    mapRect = rect;
+    map_cellsize_x = map_cellsize_y = map->cellsize;      
+#ifdef USE_PROJ
+    /* if necessary, project the searchrect to source coords */
+    if (msProjectionsDiffer( &(map->projection), &(layer->projection)))  {
+      if ( msProjectRect(&map->projection, &layer->projection, &mapRect)
+          != MS_SUCCESS ) {
+        msDebug("msContourLayerReadRaster(%s): unable to reproject map request rectangle into layer projection, canceling.\n", layer->name);
+        return MS_FAILURE;
+      }
+
+      map_cellsize_x = MS_CELLSIZE(mapRect.minx, mapRect.maxx, map->width);
+      map_cellsize_y = MS_CELLSIZE(mapRect.miny, mapRect.maxy, map->height);
+
+      /* if the projection failed to project the extent requested, we need to
+         calculate the cellsize to preserve the initial map cellsize ratio */
+      if ( (mapRect.minx < GEO_TRANS(adfGeoTransform,0,src_ysize)) ||
+           (mapRect.maxx > GEO_TRANS(adfGeoTransform,src_xsize,0)) ||
+           (mapRect.miny < GEO_TRANS(adfGeoTransform+3,0,src_ysize)) || 
+           (mapRect.maxy > GEO_TRANS(adfGeoTransform+3,src_xsize,0)) ) {
+
+        int src_unit, dst_unit;
+        src_unit = GetMapserverUnitUsingProj(&map->projection);
+        dst_unit = GetMapserverUnitUsingProj(&layer->projection);
+        if (src_unit == -1 || dst_unit == -1) {
+          msDebug("msContourLayerReadRaster(%s): unable to reproject map request rectangle into layer projection, canceling.\n", layer->name);
+          return MS_FAILURE;
+        }
+
+        map_cellsize_x =  MS_CONVERT_UNIT(src_unit, dst_unit,
+                                          MS_CELLSIZE(rect.minx, rect.maxx, map->width)); 
+        map_cellsize_y = MS_CONVERT_UNIT(src_unit, dst_unit,
+                                         MS_CELLSIZE(rect.miny, rect.maxy, map->height));
+      }       
+    }
+#endif
+    
+    if (map_cellsize_x == 0 || map_cellsize_y == 0) {
+      if (layer->debug)
+        msDebug("msContourLayerReadRaster(): Cellsize can't be 0.\n");
+      return MS_FAILURE;
+    }
+    
+    /* Adjust MapServer pixel model to GDAL pixel model */
+    mapRect.minx -= map_cellsize_x*0.5;
+    mapRect.maxx += map_cellsize_x*0.5;
+    mapRect.miny -= map_cellsize_y*0.5;
+    mapRect.maxy += map_cellsize_y*0.5;
+
+
+    /*
+     * If raw data cellsize (from geotransform) is larger than output map_cellsize
+     * then we want to extract only enough data to match the output map resolution
+     * which means that GDAL will automatically sample the data on read.
+     *
+     * To prevent bad contour effects on tile edges, we adjust the target cellsize 
+     * to align the extracted window with a virtual grid based on the origin of the 
+     * raw data and a virtual grid step size corresponding to an integer sampling step.
+     *
+     * If source data has a greater cellsize (i.e. lower res) that requested ouptut map
+     * then we use the raw data cellsize as target cellsize since there is no point in 
+     * interpolating the data for contours in this case.
+     */
+
+    virtual_grid_step_x = (int)floor(map_cellsize_x / ABS(adfGeoTransform[1]));
+    if (virtual_grid_step_x < 1)
+      virtual_grid_step_x = 1; /* Do not interpolate data if grid sampling step < 1 */
+
+    virtual_grid_step_y = (int)floor(map_cellsize_y / ABS(adfGeoTransform[5]));
+    if (virtual_grid_step_y < 1)
+      virtual_grid_step_y = 1; /* Do not interpolate data if grid sampling step < 1 */
+    
+    /* target cellsize is a multiple of raw data cellsize based on grid step*/
+    dst_cellsize_x = ABS(adfGeoTransform[1]) * virtual_grid_step_x;
+    dst_cellsize_y = ABS(adfGeoTransform[5]) * virtual_grid_step_y;
+
+    /* Compute overlap between source and target views */
+
+    copyRect = mapRect;
+
+    if (copyRect.minx < GEO_TRANS(adfGeoTransform,0,src_ysize))
+      copyRect.minx = GEO_TRANS(adfGeoTransform,0,src_ysize);
+    if (copyRect.maxx > GEO_TRANS(adfGeoTransform,src_xsize,0))
+      copyRect.maxx = GEO_TRANS(adfGeoTransform,src_xsize,0);
+    if (copyRect.miny < GEO_TRANS(adfGeoTransform+3,0,src_ysize))
+      copyRect.miny = GEO_TRANS(adfGeoTransform+3,0,src_ysize);
+    if (copyRect.maxy > GEO_TRANS(adfGeoTransform+3,src_xsize,0))
+      copyRect.maxy = GEO_TRANS(adfGeoTransform+3,src_xsize,0);
+    
+    if (copyRect.minx >= copyRect.maxx || copyRect.miny >= copyRect.maxy) {
+      if (layer->debug)
+        msDebug("msContourLayerReadRaster(): Error in overlap calculation.\n");
+      return MS_FAILURE;
+    }
+
+    /*
+     * Convert extraction window to raster coordinates
+     */
+    llx = GEO_TRANS(adfInvGeoTransform+0,copyRect.minx,copyRect.miny);
+    lly = GEO_TRANS(adfInvGeoTransform+3,copyRect.minx,copyRect.miny);
+    urx = GEO_TRANS(adfInvGeoTransform+0,copyRect.maxx,copyRect.maxy);
+    ury = GEO_TRANS(adfInvGeoTransform+3,copyRect.maxx,copyRect.maxy);
+
+    /* 
+     * Align extraction window with virtual grid 
+     * (keep in mind raster coordinates origin is at upper-left)
+     * We also add an extra buffer to fix tile boundarie issues when zoomed
+     */
+    llx = floor(llx / virtual_grid_step_x) * virtual_grid_step_x - (virtual_grid_step_x*5);
+    urx = ceil(urx / virtual_grid_step_x) * virtual_grid_step_x + (virtual_grid_step_x*5);
+    ury = floor(ury / virtual_grid_step_y) * virtual_grid_step_y - (virtual_grid_step_x*5);
+    lly = ceil(lly / virtual_grid_step_y) * virtual_grid_step_y + (virtual_grid_step_x*5);
+    
+    src_xoff = MAX(0,(int) floor(llx+0.5));
+    src_yoff = MAX(0,(int) floor(ury+0.5));
+    src_xsize = MIN(MAX(0,(int) (urx - llx + 0.5)),
+                    GDALGetRasterXSize(clinfo->hOrigDS) - src_xoff);
+    src_ysize = MIN(MAX(0,(int) (lly - ury + 0.5)),
+                    GDALGetRasterYSize(clinfo->hOrigDS) - src_yoff);
+
+    /* Update the geographic extent (buffer added) */
+    /* TODO: a better way to go the geo_trans */
+    copyRect.minx = GEO_TRANS(adfGeoTransform+0,src_xoff,0);
+    copyRect.maxx = GEO_TRANS(adfGeoTransform+0,src_xoff+src_xsize,0);
+    copyRect.miny = GEO_TRANS(adfGeoTransform+3,0,src_yoff+src_ysize);
+    copyRect.maxy = GEO_TRANS(adfGeoTransform+3,0,src_yoff);
+    
+    /* 
+     * If input window is to small then stop here
+     */
+    if (src_xsize < 2 || src_ysize < 2)
+    {
+      if (layer->debug)
+        msDebug("msContourLayerReadRaster(): input window too small, or no apparent overlap between map view and this window(1).\n");
+      return MS_FAILURE;
+    }
+
+    /* Target buffer size */
+    dst_xsize = (int)ceil((copyRect.maxx - copyRect.minx) / dst_cellsize_x);
+    dst_ysize = (int)ceil((copyRect.maxy - copyRect.miny) / dst_cellsize_y);
+
+    if (dst_xsize == 0 || dst_ysize == 0) {
+      if (layer->debug)
+        msDebug("msContourLayerReadRaster(): no apparent overlap between map view and this window(2).\n");
+      return MS_FAILURE;
+    }
+
+    if (layer->debug)
+      msDebug( "msContourLayerReadRaster(): src=%d,%d,%d,%d, dst=%d,%d,%d,%d\n",
+               src_xoff, src_yoff, src_xsize, src_ysize,
+               0, 0, dst_xsize, dst_ysize );
+  } else {
+    src_xoff = 0;
+    src_yoff = 0;
+    dst_xsize = src_xsize = MIN(map->width,src_xsize);
+    dst_ysize = src_ysize = MIN(map->height,src_ysize);
+  }
+
+  /* -------------------------------------------------------------------- */
+  /*      Allocate buffer, and read data into it.                         */
+  /* -------------------------------------------------------------------- */
+
+  clinfo->buffer = (double *) malloc(sizeof(double) * dst_xsize * dst_ysize);
+  if (clinfo->buffer == NULL) {
+    msSetError(MS_MEMERR, "Malloc(): Out of memory.", "msContourLayerReadRaster()");
+    return MS_FAILURE;
+  }
+
+  eErr = GDALRasterIO(hBand, GF_Read,
+                      src_xoff, src_yoff, src_xsize, src_ysize,
+                      clinfo->buffer, dst_xsize, dst_ysize, GDT_Float64,
+                      0, 0);
+
+  if (eErr != CE_None) {
+    msSetError( MS_IOERR, "GDALRasterIO() failed: %s",
+                "msContourLayerReadRaster()", CPLGetLastErrorMsg() );
+    free(clinfo->buffer);
+    return MS_FAILURE;
+  }
+
+  memset(pointer, 0, sizeof(pointer));
+  CPLPrintPointer(pointer, clinfo->buffer, sizeof(pointer));
+  sprintf(memDSPointer,"MEM:::DATAPOINTER=%s,PIXELS=%d,LINES=%d,BANDS=1,DATATYPE=Float64",
+          pointer, dst_xsize, dst_ysize);
+  clinfo->hDS = GDALOpen(memDSPointer,  GA_ReadOnly);
+  if (clinfo->hDS == NULL) {
+    msSetError(MS_IMGERR,
+               "Unable to open GDAL Memory dataset.",
+               "msContourLayerReadRaster()");
+    free(clinfo->buffer);
+    return MS_FAILURE;
+  }
+
+  adfGeoTransform[0] = copyRect.minx;
+  adfGeoTransform[1] = dst_cellsize_x;
+  adfGeoTransform[2] = 0;
+  adfGeoTransform[3] = copyRect.maxy;
+  adfGeoTransform[4] = 0;
+  adfGeoTransform[5] = -dst_cellsize_y;
+
+  clinfo->cellsize = MAX(dst_cellsize_x, dst_cellsize_y);
+  {
+    char buf[64];
+    sprintf(buf, "%lf", clinfo->cellsize);
+    msInsertHashTable(&layer->metadata, "__data_cellsize__", buf);
+  }
+      
+  GDALSetGeoTransform(clinfo->hDS, adfGeoTransform);
+  return MS_SUCCESS;
+}
+
+static void msContourOGRCloseConnection(void *conn_handle)
+{
+  OGRDataSourceH hDS = (OGRDataSourceH) conn_handle;
+
+  msAcquireLock(TLOCK_OGR);
+  OGR_DS_Destroy(hDS);
+  msReleaseLock(TLOCK_OGR);
+}
+
+/* Function that parses multiple options in the a list. It also supports
+   min/maxscaledenom checks. ie. "CONTOUR_INTERVAL=0,3842942:10" */
+static char* msContourGetOption(layerObj *layer, const char *name)
+{
+  int c, i, found = MS_FALSE;
+  char **values, **tmp, **options;
+  double maxscaledenom, minscaledenom;
+  char *value = NULL;
+  
+  options = CSLFetchNameValueMultiple(layer->processing, name);
+  c = CSLCount(options);
+
+  /* First pass to find the value among options that have min/maxscaledenom */
+  /* specified */
+  for (i=0; i<c && found == MS_FALSE; ++i) {
+    values = CSLTokenizeStringComplex(options[i], ":", FALSE, FALSE);
+    if (CSLCount(values) == 2) {
+      tmp = CSLTokenizeStringComplex(values[0], ",", FALSE, FALSE);
+      if (CSLCount(tmp) == 2) {
+        minscaledenom = atof(tmp[0]);
+        maxscaledenom = atof(tmp[1]);
+        if (layer->map->scaledenom <= 0 ||
+            (((maxscaledenom <= 0) || (layer->map->scaledenom <= maxscaledenom)) &&
+             ((minscaledenom <= 0) || (layer->map->scaledenom > minscaledenom)))) {
+          value = msStrdup(values[1]);
+          found = MS_TRUE;
+        }
+      }
+      CSLDestroy(tmp);
+    }
+    CSLDestroy(values);
+  }
+  
+  /* Second pass to find the value among options that do NOT have */
+  /* min/maxscaledenom specified */
+  for (i=0; i<c && found == MS_FALSE; ++i) {
+    values = CSLTokenizeStringComplex(options[i], ":", FALSE, FALSE);
+    if (CSLCount(values) == 1) {
+      value = msStrdup(values[0]);
+      found = MS_TRUE;
+    }
+    CSLDestroy(values);
+  }
+
+  CSLDestroy(options);
+
+  return value;
+}
+
+static int msContourLayerGenerateContour(layerObj *layer)
+{
+  OGRSFDriverH hDriver;
+  OGRFieldDefnH hFld;
+  OGRLayerH hLayer;
+  const char *elevItem;
+  char *option;
+  double interval = 1.0, levels[1000];
+  int levelCount = 0;
+  GDALRasterBandH hBand = NULL;
+  CPLErr eErr;
+
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  OGRRegisterAll();
+
+  if (clinfo == NULL) {
+    msSetError(MS_MISCERR, "Assertion failed: Contour layer not opened!!!",
+               "msContourLayerCreateOGRDataSource()");
+    return MS_FAILURE;
+  }
+
+  hBand = GDALGetRasterBand(clinfo->hDS, 1);
+  if (hBand == NULL)
+  {
+    msSetError(MS_IMGERR,
+               "Band %d does not exist on dataset.",
+               "msContourLayerGenerateContour()", 1);
+    return MS_FAILURE;
+  }
+
+  /* Create the OGR DataSource */
+  hDriver = OGRGetDriverByName("Memory");
+  if (hDriver == NULL) {
+    msSetError(MS_OGRERR,
+               "Unable to get OGR driver 'Memory'.",
+               "msContourLayerCreateOGRDataSource()");
+    return MS_FAILURE;
+  }
+
+  clinfo->hOGRDS = OGR_Dr_CreateDataSource(hDriver, NULL, NULL);
+  if (clinfo->hOGRDS == NULL) {
+    msSetError(MS_OGRERR,
+               "Unable to create OGR DataSource.",
+               "msContourLayerCreateOGRDataSource()");
+    return MS_FAILURE;
+  }
+
+  hLayer = OGR_DS_CreateLayer(clinfo->hOGRDS, clinfo->ogrLayer.name, NULL,
+                              wkbLineString, NULL );
+
+  hFld = OGR_Fld_Create("ID", OFTInteger);
+  OGR_Fld_SetWidth(hFld, 8);
+  OGR_L_CreateField(hLayer, hFld, FALSE);
+  OGR_Fld_Destroy(hFld);
+
+  /* Check if we have a coutour item specified */
+  elevItem = CSLFetchNameValue(layer->processing,"CONTOUR_ITEM");
+  if (elevItem && strlen(elevItem) > 0) {
+    hFld = OGR_Fld_Create(elevItem, OFTReal);
+    OGR_Fld_SetWidth(hFld, 12);
+    OGR_Fld_SetPrecision(hFld, 3);
+    OGR_L_CreateField(hLayer, hFld, FALSE);
+    OGR_Fld_Destroy(hFld);
+  }
+  else {
+    elevItem = NULL;
+  }
+
+  option = msContourGetOption(layer, "CONTOUR_INTERVAL");
+  if (option) {
+    interval = atof(option);
+    free(option);
+  }
+
+  option = msContourGetOption(layer, "CONTOUR_LEVELS");
+  if (option) {
+    int i,c;
+    char **levelsTmp;
+    levelsTmp = CSLTokenizeStringComplex(option, ",", FALSE, FALSE);
+    c = CSLCount(levelsTmp);
+    for (i=0;i<c && i<(int)(sizeof(levels)/sizeof(double)) ;++i)
+      levels[levelCount++] = atof(levelsTmp[i]);
+
+    CSLDestroy(levelsTmp);
+    free(option);
+  }
+    
+  eErr = GDALContourGenerate( hBand, interval, 0.0,
+                              levelCount, levels,
+                              FALSE, 0.0, hLayer,
+                              OGR_FD_GetFieldIndex(OGR_L_GetLayerDefn( hLayer),
+                                                    "ID" ),
+                              (elevItem == NULL) ? -1 :
+                              OGR_FD_GetFieldIndex(OGR_L_GetLayerDefn( hLayer), 
+                                                    elevItem ),
+                              NULL, NULL );
+
+  if (eErr != CE_None) {
+    msSetError( MS_IOERR, "GDALContourGenerate() failed: %s",
+                "msContourLayerGenerateContour()", CPLGetLastErrorMsg() );
+    return MS_FAILURE;
+  }
+  
+  msConnPoolRegister(&clinfo->ogrLayer, clinfo->hOGRDS, msContourOGRCloseConnection);
+
+  return MS_SUCCESS;
+
+}
+
+int msContourLayerOpen(layerObj *layer)
+{
+  char *decrypted_path;
+  char szPath[MS_MAXPATHLEN];  
+  contourLayerInfo *clinfo;
+
+  if (layer->debug)
+    msDebug("Entering msContourLayerOpen().\n");
+
+  /* If we don't have info, initialize an empty one now */
+  if (layer->layerinfo == NULL)
+    msContourLayerInfoInitialize(layer);
+
+  clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  GDALAllRegister();
+
+  /* Open the original Dataset */
+  msTryBuildPath3(szPath, layer->map->mappath, layer->map->shapepath, layer->data);
+  decrypted_path = msDecryptStringTokens(layer->map, szPath);
+
+  msAcquireLock(TLOCK_GDAL);
+  if (decrypted_path) {
+    clinfo->hOrigDS = GDALOpen(decrypted_path, GA_ReadOnly);
+    msFree(decrypted_path);
+  } else
+    clinfo->hOrigDS = NULL;
+
+  msReleaseLock(TLOCK_GDAL);
+
+  if (clinfo->hOrigDS == NULL) {
+    msSetError(MS_IMGERR,
+               "Unable to open GDAL dataset.",
+               "msContourLayerOpen()");
+    return MS_FAILURE;
+  }
+  
+  /* Open the raster source */
+  if (msContourLayerReadRaster(layer, layer->map->extent) != MS_SUCCESS)
+    return MS_FAILURE;
+
+  /* Generate Contour Dataset */
+  if (msContourLayerGenerateContour(layer) != MS_SUCCESS)
+    return MS_FAILURE;
+
+  GDALClose(clinfo->hDS);
+  clinfo->hDS = NULL;  
+  free(clinfo->buffer);
+
+  /* Open our virtual ogr layer */
+  if (msLayerOpen(&clinfo->ogrLayer) != MS_SUCCESS)
+    return MS_FAILURE;
+  
+  return MS_SUCCESS;
+}
+
+int msContourLayerIsOpen(layerObj *layer)
+{
+  if (layer->layerinfo)
+    return MS_TRUE;
+  return MS_FALSE;
+}
+  
+int msContourLayerClose(layerObj *layer)
+{
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (layer->debug)
+    msDebug("Entering msContourLayerClose().\n");
+
+  if (clinfo) {
+    msConnPoolRelease(&clinfo->ogrLayer, clinfo->hOGRDS);
+
+    msLayerClose(&clinfo->ogrLayer);
+    
+    if (clinfo->hDS) {
+      GDALClose(clinfo->hDS);
+      clinfo->hDS = NULL;
+      free(clinfo->buffer);      
+    }
+
+    if (clinfo->hOrigDS) {
+      GDALClose(clinfo->hOrigDS);
+      clinfo->hOrigDS = NULL;      
+    }
+
+    msContourLayerInfoFree(layer);
+
+  }
+  
+  return MS_SUCCESS;
+}
+
+int msContourLayerGetItems(layerObj *layer)
+{
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (clinfo == NULL) {
+    msSetError(MS_MISCERR, "Assertion failed: Contour layer not opened!!!",
+               "msContourLayerGetItems()");
+    return MS_FAILURE;
+  }
+
+  return msContourLayerGetItems(&clinfo->ogrLayer);
+}
+
+int msContourLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
+{
+  rectObj newRect;
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (layer->debug)
+    msDebug("Entering msContourLayerWhichShapes().\n");
+
+  if (clinfo == NULL) {
+    msSetError(MS_MISCERR, "Assertion failed: Contour layer not opened!!!",
+               "msContourLayerWhichShapes()");
+    return MS_FAILURE;
+  }
+
+  newRect = rect;
+  
+#ifdef USE_PROJ
+    /* if necessary, project the searchrect to source coords */
+    if (msProjectionsDiffer( &(layer->map->projection), &(layer->projection)))  {
+      if (msProjectRect(&layer->projection, &layer->map->projection, &newRect)
+          != MS_SUCCESS ) {
+        msDebug("msContourLayerWhichShapes(%s): unable to reproject map request rectangle into layer projection, canceling.\n", layer->name);
+        return MS_FAILURE;
+      }
+    }
+#endif
+
+  /* regenerate the raster io */
+  msConnPoolRelease(&clinfo->ogrLayer, clinfo->hOGRDS);
+  msLayerClose(&clinfo->ogrLayer);
+  
+  /* Open the raster source */
+  if (msContourLayerReadRaster(layer, newRect) != MS_SUCCESS)
+    return MS_FAILURE;
+
+  /* Generate Contour Dataset */
+  if (msContourLayerGenerateContour(layer) != MS_SUCCESS)
+    return MS_FAILURE;
+
+  GDALClose(clinfo->hDS);
+  clinfo->hDS = NULL;
+  free(clinfo->buffer);  
+  
+  /* Open our virtual ogr layer */
+  if (msLayerOpen(&clinfo->ogrLayer) != MS_SUCCESS)
+    return MS_FAILURE;
+
+  clinfo->ogrLayer.numitems = layer->numitems;
+  clinfo->ogrLayer.items = CSLDuplicate(layer->items); 
+
+  return msLayerWhichShapes(&clinfo->ogrLayer, rect, isQuery);
+}
+
+int msContourLayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
+{
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (layer->debug)
+    msDebug("Entering msContourLayerGetShape().\n");
+
+  if (clinfo == NULL) {
+    msSetError(MS_MISCERR, "Assertion failed: Contour layer not opened!!!",
+               "msContourLayerGetShape()");
+    return MS_FAILURE;
+  }
+
+  return msLayerGetShape(&clinfo->ogrLayer, shape, record);
+}
+
+int msContourLayerNextShape(layerObj *layer, shapeObj *shape)
+{
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (layer->debug)
+    msDebug("Entering msContourLayerNextShape().\n");
+
+  if (clinfo == NULL) {
+    msSetError(MS_MISCERR, "Assertion failed: Contour layer not opened!!!",
+               "msContourLayerNextShape()");
+    return MS_FAILURE;
+  }
+
+  return msLayerNextShape(&clinfo->ogrLayer, shape);
+}
+
+/************************************************************************/
+/*                       msContourLayerGetExtent()                     */
+/* Simple copy of the maprasterquery.c file. might change in the future */
+/************************************************************************/
+
+int msContourLayerGetExtent(layerObj *layer, rectObj *extent)
+{
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (layer->debug)
+    msDebug("Entering msContourLayerGetExtent().\n");
+
+  if (clinfo == NULL) {
+    msSetError(MS_MISCERR, "Assertion failed: Contour layer not opened!!!",
+               "msContourLayerGetExtent()");
+    return MS_FAILURE;
+  }
+
+  MS_COPYRECT(extent, &clinfo->extent);
+
+  return MS_SUCCESS;
+}
+
+int msContourLayerSetTimeFilter(layerObj *layer, const char *timestring,
+                                const char *timefield)
+{
+  contourLayerInfo *clinfo = (contourLayerInfo *) layer->layerinfo;
+
+  if (layer->debug)
+    msDebug("Entering msContourLayerSetTimeFilter().\n");
+
+  if (clinfo == NULL) {
+    msSetError(MS_MISCERR, "Assertion failed: Contour layer not opened!!!",
+               "msContourLayerSetTimeFilter()");
+    return MS_FAILURE;
+  }
+
+  return msLayerSetTimeFilter(&clinfo->ogrLayer, timestring, timefield);
+}
+
+
+/************************************************************************/
+/*                msRASTERLayerInitializeVirtualTable()                 */
+/************************************************************************/
+
+int msContourLayerInitializeVirtualTable(layerObj *layer)
+{
+  assert(layer != NULL);
+  assert(layer->vtable != NULL);
+
+  layer->vtable->LayerInitItemInfo = msContourLayerInitItemInfo;
+  layer->vtable->LayerFreeItemInfo = msContourLayerFreeItemInfo;
+  layer->vtable->LayerOpen = msContourLayerOpen;
+  layer->vtable->LayerIsOpen = msContourLayerIsOpen;
+  layer->vtable->LayerWhichShapes = msContourLayerWhichShapes;
+  layer->vtable->LayerNextShape = msContourLayerNextShape;
+  layer->vtable->LayerGetShape = msContourLayerGetShape;
+  layer->vtable->LayerClose = msContourLayerClose;
+  layer->vtable->LayerGetItems = msContourLayerGetItems;
+  layer->vtable->LayerGetExtent = msContourLayerGetExtent;
+  /* layer->vtable->LayerGetAutoStyle, use default */
+  /* layer->vtable->LayerApplyFilterToLayer, use default */
+  /*layer->vtable->LayerCloseConnection = msContourLayerClose;*/
+  /* we use backtics for proper tileindex shapefile functioning */
+  layer->vtable->LayerSetTimeFilter = msContourLayerSetTimeFilter;
+  /* layer->vtable->LayerCreateItems, use default */
+  /* layer->vtable->LayerGetNumFeatures, use default */
+
+  return MS_SUCCESS;
+}
+
+#else
+int msContourLayerInitializeVirtualTable(layerObj *layer)
+{
+  msSetError(MS_MISCERR, "Contour Layer needs GDAL support, but it it not compiled in", "msContourLayerInitializeVirtualTable()");
+  return MS_FAILURE;
+}
+#endif
+
diff --git a/mapcopy.c b/mapcopy.c
index 0f6b157..1d31c0c 100644
--- a/mapcopy.c
+++ b/mapcopy.c
@@ -852,6 +852,24 @@ int msCopyLegend(legendObj *dst, legendObj *src, mapObj *map)
   return MS_SUCCESS;
 }
 
+int msCopyScaleTokenEntry(scaleTokenEntryObj *src, scaleTokenEntryObj *dst) {
+  MS_COPYSTRING(dst->value,src->value);
+  MS_COPYSTELEM(minscale);
+  MS_COPYSTELEM(maxscale);
+  return MS_SUCCESS;
+}
+
+int msCopyScaleToken(scaleTokenObj *src, scaleTokenObj *dst) {
+  int i;
+  MS_COPYSTRING(dst->name,src->name);
+  MS_COPYSTELEM(n_entries);
+  dst->tokens = (scaleTokenEntryObj*)msSmallCalloc(src->n_entries,sizeof(scaleTokenEntryObj));
+  for(i=0;i<src->n_entries;i++) {
+    msCopyScaleTokenEntry(&src->tokens[i],&dst->tokens[i]);
+  }
+  return MS_SUCCESS;
+}
+
 /***********************************************************************
  * msCopyLayer()                                                       *
  *                                                                     *
@@ -872,6 +890,14 @@ int msCopyLayer(layerObj *dst, layerObj *src)
 
   MS_COPYSTELEM(classitemindex);
 
+  for(i = 0; i < src->numscaletokens; i++) {
+    if(msGrowLayerScaletokens(dst) == NULL)
+      return MS_FAILURE;
+    initScaleToken(&dst->scaletokens[i]);
+    msCopyScaleToken(&src->scaletokens[i],&dst->scaletokens[i]);
+    dst->numscaletokens++;
+  }
+
   for (i = 0; i < src->numclasses; i++) {
     if (msGrowLayerClasses(dst) == NULL)
       return MS_FAILURE;
@@ -930,6 +956,8 @@ int msCopyLayer(layerObj *dst, layerObj *src)
   MS_COPYSTRING(dst->tileitem, src->tileitem);
   MS_COPYSTELEM(tileitemindex);
 
+  MS_COPYSTRING(dst->tilesrs, src->tilesrs);
+
   MS_COPYSTRING(dst->tileindex, src->tileindex);
 
   return_value = msCopyProjection(&(dst->projection),&(src->projection));
diff --git a/mapdebug.c b/mapdebug.c
index 7bc817b..322fa6c 100644
--- a/mapdebug.c
+++ b/mapdebug.c
@@ -99,7 +99,7 @@ debugInfoObj *msGetDebugInfoObj()
       new_link->errorfile = NULL;
       new_link->fp = NULL;
     } else
-      msSetError(MS_MEMERR, "Out of memory allocating %u bytes.\n", "msGetDebugInfoObj()", sizeof(debugInfoObj));
+      msSetError(MS_MEMERR, "Out of memory allocating %u bytes.\n", "msGetDebugInfoObj()", (unsigned int)sizeof(debugInfoObj));
 
     debuginfo_list = new_link;
   }
diff --git a/mapdraw.c b/mapdraw.c
index 3937fb4..35f7a53 100644
--- a/mapdraw.c
+++ b/mapdraw.c
@@ -34,7 +34,6 @@
 #include "mapcopy.h"
 
 
-
 #ifdef USE_GD
 /*
  * Functions to reset any pen (color index) values previously set. Used primarily to reset things when
@@ -776,8 +775,11 @@ int msDrawLayer(mapObj *map, layerObj *layer, imageObj *image)
     renderer->startLayer(image_draw,map,layer);
   } else if (MS_RENDERER_PLUGIN(image_draw->format)) {
     rendererVTableObj *renderer = MS_IMAGE_RENDERER(image_draw);
-    if (layer->mask || (layer->opacity > 0 && layer->opacity < 100)) {
-      if (!renderer->supports_transparent_layers) {
+    if ((layer->mask && layer->connectiontype!=MS_WMS && layer->type != MS_LAYER_RASTER) || (layer->opacity > 0 && layer->opacity < 100)) {
+      /* masking occurs at the pixel/layer level for raster images, so we don't need to create a temporary image
+       in these cases
+       */
+      if (layer->mask || !renderer->supports_transparent_layers) {
         image_draw = msImageCreate(image->width, image->height,
                                    image->format, image->imagepath, image->imageurl, map->resolution, map->defresolution, NULL);
         if (!image_draw) {
@@ -981,7 +983,7 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
     /* Check if the shape size is ok to be drawn */
     if((shape.type == MS_SHAPE_LINE || shape.type == MS_SHAPE_POLYGON) && (minfeaturesize > 0) && (msShapeCheckSize(&shape, minfeaturesize) == MS_FALSE)) {
       if(layer->debug >= MS_DEBUGLEVEL_V)
-        msDebug("msDrawVectorLayer(): Skipping shape (%d) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
+        msDebug("msDrawVectorLayer(): Skipping shape (%ld) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
       msFreeShape(&shape);
       continue;
     }
@@ -1041,7 +1043,7 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
     if (layer->type == MS_LAYER_LINE && msLayerGetProcessingKey(layer, "POLYLINE_NO_CLIP")) {
       drawmode |= MS_DRAWMODE_UNCLIPPEDLINES;
     }
-    
+
     if (cache) {
       styleObj *pStyle = layer->class[shape.classindex]->styles[0];
       colorObj tmp;
@@ -1094,7 +1096,7 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
       retcode = MS_FAILURE;
       break;
     }
-
+    
     if(shape.numlines == 0) { /* once clipped the shape didn't need to be drawn */
       msFreeShape(&shape);
       continue;
@@ -1108,6 +1110,7 @@ int msDrawVectorLayer(mapObj *map, layerObj *layer, imageObj *image)
     }
 
     maxnumstyles = MS_MAX(maxnumstyles, layer->class[shape.classindex]->numstyles);
+
     msFreeShape(&shape);
   }
 
@@ -1467,14 +1470,21 @@ msDrawRasterLayerPlugin( mapObj *map, layerObj *layer, imageObj *image)
  */
 int msDrawRasterLayer(mapObj *map, layerObj *layer, imageObj *image)
 {
-  if (image && map && layer) {
-    if( MS_RENDERER_PLUGIN(image->format) ) {
-      return msDrawRasterLayerPlugin(map, layer, image);
-    } else if( MS_RENDERER_RAWDATA(image->format) )
-      return msDrawRasterLayerLow(map, layer, image, NULL);
-  }
-
-  return MS_FAILURE;
+  
+  int rv = MS_FAILURE;
+  if (!image || !map || !layer) {
+    return rv;
+  }
+
+  /* RFC-86 Scale dependant token replacements*/
+  rv = msLayerApplyScaletokens(layer,(layer->map)?layer->map->scaledenom:-1);
+  if (rv != MS_SUCCESS) return rv;
+  if( MS_RENDERER_PLUGIN(image->format) )
+    rv = msDrawRasterLayerPlugin(map, layer, image);
+  else if( MS_RENDERER_RAWDATA(image->format) )
+    rv = msDrawRasterLayerLow(map, layer, image, NULL);
+  msLayerRestoreFromScaletokens(layer);
+  return rv;
 }
 
 /**
@@ -2056,7 +2066,7 @@ int msDrawShape(mapObj *map, layerObj *layer, shapeObj *shape, imageObj *image,
         if (MS_SUCCESS != msPreloadImageSymbol(MS_MAP_RENDERER(map), symbol))
           return MS_FAILURE;
       } else if (symbol->type == MS_SYMBOL_SVG) {
-#ifdef USE_SVG_CAIRO
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
         if (MS_SUCCESS != msPreloadSVGSymbol(symbol))
           return MS_FAILURE;
 #else
@@ -2243,7 +2253,7 @@ int msDrawPoint(mapObj *map, layerObj *layer, pointObj *point, imageObj *image,
         if(msScaleInBounds(map->scaledenom, theclass->styles[s]->minscaledenom, theclass->styles[s]->maxscaledenom))
           msDrawMarkerSymbol(&map->symbolset, image, point, theclass->styles[s], layer->scalefactor);
       }
-      if(labeltext && (strlen(labeltext)>0)) {
+      if(labeltext) {
         if(layer->labelcache) {
           if(msAddLabel(map, label, layer->index, classindex, NULL, point, NULL, -1) != MS_SUCCESS) return(MS_FAILURE);
         } else
@@ -2947,12 +2957,17 @@ int msDrawLabelCache(imageObj *image, mapObj *map)
                   /* TODO: treat the case with multiple labels and/or leader lines */
                 }
 
-                /* apply offset and buffer settings */
-                label_offset_x = labelPtr->offsetx*scalefactor;
-                label_offset_y = labelPtr->offsety*scalefactor;
-                label_buffer = (labelPtr->buffer*image->resolutionfactor);
-                label_mindistance = (labelPtr->mindistance*image->resolutionfactor);
-
+                 /* apply offset and buffer settings */
+                 if(labelPtr->anglemode != MS_FOLLOW) {
+                   label_offset_x = labelPtr->offsetx*scalefactor;
+                   label_offset_y = labelPtr->offsety*scalefactor;
+                 } else {
+                   label_offset_x = 0;
+                   label_offset_y = 0;
+                 }
+                 label_buffer = (labelPtr->buffer*image->resolutionfactor);
+                 label_mindistance = (labelPtr->mindistance*image->resolutionfactor);
+                 
 #ifdef oldcode
                 /* adjust the baseline (see #1449) */
                 if(labelPtr->type == MS_TRUETYPE) {
diff --git a/mapdrawgdal.c b/mapdrawgdal.c
index 11ef598..54ef084 100644
--- a/mapdrawgdal.c
+++ b/mapdrawgdal.c
@@ -39,6 +39,7 @@ extern int InvGeoTransform( double *gt_in, double *gt_out );
 
 #define MAXCOLORS 256
 #define GEO_TRANS(tr,x,y)  ((tr)[0]+(tr)[1]*(x)+(tr)[2]*(y))
+#define SKIP_MASK(x,y) (mask_rb && !*(mask_rb->data.rgba.a+(y)*mask_rb->data.rgba.row_step+(x)*mask_rb->data.rgba.pixel_step))
 
 #if defined(USE_GDAL)
 
@@ -129,12 +130,21 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
   GDALRasterBandH hBand1=NULL, hBand2=NULL, hBand3=NULL, hBandAlpha=NULL;
   int bHaveRGBNoData = FALSE;
   int nNoData1=-1,nNoData2=-1,nNoData3=-1;
+  rasterBufferObj *mask_rb = NULL;
 #ifdef USE_GD
   int   anColorCube[256];
   int cmt=0;
   /*make sure we don't have a truecolor gd image*/
   assert(!rb || rb->type != MS_BUFFER_GD || !gdImageTrueColor(rb->data.gd_img));
 #endif
+  if(layer->mask) {
+    int ret;
+    layerObj *maskLayer = GET_LAYER(map, msGetLayerIndex(map,layer->mask));
+    mask_rb = msSmallCalloc(1,sizeof(rasterBufferObj)); 
+    ret = MS_IMAGE_RENDERER(maskLayer->maskimage)->getRasterBufferHandle(maskLayer->maskimage,mask_rb);
+    if(ret != MS_SUCCESS)
+      return -1;
+  }
 
   /*only support rawdata and pluggable renderers*/
   assert(MS_RENDERER_RAWDATA(image->format) || (MS_RENDERER_PLUGIN(image->format) && rb));
@@ -808,6 +818,9 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
         alpha = pabyRawAlpha[k];
 
         result = cmap[pabyRaw1[k++]];
+        if(SKIP_MASK(j,i)) {
+          continue;
+        }
 
         /*
         ** We don't do alpha blending in non-truecolor mode, just
@@ -834,6 +847,9 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
 
       for( j = dst_xoff; j < dst_xoff + dst_xsize; j++ ) {
         result = cmap[pabyRaw1[k++]];
+        if(SKIP_MASK(j,i)) {
+          continue;
+        }
         if( result != -1 ) {
           rb->data.gd_img->pixels[i][j] = result;
         }
@@ -854,6 +870,10 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
       for( i = dst_yoff; i < dst_yoff + dst_ysize; i++ ) {
         for( j = dst_xoff; j < dst_xoff + dst_xsize; j++ ) {
           int src_pixel, src_alpha, cmap_alpha, merged_alpha;
+          if(SKIP_MASK(j,i)) {
+            k++;
+            continue;
+          }
 
           src_pixel = pabyRaw1[k];
           src_alpha = pabyRawAlpha[k];
@@ -891,6 +911,9 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
       for( i = dst_yoff; i < dst_yoff + dst_ysize; i++ ) {
         for( j = dst_xoff; j < dst_xoff + dst_xsize; j++ ) {
           int src_pixel = pabyRaw1[k++];
+          if(SKIP_MASK(j,i)) {
+            continue;
+          }
 
           if( rb_cmap[3][src_pixel] > 253 ) {
             RB_SET_PIXEL( rb, j, i,
@@ -918,6 +941,9 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
       k = 0;
       for( i = dst_yoff; i < dst_yoff + dst_ysize; i++ ) {
         for( j = dst_xoff; j < dst_xoff + dst_xsize; j++, k++ ) {
+          if(SKIP_MASK(j,i)) {
+            continue;
+          }
           if( MS_VALID_COLOR( layer->offsite )
               && pabyRaw1[k] == layer->offsite.red
               && pabyRaw2[k] == layer->offsite.green
@@ -972,6 +998,9 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
         k = 0;
         for( i = dst_yoff; i < dst_yoff + dst_ysize; i++ ) {
           for( j = dst_xoff; j < dst_xoff + dst_xsize; j++, k++ ) {
+            if(SKIP_MASK(j,i)) {
+              continue;
+            }
             if( MS_VALID_COLOR( layer->offsite )
                 && pabyRaw1[k] == layer->offsite.red
                 && pabyRaw2[k] == layer->offsite.green
@@ -1000,6 +1029,9 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
         for( i = dst_yoff; i < dst_yoff + dst_ysize; i++ ) {
           for( j = dst_xoff; j < dst_xoff + dst_xsize; j++, k++ ) {
             int cc_index;
+            if(SKIP_MASK(j,i)) {
+              continue;
+            }
 
             if( MS_VALID_COLOR( layer->offsite )
                 && pabyRaw1[k] == layer->offsite.red
@@ -1031,6 +1063,7 @@ int msDrawRasterLayerGDAL(mapObj *map, layerObj *layer, imageObj *image,
   ** Cleanup
   */
 
+  msFree( mask_rb );
   free( pabyRaw1 );
 
   if( hColorMap != NULL )
@@ -1251,7 +1284,7 @@ static int ApplyLUT( int iColorIndex, layerObj *layer,
       msSetError(MS_IOERR,
                  "LUT definition from file %s longer than maximum buffer size (%d bytes).",
                  "drawGDAL()",
-                 path, sizeof(lut_def_fromfile) );
+                 path, (int)sizeof(lut_def_fromfile) );
       return -1;
     }
 
@@ -1813,36 +1846,6 @@ int msGetGDALGeoTransform( GDALDatasetH hDS, mapObj *map, layerObj *layer,
   }
 
   /* -------------------------------------------------------------------- */
-  /*      Try OWS extent metadata.  We only try this if we know there     */
-  /*      is metadata so that we don't end up going into the layer        */
-  /*      getextent function which will in turn reopen the file with      */
-  /*      potential performance and locking problems.                     */
-  /* -------------------------------------------------------------------- */
-#if defined(USE_WMS_SVR) || defined (USE_WFS_SVR)
-  if ((value = msOWSLookupMetadata(&(layer->metadata), "MFCO", "extent"))
-      != NULL) {
-    int success;
-
-    msReleaseLock( TLOCK_GDAL );
-    success = msOWSGetLayerExtent( map, layer, "MFCO", &rect );
-    msAcquireLock( TLOCK_GDAL );
-
-    if( success == MS_SUCCESS ) {
-      padfGeoTransform[0] = rect.minx;
-      padfGeoTransform[1] = (rect.maxx - rect.minx) /
-                            (double) GDALGetRasterXSize( hDS );
-      padfGeoTransform[2] = 0;
-      padfGeoTransform[3] = rect.maxy;
-      padfGeoTransform[4] = 0;
-      padfGeoTransform[5] = (rect.miny - rect.maxy) /
-                            (double) GDALGetRasterYSize( hDS );
-
-      return MS_SUCCESS;
-    }
-  }
-#endif
-
-  /* -------------------------------------------------------------------- */
   /*      We didn't find any info ... use the default.                    */
   /*      Reset our default geotransform.  GDALGetGeoTransform() may      */
   /*      have altered it even if GDALGetGeoTransform() failed.           */
@@ -1879,6 +1882,15 @@ msDrawRasterLayerGDAL_RawMode(
   unsigned char *b_nodatas = NULL;
   GInt16 *i_nodatas = NULL;
   int got_nodata=FALSE;
+  rasterBufferObj *mask_rb = NULL;
+  if(layer->mask) {
+    int ret;
+    layerObj *maskLayer = GET_LAYER(map, msGetLayerIndex(map,layer->mask));
+    mask_rb = msSmallCalloc(1,sizeof(rasterBufferObj)); 
+    ret = MS_IMAGE_RENDERER(maskLayer->maskimage)->getRasterBufferHandle(maskLayer->maskimage,mask_rb);
+    if(ret != MS_SUCCESS)
+      return -1;
+  }
 
   if( image->format->bands > 256 ) {
     msSetError( MS_IMGERR, "Too many bands (more than 256).",
@@ -1920,7 +1932,7 @@ msDrawRasterLayerGDAL_RawMode(
   f_nodatas = (float *) calloc(sizeof(float),band_count);
   if (f_nodatas == NULL) {
     msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msDrawRasterLayerGDAL_RawMode()",
-               __FILE__, __LINE__, sizeof(float)*band_count);
+               __FILE__, __LINE__, (unsigned int)(sizeof(float)*band_count));
     free( band_list );
     return -1;
   }
@@ -1998,8 +2010,8 @@ msDrawRasterLayerGDAL_RawMode(
                     + band*image->width*image->height;
           int off_mask = j + i * image->width;
 
-          if( i_nodatas
-              && ((GInt16 *) pBuffer)[k] == i_nodatas[band] ) {
+          if( ( i_nodatas && ((GInt16 *) pBuffer)[k] == i_nodatas[band] )
+              || SKIP_MASK(j,i)) {
             k++;
             continue;
           }
@@ -2013,8 +2025,8 @@ msDrawRasterLayerGDAL_RawMode(
                     + band*image->width*image->height;
           int off_mask = j + i * image->width;
 
-          if( f_nodatas
-              && ((float *) pBuffer)[k] == f_nodatas[band] ) {
+          if( ( f_nodatas && ((float *) pBuffer)[k] == f_nodatas[band] )
+              || SKIP_MASK(j,i)) {
             k++;
             continue;
           }
@@ -2028,8 +2040,8 @@ msDrawRasterLayerGDAL_RawMode(
                     + band*image->width*image->height;
           int off_mask = j + i * image->width;
 
-          if( b_nodatas
-              && ((unsigned char *) pBuffer)[k] == b_nodatas[band] ) {
+          if( ( b_nodatas && ((unsigned char *) pBuffer)[k] == b_nodatas[band] )
+              || SKIP_MASK(j,i)) {
             k++;
             continue;
           }
@@ -2041,6 +2053,7 @@ msDrawRasterLayerGDAL_RawMode(
     }
   }
 
+  msFree( mask_rb );
   free( pBuffer );
   free( f_nodatas );
 
@@ -2077,6 +2090,15 @@ msDrawRasterLayerGDAL_16BitClassification(
   int  *cmap, c, j, k, bGotNoData = FALSE, bGotFirstValue;
   unsigned char *rb_cmap[4];
   CPLErr eErr;
+  rasterBufferObj *mask_rb = NULL;
+  if(layer->mask) {
+    int ret;
+    layerObj *maskLayer = GET_LAYER(map, msGetLayerIndex(map,layer->mask));
+    mask_rb = msSmallCalloc(1,sizeof(rasterBufferObj)); 
+    ret = MS_IMAGE_RENDERER(maskLayer->maskimage)->getRasterBufferHandle(maskLayer->maskimage,mask_rb);
+    if(ret != MS_SUCCESS)
+      return -1;
+  }
 
   assert( rb->type == MS_BUFFER_GD || rb->type == MS_BUFFER_BYTE_RGBA );
 
@@ -2283,6 +2305,9 @@ msDrawRasterLayerGDAL_16BitClassification(
         continue;
       }
 
+      if(SKIP_MASK(j,i))
+        continue;
+
       /*
        * The funny +1/-1 is to avoid odd rounding around zero.
        * We could use floor() but sometimes it is expensive.
@@ -2322,6 +2347,7 @@ msDrawRasterLayerGDAL_16BitClassification(
   free( rb_cmap[1] );
   free( rb_cmap[2] );
   free( rb_cmap[3] );
+  msFree( mask_rb );
 
   assert( k == dst_xsize * dst_ysize );
 
@@ -2437,7 +2463,7 @@ int *msGetGDALBandList( layerObj *layer, void *hDS,
                     "msGetGDALBandList()",
                     papszItems[i], GDALGetRasterCount(hDS) );
         CSLDestroy( papszItems );
-        CPLFree( band_list );
+        free( band_list );
         return NULL;
       }
     }
diff --git a/maperror.c b/maperror.c
index 8d924b6..1cb2a94 100644
--- a/maperror.c
+++ b/maperror.c
@@ -85,7 +85,6 @@ static char *ms_errorCodes[MS_NUMERRORCODES] = {"",
     "OpenGL renderer error.",
     "Renderer error."
                                                };
-
 #ifndef USE_THREAD
 
 errorObj *msGetErrorObj()
@@ -515,9 +514,6 @@ char *msGetVersion()
 #if (defined USE_GD_JPEG || defined USE_JPEG)
   strcat(version, " OUTPUT=JPEG");
 #endif
-#ifdef USE_PDF
-  strcat(version, " OUTPUT=PDF");
-#endif
 #ifdef USE_KML
   strcat(version, " OUTPUT=KML");
 #endif
@@ -532,8 +528,13 @@ char *msGetVersion()
 #ifdef USE_CAIRO
   strcat(version, " SUPPORTS=CAIRO");
 #endif
-#ifdef USE_SVG_CAIRO
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
   strcat(version, " SUPPORTS=SVG_SYMBOLS");
+  #ifdef USE_SVG_CAIRO
+    strcat(version, " SUPPORTS=SVGCAIRO");
+  #else
+    strcat(version, " SUPPORTS=RSVG");
+  #endif
 #endif
 #ifdef USE_OGL
   strcat(version, " SUPPORTS=OPENGL");
@@ -577,12 +578,6 @@ char *msGetVersion()
 #ifdef USE_POINT_Z_M
   strcat(version, " SUPPORTS=POINT_Z_M");
 #endif
-#ifdef USE_TIFF
-  strcat(version, " INPUT=TIFF");
-#endif
-#ifdef USE_EPPL
-  strcat(version, " INPUT=EPPL7");
-#endif
 #ifdef USE_JPEG
   strcat(version, " INPUT=JPEG");
 #endif
diff --git a/maperror.h b/maperror.h
index fe6bf4d..0ed965c 100644
--- a/maperror.h
+++ b/maperror.h
@@ -94,6 +94,14 @@ extern "C" {
 #define  MS_DLL_EXPORT
 #endif
 
+#ifndef MS_PRINT_FUNC_FORMAT
+#if defined(__GNUC__) && __GNUC__ >= 3 && !defined(DOXYGEN_SKIP)
+#define MS_PRINT_FUNC_FORMAT( format_idx, arg_idx )  __attribute__((__format__ (__printf__, format_idx, arg_idx)))
+#else
+#define MS_PRINT_FUNC_FORMAT( format_idx, arg_idx )
+#endif
+#endif
+
   typedef struct errorObj {
     int code;
     char routine[ROUTINELENGTH];
@@ -114,7 +122,7 @@ extern "C" {
   MS_DLL_EXPORT char *msGetErrorString(char *delimiter);
 
 #ifndef SWIG
-  MS_DLL_EXPORT void msSetError(int code, const char *message, const char *routine, ...);
+  MS_DLL_EXPORT void msSetError(int code, const char *message, const char *routine, ...) MS_PRINT_FUNC_FORMAT(2,4) ;
   MS_DLL_EXPORT void msWriteError(FILE *stream);
   MS_DLL_EXPORT void msWriteErrorXML(FILE *stream);
   MS_DLL_EXPORT char *msGetErrorCodeString(int code);
@@ -157,7 +165,7 @@ extern "C" {
   } debugInfoObj;
 
 
-  MS_DLL_EXPORT void msDebug( const char * pszFormat, ... );
+  MS_DLL_EXPORT void msDebug( const char * pszFormat, ... ) MS_PRINT_FUNC_FORMAT(1,2) ;
   MS_DLL_EXPORT int msSetErrorFile(const char *pszErrorFile, const char *pszRelToPath);
   MS_DLL_EXPORT void msCloseErrorFile( void );
   MS_DLL_EXPORT const char *msGetErrorFile( void );
diff --git a/mapfile.c b/mapfile.c
index 181f151..f1b818d 100644
--- a/mapfile.c
+++ b/mapfile.c
@@ -32,6 +32,7 @@
 #include <stdarg.h>
 #include <assert.h>
 #include <ctype.h>
+#include <float.h>
 
 #include "mapserver.h"
 #include "mapfile.h"
@@ -89,7 +90,7 @@ char *msPositionsText[MS_POSITIONS_LENGTH] = {"UL", "LR", "UR", "LL", "CR", "CL"
 
 /*
 ** Validates a string (value) against a series of patterns. We support up to four to allow cascading from classObj to
-** layerObj to webObj plus a legacy pattern like TEMPLATEPATTERN or qstring_validation_pattern.
+** layerObj to webObj plus a legacy pattern like TEMPLATEPATTERN.
 */
 int msValidateParameter(char *value, char *pattern1, char *pattern2, char *pattern3, char *pattern4)
 {
@@ -478,26 +479,26 @@ int loadColorWithAlpha(colorObj *color)
 */
 static void writeLineFeed(FILE *stream)
 {
-  fprintf(stream, "\n");
+  msIO_fprintf(stream, "\n");
 }
 
 static void writeIndent(FILE *stream, int indent)
 {
   const char *str="  "; /* change this string to define the indent */
   int i;
-  for(i=0; i<indent; i++) fprintf(stream, "%s", str);
+  for(i=0; i<indent; i++) msIO_fprintf(stream, "%s", str);
 }
 
 static void writeBlockBegin(FILE *stream, int indent, const char *name)
 {
   writeIndent(stream, indent);
-  fprintf(stream, "%s\n", name);
+  msIO_fprintf(stream, "%s\n", name);
 }
 
 static void writeBlockEnd(FILE *stream, int indent, const char *name)
 {
   writeIndent(stream, indent);
-  fprintf(stream, "END # %s\n", name);
+  msIO_fprintf(stream, "END # %s\n", name);
 }
 
 static void writeKeyword(FILE *stream, int indent, const char *name, int value, int size, ...)
@@ -512,7 +513,7 @@ static void writeKeyword(FILE *stream, int indent, const char *name, int value,
     s = va_arg(argp, const char *);
     if(value == i) {
       writeIndent(stream, ++indent);
-      fprintf(stream, "%s %s\n", name, s);
+      msIO_fprintf(stream, "%s %s\n", name, s);
       va_end(argp);
       return;
     }
@@ -524,31 +525,31 @@ static void writeKeyword(FILE *stream, int indent, const char *name, int value,
 static void writeDimension(FILE *stream, int indent, const char *name, int x, int y, char *bind_x, char *bind_y)
 {
   writeIndent(stream, ++indent);
-  if(bind_x) fprintf(stream, "%s [%s] ", name, bind_x);
-  else fprintf(stream, "%s %d ", name, x);
-  if(bind_y) fprintf(stream, "[%s]\n", bind_y);
-  else fprintf(stream, "%d\n", y);
+  if(bind_x) msIO_fprintf(stream, "%s [%s] ", name, bind_x);
+  else msIO_fprintf(stream, "%s %d ", name, x);
+  if(bind_y) msIO_fprintf(stream, "[%s]\n", bind_y);
+  else msIO_fprintf(stream, "%d\n", y);
 }
 
 static void writeExtent(FILE *stream, int indent, const char *name, rectObj extent)
 {
   if(!MS_VALID_EXTENT(extent)) return;
   writeIndent(stream, ++indent);
-  fprintf(stream, "%s %.15g %.15g %.15g %.15g\n", name, extent.minx, extent.miny, extent.maxx, extent.maxy);
+  msIO_fprintf(stream, "%s %.15g %.15g %.15g %.15g\n", name, extent.minx, extent.miny, extent.maxx, extent.maxy);
 }
 
 static void writeNumber(FILE *stream, int indent, const char *name, double defaultNumber, double number)
 {
   if(number == defaultNumber) return; /* don't output default */
   writeIndent(stream, ++indent);
-  fprintf(stream, "%s %g\n", name, number);
+  msIO_fprintf(stream, "%s %g\n", name, number);
 }
 
 static void writeCharacter(FILE *stream, int indent, const char *name, const char defaultCharacter, char character)
 {
   if(defaultCharacter == character) return;
   writeIndent(stream, ++indent);
-  fprintf(stream, "%s '%c'\n", name, character);
+  msIO_fprintf(stream, "%s '%c'\n", name, character);
 }
 
 static void writeString(FILE *stream, int indent, const char *name, const char *defaultString, char *string)
@@ -558,16 +559,16 @@ static void writeString(FILE *stream, int indent, const char *name, const char *
   if(!string) return;
   if(defaultString && strcmp(string, defaultString) == 0) return;
   writeIndent(stream, ++indent);
-  if(name) fprintf(stream, "%s ", name);
+  if(name) msIO_fprintf(stream, "%s ", name);
   if ( (strchr(string, '\'') == NULL) && (strchr(string, '\"') == NULL))
-    fprintf(stream, "\"%s\"\n", string);
+    msIO_fprintf(stream, "\"%s\"\n", string);
   else if ( (strchr(string, '\"') != NULL) && (strchr(string, '\'') == NULL))
-    fprintf(stream, "'%s'\n", string);
+    msIO_fprintf(stream, "'%s'\n", string);
   else if ( (strchr(string, '\'') != NULL) && (strchr(string, '\"') == NULL))
-    fprintf(stream, "\"%s\"\n", string);
+    msIO_fprintf(stream, "\"%s\"\n", string);
   else {
     string_tmp = msStringEscape(string);
-    fprintf(stream, "\"%s\"\n", string_tmp);
+    msIO_fprintf(stream, "\"%s\"\n", string_tmp);
     if(string!=string_tmp) free(string_tmp);
   }
 }
@@ -592,7 +593,7 @@ static void writeNumberOrKeyword(FILE *stream, int indent, const char *name, dou
     s = va_arg(argp, const char *);
     if(value == i) {
       writeIndent(stream, ++indent);
-      fprintf(stream, "%s %s\n", name, s);
+      msIO_fprintf(stream, "%s %s\n", name, s);
       va_end(argp);
       return;
     }
@@ -610,26 +611,26 @@ static void writeNameValuePair(FILE *stream, int indent, const char *name, const
   writeIndent(stream, ++indent);
 
   if ( (strchr(name, '\'') == NULL) && (strchr(name, '\"') == NULL))
-    fprintf(stream, "\"%s\"\t", name);
+    msIO_fprintf(stream, "\"%s\"\t", name);
   else if ( (strchr(name, '\"') != NULL) && (strchr(name, '\'') == NULL))
-    fprintf(stream, "'%s'\t", name);
+    msIO_fprintf(stream, "'%s'\t", name);
   else if ( (strchr(name, '\'') != NULL) && (strchr(name, '\"') == NULL))
-    fprintf(stream, "\"%s\"\t", name);
+    msIO_fprintf(stream, "\"%s\"\t", name);
   else {
     string_tmp = msStringEscape(name);
-    fprintf(stream, "\"%s\"\t", string_tmp);
+    msIO_fprintf(stream, "\"%s\"\t", string_tmp);
     if(name!=string_tmp) free(string_tmp);
   }
 
   if ( (strchr(value, '\'') == NULL) && (strchr(value, '\"') == NULL))
-    fprintf(stream, "\"%s\"\n", value);
+    msIO_fprintf(stream, "\"%s\"\n", value);
   else if ( (strchr(value, '\"') != NULL) && (strchr(value, '\'') == NULL))
-    fprintf(stream, "'%s'\n", value);
+    msIO_fprintf(stream, "'%s'\n", value);
   else if ( (strchr(value, '\'') != NULL) && (strchr(value, '\"') == NULL))
-    fprintf(stream, "\"%s\"\n", value);
+    msIO_fprintf(stream, "\"%s\"\n", value);
   else {
     string_tmp = msStringEscape(value);
-    fprintf(stream, "\"%s\"\n", string_tmp);
+    msIO_fprintf(stream, "\"%s\"\n", string_tmp);
     if(value!=string_tmp) free(string_tmp);
   }
 }
@@ -638,7 +639,7 @@ static void writeAttributeBinding(FILE *stream, int indent, const char *name, at
 {
   if(!binding || !binding->item) return;
   writeIndent(stream, ++indent);
-  fprintf(stream, "%s [%s]\n", name, binding->item);
+  msIO_fprintf(stream, "%s [%s]\n", name, binding->item);
 }
 
 static void writeColor(FILE *stream, int indent, const char *name, colorObj *defaultColor, colorObj *color)
@@ -648,9 +649,19 @@ static void writeColor(FILE *stream, int indent, const char *name, colorObj *def
 
   writeIndent(stream, ++indent);
 #if ALPHACOLOR_ENABLED
-  fprintf(stream, "%s %d %d %d\n", name, color->red, color->green, color->blue, color->alpha);
+  msIO_fprintf(stream, "%s %d %d %d\n", name, color->red, color->green, color->blue, color->alpha);
 #else
-  fprintf(stream, "%s %d %d %d\n", name, color->red, color->green, color->blue);
+  if(color->alpha != 255) {
+    char buffer[9];
+    sprintf(buffer, "%02x", color->red);
+    sprintf(buffer+2, "%02x", color->green);
+    sprintf(buffer+4, "%02x", color->blue);
+    sprintf(buffer+6, "%02x", color->alpha);
+    *(buffer+8) = 0;
+    fprintf(stream, "%s \"#%s\"\n", name, buffer);
+  } else {
+    fprintf(stream, "%s %d %d %d\n", name, color->red, color->green, color->blue);
+  }
 #endif
 }
 
@@ -659,7 +670,7 @@ static void writeColorRange(FILE *stream, int indent, const char *name, colorObj
 {
   if(!MS_VALID_COLOR(*mincolor) || !MS_VALID_COLOR(*maxcolor)) return;
   writeIndent(stream, ++indent);
-  fprintf(stream, "%s %d %d %d  %d %d %d\n", name, mincolor->red, mincolor->green, mincolor->blue, maxcolor->red, maxcolor->green, maxcolor->blue);
+  msIO_fprintf(stream, "%s %d %d %d  %d %d %d\n", name, mincolor->red, mincolor->green, mincolor->blue, maxcolor->red, maxcolor->green, maxcolor->blue);
 }
 
 /*
@@ -768,6 +779,23 @@ int loadJoin(joinObj *join)
   } /* next token */
 }
 
+static void writeScaleToken(FILE *stream, int indent, scaleTokenObj *token) {
+  int i;
+  indent++;
+  writeBlockBegin(stream,indent,"SCALETOKEN");
+  writeString(stream, indent, "NAME", NULL, token->name);
+  indent++;
+  writeBlockBegin(stream,indent,"VALUES");
+  for(i=0;i<token->n_entries;i++) {
+    char minscale[32];
+    sprintf(minscale,"%g",token->tokens[i].minscale);
+    writeNameValuePair(stream, indent, minscale, token->tokens[i].value);
+  }
+  writeBlockEnd(stream,indent,"VALUES");
+  indent--;
+  writeBlockEnd(stream,indent,"SCALETOKEN");
+}
+
 static void writeJoin(FILE *stream, int indent, joinObj *join)
 {
   indent++;
@@ -954,7 +982,7 @@ static void writeFeature(FILE *stream, int indent, shapeObj *feature)
     writeBlockBegin(stream, indent, "POINTS");
     for(j=0; j<feature->line[i].numpoints; j++) {
       writeIndent(stream, indent);
-      fprintf(stream, "%.15g %.15g\n", feature->line[i].point[j].x, feature->line[i].point[j].y);
+      msIO_fprintf(stream, "%.15g %.15g\n", feature->line[i].point[j].x, feature->line[i].point[j].y);
     }
     writeBlockEnd(stream, indent, "POINTS");
   }
@@ -962,14 +990,14 @@ static void writeFeature(FILE *stream, int indent, shapeObj *feature)
 
   if (feature->numvalues) {
     writeIndent(stream, indent);
-    fprintf(stream, "ITEMS \"");
+    msIO_fprintf(stream, "ITEMS \"");
     for (i=0; i<feature->numvalues; i++) {
       if (i == 0)
-        fprintf(stream, "%s", feature->values[i]);
+        msIO_fprintf(stream, "%s", feature->values[i]);
       else
-        fprintf(stream, ";%s", feature->values[i]);
+        msIO_fprintf(stream, ";%s", feature->values[i]);
     }
-    fprintf(stream, "\"\n");
+    msIO_fprintf(stream, "\"\n");
   }
 
   writeString(stream, indent, "TEXT", NULL, feature->text);
@@ -1584,6 +1612,19 @@ int msLoadProjectionString(projectionObj *p, const char *value)
     p->args = (char**)msSmallMalloc(sizeof(char*) * 2);
     p->args[0] = msStrdup(init_string);
     p->numargs = 1;
+  /* Mandatory support for this URI format specified in WFS1.1 (also in 1.0?) */
+  } else if (EQUALN("http://www.opengis.net/gml/srs/epsg.xml#", value, 40)) {
+  	/* We assume always lon/lat ordering, as that is what GeoServer does... */
+  	const char *code;
+
+  	code = value + 40;
+
+  	p->args = (char **) msSmallMalloc(sizeof(char *));
+  	/* translate into PROJ.4 format as we go */
+  	p->args[0] = (char *) msSmallMalloc(11 + strlen(code));
+  	snprintf(p->args[0], 11 + strlen(code), "init=epsg:%s", code);
+  	p->numargs = 1;
+
   } else if (strncasecmp(value, "CRS:",4) == 0 ) {
     char init_string[100];
     init_string[0] = '\0';
@@ -1849,6 +1890,7 @@ static int loadLabel(labelObj *label)
         break;
       case(EOF):
         msSetError(MS_EOFERR, NULL, "loadLabel()");
+        freeLabel(label);       /* free any structures allocated before EOF */
         return(-1);
       case(EXPRESSION):
         if(loadExpression(&(label->expression)) == -1) return(-1); /* loadExpression() cleans up previously allocated expression */
@@ -2180,6 +2222,29 @@ static void writeLabel(FILE *stream, int indent, labelObj *label)
   writeBlockEnd(stream, indent, "LABEL");
 }
 
+char* msWriteLabelToString(labelObj *label)
+{
+  msIOContext  context;
+  msIOBuffer buffer;
+
+  context.label = NULL;
+  context.write_channel = MS_TRUE;
+  context.readWriteFunc = msIO_bufferWrite;
+  context.cbData = &buffer;
+  buffer.data = NULL;
+  buffer.data_len = 0;
+  buffer.data_offset = 0;
+
+  msIO_installHandlers( NULL, &context, NULL );
+
+  writeLabel(stdout, -1, label);
+  msIO_bufferWrite( &buffer, "", 1 );
+
+  msIO_installHandlers( NULL, NULL, NULL );
+
+  return (char*)buffer.data;
+}
+
 void initExpression(expressionObj *exp)
 {
   exp->type = MS_STRING;
@@ -2241,7 +2306,7 @@ int loadExpression(expressionObj *exp)
   /* TODO: should we fall freeExpression if exp->string != NULL? We do some checking to avoid a leak but is it enough... */
 
   msyystring_icase = MS_TRUE;
-  if((exp->type = getSymbol(5, MS_STRING,MS_EXPRESSION,MS_REGEX,MS_ISTRING,MS_IREGEX)) == -1) return(-1);
+  if((exp->type = getSymbol(6, MS_STRING,MS_EXPRESSION,MS_REGEX,MS_ISTRING,MS_IREGEX,MS_LIST)) == -1) return(-1);
   if (exp->string != NULL)
     msFree(exp->string);
   exp->string = msStrdup(msyystring_buffer);
@@ -2289,7 +2354,7 @@ int loadExpressionString(expressionObj *exp, char *value)
   freeExpression(exp); /* we're totally replacing the old expression so free (which re-inits) to start over */
 
   msyystring_icase = MS_TRUE;
-  if((exp->type = getSymbol2(4, MS_EXPRESSION,MS_REGEX,MS_IREGEX,MS_ISTRING)) != -1) {
+  if((exp->type = getSymbol2(5, MS_EXPRESSION,MS_REGEX,MS_IREGEX,MS_ISTRING,MS_LIST)) != -1) {
     exp->string = msStrdup(msyystring_buffer);
 
     if(exp->type == MS_ISTRING) {
@@ -2342,6 +2407,9 @@ char *msGetExpressionString(expressionObj *exp)
       case(MS_EXPRESSION):
         snprintf(exprstring, buffer_size, "(%s)", exp->string);
         return exprstring;
+      case(MS_LIST):
+        snprintf(exprstring, buffer_size, "{%s}", exp->string);
+        return exprstring;
       default:
         /* We should never get to here really! */
         free(exprstring);
@@ -2358,28 +2426,31 @@ static void writeExpression(FILE *stream, int indent, const char *name, expressi
 
   writeIndent(stream, ++indent);
   switch(exp->type) {
+    case(MS_LIST):
+      fprintf(stream, "%s {%s}", name, exp->string);
+      break;
     case(MS_REGEX):
-      fprintf(stream, "%s /%s/", name, exp->string);
+      msIO_fprintf(stream, "%s /%s/", name, exp->string);
       break;
     case(MS_STRING):
       if ( (strchr(exp->string, '\'') == NULL) && (strchr(exp->string, '\"') == NULL))
-        fprintf(stream, "%s \"%s\"", name, exp->string);
+        msIO_fprintf(stream, "%s \"%s\"", name, exp->string);
       else if ( (strchr(exp->string, '\"') != NULL) && (strchr(exp->string, '\'') == NULL))
-        fprintf(stream, "%s \'%s\'", name, exp->string);
+        msIO_fprintf(stream, "%s \'%s\'", name, exp->string);
       else if ( (strchr(exp->string, '\'') != NULL) && (strchr(exp->string, '\"') == NULL))
-        fprintf(stream, "%s \"%s\"", name, exp->string);
+        msIO_fprintf(stream, "%s \"%s\"", name, exp->string);
       else {
         string_tmp = msStringEscape(exp->string);
-        fprintf(stream, "%s \"%s\"", name, string_tmp);
+        msIO_fprintf(stream, "%s \"%s\"", name, string_tmp);
         if(exp->string!=string_tmp) free(string_tmp);
       }
       break;
     case(MS_EXPRESSION):
-      fprintf(stream, "%s (%s)", name, exp->string);
+      msIO_fprintf(stream, "%s (%s)", name, exp->string);
       break;
   }
   if((exp->type == MS_STRING || exp->type == MS_REGEX) && (exp->flags & MS_EXP_INSENSITIVE))
-    fprintf(stream, "i");
+    msIO_fprintf(stream, "i");
   writeLineFeed(stream);
 }
 
@@ -2446,7 +2517,7 @@ static void writeHashTableInline(FILE *stream, int indent, char *name, hashTable
     if (table->items[i] != NULL) {
       for (tp=table->items[i]; tp!=NULL; tp=tp->next) {
         writeIndent(stream, indent);
-        fprintf(stream, "%s \"%s\" \"%s\"\n", name, tp->key, tp->data);
+        msIO_fprintf(stream, "%s \"%s\" \"%s\"\n", name, tp->key, tp->data);
       }
     }
   }
@@ -2550,6 +2621,29 @@ static void writeCluster(FILE *stream, int indent, clusterObj *cluster)
   writeBlockEnd(stream, indent, "CLUSTER");
 }
 
+char* msWriteClusterToString(clusterObj *cluster)
+{
+  msIOContext  context;
+  msIOBuffer buffer;
+
+  context.label = NULL;
+  context.write_channel = MS_TRUE;
+  context.readWriteFunc = msIO_bufferWrite;
+  context.cbData = &buffer;
+  buffer.data = NULL;
+  buffer.data_len = 0;
+  buffer.data_offset = 0;
+
+  msIO_installHandlers( NULL, &context, NULL );
+
+  writeCluster(stdout, -1, cluster);
+  msIO_bufferWrite( &buffer, "", 1 );
+
+  msIO_installHandlers( NULL, NULL, NULL );
+
+  return (char*)buffer.data;
+}
+
 /*
 ** Initialize, load and free a single style
 */
@@ -2946,7 +3040,7 @@ void writeStyle(FILE *stream, int indent, styleObj *style)
 
   if(style->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION) {
     writeIndent(stream, indent + 1);
-    fprintf(stream, "GEOMTRANSFORM (%s)\n", style->_geomtransform.string);
+    msIO_fprintf(stream, "GEOMTRANSFORM (%s)\n", style->_geomtransform.string);
   }
   else if(style->_geomtransform.type != MS_GEOMTRANSFORM_NONE) {
     writeKeyword(stream, indent, "GEOMTRANSFORM", style->_geomtransform.type, 7,
@@ -3009,8 +3103,8 @@ void writeStyle(FILE *stream, int indent, styleObj *style)
     writeBlockBegin(stream,indent,"PATTERN");
     writeIndent(stream, indent);
     for(i=0; i<style->patternlength; i++)
-      fprintf(stream, " %.2f", style->pattern[i]);
-    fprintf(stream,"\n");
+      msIO_fprintf(stream, " %.2f", style->pattern[i]);
+    msIO_fprintf(stream,"\n");
     writeBlockEnd(stream,indent,"PATTERN");
     indent--;
   }
@@ -3043,6 +3137,29 @@ void writeStyle(FILE *stream, int indent, styleObj *style)
   writeBlockEnd(stream, indent, "STYLE");
 }
 
+char* msWriteStyleToString(styleObj *style)
+{
+  msIOContext  context;
+  msIOBuffer buffer;
+
+  context.label = NULL;
+  context.write_channel = MS_TRUE;
+  context.readWriteFunc = msIO_bufferWrite;
+  context.cbData = &buffer;
+  buffer.data = NULL;
+  buffer.data_len = 0;
+  buffer.data_offset = 0;
+
+  msIO_installHandlers( NULL, &context, NULL );
+
+  writeStyle(stdout, -1, style);
+  msIO_bufferWrite( &buffer, "", 1 );
+
+  msIO_installHandlers( NULL, NULL, NULL );
+
+  return (char*)buffer.data;
+}
+
 /*
 ** Initialize, load and free a single class
 */
@@ -3389,7 +3506,10 @@ int loadClass(classObj *class, layerObj *layer)
         if(msGrowClassLabels(class) == NULL) return(-1);
         initLabel(class->labels[class->numlabels]);
         class->labels[class->numlabels]->size = MS_MEDIUM; /* only set a default if the LABEL section is present */
-        if(loadLabel(class->labels[class->numlabels]) == -1) return(-1);
+        if(loadLabel(class->labels[class->numlabels]) == -1) {
+          msFree(class->labels[class->numlabels]);
+          return(-1);
+        }
         class->numlabels++;
         break;
       case(LEADER):
@@ -3646,6 +3766,29 @@ static void writeClass(FILE *stream, int indent, classObj *class)
   writeBlockEnd(stream, indent, "CLASS");
 }
 
+char* msWriteClassToString(classObj *class)
+{
+  msIOContext  context;
+  msIOBuffer buffer;
+
+  context.label = NULL;
+  context.write_channel = MS_TRUE;
+  context.readWriteFunc = msIO_bufferWrite;
+  context.cbData = &buffer;
+  buffer.data = NULL;
+  buffer.data_len = 0;
+  buffer.data_offset = 0;
+
+  msIO_installHandlers( NULL, &context, NULL );
+
+  writeClass(stdout, -1, class);
+  msIO_bufferWrite( &buffer, "", 1 );
+
+  msIO_installHandlers( NULL, NULL, NULL );
+
+  return (char*)buffer.data;
+}
+
 /*
 ** Initialize, load and free a single layer structure
 */
@@ -3692,6 +3835,9 @@ int initLayer(layerObj *layer, mapObj *map)
   layer->maxfeatures = -1; /* no quota */
   layer->startindex = -1; /*used for pagination*/
 
+  layer->scaletokens = NULL;
+  layer->numscaletokens = 0;
+
   layer->template = layer->header = layer->footer = NULL;
 
   layer->transform = MS_TRUE;
@@ -3719,6 +3865,7 @@ int initLayer(layerObj *layer, mapObj *map)
   layer->tileitem = msStrdup("location");
   layer->tileitemindex = -1;
   layer->tileindex = NULL;
+  layer->tilesrs = NULL;
 
   layer->bandsitem = NULL;
   layer->bandsitemindex = -1;
@@ -3772,9 +3919,34 @@ int initLayer(layerObj *layer, mapObj *map)
   layer->mask = NULL;
   layer->maskimage = NULL;
 
+  initExpression(&(layer->_geomtransform));
+  layer->_geomtransform.type = MS_GEOMTRANSFORM_NONE;
+  
   return(0);
 }
 
+int initScaleToken(scaleTokenObj* token) {
+  token->n_entries = 0;
+  token->name = NULL;
+  token->tokens = NULL;
+  return MS_SUCCESS;
+}
+
+int freeScaleTokenEntry( scaleTokenEntryObj *token) {
+  msFree(token->value);
+  return MS_SUCCESS;
+}
+
+int freeScaleToken(scaleTokenObj *scaletoken) {
+  int i;
+  msFree(scaletoken->name);
+  for(i=0;i<scaletoken->n_entries;i++) {
+    freeScaleTokenEntry(&scaletoken->tokens[i]);
+  }
+  msFree(scaletoken->tokens);
+  return MS_SUCCESS;
+}
+
 int freeLayer(layerObj *layer)
 {
   int i;
@@ -3799,6 +3971,7 @@ int freeLayer(layerObj *layer)
   msFree(layer->template);
   msFree(layer->tileindex);
   msFree(layer->tileitem);
+  msFree(layer->tilesrs);
   msFree(layer->bandsitem);
   msFree(layer->plugin_library);
   msFree(layer->plugin_library_original);
@@ -3807,7 +3980,8 @@ int freeLayer(layerObj *layer)
   msFree(layer->classgroup);
 
   msFreeProjection(&(layer->projection));
-
+  freeExpression(&layer->_geomtransform);
+  
   freeCluster(&layer->cluster);
 
   for(i=0; i<layer->maxclasses; i++) {
@@ -3820,6 +3994,13 @@ int freeLayer(layerObj *layer)
   }
   msFree(layer->class);
 
+  if(layer->numscaletokens>0) {
+    for(i=0;i<layer->numscaletokens;i++) {
+      freeScaleToken(&layer->scaletokens[i]);
+    }
+    msFree(layer->scaletokens);
+  }
+
   if(layer->features)
     freeFeatureList(layer->features);
 
@@ -3900,6 +4081,85 @@ classObj *msGrowLayerClasses( layerObj *layer )
   return layer->class[layer->numclasses];
 }
 
+scaleTokenObj *msGrowLayerScaletokens( layerObj *layer )
+{
+  layer->scaletokens = msSmallRealloc(layer->scaletokens,(layer->numscaletokens+1)*sizeof(scaleTokenObj));
+  memset(&layer->scaletokens[layer->numscaletokens],0,sizeof(scaleTokenObj));
+  return &layer->scaletokens[layer->numscaletokens];
+}
+
+int loadScaletoken(scaleTokenObj *token, layerObj *layer) {
+  for(;;) {
+    int stop = 0;
+    switch(msyylex()) {
+      case(EOF):
+        msSetError(MS_EOFERR, NULL, "loadScaletoken()");
+        return(MS_FAILURE);
+      case(NAME):
+        if(getString(&token->name) == MS_FAILURE) return(MS_FAILURE);
+        break;
+      case(VALUES):
+         for(;;) {
+           if(stop) break;
+           switch(msyylex()) {
+             case(EOF):
+               msSetError(MS_EOFERR, NULL, "loadScaletoken()");
+               return(MS_FAILURE);
+             case(END): 
+               stop = 1;
+               if(token->n_entries == 0) {
+                 msSetError(MS_PARSEERR,"Scaletoken (line:%d) has no VALUES defined","loadScaleToken()",msyylineno);
+                 return(MS_FAILURE);
+               }
+               token->tokens[token->n_entries-1].maxscale = DBL_MAX;
+               break;
+             case(MS_STRING):
+               /* we have a key */
+               token->tokens = msSmallRealloc(token->tokens,(token->n_entries+1)*sizeof(scaleTokenEntryObj));
+               
+               if(1 != sscanf(msyystring_buffer,"%lf",&token->tokens[token->n_entries].minscale)) {
+                 msSetError(MS_PARSEERR, "failed to parse SCALETOKEN VALUE (%s):(line %d), expecting \"minscale\"", "loadScaletoken()",
+                         msyystring_buffer,msyylineno);
+                 return(MS_FAILURE);
+               }
+               if(token->n_entries == 0) {
+                 /* check supplied value was 0*/
+                 if(token->tokens[0].minscale != 0) {
+                  msSetError(MS_PARSEERR, "First SCALETOKEN VALUE (%s):(line %d) must be zero, expecting \"0\"", "loadScaletoken()",
+                         msyystring_buffer,msyylineno);
+                  return(MS_FAILURE);
+                 }
+               } else {
+                 /* set max scale of previous token */
+                 token->tokens[token->n_entries-1].maxscale = token->tokens[token->n_entries].minscale;
+               }
+               token->tokens[token->n_entries].value = NULL;
+               if(getString(&(token->tokens[token->n_entries].value)) == MS_FAILURE) return(MS_FAILURE);
+               token->n_entries++;
+               break;
+             default:
+               msSetError(MS_IDENTERR, "Parsing error near (%s):(line %d)", "loadScaletoken()",  msyystring_buffer, msyylineno );
+               return(MS_FAILURE);
+           }
+         }
+         break;
+      case(END):
+        if(!token->name || !*(token->name)) {
+          msSetError(MS_PARSEERR,"ScaleToken missing mandatory NAME entry (line %d)","loadScaleToken()",msyylineno);
+          return MS_FAILURE;
+        }
+        if(token->n_entries == 0) {
+          msSetError(MS_PARSEERR,"ScaleToken missing at least one VALUES entry (line %d)","loadScaleToken()",msyylineno);
+          return MS_FAILURE;
+        }
+        return MS_SUCCESS;
+      default:
+        msSetError(MS_IDENTERR, "Parsing error 2 near (%s):(line %d)", "loadScaletoken()",  msyystring_buffer, msyylineno );
+        return(MS_FAILURE);
+    }
+  } /* next token*/
+}
+
 int loadLayer(layerObj *layer, mapObj *map)
 {
   int type;
@@ -3957,7 +4217,7 @@ int loadLayer(layerObj *layer, mapObj *map)
         }
         break;
       case(CONNECTIONTYPE):
-        if((layer->connectiontype = getSymbol(10, MS_SDE, MS_OGR, MS_POSTGIS, MS_WMS, MS_ORACLESPATIAL, MS_WFS, MS_GRATICULE, MS_PLUGIN, MS_UNION, MS_UVRASTER)) == -1) return(-1);
+        if((layer->connectiontype = getSymbol(11, MS_SDE, MS_OGR, MS_POSTGIS, MS_WMS, MS_ORACLESPATIAL, MS_WFS, MS_GRATICULE, MS_PLUGIN, MS_UNION, MS_UVRASTER, MS_CONTOUR)) == -1) return(-1);
         break;
       case(DATA):
         if(getString(&layer->data) == MS_FAILURE) return(-1); /* getString() cleans up previously allocated string */
@@ -4068,6 +4328,15 @@ int loadLayer(layerObj *layer, mapObj *map)
           }
         }
         break;
+      case(GEOMTRANSFORM): {
+        int s;
+        if((s = getSymbol(1, MS_EXPRESSION)) == -1) return(MS_FAILURE);
+        /* handle expression case here for the moment */
+        msFree(layer->_geomtransform.string);
+        layer->_geomtransform.string = msStrdup(msyystring_buffer);
+        layer->_geomtransform.type = MS_GEOMTRANSFORM_EXPRESSION;
+      }
+      break;
       case(HEADER):
         if(getString(&layer->header) == MS_FAILURE) return(-1); /* getString() cleans up previously allocated string */
         if(msyysource == MS_URL_TOKENS) {
@@ -4216,6 +4485,13 @@ int loadLayer(layerObj *layer, mapObj *map)
           }
         }
         break;
+      case(SCALETOKEN):
+        if (msGrowLayerScaletokens(layer) == NULL)
+          return(-1);
+        initScaleToken(&layer->scaletokens[layer->numscaletokens]);
+        if(loadScaletoken(&layer->scaletokens[layer->numscaletokens], layer) == -1) return(-1);
+        layer->numscaletokens++;
+        break;
       case(SIZEUNITS):
         if((layer->sizeunits = getSymbol(8, MS_INCHES,MS_FEET,MS_MILES,MS_METERS,MS_KILOMETERS,MS_NAUTICALMILES,MS_DD,MS_PIXELS)) == -1) return(-1);
         break;
@@ -4270,6 +4546,17 @@ int loadLayer(layerObj *layer, mapObj *map)
           }
         }
         break;
+      case(TILESRS):
+        if(getString(&layer->tilesrs) == MS_FAILURE) return(-1); /* getString() cleans up previously allocated string */
+        if(msyysource == MS_URL_TOKENS) {
+          if(msValidateParameter(layer->tilesrs, msLookupHashTable(&(layer->validation), "tilesrs"), msLookupHashTable(&(map->web.validation), "tilesrs"), NULL, NULL) != MS_SUCCESS) {
+            msSetError(MS_MISCERR, "URL-based TILESRS configuration failed pattern validation." , "loadLayer()");
+            msFree(layer->tilesrs);
+            layer->tilesrs=NULL;
+            return(-1);
+          }
+        }
+        break;
       case(TOLERANCE):
         if(getDouble(&(layer->tolerance)) == -1) return(-1);
         break;
@@ -4349,7 +4636,7 @@ static void writeLayer(FILE *stream, int indent, layerObj *layer)
   writeString(stream, indent, "CLASSITEM", NULL, layer->classitem);
   writeCluster(stream, indent, &(layer->cluster));
   writeString(stream, indent, "CONNECTION", NULL, layer->connection);
-  writeKeyword(stream, indent, "CONNECTIONTYPE", layer->connectiontype, 9, MS_SDE, "SDE", MS_OGR, "OGR", MS_POSTGIS, "POSTGIS", MS_WMS, "WMS", MS_ORACLESPATIAL, "ORACLESPATIAL", MS_WFS, "WFS", MS_PLUGIN, "PLUGIN", MS_UNION, "UNION", MS_UVRASTER, "UVRASTER");
+  writeKeyword(stream, indent, "CONNECTIONTYPE", layer->connectiontype, 10, MS_SDE, "SDE", MS_OGR, "OGR", MS_POSTGIS, "POSTGIS", MS_WMS, "WMS", MS_ORACLESPATIAL, "ORACLESPATIAL", MS_WFS, "WFS", MS_PLUGIN, "PLUGIN", MS_UNION, "UNION", MS_UVRASTER, "UVRASTER", MS_CONTOUR, "CONTOUR");
   writeString(stream, indent, "DATA", NULL, layer->data);
   writeNumber(stream, indent, "DEBUG", 0, layer->debug); /* is this right? see loadLayer() */
   writeExtent(stream, indent, "EXTENT", layer->extent);
@@ -4357,6 +4644,12 @@ static void writeLayer(FILE *stream, int indent, layerObj *layer)
   writeString(stream, indent, "FILTERITEM", NULL, layer->filteritem);
   writeString(stream, indent, "FOOTER", NULL, layer->footer);
   writeString(stream, indent, "GROUP", NULL, layer->group);
+
+  if(layer->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION) {
+    writeIndent(stream, indent + 1);
+    fprintf(stream, "GEOMTRANSFORM (%s)\n", layer->_geomtransform.string);
+  }
+  
   writeString(stream, indent, "HEADER", NULL, layer->header);
   /* join - see below */
   writeKeyword(stream, indent, "LABELCACHE", layer->labelcache, 1, MS_OFF, "OFF");
@@ -4387,6 +4680,7 @@ static void writeLayer(FILE *stream, int indent, layerObj *layer)
   writeString(stream, indent, "TEMPLATE", NULL, layer->template);
   writeString(stream, indent, "TILEINDEX", NULL, layer->tileindex);
   writeString(stream, indent, "TILEITEM", NULL, layer->tileitem);
+  writeString(stream, indent, "TILESRS", NULL, layer->tilesrs);
   writeNumber(stream, indent, "TOLERANCE", -1, layer->tolerance);
   writeKeyword(stream, indent, "TOLERANCEUNITS", layer->toleranceunits, 7, MS_INCHES, "INCHES", MS_FEET ,"FEET", MS_MILES, "MILES", MS_METERS, "METERS", MS_KILOMETERS, "KILOMETERS", MS_NAUTICALMILES, "NAUTICALMILES", MS_DD, "DD");
   writeKeyword(stream, indent, "TRANSFORM", layer->transform, 10, MS_FALSE, "FALSE", MS_UL, "UL", MS_UC, "UC", MS_UR, "UR", MS_CL, "CL", MS_CC, "CC", MS_CR, "CR", MS_LL, "LL", MS_LC, "LC", MS_LR, "LR");
@@ -4396,6 +4690,7 @@ static void writeLayer(FILE *stream, int indent, layerObj *layer)
   writeHashTable(stream, indent, "VALIDATION", &(layer->validation));
 
   /* write potentially multiply occuring objects last */
+  for(i=0; i<layer->numscaletokens; i++)  writeScaleToken(stream, indent, &(layer->scaletokens[i]));
   for(i=0; i<layer->numjoins; i++)  writeJoin(stream, indent, &(layer->joins[i]));
   for(i=0; i<layer->numclasses; i++) writeClass(stream, indent, layer->class[i]);
 
@@ -4413,6 +4708,29 @@ static void writeLayer(FILE *stream, int indent, layerObj *layer)
   writeLineFeed(stream);
 }
 
+char* msWriteLayerToString(layerObj *layer)
+{
+  msIOContext  context;
+  msIOBuffer buffer;
+
+  context.label = NULL;
+  context.write_channel = MS_TRUE;
+  context.readWriteFunc = msIO_bufferWrite;
+  context.cbData = &buffer;
+  buffer.data = NULL;
+  buffer.data_len = 0;
+  buffer.data_offset = 0;
+
+  msIO_installHandlers( NULL, &context, NULL );
+
+  writeLayer(stdout, -1, layer);
+  msIO_bufferWrite( &buffer, "", 1 );
+
+  msIO_installHandlers( NULL, NULL, NULL );
+
+  return (char*)buffer.data;
+}
+
 /*
 ** Initialize, load and free a referenceMapObj structure
 */
@@ -4569,6 +4887,29 @@ static void writeReferenceMap(FILE *stream, int indent, referenceMapObj *ref)
   writeLineFeed(stream);
 }
 
+char* msWriteReferenceMapToString(referenceMapObj *ref)
+{
+  msIOContext  context;
+  msIOBuffer buffer;
+
+  context.label = NULL;
+  context.write_channel = MS_TRUE;
+  context.readWriteFunc = msIO_bufferWrite;
+  context.cbData = &buffer;
+  buffer.data = NULL;
+  buffer.data_len = 0;
+  buffer.data_offset = 0;
+
+  msIO_installHandlers( NULL, &context, NULL );
+
+  writeReferenceMap(stdout, -1, ref);
+  msIO_bufferWrite( &buffer, "", 1 );
+
+  msIO_installHandlers( NULL, NULL, NULL );
+
+  return (char*)buffer.data;
+}
+
 #define MAX_FORMATOPTIONS 100
 
 static int loadOutputFormat(mapObj *map)
@@ -4901,6 +5242,29 @@ static void writeLegend(FILE *stream, int indent, legendObj *legend)
   writeLineFeed(stream);
 }
 
+char* msWriteLegendToString(legendObj *legend)
+{
+  msIOContext  context;
+  msIOBuffer buffer;
+
+  context.label = NULL;
+  context.write_channel = MS_TRUE;
+  context.readWriteFunc = msIO_bufferWrite;
+  context.cbData = &buffer;
+  buffer.data = NULL;
+  buffer.data_len = 0;
+  buffer.data_offset = 0;
+
+  msIO_installHandlers( NULL, &context, NULL );
+
+  writeLegend(stdout, -1, legend);
+  msIO_bufferWrite( &buffer, "", 1 );
+
+  msIO_installHandlers( NULL, NULL, NULL );
+
+  return (char*)buffer.data;
+}
+
 /*
 ** Initialize, load and free a scalebarObj structure
 */
@@ -5052,6 +5416,29 @@ static void writeScalebar(FILE *stream, int indent, scalebarObj *scalebar)
   writeLineFeed(stream);
 }
 
+char* msWriteScalebarToString(scalebarObj *scalebar)
+{
+  msIOContext  context;
+  msIOBuffer buffer;
+
+  context.label = NULL;
+  context.write_channel = MS_TRUE;
+  context.readWriteFunc = msIO_bufferWrite;
+  context.cbData = &buffer;
+  buffer.data = NULL;
+  buffer.data_len = 0;
+  buffer.data_offset = 0;
+
+  msIO_installHandlers( NULL, &context, NULL );
+
+  writeScalebar(stdout, -1, scalebar);
+  msIO_bufferWrite( &buffer, "", 1 );
+
+  msIO_installHandlers( NULL, NULL, NULL );
+
+  return (char*)buffer.data;
+}
+
 /*
 ** Initialize a queryMapObj structure
 */
@@ -5140,6 +5527,29 @@ static void writeQueryMap(FILE *stream, int indent, queryMapObj *querymap)
   writeLineFeed(stream);
 }
 
+char* msWriteQueryMapToString(queryMapObj *querymap)
+{
+  msIOContext  context;
+  msIOBuffer buffer;
+
+  context.label = NULL;
+  context.write_channel = MS_TRUE;
+  context.readWriteFunc = msIO_bufferWrite;
+  context.cbData = &buffer;
+  buffer.data = NULL;
+  buffer.data_len = 0;
+  buffer.data_offset = 0;
+
+  msIO_installHandlers( NULL, &context, NULL );
+
+  writeQueryMap(stdout, -1, querymap);
+  msIO_bufferWrite( &buffer, "", 1 );
+
+  msIO_installHandlers( NULL, NULL, NULL );
+
+  return (char*)buffer.data;
+}
+
 /*
 ** Initialize a webObj structure
 */
@@ -5212,6 +5622,29 @@ static void writeWeb(FILE *stream, int indent, webObj *web)
   writeLineFeed(stream);
 }
 
+char* msWriteWebToString(webObj *web)
+{
+  msIOContext  context;
+  msIOBuffer buffer;
+
+  context.label = NULL;
+  context.write_channel = MS_TRUE;
+  context.readWriteFunc = msIO_bufferWrite;
+  context.cbData = &buffer;
+  buffer.data = NULL;
+  buffer.data_len = 0;
+  buffer.data_offset = 0;
+
+  msIO_installHandlers( NULL, &context, NULL );
+
+  writeWeb(stdout, -1, web);
+  msIO_bufferWrite( &buffer, "", 1 );
+
+  msIO_installHandlers( NULL, NULL, NULL );
+
+  return (char*)buffer.data;
+}
+
 int loadWeb(webObj *web, mapObj *map)
 {
   web->map = (mapObj *)map;
@@ -5614,30 +6047,11 @@ int msInitLabelCache(labelCacheObj *cache)
   return MS_SUCCESS;
 }
 
-
-int msSaveMap(mapObj *map, char *filename)
+static void writeMap(FILE *stream, int indent, mapObj *map)
 {
-  int i, indent=0;
-  FILE *stream;
-  char szPath[MS_MAXPATHLEN];
+  int i;
   colorObj c;
 
-  if(!map) {
-    msSetError(MS_MISCERR, "Map is undefined.", "msSaveMap()");
-    return(-1);
-  }
-
-  if(!filename) {
-    msSetError(MS_MISCERR, "Filename is undefined.", "msSaveMap()");
-    return(-1);
-  }
-
-  stream = fopen(msBuildPath(szPath, map->mappath, filename), "w");
-  if(!stream) {
-    msSetError(MS_IOERR, "(%s)", "msSaveMap()", filename);
-    return(-1);
-  }
-
   writeBlockBegin(stream, indent, "MAP");
   writeHashTableInline(stream, indent, "CONFIG", &(map->configoptions));
   writeString(stream, indent, "DATAPATTERN", NULL, map->datapattern); /* depricated */
@@ -5680,6 +6094,53 @@ int msSaveMap(mapObj *map, char *filename)
     writeLayer(stream, indent, GET_LAYER(map, map->layerorder[i]));
 
   writeBlockEnd(stream, indent, "MAP");
+}
+
+char* msWriteMapToString(mapObj *map)
+{
+  msIOContext  context;
+  msIOBuffer buffer;
+
+  context.label = NULL;
+  context.write_channel = MS_TRUE;
+  context.readWriteFunc = msIO_bufferWrite;
+  context.cbData = &buffer;
+  buffer.data = NULL;
+  buffer.data_len = 0;
+  buffer.data_offset = 0;
+
+  msIO_installHandlers( NULL, &context, NULL );
+
+  writeMap(stdout, 0, map);
+  msIO_bufferWrite( &buffer, "", 1 );
+
+  msIO_installHandlers( NULL, NULL, NULL );
+
+  return (char*)buffer.data;
+}
+
+int msSaveMap(mapObj *map, char *filename)
+{
+  FILE *stream;
+  char szPath[MS_MAXPATHLEN];
+  
+  if(!map) {
+    msSetError(MS_MISCERR, "Map is undefined.", "msSaveMap()");
+    return(-1);
+  }
+
+  if(!filename) {
+    msSetError(MS_MISCERR, "Filename is undefined.", "msSaveMap()");
+    return(-1);
+  }
+
+  stream = fopen(msBuildPath(szPath, map->mappath, filename), "w");
+  if(!stream) {
+    msSetError(MS_IOERR, "(%s)", "msSaveMap()", filename);
+    return(-1);
+  }
+
+  writeMap(stream, 0, map);
   fclose(stream);
 
   return(0);
@@ -6235,7 +6696,11 @@ int msUpdateMapFromURL(mapObj *map, char *variable, char *string)
 
           break;
         case(LEGEND):
-          return msUpdateLegendFromString(&(map->legend), string, MS_TRUE);
+          if(msyylex() == LABEL) {
+            return msUpdateLabelFromString(&map->legend.label, string, MS_TRUE);
+          } else {
+            return msUpdateLegendFromString(&(map->legend), string, MS_TRUE);
+          }
         case(PROJECTION):
           msLoadProjectionString(&(map->projection), string);
           break;
@@ -6306,29 +6771,34 @@ int msUpdateMapFromURL(mapObj *map, char *variable, char *string)
   return(MS_SUCCESS);
 }
 
+static int classNeedsSubstitutions(classObj *class, char *from) {
+  if(class->expression.string && (strcasestr(class->expression.string, from) != NULL)) return MS_TRUE;
+  if(class->text.string && (strcasestr(class->text.string, from) != NULL)) return MS_TRUE;
+  if(class->title && (strcasestr(class->title, from) != NULL)) return MS_TRUE;
+
+  return MS_FALSE;
+}
+
 static int layerNeedsSubstitutions(layerObj *layer, char *from)
 {
-  int i;
-
   if(layer->data && (strcasestr(layer->data, from) != NULL)) return MS_TRUE;
   if(layer->tileindex && (strcasestr(layer->tileindex, from) != NULL)) return MS_TRUE;
   if(layer->connection && (strcasestr(layer->connection, from) != NULL)) return MS_TRUE;
   if(layer->filter.string && (strcasestr(layer->filter.string, from) != NULL)) return MS_TRUE;
 
-  for(i=0; i<layer->numclasses; i++) {
-    if(layer->class[i]->expression.string && (strcasestr(layer->class[i]->expression.string, from) != NULL)) return MS_TRUE;
-    if(layer->class[i]->text.string && (strcasestr(layer->class[i]->text.string, from) != NULL)) return MS_TRUE;
-    if(layer->class[i]->title && (strcasestr(layer->class[i]->title, from) != NULL)) return MS_TRUE;
-  }
-
   if(!msHashIsEmpty(&layer->bindvals)) return MS_TRUE;
 
   return MS_FALSE;
 }
 
+static void classSubstituteString(classObj *class, char *from, char *to) {
+  if(class->expression.string) class->expression.string = msCaseReplaceSubstring(class->expression.string, from, to);
+  if(class->text.string) class->text.string = msCaseReplaceSubstring(class->text.string, from, to);
+  if(class->title) class->title = msCaseReplaceSubstring(class->title, from, to);
+}
+
 static void layerSubstituteString(layerObj *layer, char *from, char *to)
 {
-  int i;
   char *bindvals_key, *bindvals_val;
 
   if(layer->data) layer->data = msCaseReplaceSubstring(layer->data, from, to);
@@ -6336,12 +6806,6 @@ static void layerSubstituteString(layerObj *layer, char *from, char *to)
   if(layer->connection) layer->connection = msCaseReplaceSubstring(layer->connection, from, to);
   if(layer->filter.string) layer->filter.string = msCaseReplaceSubstring(layer->filter.string, from, to);
 
-  for(i=0; i<layer->numclasses; i++) {
-    if(layer->class[i]->expression.string) layer->class[i]->expression.string = msCaseReplaceSubstring(layer->class[i]->expression.string, from, to);
-    if(layer->class[i]->text.string) layer->class[i]->text.string = msCaseReplaceSubstring(layer->class[i]->text.string, from, to);
-    if(layer->class[i]->title) layer->class[i]->title = msCaseReplaceSubstring(layer->class[i]->title, from, to);
-  }
-
   /* The bindvalues are most useful when able to substitute values from the URL */
   bindvals_key = (char*)msFirstKeyFromHashTable(&layer->bindvals);
   while(bindvals_key != NULL) {
@@ -6380,16 +6844,39 @@ static void applyOutputFormatDefaultSubstitutions(outputFormatObj *format, const
   return;
 }
 
+static void applyClassDefaultSubstitutions(classObj *class, hashTableObj *table)
+{
+  const char *default_key = msFirstKeyFromHashTable(table);
+  while(default_key) {
+    if(!strncmp(default_key,"default_",8)) {
+      size_t buffer_size = (strlen(default_key)-5);
+      char *tag = (char *)msSmallMalloc(buffer_size);
+      snprintf(tag, buffer_size, "%%%s%%", &(default_key[8]));
+
+
+      classSubstituteString(class, tag, msLookupHashTable(table, default_key));
+      free(tag);
+    }
+    default_key = msNextKeyFromHashTable(table, default_key);
+  }
+  return;
+}
+
 static void applyLayerDefaultSubstitutions(layerObj *layer, hashTableObj *table)
 {
+  int i;
   const char *default_key = msFirstKeyFromHashTable(table);
   while(default_key) {
     if(!strncmp(default_key,"default_",8)) {
       size_t buffer_size = (strlen(default_key)-5);
+      char *to = msLookupHashTable(table, default_key);
       char *tag = (char *)msSmallMalloc(buffer_size);
       snprintf(tag, buffer_size, "%%%s%%", &(default_key[8]));
 
-      layerSubstituteString(layer, tag, msLookupHashTable(table, default_key));
+      for(i=0; i<layer->numclasses; i++) {
+        classSubstituteString(layer->class[i], tag, to);
+      }
+      layerSubstituteString(layer, tag, to);
       free(tag);
     }
     default_key = msNextKeyFromHashTable(table, default_key);
@@ -6403,29 +6890,31 @@ static void applyLayerDefaultSubstitutions(layerObj *layer, hashTableObj *table)
 */
 void msApplyDefaultSubstitutions(mapObj *map)
 {
-  int i;
+  int i,j;
 
   /* output formats (#3751) */
   for(i=0; i<map->numoutputformats; i++) {
     applyOutputFormatDefaultSubstitutions(map->outputformatlist[i], "filename", &(map->web.validation));
-    applyOutputFormatDefaultSubstitutions(map->outputformatlist[i], "filename", &(map->web.metadata));
   }
 
   for(i=0; i<map->numlayers; i++) {
     layerObj *layer = GET_LAYER(map, i);
-    applyLayerDefaultSubstitutions(layer, &(layer->validation)); /* layer settings take precedence */
-    applyLayerDefaultSubstitutions(layer, &(layer->metadata));
-    applyLayerDefaultSubstitutions(layer, &(map->web.validation));
-    applyLayerDefaultSubstitutions(layer, &(map->web.metadata));
+
+    for(j=0; j<layer->numclasses; j++) {    /* class settings take precedence...  */
+      classObj *class = GET_CLASS(map, i, j);
+      applyClassDefaultSubstitutions(class, &(class->validation));
+    }
+
+    applyLayerDefaultSubstitutions(layer, &(layer->validation)); /* ...then layer settings... */
+    applyLayerDefaultSubstitutions(layer, &(map->web.validation)); /* ...and finally web settings */
   }
 }
 
 void msApplySubstitutions(mapObj *map, char **names, char **values, int npairs)
 {
-  int i,j;
+  int i,j,k;
 
   char *tag=NULL;
-  char *validation_pattern_key=NULL;
 
   for(i=0; i<npairs; i++) {
 
@@ -6433,15 +6922,11 @@ void msApplySubstitutions(mapObj *map, char **names, char **values, int npairs)
     tag = (char *) msSmallMalloc(sizeof(char)*strlen(names[i]) + 3);
     sprintf(tag, "%%%s%%", names[i]);
 
-    /* validation pattern key - depricated */
-    validation_pattern_key = (char *) msSmallMalloc(sizeof(char)*strlen(names[i]) + 20);
-    sprintf(validation_pattern_key,"%s_validation_pattern", names[i]);
-
     /* output formats (#3751) */
     for(j=0; j<map->numoutputformats; j++) {
       const char *filename = msGetOutputFormatOption(map->outputformatlist[j], "FILENAME", NULL);
       if(filename && (strcasestr(filename, tag) != NULL)) {
-        if(msValidateParameter(values[i], msLookupHashTable(&(map->web.validation), names[i]), msLookupHashTable(&(map->web.metadata), validation_pattern_key), NULL, NULL) == MS_SUCCESS) {
+        if(msValidateParameter(values[i], msLookupHashTable(&(map->web.validation), names[i]), NULL, NULL, NULL) == MS_SUCCESS) {
           char *new_filename = msStrdup(filename);
           new_filename = msCaseReplaceSubstring(new_filename, tag, values[i]);
           msSetOutputFormatOption(map->outputformatlist[j], "FILENAME", new_filename);
@@ -6453,19 +6938,64 @@ void msApplySubstitutions(mapObj *map, char **names, char **values, int npairs)
     for(j=0; j<map->numlayers; j++) {
       layerObj *layer = GET_LAYER(map, j);
 
+      /* perform class level substitutions (#4596) */
+      for(k=0; k<layer->numclasses; k++) {
+        classObj *class = GET_CLASS(map, j, k);
+
+        if(!classNeedsSubstitutions(class, tag)) continue;
+
+        if(layer->debug >= MS_DEBUGLEVEL_V)
+          msDebug( "  runtime substitution - Layer %s, Class %s, tag %s...\n", layer->name, class->name, tag);
+
+        if (msLookupHashTable(&(class->validation), names[i])) {
+          if (msValidateParameter(values[i],
+                                  msLookupHashTable(&(class->validation), names[i]),
+                                  NULL, NULL, NULL) != MS_SUCCESS) {
+            /* skip as the name exists in the class validation but does not validate */
+            continue;
+          }
+        } else if (msLookupHashTable(&(layer->validation), names[i])) {
+          if (msValidateParameter(values[i],
+                                  msLookupHashTable(&(layer->validation), names[i]),
+                                  NULL, NULL, NULL) != MS_SUCCESS) {
+            /* skip as the name exists in the layer validation but does not validate */
+            continue;
+          }
+        } else if (msValidateParameter(values[i],
+                                       msLookupHashTable(&(map->web.validation), names[i]),
+                                       NULL, NULL, NULL) != MS_SUCCESS) {
+          /* skip as the web validation fails */
+          continue;
+        }
+
+        /* validation has succeeded in either class, layer or web */
+        classSubstituteString(class, tag, values[i]);
+      }
+
       if(!layerNeedsSubstitutions(layer, tag)) continue;
 
       if(layer->debug >= MS_DEBUGLEVEL_V)
         msDebug( "  runtime substitution - Layer %s, tag %s...\n", layer->name, tag);
 
-      if(msValidateParameter(values[i], msLookupHashTable(&(layer->validation), names[i]),  msLookupHashTable(&(map->web.validation), names[i]),
-                             msLookupHashTable(&(layer->metadata), validation_pattern_key), msLookupHashTable(&(map->web.metadata), validation_pattern_key)) == MS_SUCCESS) {
-        layerSubstituteString(layer, tag, values[i]);
+      if (msLookupHashTable(&(layer->validation), names[i])) {
+        if (msValidateParameter(values[i],
+                                msLookupHashTable(&(layer->validation), names[i]),
+                                NULL, NULL, NULL) != MS_SUCCESS) {
+          /* skip as the name exists in the layer validation but does not validate */
+          continue;
+        }
+      } else if (msValidateParameter(values[i],
+                                     msLookupHashTable(&(map->web.validation), names[i]),
+                                     NULL, NULL, NULL) != MS_SUCCESS) {
+        /* skip as the web validation fails */
+        continue;
       }
+
+      /* validation has succeeded in either layer or web */
+      layerSubstituteString(layer, tag, values[i]);
     }
 
     msFree(tag);
-    msFree(validation_pattern_key);
   } /* next name/value pair */
 }
 
diff --git a/mapfile.dtd b/mapfile.dtd
index f11f8de..1535dfd 100644
--- a/mapfile.dtd
+++ b/mapfile.dtd
@@ -124,7 +124,7 @@
   a LAYER object
   -->
 <!ELEMENT LAYER 
-  (CLASS|CLASSITEM|CONNECTION|CONNECTIONTYPE|DATA|DESCRIPTION|FEATURE|FILTER|FILTERITEM|FOOTER|GROUP|HEADER|TEMPLATE|LABELANGLEITEM|LABELCACHE|LABELITEM|LABELMAXSCALE|LABELMINSCALE|LABELREQUIRES|LABELSIZEITEM|MAXFEATURES|MAXSCALE|MINSCALE|OFFSITE|POSTLABELCACHE|PROJECTION|REQUIRES|SYMBOLSCALE|TILEINDEX|TILEITEM|TOLERANCE|TOLERANCEUNITS|TRANSFORM|TRANSPARENCY|METADATA)*
+  (CLASS|CLASSITEM|CONNECTION|CONNECTIONTYPE|DATA|DESCRIPTION|FEATURE|FILTER|FILTERITEM|FOOTER|GROUP|HEADER|TEMPLATE|LABELANGLEITEM|LABELCACHE|LABELITEM|LABELMAXSCALE|LABELMINSCALE|LABELREQUIRES|LABELSIZEITEM|MAXFEATURES|MAXSCALE|MINSCALE|OFFSITE|POSTLABELCACHE|PROJECTION|REQUIRES|SYMBOLSCALE|TILEINDEX|TILEITEM|TILESRS|TOLERANCE|TOLERANCEUNITS|TRANSFORM|TRANSPARENCY|METADATA)*
 >
 <!ATTLIST LAYER 
   NAME NMTOKEN #REQUIRED
@@ -159,6 +159,7 @@
 <!ELEMENT SYMBOLSCALE (#PCDATA)>
 <!ELEMENT TILEINDEX (#PCDATA)>
 <!ELEMENT TILEITEM (#PCDATA)>
+<!ELEMENT TILESRS (#PCDATA)>
 <!ELEMENT TOLERANCE (#PCDATA)>
 <!ELEMENT TOLERANCEUNITS (#PCDATA)>
 <!ELEMENT TRANSFORM (#PCDATA)>
diff --git a/mapfile.h b/mapfile.h
index 219081b..9188140 100644
--- a/mapfile.h
+++ b/mapfile.h
@@ -308,8 +308,13 @@ enum MS_TOKEN_SOURCES {MS_FILE_TOKENS=0, MS_STRING_TOKENS, MS_URL_TOKENS};
 #define LEADER 1260
 #define GRIDSTEP 1261
 
+/* rfc 86 scale-dependant token substitutions */
+#define SCALETOKEN 1270
+#define VALUES 1271
+
 /* rfc59 bindvals objects */
 #define BINDVALS 2000
 
+#define TILESRS 1272
 
 #endif /* MAPFILE_H */
diff --git a/mapgd.c b/mapgd.c
index 9e7e22d..3d304c8 100644
--- a/mapgd.c
+++ b/mapgd.c
@@ -26,9 +26,10 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  *****************************************************************************/
-#include "mapserver.h"
+#include "mapserver-config.h"
 #ifdef USE_GD
 
+#include "mapserver.h"
 #include "mapthread.h"
 #include <time.h>
 #include <gdfonts.h>
@@ -44,20 +45,24 @@
 
 int msGDSetup()
 {
+#ifdef USE_GD_FREETYPE
   if (gdFontCacheSetup() != 0) {
     return MS_FAILURE;
   }
+#endif
   return MS_SUCCESS;
 }
 
 void msGDCleanup(int signal)
 {
+#ifdef USE_GD_FREETYPE
   if(!signal) {
     /* there's a potential deadlock if we're killed by a signal and the font
      cache is already locked. We don't tear down the fontcache in this case
      to avoid it (issue 4093)*/
     gdFontCacheShutdown();
   }
+#endif
 }
 
 #define MS_IMAGE_GET_GDIMAGEPTR(image) ((gdImagePtr) image->img.plugin)
@@ -436,6 +441,7 @@ int renderGlyphsLineGD(imageObj *img, labelPathObj *labelpath, labelStyleObj *st
 
 int renderGlyphsGD(imageObj *img, double x, double y, labelStyleObj *style, char *text)
 {
+#ifdef USE_GD_FREETYPE
   gdImagePtr ip;
   char *error=NULL;
   int bbox[8];
@@ -463,7 +469,7 @@ int renderGlyphsGD(imageObj *img, double x, double y, labelStyleObj *style, char
   if(style->outlinewidth > 0) { /* handle the outline color */
     error = gdImageStringFT(ip, bbox, oc, style->fonts[0], style->size, style->rotation, x, y-1, text);
     if(error) {
-      msSetError(MS_TTFERR, error, "msDrawTextGD()");
+      msSetError(MS_TTFERR, "%s", "msDrawTextGD()", error);
       return(MS_FAILURE);
     }
 
@@ -479,6 +485,10 @@ int renderGlyphsGD(imageObj *img, double x, double y, labelStyleObj *style, char
   if(style->color)
     gdImageStringFT(ip, bbox, c, style->fonts[0], style->size, style->rotation, x, y, text);
   return MS_SUCCESS;
+#else
+  msSetError(MS_TTFERR, "Freetype support not enabled in this GD build", "renderGlyphsGD()");
+  return MS_FAILURE;
+#endif
 }
 
 int renderEllipseSymbolGD(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj *style)
@@ -696,6 +706,7 @@ int renderVectorSymbolGD(imageObj *img, double x, double y, symbolObj *symbol, s
 
 int renderTruetypeSymbolGD(imageObj *img, double x, double y, symbolObj *symbol, symbolStyleObj *s)
 {
+#ifdef USE_GD_FREETYPE
   int bbox[8];
   char *error;
   int c,oc = 0;
@@ -721,7 +732,7 @@ int renderTruetypeSymbolGD(imageObj *img, double x, double y, symbolObj *symbol,
   if( s->outlinecolor ) {
     error = gdImageStringFT(ip, bbox, oc, symbol->full_font_path, s->scale, s->rotation, x, y-1, symbol->character);
     if(error) {
-      msSetError(MS_TTFERR, error, "msDrawMarkerSymbolGD()");
+      msSetError(MS_TTFERR, "%s", "renderTruetypeSymbolGD()", error);
       return MS_FAILURE;
     }
 
@@ -736,6 +747,10 @@ int renderTruetypeSymbolGD(imageObj *img, double x, double y, symbolObj *symbol,
   if(s->color)
     gdImageStringFT(ip, bbox, c, symbol->full_font_path, s->scale, s->rotation, x, y, symbol->character);
   return MS_SUCCESS;
+#else
+  msSetError(MS_TTFERR, "Freetype support not enabled in this GD build", "renderTruetypeSymbolGD()");
+  return MS_FAILURE;
+#endif
 }
 
 gdImagePtr rotatePixmapGD(gdImagePtr img, double angle_rad)
@@ -898,6 +913,7 @@ int mergeRasterBufferGD(imageObj *dest, rasterBufferObj *overlay, double opacity
 
 int getTruetypeTextBBoxGD(rendererVTableObj *renderer, char **fonts, int numfonts, double size, char *string, rectObj *rect, double **advances, int bAdjustBaseline)
 {
+#ifdef USE_GD_FREETYPE
   int bbox[8];
   char *error;
   if(advances) {
@@ -907,7 +923,7 @@ int getTruetypeTextBBoxGD(rendererVTableObj *renderer, char **fonts, int numfont
     strex.flags = gdFTEX_XSHOW;
     error = gdImageStringFTEx(NULL, bbox, 0, fonts[0], size, 0, 0, 0, string, &strex);
     if(error) {
-      msSetError(MS_TTFERR, error, "gdImageStringFTEx()");
+      msSetError(MS_TTFERR, "%s", "gdImageStringFTEx()", error);
       return(MS_FAILURE);
     }
 
@@ -934,7 +950,7 @@ int getTruetypeTextBBoxGD(rendererVTableObj *renderer, char **fonts, int numfont
   } else {
     error = gdImageStringFT(NULL, bbox, 0, fonts[0], size, 0, 0, 0, string);
     if(error) {
-      msSetError(MS_TTFERR, error, "msGetTruetypeTextBBox()");
+      msSetError(MS_TTFERR, "%s", "msGetTruetypeTextBBoxGD()", error);
       return(MS_FAILURE);
     }
 
@@ -944,6 +960,10 @@ int getTruetypeTextBBoxGD(rendererVTableObj *renderer, char **fonts, int numfont
     rect->maxy = bbox[1];
     return MS_SUCCESS;
   }
+#else
+  msSetError(MS_TTFERR, "Freetype support not enabled in this GD build", "getTruetypeTextBBoxGD()");
+  return MS_FAILURE;
+#endif
 }
 
 int renderBitmapGlyphsGD(imageObj *img, double x, double y, labelStyleObj *style, char *text)
@@ -1003,11 +1023,9 @@ int freeSymbolGD(symbolObj *s)
 {
   return MS_SUCCESS;
 }
-#endif
 
 int msPopulateRendererVTableGD( rendererVTableObj *renderer )
 {
-#ifdef USE_GD
   int i;
   renderer->use_imagecache=0;
   renderer->supports_pixel_buffer=1;
@@ -1047,9 +1065,6 @@ int msPopulateRendererVTableGD( rendererVTableObj *renderer )
   renderer->renderPolygonTiled = &renderPolygonTiledGD;
   renderer->freeSymbol = &freeSymbolGD;
   return MS_SUCCESS;
-#else
-  msSetError(MS_MISCERR,"GD renderer requested but it is not configured in this build","msPopulateRendererVtableGD()");
-  return MS_FAILURE;
-#endif
 }
 
+#endif
diff --git a/mapgdal.c b/mapgdal.c
index ac05bcb..33868dc 100644
--- a/mapgdal.c
+++ b/mapgdal.c
@@ -27,9 +27,9 @@
  * DEALINGS IN THE SOFTWARE.
  ****************************************************************************/
 
-#include <assert.h>
 #include "mapserver.h"
 #include "mapthread.h"
+#include <assert.h>
 
 
 
@@ -162,7 +162,9 @@ int msSaveImageGDAL( mapObj *map, imageObj *image, char *filename )
   memset(&rb,0,sizeof(rasterBufferObj));
 
 #ifdef USE_EXEMPI
-  bUseXmp = msXmpPresent(map);
+  if( map != NULL ) {
+    bUseXmp = msXmpPresent(map);
+  }
 #endif
 
 
@@ -468,7 +470,7 @@ int msSaveImageGDAL( mapObj *map, imageObj *image, char *filename )
   if (papszOptions == NULL) {
     msReleaseLock( TLOCK_GDAL );
     msSetError( MS_MEMERR, "Out of memory allocating %u bytes.\n", "msSaveImageGDAL()",
-                sizeof(char *)*(format->numformatoptions+1));
+                (unsigned int)(sizeof(char *)*(format->numformatoptions+1)));
     return MS_FAILURE;
   }
 
@@ -504,7 +506,7 @@ int msSaveImageGDAL( mapObj *map, imageObj *image, char *filename )
   if ( bUseXmp == MS_TRUE ) {
     if( msXmpWrite(map, filename) == MS_FAILURE ) {
       /* Something bad happened. */
-      msSetError( MS_MISCERR, "XMP write to %s failed.\n%s",
+      msSetError( MS_MISCERR, "XMP write to %s failed.\n",
                   "msSaveImageGDAL()", filename);
       return MS_FAILURE;
     }
@@ -627,36 +629,45 @@ char *msProjectionObj2OGCWKT( projectionObj *projection )
 #else /* defined USE_GDAL or USE_OGR */
 
   OGRSpatialReferenceH hSRS;
-  char *pszWKT=NULL, *pszProj4;
+  char *pszWKT=NULL, *pszProj4, *pszInitEpsg=NULL;
   int  nLength = 0, i;
   OGRErr eErr;
 
   if( projection->proj == NULL )
     return NULL;
 
+  hSRS = OSRNewSpatialReference( NULL );
   /* -------------------------------------------------------------------- */
-  /*      Form arguments into a full Proj.4 definition string.            */
+  /*      Look for an EPSG-like projection argument                       */
   /* -------------------------------------------------------------------- */
-  for( i = 0; i < projection->numargs; i++ )
-    nLength += strlen(projection->args[i]) + 2;
-
-  pszProj4 = (char *) CPLMalloc(nLength+2);
-  pszProj4[0] = '\0';
+  if( projection->numargs == 1 &&
+        (pszInitEpsg = strcasestr(projection->args[0],"init=epsg:"))) {
+     int nEpsgCode = atoi(pszInitEpsg + strlen("init=epsg:"));
+     eErr = OSRImportFromEPSG(hSRS, nEpsgCode);
+  } else {
+    /* -------------------------------------------------------------------- */
+    /*      Form arguments into a full Proj.4 definition string.            */
+    /* -------------------------------------------------------------------- */
+    for( i = 0; i < projection->numargs; i++ )
+      nLength += strlen(projection->args[i]) + 2;
+
+    pszProj4 = (char *) CPLMalloc(nLength+2);
+    pszProj4[0] = '\0';
+
+    for( i = 0; i < projection->numargs; i++ ) {
+      strcat( pszProj4, "+" );
+      strcat( pszProj4, projection->args[i] );
+      strcat( pszProj4, " " );
+    }
 
-  for( i = 0; i < projection->numargs; i++ ) {
-    strcat( pszProj4, "+" );
-    strcat( pszProj4, projection->args[i] );
-    strcat( pszProj4, " " );
+    /* -------------------------------------------------------------------- */
+    /*      Ingest the string into OGRSpatialReference.                     */
+    /* -------------------------------------------------------------------- */
+    eErr =  OSRImportFromProj4( hSRS, pszProj4 );
+    CPLFree( pszProj4 );
   }
 
   /* -------------------------------------------------------------------- */
-  /*      Ingest the string into OGRSpatialReference.                     */
-  /* -------------------------------------------------------------------- */
-  hSRS = OSRNewSpatialReference( NULL );
-  eErr =  OSRImportFromProj4( hSRS, pszProj4 );
-  CPLFree( pszProj4 );
-
-  /* -------------------------------------------------------------------- */
   /*      Export as a WKT string.                                         */
   /* -------------------------------------------------------------------- */
   if( eErr == OGRERR_NONE )
diff --git a/mapgeomtransform.c b/mapgeomtransform.c
index 5297f2a..37cc72d 100644
--- a/mapgeomtransform.c
+++ b/mapgeomtransform.c
@@ -188,11 +188,17 @@ int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image
         msSetError(MS_PARSEERR, "Failed to process shape expression: %s", "msDrawTransformedShape", style->_geomtransform.string);
         return MS_FAILURE;
       }
-
       tmpshp = p.result.shpval;
 
-      /* TODO: check resulting shape type and draw accordingly */
-      msDrawShadeSymbol(symbolset, image, tmpshp, style, scalefactor);
+      switch (tmpshp->type) {
+        case MS_SHAPE_POINT:
+        case MS_SHAPE_POLYGON:        
+          msDrawShadeSymbol(symbolset, image, tmpshp, style, scalefactor);
+          break;
+        case MS_SHAPE_LINE:
+          msDrawLineSymbol(symbolset, image, tmpshp, style, scalefactor);        
+          break;
+      }
 
       msFreeShape(tmpshp);
       msFree(tmpshp);
@@ -207,3 +213,60 @@ int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image
   }
   return MS_SUCCESS;
 }
+
+/*
+ * RFC89 implementation:
+ *  - transform directly the shapeobj
+ */
+int msGeomTransformShape(mapObj *map, layerObj *layer, shapeObj *shape)
+{
+  int i;
+  expressionObj *e =  &layer->_geomtransform;
+  
+  switch(e->type) {
+    case MS_GEOMTRANSFORM_EXPRESSION: {
+      int status;
+      shapeObj *tmpshp;
+      parseObj p;
+
+      p.shape = shape; /* set a few parser globals (hence the lock) */
+      p.expr = e;
+      p.expr->curtoken = p.expr->tokens; /* reset */
+      p.type = MS_PARSE_TYPE_SHAPE;
+      p.dblval = map->cellsize * (msInchesPerUnit(map->units,0)/msInchesPerUnit(layer->units,0));
+      p.dblval2 = 0;
+      /* data_cellsize is only set with contour layer */
+      if (layer->connectiontype == MS_CONTOUR)
+      {
+        char *value = msLookupHashTable(&layer->metadata, "__data_cellsize__");
+        if (value)
+          p.dblval2 = atof(value);
+      }
+          
+      status = yyparse(&p);
+      if (status != 0) {
+        msSetError(MS_PARSEERR, "Failed to process shape expression: %s", "msGeomTransformShape()", e->string);
+        return MS_FAILURE;
+      }
+      
+      tmpshp = p.result.shpval;
+
+      for (i= 0; i < shape->numlines; i++)
+        free(shape->line[i].point);
+      shape->numlines = 0;
+      if (shape->line) free(shape->line);
+      
+      for(i=0; i<tmpshp->numlines; i++)
+        msAddLine(shape, &(tmpshp->line[i])); /* copy each line */
+
+      msFreeShape(tmpshp);
+      msFree(tmpshp);
+    }
+    break;
+    default:
+      msSetError(MS_MISCERR, "unknown geomtransform", "msGeomTransformShape()");
+      return MS_FAILURE;
+  }
+  
+  return MS_SUCCESS;
+}
diff --git a/mapgeomutil.cpp b/mapgeomutil.cpp
index 7ecc39e..7792599 100644
--- a/mapgeomutil.cpp
+++ b/mapgeomutil.cpp
@@ -28,7 +28,6 @@
  *****************************************************************************/
 
 #include "mapserver.h"
-#include "mapagg.h"
 #include "renderers/agg/include/agg_arc.h"
 #include "renderers/agg/include/agg_basics.h"
 
@@ -47,7 +46,7 @@ shapeObj *msRasterizeArc(double x0, double y0, double radius, double startAngle,
   lineObj *line = (lineObj*)calloc(1,sizeof(lineObj));
   if (!line) {
     msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msRasterizeArc()" ,
-               __FILE__, __LINE__, sizeof(lineObj));
+               __FILE__, __LINE__, (unsigned int)sizeof(lineObj));
     free(shape);
     return NULL;
   }
@@ -56,7 +55,7 @@ shapeObj *msRasterizeArc(double x0, double y0, double radius, double startAngle,
   line->point = (pointObj*)calloc(allocated_size,sizeof(pointObj));
   if (!line->point) {
     msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msRasterizeArc()" ,
-               __FILE__, __LINE__, allocated_size*sizeof(pointObj));
+               __FILE__, __LINE__, (unsigned int)(allocated_size*sizeof(pointObj)));
     free(line);
     free(shape);
     return NULL;
@@ -78,7 +77,7 @@ shapeObj *msRasterizeArc(double x0, double y0, double radius, double startAngle,
       line->point = (pointObj*)realloc(line->point, allocated_size * sizeof(pointObj));
       if (!line->point) {
         msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msRasterizeArc()" ,
-                   __FILE__, __LINE__, allocated_size * sizeof(pointObj));
+                   __FILE__, __LINE__, (unsigned int)(allocated_size * sizeof(pointObj)));
         free(line);
         free(shape);
         return NULL;
@@ -89,43 +88,18 @@ shapeObj *msRasterizeArc(double x0, double y0, double radius, double startAngle,
     line->numpoints++;
   }
 
-  //make sure the shape is closed if we're doing a full circle
-  if(!isSlice && !(endAngle-startAngle)%360) {
-    if(line->point[line->numpoints-1].x != line->point[0].x ||
-        line->point[line->numpoints-1].y != line->point[0].y) {
-      if(line->numpoints == allocated_size) {
-        allocated_size *= 2;
-        line->point = (pointObj*)realloc(line->point, allocated_size * sizeof(pointObj));
-        if (!line->point) {
-          msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msRasterizeArc()" ,
-                     __FILE__, __LINE__, allocated_size * sizeof(pointObj));
-          free(line);
-          free(shape);
-          return NULL;
-        }
-      }
-      line->point[line->numpoints].x = line->point[0].x;
-      line->point[line->numpoints].y = line->point[0].y;
-      line->numpoints++;
-    }
-
-  }
-  if(isSlice) {
+  //make sure the shape is closed
+  if(line->point[line->numpoints-1].x != line->point[0].x ||
+      line->point[line->numpoints-1].y != line->point[0].y) {
     if(line->numpoints == allocated_size) {
       allocated_size *= 2;
-      line->point = (pointObj*)realloc(line->point, allocated_size * sizeof(pointObj));
-      if (!line->point) {
-        msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msRasterizeArc()" ,
-                   __FILE__, __LINE__, allocated_size * sizeof(pointObj));
-        free(line);
-        free(shape);
-        return NULL;
-      }
+      line->point = (pointObj*)msSmallRealloc(line->point, allocated_size * sizeof(pointObj));
     }
-    line->point[line->numpoints].x = x0;
-    line->point[line->numpoints].y = y0;
+    line->point[line->numpoints].x = line->point[0].x;
+    line->point[line->numpoints].y = line->point[0].y;
     line->numpoints++;
   }
+
   return shape;
 }
 
diff --git a/mapgeos.c b/mapgeos.c
index fd3bd4e..767ad59 100644
--- a/mapgeos.c
+++ b/mapgeos.c
@@ -683,6 +683,27 @@ void msGEOSFreeWKT(char* pszGEOSWKT)
 #endif
 }
 
+shapeObj *msGEOSOffsetCurve(shapeObj *p, double offset) {
+#if defined USE_GEOS && (GEOS_VERSION_MAJOR > 3 || (GEOS_VERSION_MAJOR == 3 && GEOS_VERSION_MINOR >= 3))
+   GEOSGeom g1, g2; 
+
+  if(!p) 
+    return NULL;
+
+  if(!p->geometry) /* if no geometry for the shape then build one */
+    p->geometry = (GEOSGeom) msGEOSShape2Geometry(p);
+
+  g1 = (GEOSGeom) p->geometry;
+  if(!g1) return NULL;
+  
+  g2 = GEOSOffsetCurve(g1, offset, 4, GEOSBUF_JOIN_MITRE, fabs(offset*1.5));
+  return msGEOSGeometry2Shape(g2);
+#else
+  msSetError(MS_GEOSERR, "GEOS Offset Curve support is not available.", "msGEOSingleSidedBuffer()");
+  return NULL;
+#endif
+}
+
 /*
 ** Analytical functions exposed to MapServer/MapScript.
 */
diff --git a/mapgml.c b/mapgml.c
index 049088c..dcbd271 100644
--- a/mapgml.c
+++ b/mapgml.c
@@ -737,7 +737,7 @@ gmlGeometryListObj *msGMLGetGeometries(layerObj *layer, const char *metadata_nam
     geometryList->geometries = (gmlGeometryObj *) malloc(sizeof(gmlGeometryObj)*geometryList->numgeometries);
     if (geometryList->geometries ==  NULL) {
       msSetError(MS_MEMERR, "Out of memory allocating %u bytes.\n", "msGMLGetGeometries()",
-                 sizeof(gmlGeometryObj)*geometryList->numgeometries);
+                 (unsigned int)(sizeof(gmlGeometryObj)*geometryList->numgeometries));
       free(geometryList);
       return NULL;
     }
@@ -864,7 +864,7 @@ gmlNamespaceListObj *msGMLGetNamespaces(webObj *web, const char *metadata_namesp
     namespaceList->namespaces = (gmlNamespaceObj *) malloc(sizeof(gmlNamespaceObj)*namespaceList->numnamespaces);
     if (namespaceList->namespaces == NULL) {
       msSetError(MS_MEMERR, "Out of memory allocating %u bytes.\n", "msGMLGetNamespaces()",
-                 sizeof(gmlNamespaceObj)*namespaceList->numnamespaces);
+                 (unsigned int)(sizeof(gmlNamespaceObj)*namespaceList->numnamespaces));
       free(namespaceList);
       return NULL;
     }
@@ -933,7 +933,7 @@ gmlConstantListObj *msGMLGetConstants(layerObj *layer, const char *metadata_name
     constantList->constants = (gmlConstantObj *) malloc(sizeof(gmlConstantObj)*constantList->numconstants);
     if (constantList->constants == NULL) {
       msSetError(MS_MEMERR, "Out of memory allocating %u bytes.\n", "msGMLGetConstants()",
-                 sizeof(gmlConstantObj)*constantList->numconstants);
+                 (unsigned int)(sizeof(gmlConstantObj)*constantList->numconstants));
       free(constantList);
       return NULL;
     }
@@ -1024,7 +1024,7 @@ gmlGroupListObj *msGMLGetGroups(layerObj *layer, const char *metadata_namespaces
     groupList->groups = (gmlGroupObj *) malloc(sizeof(gmlGroupObj)*groupList->numgroups);
     if (groupList->groups == NULL) {
       msSetError(MS_MEMERR, "Out of memory allocating %u bytes.\n", "msGMLGetGroups()",
-                 sizeof(gmlGroupObj)*groupList->numgroups);
+                 (unsigned int)(sizeof(gmlGroupObj)*groupList->numgroups));
       free(groupList);
       return NULL;
     }
diff --git a/maphttp.c b/maphttp.c
index c8bd608..9f21a5b 100644
--- a/maphttp.c
+++ b/maphttp.c
@@ -30,12 +30,14 @@
  * This should be changed to a test on the presence of libcurl which
  * is really what the real dependency is.
  */
+#include "mapserver-config.h"
 #if defined(USE_CURL)
 
 #include "mapserver.h"
 #include "maphttp.h"
 #include "maperror.h"
 #include "mapthread.h"
+#include "mapows.h"
 
 
 
@@ -128,6 +130,7 @@ void msHTTPInitRequestObj(httpRequestObj *pasReqInfo, int numRequests)
     pasReqInfo[i].pszOutputFile = NULL;
     pasReqInfo[i].nLayerId = 0;
     pasReqInfo[i].nTimeout = 0;
+    pasReqInfo[i].nMaxBytes = 0;
     pasReqInfo[i].nStatus = 0;
     pasReqInfo[i].pszContentType = NULL;
     pasReqInfo[i].pszErrBuf = NULL;
@@ -219,11 +222,18 @@ static size_t msHTTPWriteFct(void *buffer, size_t size, size_t nmemb,
 
   if (psReq->debug) {
     msDebug("msHTTPWriteFct(id=%d, %d bytes)\n",
-            psReq->nLayerId, size*nmemb);
+            psReq->nLayerId, (int)(size*nmemb));
   }
 
+  if(psReq->nMaxBytes > 0 && (psReq->result_size + size*nmemb) > psReq->nMaxBytes) {
+      msSetError(MS_HTTPERR, "Requested transfer larger than configured maximum %d.",
+                 "msHTTPWriteFct()",
+                 psReq->nMaxBytes );
+      return -1;
+  }
   /* Case where we are writing to a disk file. */
   if( psReq->fp != NULL ) {
+    psReq->result_size += size*nmemb;
     return fwrite(buffer, size, nmemb, psReq->fp);
   }
 
@@ -280,6 +290,138 @@ long msGetCURLAuthType(enum MS_HTTP_AUTH_TYPE authType)
   }
 }
 
+
+/**********************************************************************
+ *                          msHTTPAuthProxySetup()
+ *
+ * Common code used by msPrepareWFSLayerRequest() and
+ * msPrepareWMSLayerRequest() to handle proxy / http auth for requests
+ *
+ * Return value:
+ * MS_SUCCESS if all requests completed succesfully.
+ * MS_FAILURE if a fatal error happened
+ **********************************************************************/
+int msHTTPAuthProxySetup(hashTableObj *mapmd, hashTableObj *lyrmd,
+                         httpRequestObj *pasReqInfo, int numRequests,
+                         mapObj *map, const char* namespaces)
+{
+
+  const char *pszTmp;
+  char    *pszProxyHost=NULL;
+  long     nProxyPort=0;
+  char    *pszProxyUsername=NULL, *pszProxyPassword=NULL;
+  char    *pszHttpAuthUsername=NULL, *pszHttpAuthPassword=NULL;
+  enum MS_HTTP_AUTH_TYPE eHttpAuthType = MS_BASIC;
+  enum MS_HTTP_AUTH_TYPE eProxyAuthType = MS_BASIC;
+  enum MS_HTTP_PROXY_TYPE eProxyType = MS_HTTP;
+
+
+  /* ------------------------------------------------------------------
+   * Check for authentication and proxying metadata. If the metadata is not found
+   * in the layer metadata, check the map-level metadata.
+   * ------------------------------------------------------------------ */
+  if ((pszTmp = msOWSLookupMetadata2(lyrmd, mapmd, namespaces,
+                                     "proxy_host")) != NULL) {
+    pszProxyHost = msStrdup(pszTmp);
+  }
+
+  if ((pszTmp = msOWSLookupMetadata2(lyrmd, mapmd, namespaces,
+                                     "proxy_port")) != NULL) {
+    nProxyPort = atol(pszTmp);
+  }
+
+  if ((pszTmp = msOWSLookupMetadata2(lyrmd, mapmd, namespaces,
+                                     "proxy_type")) != NULL) {
+
+    if (strcasecmp(pszTmp, "HTTP") == 0)
+      eProxyType = MS_HTTP;
+    else if (strcasecmp(pszTmp, "SOCKS5") == 0)
+      eProxyType = MS_SOCKS5;
+    else {
+      msSetError(MS_WMSERR, "Invalid proxy_type metadata '%s' specified",
+                 "msHTTPAuthProxySetup()", pszTmp);
+      return MS_FAILURE;
+    }
+  }
+
+  if ((pszTmp = msOWSLookupMetadata2(lyrmd, mapmd, namespaces,
+                                     "proxy_auth_type")) != NULL) {
+    if (strcasecmp(pszTmp, "BASIC") == 0)
+      eProxyAuthType = MS_BASIC;
+    else if (strcasecmp(pszTmp, "DIGEST") == 0)
+      eProxyAuthType = MS_DIGEST;
+    else if (strcasecmp(pszTmp, "NTLM") == 0)
+      eProxyAuthType = MS_NTLM;
+    else if (strcasecmp(pszTmp, "ANY") == 0)
+      eProxyAuthType = MS_ANY;
+    else if (strcasecmp(pszTmp, "ANYSAFE") == 0)
+      eProxyAuthType = MS_ANYSAFE;
+    else {
+      msSetError(MS_WMSERR, "Invalid proxy_auth_type metadata '%s' specified",
+                 "msHTTPAuthProxySetup()", pszTmp);
+      return MS_FAILURE;
+    }
+  }
+
+
+  if ((pszTmp = msOWSLookupMetadata2(lyrmd, mapmd, namespaces,
+                                     "proxy_username")) != NULL) {
+    pszProxyUsername = msStrdup(pszTmp);
+  }
+
+  if ((pszTmp = msOWSLookupMetadata2(lyrmd, mapmd, namespaces,
+                                     "proxy_password")) != NULL) {
+    pszProxyPassword = msDecryptStringTokens(map, pszTmp);
+    if (pszProxyPassword == NULL) {
+      return(MS_FAILURE);  /* An error should already have been produced */
+    }
+  }
+
+  if ((pszTmp = msOWSLookupMetadata2(lyrmd, mapmd, namespaces,
+                                     "auth_type")) != NULL) {
+    if (strcasecmp(pszTmp, "BASIC") == 0)
+      eHttpAuthType = MS_BASIC;
+    else if (strcasecmp(pszTmp, "DIGEST") == 0)
+      eHttpAuthType = MS_DIGEST;
+    else if (strcasecmp(pszTmp, "NTLM") == 0)
+      eHttpAuthType = MS_NTLM;
+    else if (strcasecmp(pszTmp, "ANY") == 0)
+      eHttpAuthType = MS_ANY;
+    else if (strcasecmp(pszTmp, "ANYSAFE") == 0)
+      eHttpAuthType = MS_ANYSAFE;
+    else {
+      msSetError(MS_WMSERR, "Invalid auth_type metadata '%s' specified",
+                 "msHTTPAuthProxySetup()", pszTmp);
+      return MS_FAILURE;
+    }
+  }
+
+  if ((pszTmp = msOWSLookupMetadata2(lyrmd, mapmd, namespaces,
+                                     "auth_username")) != NULL) {
+    pszHttpAuthUsername = msStrdup(pszTmp);
+  }
+
+  if ((pszTmp = msOWSLookupMetadata2(lyrmd, mapmd, namespaces,
+                                     "auth_password")) != NULL) {
+    pszHttpAuthPassword = msDecryptStringTokens(map, pszTmp);
+    if (pszHttpAuthPassword == NULL) {
+      return(MS_FAILURE);  /* An error should already have been produced */
+    }
+  }
+
+  pasReqInfo[numRequests].pszProxyAddress  = pszProxyHost;
+  pasReqInfo[numRequests].nProxyPort       = nProxyPort;
+  pasReqInfo[numRequests].eProxyType       = eProxyType;
+  pasReqInfo[numRequests].eProxyAuthType   = eProxyAuthType;
+  pasReqInfo[numRequests].pszProxyUsername = pszProxyUsername;
+  pasReqInfo[numRequests].pszProxyPassword = pszProxyPassword;
+  pasReqInfo[numRequests].eHttpAuthType    = eHttpAuthType;
+  pasReqInfo[numRequests].pszHttpUsername  = pszHttpAuthUsername;
+  pasReqInfo[numRequests].pszHttpPassword  = pszHttpAuthPassword;
+
+  return MS_SUCCESS;
+}
+
 /**********************************************************************
  *                          msHTTPExecuteRequests()
  *
@@ -395,6 +537,8 @@ int msHTTPExecuteRequests(httpRequestObj *pasReqInfo, int numRequests,
     /* set URL, note that curl keeps only a ref to our string buffer */
     curl_easy_setopt(http_handle, CURLOPT_URL, pasReqInfo[i].pszGetUrl );
 
+    curl_easy_setopt(http_handle, CURLOPT_PROTOCOLS, CURLPROTO_HTTP|CURLPROTO_HTTPS );
+
     /* Set User-Agent (auto-generate if not set by caller */
     if (pasReqInfo[i].pszUserAgent == NULL) {
       curl_version_info_data *psCurlVInfo;
@@ -458,7 +602,7 @@ int msHTTPExecuteRequests(httpRequestObj *pasReqInfo, int numRequests,
           && strlen(pasReqInfo[i].pszProxyUsername) > 0
           && strlen(pasReqInfo[i].pszProxyPassword) > 0) {
         char    szUsernamePasswd[128];
-#ifdef USE_CURLOPT_PROXYAUTH
+#if LIBCURL_VERSION_NUM >= 0x070a07
         long    nProxyAuthType = CURLAUTH_BASIC;
         /* CURLOPT_PROXYAUTH available only in Curl 7.10.7 and up */
         nProxyAuthType = msGetCURLAuthType(pasReqInfo[i].eProxyAuthType);
@@ -467,7 +611,7 @@ int msHTTPExecuteRequests(httpRequestObj *pasReqInfo, int numRequests,
         /* We log an error but don't abort processing */
         msSetError(MS_HTTPERR, "CURLOPT_PROXYAUTH not supported. Requires Curl 7.10.7 and up. *_proxy_auth_type setting ignored.",
                    "msHTTPExecuteRequests()");
-#endif /* CURLOPT_PROXYAUTH */
+#endif /* LIBCURL_VERSION_NUM */
 
         snprintf(szUsernamePasswd, 127, "%s:%s",
                  pasReqInfo[i].pszProxyUsername,
@@ -724,13 +868,15 @@ int msHTTPExecuteRequests(httpRequestObj *pasReqInfo, int numRequests,
       } else {
         /* Got a curl error */
 
+        errorObj *error = msGetErrorObj();
         if (psReq->debug)
           msDebug("HTTP: request failed with curl error "
                   "code %d (%s) for %s",
                   -psReq->nStatus, psReq->pszErrBuf,
                   psReq->pszGetUrl);
 
-        msSetError(MS_HTTPERR,
+        if(!error || error->code == MS_NOERR) /* only set error if one hasn't already been set */
+          msSetError(MS_HTTPERR,
                    "HTTP: request failed with curl error "
                    "code %d (%s) for %s",
                    "msHTTPExecuteRequests()",
@@ -780,7 +926,7 @@ int msHTTPExecuteRequests(httpRequestObj *pasReqInfo, int numRequests,
  **********************************************************************/
 int msHTTPGetFile(const char *pszGetUrl, const char *pszOutputFile,
                   int *pnHTTPStatus, int nTimeout, int bCheckLocalCache,
-                  int bDebug)
+                  int bDebug, int nMaxBytes)
 {
   httpRequestObj *pasReqInfo;
 
@@ -797,6 +943,8 @@ int msHTTPGetFile(const char *pszGetUrl, const char *pszOutputFile,
   pasReqInfo[0].pszGetUrl = msStrdup(pszGetUrl);
   pasReqInfo[0].pszOutputFile = msStrdup(pszOutputFile);
   pasReqInfo[0].debug = (char)bDebug;
+  pasReqInfo[0].nTimeout = nTimeout;
+  pasReqInfo[0].nMaxBytes = nMaxBytes;
 
   if (msHTTPExecuteRequests(pasReqInfo, 1, bCheckLocalCache) != MS_SUCCESS) {
     *pnHTTPStatus = pasReqInfo[0].nStatus;
diff --git a/maphttp.h b/maphttp.h
index 10c5d32..5164cdd 100644
--- a/maphttp.h
+++ b/maphttp.h
@@ -60,6 +60,7 @@ extern "C" {
     char    *pszGetUrl;
     char    *pszOutputFile;
     int     nTimeout;
+    int     nMaxBytes;
     rectObj bbox;
     int     width;
     int     height;
@@ -106,8 +107,11 @@ extern "C" {
                              int bCheckLocalCache);
   int  msHTTPGetFile(const char *pszGetUrl, const char *pszOutputFile,
                      int *pnHTTPStatus, int nTimeout, int bCheckLocalCache,
-                     int bDebug);
+                     int bDebug, int nMaxBytes);
 
+  int msHTTPAuthProxySetup(hashTableObj *mapmd, hashTableObj *lyrmd,
+                           httpRequestObj *pasReqInfo, int numRequests,
+                           mapObj *map, const char* namespaces);
 #endif /*USE_CURL*/
 
 #ifdef __cplusplus
diff --git a/mapimageio.c b/mapimageio.c
index 8fcba05..08b4d6f 100644
--- a/mapimageio.c
+++ b/mapimageio.c
@@ -993,12 +993,19 @@ int msSaveRasterBufferToBuffer(rasterBufferObj *data, bufferObj *buffer,
     return MS_FAILURE;
   }
 }
+
 #ifdef USE_GIF
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+static char const *gif_error_msg(int code)
+#else
 static char const *gif_error_msg()
+#endif
 {
   static char msg[80];
 
+#if (!defined GIFLIB_MAJOR) || (GIFLIB_MAJOR < 5)
   int code = GifLastError();
+#endif
   switch (code) {
     case E_GIF_ERR_OPEN_FAILED: /* should not see this */
       return "Failed to open given file";
@@ -1090,14 +1097,25 @@ int readGIF(char *path, rasterBufferObj *rb)
   ColorMapObject *cmap;
   int interlacedOffsets[] = {0,4,2,1};
   int interlacedJumps[] = {8,8,4,2};
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+  int errcode;
+#endif
 
 
   rb->type = MS_BUFFER_BYTE_RGBA;
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+  image =  DGifOpenFileName(path, &errcode);
+  if (image == NULL) {
+    msSetError(MS_MISCERR,"failed to load gif image: %s","readGIF()", gif_error_msg(errcode));
+    return MS_FAILURE;
+  }
+#else
   image =  DGifOpenFileName(path);
   if (image == NULL) {
     msSetError(MS_MISCERR,"failed to load gif image: %s","readGIF()", gif_error_msg());
     return MS_FAILURE;
   }
+#endif
   rb->width = image->SWidth;
   rb->height = image->SHeight;
   rb->data.rgba.row_step = rb->width * 4;
@@ -1122,7 +1140,11 @@ int readGIF(char *path, rasterBufferObj *rb)
 
   do {
     if (DGifGetRecordType(image, &recordType) == GIF_ERROR) {
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+      msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg(image->Error));
+#else
       msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg());
+#endif
       return MS_FAILURE;
     }
 
@@ -1132,7 +1154,11 @@ int readGIF(char *path, rasterBufferObj *rb)
         break;
       case IMAGE_DESC_RECORD_TYPE:
         if (DGifGetImageDesc(image) == GIF_ERROR) {
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+          msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg(image->Error));
+#else
           msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg());
+#endif
           return MS_FAILURE;
         }
         if (!firstImageRead) {
@@ -1159,7 +1185,11 @@ int readGIF(char *path, rasterBufferObj *rb)
                 g = rb->data.rgba.g + offset;
                 b = rb->data.rgba.b + offset;
                 if (DGifGetLine(image, line, width) == GIF_ERROR) {
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+                  msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()",gif_error_msg(image->Error));
+#else
                   msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()",gif_error_msg());
+#endif
                   return MS_FAILURE;
                 }
 
@@ -1188,7 +1218,11 @@ int readGIF(char *path, rasterBufferObj *rb)
               g = rb->data.rgba.g + offset;
               b = rb->data.rgba.b + offset;
               if (DGifGetLine(image, line, width) == GIF_ERROR) {
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+                msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()",gif_error_msg(image->Error));
+#else
                 msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()",gif_error_msg());
+#endif
                 return MS_FAILURE;
               }
               for(j=0; j<width; j++) {
@@ -1213,12 +1247,20 @@ int readGIF(char *path, rasterBufferObj *rb)
         } else {
           /* Skip all next images */
           if (DGifGetCode(image, &codeSize, &codeBlock) == GIF_ERROR) {
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+            msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg(image->Error));
+#else
             msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg());
+#endif
             return MS_FAILURE;
           }
           while (codeBlock != NULL) {
             if (DGifGetCodeNext(image, &codeBlock) == GIF_ERROR) {
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+              msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg(image->Error));
+#else
               msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg());
+#endif
               return MS_FAILURE;
             }
           }
@@ -1227,14 +1269,22 @@ int readGIF(char *path, rasterBufferObj *rb)
       case EXTENSION_RECORD_TYPE:
         /* skip all extension blocks */
         if (DGifGetExtension(image, &extCode, &extension) == GIF_ERROR) {
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+          msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg(image->Error));
+#else
           msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg());
+#endif
           return MS_FAILURE;
         }
         if(extCode == 249 && (extension[1] & 1))
           transIdx = extension[4];
         for (;;) {
           if (DGifGetExtensionNext(image, &extension) == GIF_ERROR) {
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+            msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg(image->Error));
+#else
             msSetError(MS_MISCERR,"corrupted gif image?: %s","readGIF()", gif_error_msg());
+#endif
             return MS_FAILURE;
           }
           if (extension == NULL)
@@ -1254,7 +1304,11 @@ int readGIF(char *path, rasterBufferObj *rb)
   } while (recordType != TERMINATE_RECORD_TYPE);
 
   if (DGifCloseFile(image) == GIF_ERROR) {
+#if defined GIFLIB_MAJOR && GIFLIB_MAJOR >= 5
+    msSetError(MS_MISCERR,"failed to close gif after loading: %s","readGIF()", gif_error_msg(image->Error));
+#else
     msSetError(MS_MISCERR,"failed to close gif after loading: %s","readGIF()", gif_error_msg());
+#endif
     return MS_FAILURE;
   }
 
diff --git a/mapimagemap.c b/mapimagemap.c
index 9c48c7f..5f38436 100644
--- a/mapimagemap.c
+++ b/mapimagemap.c
@@ -698,7 +698,7 @@ int msSaveImageIM(imageObj* img, char *filename, outputFormatObj *format )
       }
       if (iIndice < size) {
         sprintf(workbuffer, "%s", img->img.imagemap+iIndice );
-        msIO_fprintf(stream, workbuffer);
+        msIO_fprintf(stream, "%s", workbuffer);
       }
     } else
       msIO_fwrite(img->img.imagemap, size, 1, stream);
diff --git a/mapio.c b/mapio.c
index ac8cc5b..0861213 100644
--- a/mapio.c
+++ b/mapio.c
@@ -809,10 +809,13 @@ char *msIO_stripStdoutBufferContentType()
   }
 
   /* -------------------------------------------------------------------- */
-  /*      Copy out content type.                                          */
+  /*      Copy out content type. Note we go against the coding guidelines */
+  /*      here and use strncpy() instead of strlcpy() as the source       */
+  /*      buffer may not be NULL terminated - strlcpy() requires NULL     */
+  /*      terminated sources (see issue #4672).                           */
   /* -------------------------------------------------------------------- */
   content_type = (char *) malloc(end_of_ct-14+2);
-  strlcpy( content_type, (const char *) buf->data + 14, end_of_ct - 14 + 2);
+  strncpy( content_type, (const char *) buf->data + 14, end_of_ct - 14 + 2);
   content_type[end_of_ct-14+1] = '\0';
 
   /* -------------------------------------------------------------------- */
diff --git a/mapio.h b/mapio.h
index 0a559ee..b5faef2 100644
--- a/mapio.h
+++ b/mapio.h
@@ -42,9 +42,17 @@
 extern "C" {
 #endif
 
+#ifndef MS_PRINT_FUNC_FORMAT
+#if defined(__GNUC__) && __GNUC__ >= 3 && !defined(DOXYGEN_SKIP)
+#define MS_PRINT_FUNC_FORMAT( format_idx, arg_idx )  __attribute__((__format__ (__printf__, format_idx, arg_idx)))
+#else
+#define MS_PRINT_FUNC_FORMAT( format_idx, arg_idx )
+#endif
+#endif
+
   /* stdio analogs */
-  int MS_DLL_EXPORT msIO_printf( const char *format, ... );
-  int MS_DLL_EXPORT msIO_fprintf( FILE *stream, const char *format, ... );
+  int MS_DLL_EXPORT msIO_printf( const char *format, ... ) MS_PRINT_FUNC_FORMAT(1,2);
+  int MS_DLL_EXPORT msIO_fprintf( FILE *stream, const char *format, ... ) MS_PRINT_FUNC_FORMAT(2,3);
   int MS_DLL_EXPORT msIO_fwrite( const void *ptr, size_t size, size_t nmemb, FILE *stream );
   int MS_DLL_EXPORT msIO_fread( void *ptr, size_t size, size_t nmemb, FILE *stream );
   int MS_DLL_EXPORT msIO_vfprintf( FILE *fp, const char *format, va_list ap );
@@ -71,7 +79,7 @@ extern "C" {
                                           msIOContext *stdout_context,
                                           msIOContext *stderr_context );
   msIOContext MS_DLL_EXPORT *msIO_getHandler( FILE * );
-  void msIO_setHeader (const char *header, const char* value, ...);
+  void msIO_setHeader (const char *header, const char* value, ...) MS_PRINT_FUNC_FORMAT(2,3);
   void msIO_sendHeaders(void);
 
   /*
diff --git a/mapjoin.c b/mapjoin.c
index 8632d32..6353d64 100644
--- a/mapjoin.c
+++ b/mapjoin.c
@@ -609,8 +609,8 @@ int msMySQLJoinConnect(layerObj *layer, joinObj *join)
   {
     char tmp[4000];
     snprintf( tmp, sizeof(tmp), "Failed to connect to SQL server: Error: %s\nHost: %s\nUsername:%s\nPassword:%s\n", mysql_error(joininfo->conn), DB_HOST, DB_USER, DB_PASSWD);
-    msSetError(MS_QUERYERR, tmp,
-               "msMYSQLLayerOpen()");
+    msSetError(MS_QUERYERR, "%s",
+               "msMYSQLLayerOpen()", tmp);
     free(joininfo);
     return MS_FAILURE;
   }
diff --git a/mapkmlrenderer.cpp b/mapkmlrenderer.cpp
index 24551ac..9192749 100644
--- a/mapkmlrenderer.cpp
+++ b/mapkmlrenderer.cpp
@@ -27,6 +27,7 @@
  * DEALINGS IN THE SOFTWARE.
  *****************************************************************************/
 
+#include "mapserver-config.h"
 #ifdef USE_KML
 
 #include "mapserver.h"
@@ -983,9 +984,7 @@ char* KmlRenderer::lookupSymbolUrl(imageObj *img, symbolObj *symbol, symbolStyle
     }
 
     if (createIconImage(iconFileName, symbol, symstyle) != MS_SUCCESS) {
-      char errMsg[512];
-      sprintf(errMsg, "Error creating icon file '%s'", iconFileName);
-      msSetError(MS_IOERR, errMsg, "KmlRenderer::lookupSymbolStyle()" );
+      msSetError(MS_IOERR, "Error creating icon file '%s'", "KmlRenderer::lookupSymbolStyle()", iconFileName);
       return NULL;
     }
 
diff --git a/mapkmlrenderer.h b/mapkmlrenderer.h
index 47a6a87..e0525b2 100644
--- a/mapkmlrenderer.h
+++ b/mapkmlrenderer.h
@@ -31,6 +31,7 @@
 #ifndef MAPKMLRENDERER_H
 #define MAPKMLRENDERER_H
 
+#include "mapserver-config.h"
 #if defined(USE_KML)
 
 #include "mapserver.h"
diff --git a/maplayer.c b/maplayer.c
index 32b1a49..d792523 100644
--- a/maplayer.c
+++ b/maplayer.c
@@ -68,11 +68,126 @@ void msLayerFreeItemInfo(layerObj *layer)
   layer->vtable->LayerFreeItemInfo(layer);
 }
 
+int msLayerRestoreFromScaletokens(layerObj *layer)
+{
+  if(!layer->scaletokens) {
+    return MS_SUCCESS;
+  }
+  if(layer->orig_data) {
+    msFree(layer->data);
+    layer->data = layer->orig_data;
+    layer->orig_data = NULL;
+  }
+  if(layer->orig_tileindex) {
+    msFree(layer->tileindex);
+    layer->tileindex = layer->orig_tileindex;
+    layer->orig_tileindex = NULL;
+  }
+  if(layer->orig_tileitem) {
+    msFree(layer->tileitem);
+    layer->tileitem = layer->orig_tileitem;
+    layer->orig_tileitem = NULL;
+  }
+  if(layer->orig_filter) {
+    msLoadExpressionString(&(layer->filter),layer->orig_filter);
+    msFree(layer->orig_filter);
+    layer->orig_filter = NULL;
+  }
+  if(layer->orig_filteritem) {
+    msFree(layer->filteritem);
+    layer->filteritem = layer->orig_filteritem;
+    layer->orig_filteritem = NULL;
+  }
+  return MS_SUCCESS; 
+}
+
+int msLayerApplyScaletokens(layerObj *layer, double scale)
+{
+  int i;
+  if(!layer->scaletokens) {
+    return MS_SUCCESS;
+  }
+  msLayerRestoreFromScaletokens(layer);
+  for(i=0;i<layer->numscaletokens;i++) {
+    scaleTokenObj *st = &layer->scaletokens[i];
+    scaleTokenEntryObj *ste = NULL;
+    if(scale<=0) {
+       ste = &(st->tokens[0]);
+      /* no scale defined, use first entry */
+    } else {
+      int tokenindex=0;
+      while(tokenindex<st->n_entries) {
+        ste = &(st->tokens[tokenindex]);
+        if(scale < ste->maxscale && scale >= ste->minscale) break; /* current token is the correct one */
+        tokenindex++;
+        ste = NULL;
+      }
+    }
+    assert(ste);
+    if(layer->data && strstr(layer->data,st->name)) {
+      if(layer->debug >= MS_DEBUGLEVEL_DEBUG) {
+        msDebug("replacing scaletoken (%s) with (%s) in layer->data (%s) for scale=%f\n",
+                st->name,ste->value,layer->name,scale);
+      }
+      layer->orig_data = layer->data;
+      layer->data = msStrdup(layer->data);
+      layer->data = msReplaceSubstring(layer->data,st->name,ste->value);
+    }
+    if(layer->tileindex && strstr(layer->tileindex,st->name)) {
+      if(layer->debug >= MS_DEBUGLEVEL_DEBUG) {
+        msDebug("replacing scaletoken (%s) with (%s) in layer->tileindex (%s) for scale=%f\n",
+                st->name,ste->value,layer->name,scale);
+      }
+      layer->orig_tileindex = layer->tileindex;
+      layer->tileindex = msStrdup(layer->tileindex);
+      layer->tileindex = msReplaceSubstring(layer->tileindex,st->name,ste->value);
+    }
+    if(layer->tileitem && strstr(layer->tileitem,st->name)) {
+      if(layer->debug >= MS_DEBUGLEVEL_DEBUG) {
+        msDebug("replacing scaletoken (%s) with (%s) in layer->tileitem (%s) for scale=%f\n",
+                st->name,ste->value,layer->name,scale);
+      }
+      layer->orig_tileitem = layer->tileitem;
+      layer->tileitem = msStrdup(layer->tileitem);
+      layer->tileitem = msReplaceSubstring(layer->tileitem,st->name,ste->value);
+    }
+    if(layer->filteritem && strstr(layer->filteritem,st->name)) {
+      if(layer->debug >= MS_DEBUGLEVEL_DEBUG) {
+        msDebug("replacing scaletoken (%s) with (%s) in layer->filteritem (%s) for scale=%f\n",
+                st->name,ste->value,layer->name,scale);
+      }
+      layer->orig_filteritem = layer->filteritem;
+      layer->filteritem = msStrdup(layer->filteritem);
+      layer->filteritem = msReplaceSubstring(layer->filteritem,st->name,ste->value);
+    }
+    if(layer->filter.string && strstr(layer->filter.string,st->name)) {
+      char *tmpval;
+      if(layer->debug >= MS_DEBUGLEVEL_DEBUG) {
+        msDebug("replacing scaletoken (%s) with (%s) in layer->filter (%s) for scale=%f\n",
+                st->name,ste->value,layer->name,scale);
+      }
+      layer->orig_filter = msStrdup(layer->filter.string);
+      tmpval = msStrdup(layer->filter.string);
+      tmpval = msReplaceSubstring(tmpval,st->name,ste->value);
+      if(msLoadExpressionString(&(layer->filter),tmpval) == -1) return(MS_FAILURE); /* loadExpression() cleans up previously allocated expression */
+      msFree(tmpval);
+    }
+  }
+  return MS_SUCCESS;
+}
+
+
 /*
 ** Does exactly what it implies, readies a layer for processing.
 */
 int msLayerOpen(layerObj *layer)
 {
+  int rv;
+
+  /* RFC-86 Scale dependant token replacements*/
+  rv = msLayerApplyScaletokens(layer,(layer->map)?layer->map->scaledenom:-1);
+  if (rv != MS_SUCCESS) return rv;
+
   /* RFC-69 clustering support */
   if (layer->cluster.region)
     return msClusterLayerOpen(layer);
@@ -87,7 +202,7 @@ int msLayerOpen(layerObj *layer)
     layer->connectiontype = MS_RASTER;
 
   if ( ! layer->vtable) {
-    int rv =  msInitializeVirtualTable(layer);
+    rv =  msInitializeVirtualTable(layer);
     if (rv != MS_SUCCESS)
       return rv;
   }
@@ -148,8 +263,10 @@ int msLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
 */
 int msLayerNextShape(layerObj *layer, shapeObj *shape)
 {
+  int rv;
+  
   if ( ! layer->vtable) {
-    int rv =  msInitializeVirtualTable(layer);
+    rv =  msInitializeVirtualTable(layer);
     if (rv != MS_SUCCESS)
       return rv;
   }
@@ -161,7 +278,14 @@ int msLayerNextShape(layerObj *layer, shapeObj *shape)
   /* tagged on to the main attributes with the naming scheme [join name].[item name]. */
   /* We need to leverage the iteminfo (I think) at this point */
 
-  return layer->vtable->LayerNextShape(layer, shape);
+  rv = layer->vtable->LayerNextShape(layer, shape);
+
+  /* RFC89 Apply Layer GeomTransform */
+  if(layer->_geomtransform.type != MS_GEOMTRANSFORM_NONE && rv == MS_SUCCESS) {
+    rv = msGeomTransformShape(layer->map, layer, shape);      
+  }
+  
+  return rv;
 }
 
 /*
@@ -185,8 +309,10 @@ int msLayerNextShape(layerObj *layer, shapeObj *shape)
 */
 int msLayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
 {
+  int rv;
+  
   if( ! layer->vtable) {
-    int rv =  msInitializeVirtualTable(layer);
+    rv =  msInitializeVirtualTable(layer);
     if(rv != MS_SUCCESS)
       return rv;
   }
@@ -196,7 +322,14 @@ int msLayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
   ** tagged on to the main attributes with the naming scheme [join name].[item name].
   */
 
-  return layer->vtable->LayerGetShape(layer, shape, record);
+  rv = layer->vtable->LayerGetShape(layer, shape, record);
+  
+  /* RFC89 Apply Layer GeomTransform */
+  if(layer->_geomtransform.type != MS_GEOMTRANSFORM_NONE && rv == MS_SUCCESS) {
+    rv = msGeomTransformShape(layer->map, layer, shape); 
+  }
+
+  return rv;
 }
 
 /*
@@ -232,6 +365,7 @@ void msLayerClose(layerObj *layer)
   if (layer->vtable) {
     layer->vtable->LayerClose(layer);
   }
+  msLayerRestoreFromScaletokens(layer);
 }
 
 /*
@@ -399,6 +533,12 @@ int msTokenizeExpression(expressionObj *expression, char **list, int *listsize)
       case MS_TOKEN_BINDING_SHAPE:
         node->token = token;
         break;
+      case MS_TOKEN_BINDING_MAP_CELLSIZE:
+        node->token = token;
+        break;
+      case MS_TOKEN_BINDING_DATA_CELLSIZE:
+        node->token = token;
+        break;        
       case MS_TOKEN_FUNCTION_FROMTEXT: /* we want to process a shape from WKT once and not for every feature being evaluated */
         if((token = msyylex()) != 40) { /* ( */
           msSetError(MS_PARSEERR, "Parsing fromText function failed.", "msTokenizeExpression()");
@@ -502,6 +642,9 @@ int msLayerWhichItems(layerObj *layer, int get_all, char *metadata)
 
   if(layer->labelitem) nt++;
 
+  if(layer->_geomtransform.type == MS_GEOMTRANSFORM_EXPRESSION)
+    msTokenizeExpression(&layer->_geomtransform, layer->items, &(layer->numitems));
+  
   /* class level counts */
   for(i=0; i<layer->numclasses; i++) {
 
@@ -835,7 +978,7 @@ int msLayerGetMaxFeaturesToDraw(layerObj *layer, outputFormatObj *format)
 {
   int nMaxFeatures = -1;
   const char *pszTmp = NULL;
-  if (layer && format) {
+  if (layer) {
     pszTmp = msLookupHashTable(&layer->metadata, "maxfeaturestodraw");
     if (pszTmp)
       nMaxFeatures = atoi(pszTmp);
@@ -844,6 +987,8 @@ int msLayerGetMaxFeaturesToDraw(layerObj *layer, outputFormatObj *format)
       if (pszTmp)
         nMaxFeatures = atoi(pszTmp);
     }
+  }
+  if(format) {
     if (nMaxFeatures < 0)
       nMaxFeatures = atoi(msGetOutputFormatOption( format, "maxfeaturestodraw", "-1"));
   }
@@ -1173,7 +1318,7 @@ int
 msLayerApplyCondSQLFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
                                  int iLayerIndex)
 {
-#if USE_OGR
+#ifdef USE_OGR
   return FLTLayerApplyCondSQLFilterToLayer(psNode, map, iLayerIndex);
 
 #else
@@ -1195,7 +1340,7 @@ int
 msLayerApplyPlainFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
                                int iLayerIndex)
 {
-#if USE_OGR
+#ifdef USE_OGR
   return FLTLayerApplyPlainFilterToLayer(psNode, map, iLayerIndex);
 #else
   return MS_FAILURE;
@@ -1493,6 +1638,9 @@ int msInitializeVirtualTable(layerObj *layer)
     case(MS_UVRASTER):
       return(msUVRASTERLayerInitializeVirtualTable(layer));
       break;
+    case(MS_CONTOUR):
+      return(msContourLayerInitializeVirtualTable(layer));
+      break;      
     default:
       msSetError(MS_MISCERR, "Unknown connectiontype, it was %d", "msInitializeVirtualTable()", layer->connectiontype);
       return MS_FAILURE;
@@ -1507,6 +1655,12 @@ int msInitializeVirtualTable(layerObj *layer)
  * INLINE: Virtual table functions
  */
 
+typedef struct {
+  rectObj searchrect;
+  int is_relative; /* relative coordinates? */
+}
+msINLINELayerInfo;
+
 int msINLINELayerIsOpen(layerObj *layer)
 {
   if (layer->currentfeature)
@@ -1515,13 +1669,61 @@ int msINLINELayerIsOpen(layerObj *layer)
     return(MS_FALSE);
 }
 
+msINLINELayerInfo *msINLINECreateLayerInfo(void)
+{
+  msINLINELayerInfo *layerinfo = msSmallMalloc(sizeof(msINLINELayerInfo));
+  layerinfo->searchrect.minx = -1.0;
+  layerinfo->searchrect.miny = -1.0;
+  layerinfo->searchrect.maxx = -1.0;
+  layerinfo->searchrect.maxy = -1.0;
+  layerinfo->is_relative = MS_FALSE;
+  return layerinfo;  
+}
 
 int msINLINELayerOpen(layerObj *layer)
 {
+  msINLINELayerInfo  *layerinfo;
+
+  if (layer->layerinfo) {
+    if (layer->debug) {
+      msDebug("msINLINELayerOpen: Layer is already open!\n");
+    }
+    return MS_SUCCESS;  /* already open */
+  }
+  
+  /*
+  ** Initialize the layerinfo
+  **/
+  layerinfo = msINLINECreateLayerInfo();
+  
   layer->currentfeature = layer->features; /* point to the begining of the feature list */
+
+  layer->layerinfo = (void*)layerinfo;
+  
   return(MS_SUCCESS);
 }
 
+int msINLINELayerClose(layerObj *layer)
+{
+  if (layer->layerinfo) {
+    free(layer->layerinfo);
+    layer->layerinfo = NULL;
+  }
+
+  return MS_SUCCESS;
+}
+
+int msINLINELayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
+{
+  msINLINELayerInfo *layerinfo = NULL;  
+  layerinfo = (msINLINELayerInfo*) layer->layerinfo;
+
+  layerinfo->searchrect = rect;
+  layerinfo->is_relative = (layer->transform != MS_FALSE && layer->transform != MS_TRUE);
+  
+  return MS_SUCCESS;
+}
+
 /* Author: Cristoph Spoerri and Sean Gillies */
 int msINLINELayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
 {
@@ -1556,23 +1758,38 @@ int msINLINELayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
 
 int msINLINELayerNextShape(layerObj *layer, shapeObj *shape)
 {
-  if( ! (layer->currentfeature)) {
-    /* out of features */
-    return(MS_DONE);
-  }
+  msINLINELayerInfo *layerinfo = NULL;  
+  shapeObj * s;
+  
+  layerinfo = (msINLINELayerInfo*) layer->layerinfo;
+  
+  while (1) {
 
-  msCopyShape(&(layer->currentfeature->shape), shape);
+    if( ! (layer->currentfeature)) {
+      /* out of features */
+      return(MS_DONE);
+    }
 
-  layer->currentfeature = layer->currentfeature->next;
+    s = &(layer->currentfeature->shape);
+    layer->currentfeature = layer->currentfeature->next;
+    msComputeBounds(s);
 
-  /* check for the expected size of the values array */
-  if (layer->numitems > shape->numvalues) {
-    int i;
-    shape->values = (char **)msSmallRealloc(shape->values, sizeof(char *)*(layer->numitems));
-    for (i = shape->numvalues; i < layer->numitems; i++)
-      shape->values[i] = msStrdup("");
+    if (layerinfo->is_relative || msRectOverlap(&s->bounds, &layerinfo->searchrect)) {
+   
+      msCopyShape(s, shape);
+
+      /* check for the expected size of the values array */
+      if (layer->numitems > shape->numvalues) {
+        int i;
+        shape->values = (char **)msSmallRealloc(shape->values, sizeof(char *)*(layer->numitems));
+        for (i = shape->numvalues; i < layer->numitems; i++)
+          shape->values[i] = msStrdup("");
+      }
+
+      break;
+    }
+    
   }
-  msComputeBounds(shape);
 
   return(MS_SUCCESS);
 }
@@ -1626,10 +1843,10 @@ msINLINELayerInitializeVirtualTable(layerObj *layer)
   /* layer->vtable->LayerFreeItemInfo, use default */
   layer->vtable->LayerOpen = msINLINELayerOpen;
   layer->vtable->LayerIsOpen = msINLINELayerIsOpen;
-  /* layer->vtable->LayerWhichShapes, use default */
+  layer->vtable->LayerWhichShapes = msINLINELayerWhichShapes;
   layer->vtable->LayerNextShape = msINLINELayerNextShape;
   layer->vtable->LayerGetShape = msINLINELayerGetShape;
-  /* layer->vtable->LayerClose, use default */
+  layer->vtable->LayerClose = msINLINELayerClose;
   /* layer->vtable->LayerGetItems, use default */
 
   /*
diff --git a/maplegend.c b/maplegend.c
index 0edb2ec..cad44f8 100644
--- a/maplegend.c
+++ b/maplegend.c
@@ -41,10 +41,12 @@
  * this function
  */
 int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
-                     int width, int height, imageObj *image, int dstX, int dstY)
+                     int width, int height, imageObj *image, int dstX, int dstY,
+                     int scale_independant, class_hittest *hittest)
 {
   int i, type, hasmarkersymbol;
   double offset;
+  double polygon_contraction = 0.5; /* used to account for the width of a polygon's outline */
   shapeObj box, zigzag;
   pointObj marker;
   char szPath[MS_MAXPATHLEN];
@@ -95,25 +97,7 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
     clip.miny = dstY;
     renderer->setClip(image_draw,clip);
   }
-
-  /* initialize the box used for polygons and for outlines */
-  box.line = (lineObj *)msSmallMalloc(sizeof(lineObj));
-  box.numlines = 1;
-  box.line[0].point = (pointObj *)msSmallMalloc(sizeof(pointObj)*5);
-  box.line[0].numpoints = 5;
-
-  box.line[0].point[0].x = dstX + 0.5;
-  box.line[0].point[0].y = dstY + 0.5;
-  box.line[0].point[1].x = dstX + width - 0.5;
-  box.line[0].point[1].y = dstY + 0.5;
-  box.line[0].point[2].x = dstX + width - 0.5;
-  box.line[0].point[2].y = dstY + height - 0.5;
-  box.line[0].point[3].x = dstX + 0.5;
-  box.line[0].point[3].y = dstY + height - 0.5;
-  box.line[0].point[4].x = box.line[0].point[0].x;
-  box.line[0].point[4].y = box.line[0].point[0].y;
-  box.line[0].numpoints = 5;
-
+  
   /* if the class has a keyimage, treat it as a point layer
    * (the keyimage will be treated there) */
   if(theclass->keyimage != NULL) {
@@ -126,12 +110,33 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
       for(i=0; i<theclass->numstyles; i++) {
         if(MS_VALID_COLOR(theclass->styles[i]->color)) { /* there is a fill */
           type = MS_LAYER_POLYGON;
-          break;
+        }
+        if(MS_VALID_COLOR(theclass->styles[i]->outlinecolor)) { /* there is an outline */
+          polygon_contraction = MS_MAX(polygon_contraction, theclass->styles[i]->width / 2.0);
         }
       }
     }
   }
 
+  /* initialize the box used for polygons and for outlines */
+  box.line = (lineObj *)msSmallMalloc(sizeof(lineObj));
+  box.numlines = 1;
+  box.line[0].point = (pointObj *)msSmallMalloc(sizeof(pointObj)*5);
+  box.line[0].numpoints = 5;
+
+  box.line[0].point[0].x = dstX + polygon_contraction;
+  box.line[0].point[0].y = dstY + polygon_contraction;
+  box.line[0].point[1].x = dstX + width - polygon_contraction;
+  box.line[0].point[1].y = dstY + polygon_contraction;
+  box.line[0].point[2].x = dstX + width - polygon_contraction;
+  box.line[0].point[2].y = dstY + height - polygon_contraction;
+  box.line[0].point[3].x = dstX + polygon_contraction;
+  box.line[0].point[3].y = dstY + height - polygon_contraction;
+  box.line[0].point[4].x = box.line[0].point[0].x;
+  box.line[0].point[4].y = box.line[0].point[0].y;
+  box.line[0].numpoints = 5;
+
+
   /*
   ** now draw the appropriate color/symbol/size combination
   */
@@ -141,14 +146,27 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
       marker.y = dstY + MS_NINT(height / 2.0);
       hasmarkersymbol = 0;
       for(i=0; i<theclass->numstyles; i++) {
-          if (theclass->styles[i]->symbol < map->symbolset.numsymbols && theclass->styles[i]->symbol > 0) {
-             hasmarkersymbol = 1;
-             break;
-          }
+        if(!scale_independant && map->scaledenom > 0) {
+          styleObj *lp = theclass->styles[i];
+          if((lp->maxscaledenom > 0) && (map->scaledenom > lp->maxscaledenom)) continue;
+          if((lp->minscaledenom > 0) && (map->scaledenom <= lp->minscaledenom)) continue;
+        }
+        if(hittest && hittest->stylehits[i].status == 0) continue;
+        if (theclass->styles[i]->symbol < map->symbolset.numsymbols && theclass->styles[i]->symbol > 0) {
+           hasmarkersymbol = 1;
+           break;
+        }
       }
       if (hasmarkersymbol) {
-        for(i=0; i<theclass->numstyles; i++)
-          msDrawMarkerSymbol(&map->symbolset, image_draw, &marker, theclass->styles[i], lp->scalefactor);
+        for(i=0; i<theclass->numstyles; i++) {
+          if(!scale_independant && map->scaledenom > 0) {
+            styleObj *lp = theclass->styles[i];
+            if((lp->maxscaledenom > 0) && (map->scaledenom > lp->maxscaledenom)) continue;
+            if((lp->minscaledenom > 0) && (map->scaledenom <= lp->minscaledenom)) continue;
+          }
+          if(hittest && hittest->stylehits[i].status == 0) continue;
+          msDrawMarkerSymbol(&map->symbolset, image_draw, &marker, theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+        }
       } else if (theclass->labels && theclass->numlabels > 0) {
         labelObj *label = theclass->labels[0]; /* use the first label definition */
         double lsize = label->size;
@@ -156,19 +174,23 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
         int lpos = label->position;
         int loffsetx = label->offsetx;
         int loffsety = label->offsety;
-
-        label->offsetx = 0;
-        label->offsety = 0;
-        label->angle = 0;
-        label->position = MS_CC;
-        if (label->type == MS_TRUETYPE) label->size = height;
-        msDrawLabel(map, image_draw, marker, (char*)"Az", label,1.0);
-
-        label->size = lsize;
-        label->position = lpos;
-        label->angle = langle;
-        label->offsetx = loffsetx;
-        label->offsety = loffsety;
+        int lstatus = label->status;
+        if(!hittest || hittest->labelhits[0].status == 1) {
+          label->offsetx = 0;
+          label->offsety = 0;
+          label->angle = 0;
+          label->position = MS_CC;
+          if (label->type == MS_TRUETYPE) label->size = height;
+          label->status = MS_ON;
+          msDrawLabel(map, image_draw, marker, (char*)"Az", label,1.0);
+
+          label->size = lsize;
+          label->position = lpos;
+          label->angle = langle;
+          label->offsetx = loffsetx;
+          label->offsety = loffsety;
+          label->status = lstatus;
+        }
       }
       break;
     case MS_LAYER_POINT:
@@ -178,6 +200,7 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
         int symbolNum;
         styleObj imgStyle;
         symbolObj *symbol=NULL;
+        for(symbolNum=0; symbolNum<theclass->numstyles; symbolNum++)
         symbolNum = msAddImageSymbol(&(map->symbolset), msBuildPath(szPath, map->mappath, theclass->keyimage));
         if(symbolNum == -1) {
           msSetError(MS_GDERR, "Failed to open legend key image", "msCreateLegendIcon()");
@@ -197,11 +220,18 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
           imgStyle.maxsize = imgStyle.size;
 
         imgStyle.symbol = symbolNum;
-        msDrawMarkerSymbol(&map->symbolset,image_draw,&marker,&imgStyle,lp->scalefactor);
+        msDrawMarkerSymbol(&map->symbolset,image_draw,&marker,&imgStyle,lp->scalefactor * image_draw->resolutionfactor);
         /* TO DO: we may want to handle this differently depending on the relative size of the keyimage */
       } else {
-        for(i=0; i<theclass->numstyles; i++)
-          msDrawMarkerSymbol(&map->symbolset, image_draw, &marker, theclass->styles[i], lp->scalefactor);
+        for(i=0; i<theclass->numstyles; i++) {
+          if(!scale_independant && map->scaledenom > 0) {
+            styleObj *lp = theclass->styles[i];
+            if((lp->maxscaledenom > 0) && (map->scaledenom > lp->maxscaledenom)) continue;
+            if((lp->minscaledenom > 0) && (map->scaledenom <= lp->minscaledenom)) continue;
+          }
+          if(hittest && hittest->stylehits[i].status == 0) continue;
+          msDrawMarkerSymbol(&map->symbolset, image_draw, &marker, theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+        }
       }
       break;
     case MS_LAYER_LINE:
@@ -228,8 +258,21 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
       zigzag.line[0].point[3].x = dstX + width - offset;
       zigzag.line[0].point[3].y = dstY + offset;
 
-      for(i=0; i<theclass->numstyles; i++)
-        msDrawLineSymbol(&map->symbolset, image_draw, &zigzag, theclass->styles[i], lp->scalefactor);
+      for(i=0; i<theclass->numstyles; i++) {
+        if(!scale_independant && map->scaledenom > 0) {
+          styleObj *lp = theclass->styles[i];
+          if((lp->maxscaledenom > 0) && (map->scaledenom > lp->maxscaledenom)) continue;
+          if((lp->minscaledenom > 0) && (map->scaledenom <= lp->minscaledenom)) continue;
+        }
+        if(hittest && hittest->stylehits[i].status == 0) continue;
+        if (theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_NONE ||
+            theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT ||
+            theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY)
+          msDrawLineSymbol(&map->symbolset, image_draw, &zigzag, theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+        else
+          msDrawTransformedShape(map, &map->symbolset, image_draw, &zigzag, 
+                                        theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+      }
 
       free(zigzag.line[0].point);
       free(zigzag.line);
@@ -238,8 +281,21 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
     case MS_LAYER_RASTER:
     case MS_LAYER_CHART:
     case MS_LAYER_POLYGON:
-      for(i=0; i<theclass->numstyles; i++)
-        msDrawShadeSymbol(&map->symbolset, image_draw, &box, theclass->styles[i], lp->scalefactor);
+      for(i=0; i<theclass->numstyles; i++) {
+        if(!scale_independant && map->scaledenom > 0) {
+          styleObj *lp = theclass->styles[i];
+          if((lp->maxscaledenom > 0) && (map->scaledenom > lp->maxscaledenom)) continue;
+          if((lp->minscaledenom > 0) && (map->scaledenom <= lp->minscaledenom)) continue;
+        }
+        if(hittest && hittest->stylehits[i].status == 0) continue;
+        if (theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_NONE ||
+            theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOINT ||
+            theclass->styles[i]->_geomtransform.type == MS_GEOMTRANSFORM_LABELPOLY)
+          msDrawShadeSymbol(&map->symbolset, image_draw, &box, theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+        else
+          msDrawTransformedShape(map, &map->symbolset, image_draw, &box,
+                                 theclass->styles[i], lp->scalefactor * image_draw->resolutionfactor);
+      }
       break;
     default:
       return MS_FAILURE;
@@ -250,7 +306,7 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
   if(MS_VALID_COLOR(map->legend.outlinecolor)) {
     initStyle(&outline_style);
     outline_style.color = map->legend.outlinecolor;
-    msDrawLineSymbol(&map->symbolset, image_draw, &box, &outline_style, 1.0);
+    msDrawLineSymbol(&map->symbolset, image_draw, &box, &outline_style, 1.0 * image_draw->resolutionfactor);
     /* reset clipping rectangle */
     if(renderer->supports_clipping)
       renderer->resetClip(image_draw);
@@ -304,7 +360,7 @@ int msDrawLegendIcon(mapObj *map, layerObj *lp, classObj *theclass,
 }
 
 
-imageObj *msCreateLegendIcon(mapObj* map, layerObj* lp, classObj* class, int width, int height)
+imageObj *msCreateLegendIcon(mapObj* map, layerObj* lp, classObj* class, int width, int height, int scale_independant)
 {
   imageObj *image;
   outputFormatObj *format = NULL;
@@ -340,10 +396,10 @@ imageObj *msCreateLegendIcon(mapObj* map, layerObj* lp, classObj* class, int wid
     msClearLayerPenValues(lp); /* just in case the mapfile has already been processed */
 #endif
     if (class) {
-      msDrawLegendIcon(map, lp, class, width, height, image, 0, 0);
+      msDrawLegendIcon(map, lp, class, width, height, image, 0, 0, scale_independant, NULL);
     } else {
       for (i=0; i<lp->numclasses; i++) {
-        msDrawLegendIcon(map, lp, lp->class[i], width, height, image, 0, 0);
+        msDrawLegendIcon(map, lp, lp->class[i], width, height, image, 0, 0, scale_independant, NULL);
       }
     }
   }
@@ -361,7 +417,8 @@ imageObj *msCreateLegendIcon(mapObj* map, layerObj* lp, classObj* class, int wid
  *   MS_FAILURE
  */
 int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_y,
-                     int *layer_index, int num_layers)
+                     int *layer_index, int num_layers, map_hittest *hittest,
+                     int resolutionfactor)
 {
   int i, j;
   int status, maxwidth=0, nLegendItems=0;
@@ -391,15 +448,20 @@ int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_
     current_layers = map->numlayers;
 
   for(i=0; i< current_layers; i++) {
-
+    int layerindex;
+    double lsize;
     if (layer_index != NULL && num_layers > 0)
-      lp = GET_LAYER(map, layer_index[i]);
+      layerindex = layer_index[i];
     else
-      lp = (GET_LAYER(map, map->layerorder[i]));
+      layerindex = map->layerorder[i];
+
+    lp = (GET_LAYER(map, layerindex));
 
     if((lp->status == MS_OFF && (layer_index == NULL || num_layers <= 0)) || (lp->type == MS_LAYER_QUERY)) /* skip it */
       continue;
 
+    if(hittest && hittest->layerhits[layerindex].status == 0) continue;
+
     if(!scale_independent && map->scaledenom > 0) {
       if((lp->maxscaledenom > 0) && (map->scaledenom > lp->maxscaledenom)) continue;
       if((lp->minscaledenom > 0) && (map->scaledenom <= lp->minscaledenom)) continue;
@@ -418,6 +480,7 @@ int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_
         if((lp->class[j]->maxscaledenom > 0) && (map->scaledenom > lp->class[j]->maxscaledenom)) continue;
         if((lp->class[j]->minscaledenom > 0) && (map->scaledenom <= lp->class[j]->minscaledenom)) continue;
       }
+      if(hittest && hittest->layerhits[layerindex].classhits[j].status == 0) continue;
 
       /*
        * apply encoding and line wrapping to the legend label if requested
@@ -432,7 +495,13 @@ int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_
       else
         transformedText = msStrdup(text);
 
-      if(transformedText == NULL || msGetLabelSize(map, &map->legend.label, transformedText, map->legend.label.size, &rect, NULL) != MS_SUCCESS) { /* something bad happened */
+      lsize = map->legend.label.size;
+      if(map->legend.label.type == MS_TRUETYPE) {
+         lsize *=  resolutionfactor;
+         lsize = MS_MAX(lsize, map->legend.label.minsize*resolutionfactor);
+         lsize = MS_MIN(lsize, map->legend.label.maxsize*resolutionfactor);
+      }
+      if(transformedText == NULL || msGetLabelSize(map, &map->legend.label, transformedText, lsize, &rect, NULL) != MS_SUCCESS) { /* something bad happened */
         if(transformedText) msFree(transformedText);
         return MS_FAILURE;
       }
@@ -466,7 +535,7 @@ int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_
 ** and maxscale are ignored and layers that are currently out of scale still
 ** show up in the legend.
 */
-imageObj *msDrawLegend(mapObj *map, int scale_independent)
+imageObj *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest)
 {
   int i,j; /* loop counters */
   pointObj pnt;
@@ -480,8 +549,7 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent)
   struct legend_struct {
     int height;
     char *transformedText;
-    layerObj *layer;
-    classObj *theclass;
+    int layerindex,classindex;
     struct legend_struct* pred;
   };
   typedef struct legend_struct legendlabel;
@@ -492,18 +560,22 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent)
     return NULL;
   }
   if(msValidateContexts(map) != MS_SUCCESS) return NULL; /* make sure there are no recursive REQUIRES or LABELREQUIRES expressions */
-  if(msLegendCalcSize(map, scale_independent, &size_x, &size_y, NULL, 0) != MS_SUCCESS) return NULL;
+  if(msLegendCalcSize(map, scale_independent, &size_x, &size_y, NULL, 0, hittest, map->resolution/map->defresolution) != MS_SUCCESS) return NULL;
 
   /*
    * step through all map classes, and for each one that will be displayed
    * keep a reference to its label size and text
    */
   for(i=0; i<map->numlayers; i++) {
+    double lsize;
     lp = (GET_LAYER(map, map->layerorder[i]));
 
     if((lp->status == MS_OFF) || (lp->type == MS_LAYER_QUERY)) /* skip it */
       continue;
 
+    if(hittest && hittest->layerhits[map->layerorder[i]].status == 0)
+      continue;
+
     if(!scale_independent && map->scaledenom > 0) {
       if((lp->maxscaledenom > 0) && (map->scaledenom > lp->maxscaledenom)) continue;
       if((lp->minscaledenom > 0) && (map->scaledenom <= lp->minscaledenom)) continue;
@@ -527,6 +599,10 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent)
         if((lp->class[j]->minscaledenom > 0) && (map->scaledenom <= lp->class[j]->minscaledenom)) continue;
       }
 
+      if(hittest && hittest->layerhits[map->layerorder[i]].classhits[j].status == 0) {
+          continue;
+      }
+
       cur = (legendlabel*) msSmallMalloc(sizeof(legendlabel));
 
       /*
@@ -542,13 +618,19 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent)
       else
         cur->transformedText = msStrdup(text); /* so we can always do msFree() when cleaning up */
 
-      cur->theclass = lp->class[j];
-      cur->layer = lp;
+      cur->classindex = j;
+      cur->layerindex = map->layerorder[i];
       cur->pred = head;
       head = cur;
 
+      lsize = map->legend.label.size;
+      if(map->legend.label.type == MS_TRUETYPE) {
+         lsize *=  lp->scalefactor * map->resolution/map->defresolution;
+         lsize = MS_MAX(lsize, map->legend.label.minsize*map->resolution/map->defresolution);
+         lsize = MS_MIN(lsize, map->legend.label.maxsize*map->resolution/map->defresolution);
+      }
       if(cur->transformedText==NULL ||
-          msGetLabelSize(map, &map->legend.label, cur->transformedText, map->legend.label.size, &rect, NULL) != MS_SUCCESS) { /* something bad happened, free allocated mem */
+          msGetLabelSize(map, &map->legend.label, cur->transformedText, lsize, &rect, NULL) != MS_SUCCESS) { /* something bad happened, free allocated mem */
         while(cur) {
           free(cur->transformedText);
           head = cur;
@@ -584,13 +666,17 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent)
 
   while(cur) { /* cur initially points on the last legend item, i.e. the one that should be at the top */
     int number_of_newlines=0, offset=0;
+    class_hittest *ch = NULL;
 
     /* set the scale factor so that scale dependant symbols are drawn in the legend with their default size */
-    if(cur->layer->sizeunits != MS_PIXELS) {
+    if(map->layers[cur->layerindex]->sizeunits != MS_PIXELS) {
       map->cellsize = msAdjustExtent(&(map->extent), map->width, map->height);
-      cur->layer->scalefactor = (msInchesPerUnit(cur->layer->sizeunits,0)/msInchesPerUnit(map->units,0)) / map->cellsize;
+      map->layers[cur->layerindex]->scalefactor = (msInchesPerUnit(map->layers[cur->layerindex]->sizeunits,0)/msInchesPerUnit(map->units,0)) / map->cellsize;
     }
-    if(msDrawLegendIcon(map, cur->layer, cur->theclass,  map->legend.keysizex,  map->legend.keysizey, image, HMARGIN, (int) pnt.y) != MS_SUCCESS)
+    if(hittest) {
+      ch = &hittest->layerhits[cur->layerindex].classhits[cur->classindex];
+    }
+    if(msDrawLegendIcon(map, map->layers[cur->layerindex], map->layers[cur->layerindex]->class[cur->classindex],  map->legend.keysizex,  map->legend.keysizey, image, HMARGIN, (int) pnt.y, scale_independent, ch) != MS_SUCCESS)
       return NULL;
 
     /*
@@ -608,7 +694,7 @@ imageObj *msDrawLegend(mapObj *map, int scale_independent)
 
     /* TODO: note tbonfort: if this todo concerned treating the individual heights of the legend labels, then this is now done */
 
-    msDrawLabel(map, image, pnt, cur->transformedText, &(map->legend.label), 1.0);
+    msDrawLabel(map, image, pnt, cur->transformedText, &(map->legend.label), 1.0 * image->resolutionfactor);
     if(offset) {
       /* if we had multiple lines, adjust the current position so it points to the bottom of the current label */
       pnt.y += cur->height-offset;
@@ -632,15 +718,10 @@ int msEmbedLegend(mapObj *map, imageObj *img)
   pointObj point;
   imageObj *image = NULL;
   symbolObj *legendSymbol;
+  char* imageType = NULL;
 
   rendererVTableObj *renderer;
 
-  if(!MS_RENDERER_PLUGIN(map->outputformat) || !MS_MAP_RENDERER(map)->supports_pixel_buffer) {
-    msSetError(MS_MISCERR, "unsupported output format", "msEmbedLegend()");
-    return MS_FAILURE;
-  }
-  renderer = MS_MAP_RENDERER(map);
-
   s = msGetSymbolIndex(&(map->symbolset), "legend", MS_FALSE);
   if(s != -1)
     msRemoveSymbol(&(map->symbolset), s); /* solves some caching issues in AGG with long-running processes */
@@ -652,10 +733,26 @@ int msEmbedLegend(mapObj *map, imageObj *img)
   map->symbolset.numsymbols++;
   initSymbol(legendSymbol);
 
+  if(!MS_RENDERER_PLUGIN(map->outputformat) || !MS_MAP_RENDERER(map)->supports_pixel_buffer) {
+    imageType = msStrdup(map->imagetype); /* save format */
+    if MS_DRIVER_CAIRO(map->outputformat)
+      map->outputformat = msSelectOutputFormat( map, "cairopng" );
+    else
+      map->outputformat = msSelectOutputFormat( map, "png" );
+    
+    msInitializeRendererVTable(map->outputformat);
+  }
+  renderer = MS_MAP_RENDERER(map);
+
   /* render the legend. */
-  image = msDrawLegend(map, MS_FALSE);
+  image = msDrawLegend(map, MS_FALSE, NULL);
   if( image == NULL ) return -1;
 
+  if (imageType) {
+    map->outputformat = msSelectOutputFormat( map, imageType ); /* restore format */
+    msFree(imageType);
+  }
+
   /* copy renderered legend image into symbol */
   legendSymbol->pixmap_buffer = calloc(1,sizeof(rasterBufferObj));
   MS_CHECK_ALLOC(legendSymbol->pixmap_buffer, sizeof(rasterBufferObj), MS_FAILURE);
diff --git a/maplexer.c b/maplexer.c
index 5a58340..8b54b19 100644
--- a/maplexer.c
+++ b/maplexer.c
@@ -1,6 +1,6 @@
-#line 2 "maplexer.c"
+#line 2 "/home/even/mapserver/git/mapserver/maplexer.c"
 
-#line 4 "maplexer.c"
+#line 4 "/home/even/mapserver/git/mapserver/maplexer.c"
 
 #define  YY_INT_ALIGNED short int
 
@@ -66,7 +66,6 @@ typedef int16_t flex_int16_t;
 typedef uint16_t flex_uint16_t;
 typedef int32_t flex_int32_t;
 typedef uint32_t flex_uint32_t;
-typedef uint64_t flex_uint64_t;
 #else
 typedef signed char flex_int8_t;
 typedef short int flex_int16_t;
@@ -74,7 +73,6 @@ typedef int flex_int32_t;
 typedef unsigned char flex_uint8_t; 
 typedef unsigned short int flex_uint16_t;
 typedef unsigned int flex_uint32_t;
-#endif /* ! C99 */
 
 /* Limits of integral types. */
 #ifndef INT8_MIN
@@ -105,6 +103,8 @@ typedef unsigned int flex_uint32_t;
 #define UINT32_MAX             (4294967295U)
 #endif
 
+#endif /* ! C99 */
+
 #endif /* ! FLEXINT_H */
 
 #ifdef __cplusplus
@@ -161,7 +161,15 @@ typedef unsigned int flex_uint32_t;
 
 /* Size of default input buffer. */
 #ifndef YY_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k.
+ * Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
+ * Ditto for the __ia64__ case accordingly.
+ */
+#define YY_BUF_SIZE 32768
+#else
 #define YY_BUF_SIZE 16384
+#endif /* __ia64__ */
 #endif
 
 /* The state buf must be large enough to hold one state per character in the main buffer.
@@ -173,12 +181,7 @@ typedef unsigned int flex_uint32_t;
 typedef struct yy_buffer_state *YY_BUFFER_STATE;
 #endif
 
-#ifndef YY_TYPEDEF_YY_SIZE_T
-#define YY_TYPEDEF_YY_SIZE_T
-typedef size_t yy_size_t;
-#endif
-
-extern yy_size_t msyyleng;
+extern int msyyleng;
 
 extern FILE *msyyin, *msyyout;
 
@@ -204,6 +207,11 @@ extern FILE *msyyin, *msyyout;
 
 #define unput(c) yyunput( c, (yytext_ptr)  )
 
+#ifndef YY_TYPEDEF_YY_SIZE_T
+#define YY_TYPEDEF_YY_SIZE_T
+typedef size_t yy_size_t;
+#endif
+
 #ifndef YY_STRUCT_YY_BUFFER_STATE
 #define YY_STRUCT_YY_BUFFER_STATE
 struct yy_buffer_state
@@ -221,7 +229,7 @@ struct yy_buffer_state
 	/* Number of characters read into yy_ch_buf, not including EOB
 	 * characters.
 	 */
-	yy_size_t yy_n_chars;
+	int yy_n_chars;
 
 	/* Whether we "own" the buffer - i.e., we know we created it,
 	 * and can realloc() it to grow it, and should free() it to
@@ -291,8 +299,8 @@ static YY_BUFFER_STATE * yy_buffer_stack = 0; /**< Stack as an array. */
 
 /* yy_hold_char holds the character lost when msyytext is formed. */
 static char yy_hold_char;
-static yy_size_t yy_n_chars;		/* number of characters read into yy_ch_buf */
-yy_size_t msyyleng;
+static int yy_n_chars;		/* number of characters read into yy_ch_buf */
+int msyyleng;
 
 /* Points to current character in buffer. */
 static char *yy_c_buf_p = (char *) 0;
@@ -320,7 +328,7 @@ static void msyy_init_buffer (YY_BUFFER_STATE b,FILE *file  );
 
 YY_BUFFER_STATE msyy_scan_buffer (char *base,yy_size_t size  );
 YY_BUFFER_STATE msyy_scan_string (yyconst char *yy_str  );
-YY_BUFFER_STATE msyy_scan_bytes (yyconst char *bytes,yy_size_t len  );
+YY_BUFFER_STATE msyy_scan_bytes (yyconst char *bytes,int len  );
 
 void *msyyalloc (yy_size_t  );
 void *msyyrealloc (void *,yy_size_t  );
@@ -375,13 +383,13 @@ static void yy_fatal_error (yyconst char msg[]  );
  */
 #define YY_DO_BEFORE_ACTION \
 	(yytext_ptr) = yy_bp; \
-	msyyleng = (yy_size_t) (yy_cp - yy_bp); \
+	msyyleng = (size_t) (yy_cp - yy_bp); \
 	(yy_hold_char) = *yy_cp; \
 	*yy_cp = '\0'; \
 	(yy_c_buf_p) = yy_cp;
 
-#define YY_NUM_RULES 322
-#define YY_END_OF_BUFFER 323
+#define YY_NUM_RULES 333
+#define YY_END_OF_BUFFER 334
 /* This struct is not used in this scanner,
    but its presence is necessary. */
 struct yy_trans_info
@@ -389,212 +397,220 @@ struct yy_trans_info
 	flex_int32_t yy_verify;
 	flex_int32_t yy_nxt;
 	};
-static yyconst flex_int16_t yy_accept[1858] =
+static yyconst flex_int16_t yy_accept[1930] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  323,  320,    1,  318,  311,    2,  320,  320,
-      305,  317,  305,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  320,  319,  319,
-        3,  320,  320,  320,  320,  320,  320,  320,  320,  320,
-      320,  320,  320,  320,  320,  320,    1,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  321,    1,    1,
-        6,  316,  321,  316,  321,  306,  306,   10,    7,    9,
-
-      321,  321,  321,  321,  321,  321,  321,  321,  321,  321,
-      321,  321,  321,  321,  321,  321,  319,   13,  319,  322,
-        1,  322,  322,  314,  312,  312,  313,    1,    2,    0,
-      310,  305,  305,  317,  305,  317,    0,  317,  309,  305,
-        0,  317,  317,  317,  317,  317,  317,  317,  317,  225,
-      317,  317,  317,  229,  317,  230,  317,  317,  235,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  247,  317,  317,  250,
-      317,  251,  317,  317,  317,  317,  317,  317,  317,  317,
-
-      317,  262,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      206,  317,  317,  289,  290,  317,  291,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,    0,  300,    0,    0,
+        0,    0,  334,  331,    1,  329,  322,    2,  331,  331,
+      315,  328,  315,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  331,  331,  330,
+      330,    3,  331,  331,  331,  331,  331,  331,  331,  331,
+      331,  331,  331,  331,  331,  331,  331,    1,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  332,    1,
+        1,    6,  327,  332,  327,  332,  316,  316,   10,    7,
+
+        9,  332,  332,  332,  332,  332,  332,  332,  332,  332,
+      332,  332,  332,  332,  332,  332,  332,  332,  330,   13,
+      330,  333,    1,  333,  333,  325,  323,  323,  324,    1,
+        2,    0,  320,  315,  315,  328,  315,  328,    0,  328,
+      319,  315,    0,  328,  328,  328,  328,  328,  328,  328,
+      328,  232,  328,  328,  328,  236,  328,  237,  328,  328,
+      242,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  254,  328,
+      328,  257,  328,  258,  328,  328,  328,  328,  328,  328,
+
+      328,  328,  328,  269,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  212,  328,  328,  296,  297,  328,  298,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,    0,  308,
+        0,  321,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,  299,  317,  317,
-      317,  229,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      262,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-
-      317,  317,  317,  317,  317,  317,  317,    8,    0,    5,
-        0,  306,  306,  306,    0,  306,    0,   12,   14,    7,
-       11,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        9,   16,   12,   10,    0,    4,    0,    0,    0,    0,
-        0,    0,  302,    0,    0,  307,   15,    0,  315,    0,
-      314,  312,  312,  313,  305,    0,    0,  317,  305,  309,
-      308,  305,    0,    0,  305,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  231,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,   62,  317,  317,
-
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-       77,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  118,  119,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  260,  261,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  277,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  283,  317,  317,  317,  317,  317,  317,  317,
-
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  215,
-      295,  317,  217,  296,  317,    0,    0,    0,    0,    0,
-        0,    0,    0,  119,    0,    0,    0,    0,    0,    0,
-        0,    0,    0,  215,    0,  298,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      260,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,    0,    0,    0,    0,    0,  306,  306,    0,
-        0,  306,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  307,  328,  328,  328,  236,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  269,  328,  328,  328,  328,  328,
+
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,    8,    0,    5,    0,  316,  316,  316,    0,  316,
+        0,   12,   14,    7,   11,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,   11,    9,   16,   12,   10,    0,
+        4,    0,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,  312,    0,    0,  317,   15,    0,  326,    0,  325,
+      323,  323,  324,  315,    0,    0,  328,  315,  319,  318,
+      315,    0,    0,  315,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  238,  328,  328,  328,
+
+      328,  328,  328,  328,  328,  328,   66,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,   81,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  122,  123,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  267,  268,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  284,  328,  328,  328,  328,  328,  328,  328,  328,
+
+      328,  290,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  222,  303,
+      328,  224,  304,  328,    0,    0,    0,    0,    0,    0,
+        0,    0,  123,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,  222,    0,  306,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  267,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,    0,    0,    0,    0,    0,  316,  316,    0,    0,
+      316,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    6,    0,    0,    0,    0,    0,
-        0,    0,    0,  305,  308,    0,  305,  317,  317,  317,
-
-      317,  317,  317,  220,  317,  317,  317,  317,  317,  317,
-      317,  224,  317,  317,  317,  317,  317,  317,  317,  317,
-       55,  317,  317,  317,  317,   59,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  239,  317,  317,  317,   72,
-      317,  317,  317,   76,  317,  317,  317,   79,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,   97,
-      317,  317,  317,  317,  317,  317,  317,  317,  248,  317,
-      249,  317,  122,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-
-      317,  317,  153,  317,  258,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  190,  317,  317,  317,  317,  317,
-      317,  317,  202,  317,  285,  317,  317,  317,  317,  287,
-      212,  317,  317,  317,  317,  317,  317,  218,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,  190,    0,    0,    0,  317,  317,   55,  317,   72,
-      317,  317,  317,  317,  317,  317,  317,  190,  317,  317,
 
-      287,  303,    0,  306,   17,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  315,  318,    0,
+      315,  328,  328,  328,  328,  328,  328,  227,  328,  328,
+      328,  328,  328,  328,  328,  231,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,   59,  328,  328,  328,  328,
+       63,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      246,  328,  328,  328,   76,  328,  328,  328,   80,  328,
+      328,  328,   83,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  101,  328,  328,  328,  328,  328,
+      328,  328,  328,  255,  328,  256,  328,  126,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  157,  328,  265,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  195,
+      328,  328,  328,  328,  328,  328,  328,  207,  328,  292,
+      328,  328,  328,  328,  294,  218,  328,  328,  328,  328,
+      328,  328,  328,  225,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,    0,    0,  195,    0,    0,
+
+        0,  328,  328,   59,  328,   76,  328,  328,  328,  328,
+      328,  328,  328,  195,  328,  328,  294,  313,    0,  316,
+       17,    0,    0,    0,    0,    0,    0,    0,    0,    0,
         0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-        0,    0,  304,   37,  297,  317,   39,  317,  317,  221,
-      317,  317,  222,  317,  317,  317,  317,  317,  317,  227,
-      317,   47,  317,   51,  317,  317,  317,  317,   57,  317,
-      317,  317,  317,  237,   60,  317,   63,  317,  317,  238,
-      317,  317,  317,  317,  317,  317,   74,  317,  317,  241,
-      317,  317,   82,  242,  317,  317,   84,  317,  317,   93,
-      317,  317,  170,  317,  317,  317,  317,  101,  246,  317,
-      111,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  255,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  256,  317,  233,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  269,  317,  317,  317,  317,
-      317,  317,  317,  317,  273,  317,  317,  317,  317,  317,
-      317,  317,  317,  275,  276,  184,  317,  317,  317,  317,
-      317,  317,  281,  317,  317,  193,  317,  199,  317,  317,
-      317,  205,  317,  317,  317,  317,  292,  213,  317,  317,
-      317,  216,   39,   47,    0,    0,    0,  101,  111,    0,
-
-        0,    0,    0,    0,    0,  193,    0,  213,  317,   51,
-      317,  317,  317,  317,  317,  317,  317,  317,    0,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,    0,    0,
-       21,    0,    0,    0,    0,  317,  317,  317,  317,  317,
-      317,  223,  317,   45,  226,  317,  228,  317,  317,  317,
-      317,   52,  317,  317,  317,  317,  317,   58,  317,  317,
-      317,  317,   65,  317,   68,   69,  240,  317,   71,  317,
-      317,  317,  317,   83,  243,  317,  317,  317,  317,  317,
-      317,  244,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  110,  112,  113,  317,  317,
-
-      120,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  252,  317,  253,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  259,  154,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  268,  267,  272,  169,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      274,  317,  179,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  279,  280,  317,  282,  192,  317,  195,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      294,    0,   65,    0,    0,  113,    0,    0,    0,    0,
-
-        0,    0,  317,  195,  317,   31,   22,    0,    0,    0,
-        0,    0,    0,    0,    0,   18,    0,    0,    0,   29,
-        0,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,   50,  317,  317,  317,  317,  234,  317,  236,  317,
-      317,  317,   67,  317,   73,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,   92,  317,  317,  317,  317,
-       99,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      115,  317,  317,  123,  317,  317,  317,  317,  317,  317,
-      317,  317,  132,  317,  317,  317,  317,  317,  138,  317,
-      317,  317,  317,  317,  317,  317,  149,  317,  317,  317,
-
-      317,  317,  155,  317,  156,  317,  317,  317,  317,  317,
-      168,  317,  317,  270,  317,  271,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,    0,
-        0,    0,    0,    0,    0,    0,    0,    0,  317,  317,
-       20,    0,   28,    0,    0,   32,    0,    0,    0,    0,
-       26,  301,  317,  317,  317,  317,  317,   43,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,   61,  317,  317,
-      317,  317,  317,  317,   80,  317,  317,  317,  317,  317,
-
-       91,  317,  317,  317,   98,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  116,  317,  317,  317,  317,  317,
-      317,  317,  317,  128,  317,  317,  135,  136,  137,  317,
-      317,  317,  317,  317,  317,  145,  317,  317,  152,  257,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  167,  317,  317,  171,  317,  317,  173,  317,
-      317,  317,  177,  317,  317,  317,  317,  181,  317,  186,
-      317,  278,  317,  317,  317,  317,  317,  317,  317,  200,
-       90,  317,  204,  317,  317,  317,  286,  288,  293,  317,
-        0,    0,    0,    0,  177,    0,    0,  186,    0,  200,
-
-       30,    0,   25,   33,    0,   27,   19,  317,  317,   40,
-      317,   42,  317,   46,  317,   48,  317,  317,  317,   35,
-      317,  317,   66,  317,  317,  317,   81,  317,   88,   89,
-      317,   86,  317,   95,   96,  317,  317,  317,  317,  104,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  131,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  148,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,   36,  178,  317,  317,
-      317,  317,  317,  317,  189,  191,  194,  317,  198,  317,
-
-      203,  207,  211,  317,  317,    0,    0,   86,    0,  178,
-        0,    0,    0,    0,  317,  219,  317,  317,   49,   34,
-       53,  317,  317,   64,   70,  317,  317,   85,  317,   94,
-      100,  245,  102,  317,  317,  317,  317,  317,  317,  121,
-      124,  317,  317,  317,  317,  317,  317,  317,  317,  139,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  263,
-      317,  317,  317,  317,  317,  317,  317,  317,  317,  317,
-      317,  317,  317,  232,  317,  174,  175,  317,  180,  317,
-      182,  185,  317,  188,  317,  317,  317,  317,  214,    0,
-       85,  175,  182,    0,   23,   24,   38,  317,  317,  317,
-
-       56,  317,  317,  317,  317,  103,  317,  317,  317,  317,
-      317,  125,  126,  130,  127,  317,  317,  317,  134,  140,
-      317,  147,  144,  317,  317,  151,  317,  264,  317,  317,
-      317,  317,  317,  317,  317,  317,  317,  165,  317,  266,
-      284,  317,  176,  317,  187,  196,  317,  317,  317,  210,
-        0,  210,  317,   44,  317,  317,   75,  317,   87,  317,
-      317,  317,  114,  317,  317,  317,  133,  317,  317,  150,
-      317,  317,  157,  158,  159,  317,  161,  317,  317,  317,
-      317,  317,  317,  317,  317,  317,  209,    0,  317,  317,
-      183,   78,  105,  107,  109,  317,  317,  129,  317,  146,
-
-      254,  265,  317,  317,  317,  317,  166,  317,  317,  317,
-      317,  317,  183,  317,   54,  317,  317,  317,  317,  143,
-      317,  162,  163,  317,  172,  141,  317,  317,  208,   41,
-      317,  317,  117,  142,  317,  317,  317,  201,  317,  317,
-      317,  317,  197,  317,  317,  317,  317,  106,  108,  317,
-      317,  317,  164,  317,  317,  160,    0
+        0,    0,    0,  314,   41,  305,  328,   43,  328,  328,
+      228,  328,  328,  229,  328,  328,  328,  328,  328,  328,
+      234,  328,   51,  328,   55,  328,  328,  328,  328,  328,
+       61,  328,  328,  328,  328,  244,   64,  328,   67,  328,
+      328,  245,  328,  328,  328,  328,  328,  328,   78,  328,
+      328,  248,  328,  328,   86,  249,  328,  328,   88,  328,
+
+      328,   97,  328,  328,  174,  328,  328,  328,  328,  105,
+      253,  328,  115,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  262,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  263,  328,
+      240,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  276,  328,  328,
+      328,  328,  328,  328,  328,  328,  280,  328,  328,  328,
+      328,  328,  328,  328,  328,  282,  283,  188,  328,  328,
+      328,  328,  328,  328,  288,  328,  328,  198,  328,  204,
+
+      328,  328,  328,  328,  211,  328,  328,  328,  328,  299,
+      219,  328,  328,  328,  328,  223,   43,   51,    0,    0,
+        0,  105,  115,    0,    0,    0,    0,    0,    0,  198,
+        0,  219,  328,   55,  328,  328,  328,  328,  328,  328,
+      328,  328,    0,    0,    0,    0,    0,    0,    0,    0,
+        0,    0,    0,    0,    0,   21,    0,    0,    0,    0,
+        0,    0,    0,    0,  328,  328,  328,  328,  328,  328,
+      230,  328,   49,  233,  328,  235,  328,  328,  328,  328,
+       56,  328,  328,  328,  328,  328,  328,   62,  328,  328,
+      328,  328,   69,  328,   72,   73,  247,  328,   75,  328,
+
+      328,  328,  328,   87,  250,  328,  328,  328,  328,  328,
+      328,  251,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  114,  116,  117,  328,  328,
+      124,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  259,  328,  260,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  266,  158,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  275,  274,  279,  173,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      281,  328,  183,  328,  328,  328,  328,  328,  328,  328,
+
+      328,  328,  328,  286,  287,  328,  289,  197,  328,  200,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  221,  302,    0,   69,    0,    0,  117,    0,
+        0,    0,    0,    0,    0,  328,  200,  328,   35,   22,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,   18,
+        0,    0,    0,    0,    0,   33,    0,    0,    0,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,   54,
+      328,  328,  301,  328,  328,  241,  328,  243,  328,  328,
+      328,   71,  328,   77,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,   96,  328,  328,  328,  328,  103,
+
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  119,
+      328,  328,  127,  328,  328,  328,  328,  328,  328,  328,
+      328,  136,  328,  328,  328,  328,  328,  142,  328,  328,
+      328,  328,  328,  328,  328,  153,  328,  328,  328,  328,
+      328,  159,  328,  160,  328,  328,  328,  328,  328,  172,
+      328,  328,  277,  328,  278,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  210,  328,  328,  328,  328,  328,  328,  328,
+        0,    0,    0,    0,    0,    0,    0,    0,    0,  328,
+
+      328,   20,    0,   32,    0,    0,   36,    0,    0,    0,
+        0,    0,    0,    0,   30,    0,    0,  309,  328,  328,
+      328,  328,  328,   47,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,   65,  328,  328,  328,  328,  328,  328,
+       84,  328,  328,  328,  328,  328,   95,  328,  328,  328,
+      102,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      120,  328,  328,  328,  328,  328,  328,  328,  328,  132,
+      328,  328,  139,  140,  141,  328,  328,  328,  328,  328,
+      328,  149,  328,  328,  156,  264,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  171,  328,
+
+      328,  175,  328,  328,  177,  328,  328,  328,  181,  328,
+      328,  328,  328,  185,  328,  190,  328,  328,  285,  328,
+      328,  328,  328,  328,  328,  328,  205,   94,  328,  209,
+      328,  328,  328,  293,  295,  300,  328,    0,    0,    0,
+        0,  181,    0,    0,  190,    0,  205,   34,    0,   29,
+       37,    0,    0,   31,   24,    0,   19,    0,    0,  328,
+      328,   44,  328,   46,  328,   50,  328,   52,  328,  328,
+      328,   39,  328,  328,   70,  328,  328,  328,   85,  328,
+       92,   93,  328,   90,  328,   99,  100,  328,  328,  328,
+      328,  108,  328,  328,  328,  328,  328,  328,  328,  328,
+
+      328,  328,  328,  135,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  152,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,   40,  182,
+      328,  328,  328,  328,  328,  328,  328,  194,  196,  199,
+      328,  203,  328,  208,  213,  217,  328,  328,    0,    0,
+       90,    0,  182,    0,    0,    0,    0,    0,    0,   27,
+        0,    0,  328,  226,  328,  328,   53,   38,   57,  328,
+      328,   68,   74,  328,  328,   89,  328,   98,  104,  252,
+      106,  328,  328,  328,  328,  328,  328,  125,  128,  328,
+
+      328,  328,  328,  328,  328,  328,  328,  143,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  270,  328,  328,
+      328,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  239,  328,  178,  179,  328,  184,  328,  186,  189,
+      191,  328,  193,  328,  328,  328,  328,  220,    0,   89,
+      179,  186,    0,   23,   26,   28,   25,    0,    0,   42,
+      328,  328,  328,   60,  328,  328,  328,  328,  107,  328,
+      328,  328,  328,  328,  129,  130,  134,  131,  328,  328,
+      328,  138,  144,  328,  151,  148,  328,  328,  155,  328,
+      271,  328,  328,  328,  328,  328,  328,  328,  328,  328,
+
+      169,  328,  273,  291,  328,  180,  328,  192,  201,  328,
+      328,  328,  216,    0,  216,    0,    0,  328,   48,  328,
+      328,   79,  328,   91,  328,  328,  328,  118,  328,  328,
+      328,  137,  328,  328,  154,  328,  328,  161,  162,  163,
+      328,  165,  328,  328,  328,  328,  328,  328,  328,  328,
+      328,  215,    0,    0,    0,  328,  328,  187,   82,  109,
+      111,  113,  328,  328,  133,  328,  150,  261,  272,  328,
+      328,  328,  328,  170,  328,  328,  328,  328,  328,  187,
+        0,    0,  328,   58,  328,  328,  328,  328,  147,  328,
+      166,  167,  328,  176,  145,  328,  328,  214,    0,  310,
+
+       45,  328,  328,  121,  146,  328,  328,  328,  206,  311,
+      328,  328,  328,  328,  202,  328,  328,  328,  328,  110,
+      112,  328,  328,  328,  168,  328,  328,  164,    0
     } ;
 
 static yyconst flex_int32_t yy_ec[256] =
@@ -612,7 +628,7 @@ static yyconst flex_int32_t yy_ec[256] =
 
        58,   59,   60,   61,   62,   63,   64,   65,   66,   67,
        68,   69,   70,   71,   72,   73,   74,   75,   76,   77,
-       78,   79,    1,   80,    1,   81,    1,    1,    1,    1,
+       78,   79,   80,   81,   82,   83,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -629,7 +645,7 @@ static yyconst flex_int32_t yy_ec[256] =
         1,    1,    1,    1,    1
     } ;
 
-static yyconst flex_int32_t yy_meta[83] =
+static yyconst flex_int32_t yy_meta[85] =
     {   0,
         1,    1,    2,    1,    3,    1,    4,    1,    1,    5,
         1,    1,    1,    1,    6,    7,    7,    7,    7,    1,
@@ -639,430 +655,446 @@ static yyconst flex_int32_t yy_meta[83] =
         9,    6,    1,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    1,
-        1,    1
+        1,    1,    1,    1
     } ;
 
-static yyconst flex_int16_t yy_base[1876] =
+static yyconst flex_int16_t yy_base[1949] =
     {   0,
-        0,    0,   82,    0,  164,    0,  246,    0,  327,  331,
-      332,  333,  800, 4230,  342, 4230, 4230,    0,  754,  332,
-      334,  392,  349,  343,  392,  450,  425,  390,  470,  486,
-      471,  495,  312,  327,  546,  496,  390,  590,  598,  313,
-      600,  645,  651,  660,  395,  532,    0,  711, 4230, 4230,
-     4230,  321,  325,  333,  370,  393,  406,  408,  398,  396,
-      413,  522,  445,  453,  476,  537,  367,  579,  481,  699,
-      711,  574,  717,  553,  478,  706,  554,  722,  650,  491,
-      750,  758,  652,  761,  770,  806,  666, 4230,  547,  643,
-      735,  703,  741,  698,  742,  786,  829,  674,  342,  672,
-
-      650,  756,  706,  790,  527,  535,  760,  569,  809,  769,
-      809,  605,  695,  720,  809,  313,  587,  642, 4230, 4230,
-      853,  636,  629,    0,  812,  823,  371,  859,    0,  589,
-      587,  851,  870,    0,  872,  886,  575,  930,  834,  888,
-      898,  841,  926,  841,  893,  848,  917,  856,  928,    0,
-      858,  872,  887,  922,  927,    0,  910,  915,    0,  943,
-      933,  931,  935,  951,  947,  934,  971,  943,  991,  957,
-      987,  970,  977,  979,  994, 1002,  977, 1003,  994, 1006,
-     1011, 1003, 1000,  985, 1000, 1045,    0, 1043, 1007,    0,
-     1022,    0, 1037, 1053, 1054, 1042, 1039, 1051, 1065, 1053,
-
-     1051, 1066, 1075, 1076, 1062, 1086, 1091, 1075, 1082, 1091,
-     1106, 1108, 1111, 1107, 1122, 1112, 1099, 1126, 1125, 1119,
-     1131, 1153, 1132, 1123, 1152, 1138, 1142, 1166, 1158, 1169,
-     1161, 1179, 1158,    0,    0, 1169,    0, 1167, 1175, 1187,
-     1189, 1173, 1189, 1174, 1176, 1195,  538, 4230, 1194, 1202,
-     1200, 1187, 1214, 1215, 1221, 1213, 1215, 1228, 1230, 1234,
-     1213, 1216, 1241, 1234, 1242,  536,  857, 4230, 1236, 1243,
-     1244, 1250, 1240, 1233, 1249, 1254, 1254, 1249, 1250, 1283,
-     1253, 1276, 1298, 1254, 1288, 1285, 1272, 1290, 1282, 1298,
-        0, 1285, 1301, 1289, 1287, 1305, 1297, 1296, 1314, 1290,
-
-     1316, 1306, 1307, 1340, 1313, 1306, 1321, 4230,  531, 4230,
-      528, 1367, 1371, 1373, 1388, 1377, 1396, 4230, 4230, 4230,
-     4230, 1355, 1361, 1346, 1369, 1373, 1362, 1392, 1370, 1379,
-     4230, 1375, 1382, 4230, 1379, 4230, 1395, 1380, 1393, 1384,
-      495, 1407, 4230,  489,  322, 4230, 4230,  493, 4230,  485,
-        0, 4230, 4230, 4230, 1423, 1441,  797,  901,  903, 1407,
-        0, 1443, 1457, 1139, 1357, 1414, 1416, 1433, 1432, 1436,
-     1447, 1442, 1447, 1456, 1456, 1458, 1450, 1441, 1459, 1446,
-     1447, 1450, 1466, 1451, 1452, 1458, 1470,    0, 1473, 1456,
-     1485, 1456, 1464, 1472, 1478, 1465, 1475,    0, 1491, 1492,
-
-     1508, 1499, 1499, 1500, 1510, 1511, 1504, 1505, 1523, 1514,
-        0, 1515, 1515, 1511, 1528, 1512, 1532, 1534, 1530, 1533,
-     1534, 1538, 1525, 1542, 1535, 1538, 1556, 1553, 1567, 1573,
-     1569, 1577, 1580, 1565, 1581, 1582,    0,    0, 1577, 1578,
-     1620, 1583, 1609, 1589, 1592, 1674, 1595, 1582, 1588, 1602,
-     1610, 1629, 1624, 1623,    0,  477, 1643, 1645, 1672, 1633,
-     1634, 1636, 1656, 1659, 1660, 1655, 1688, 1682, 1677, 1698,
-     1678, 1692, 1684, 1700, 1701, 1715, 1713, 1700, 1711, 1721,
-     1717, 1722,    0, 1732, 1734, 1724, 1735, 1738, 1733, 1745,
-     1728, 1739,    0, 1751, 1742, 1739, 1736, 1753, 1734, 1749,
-
-     1758, 1750, 1765, 1762, 1765, 1760, 1771, 1769, 1763,    0,
-        0, 1768,    0,    0, 1775, 1781, 1777, 1781, 1795, 1795,
-     1799, 1800, 1802, 4230, 1798, 1792, 1807, 1798, 1803, 1811,
-     1805, 1804, 1800, 4230,  386, 4230, 1802, 1808, 1811, 1825,
-     1827, 1824, 1812, 1814, 1830, 1832, 1837, 1836, 1845, 1848,
-     1839, 1849, 1844, 1859, 1852, 1858, 1865, 1865, 1870, 1858,
-     1870, 1857,  383,  323,  369,  360, 1426, 1594, 1882, 1917,
-     1612, 1653, 1879, 1870, 1882, 1877, 1871, 1875, 1890, 1889,
-     1882, 1891, 1902, 1905, 4230, 1897, 1903, 1900, 1920, 1916,
-     1927,  425,  435, 1886, 4230, 1935, 1940, 1912, 1928, 1919,
-
-     1934, 1920, 1940,  365, 1935, 1925, 1933, 1925, 1948, 1931,
-     1947,    0, 1948, 1957, 1949, 1943, 1943, 1946, 1957, 1962,
-     1969, 1961, 1948, 1969, 1974,    0, 1966, 1982, 1963, 1986,
-     1973, 1991, 1987, 1997, 1982,    0, 1999, 2001, 1992, 1990,
-     2006, 2007, 2013,    0, 1995, 2000, 2014, 2005, 2009, 2018,
-     2023, 2009, 2025, 2026, 2015, 2015, 2032, 2026, 2028,    0,
-     2035, 2049, 2036, 2038, 2047, 2038, 2045, 2059,    0, 2052,
-     2066, 2063,    0, 2053, 2058, 2065, 2072, 2077, 2071, 2081,
-     2065, 2089, 2083, 2081, 2070, 2089, 2083, 2084, 2086, 2091,
-     2096, 2103, 2109, 2110, 2106, 2120, 2127, 2121, 2118, 2110,
-
-     2122, 2121,    0, 2126,    0, 2137, 2144, 2119, 2135, 2135,
-     2141, 2131, 2142, 2146, 2155, 2158, 2153, 2167, 2162, 2152,
-     2155, 2167, 2156, 2170, 2169, 2183, 2184, 2165, 2187, 2188,
-     2177, 2182, 2178, 2199, 2192, 2194, 2189, 2206, 2206, 2209,
-     2199, 2210, 2204, 2205, 2201, 2213, 2209, 2209, 2228, 2219,
-     2230, 2238,    0, 2227,    0, 2233, 2221, 2225, 2235, 2231,
-        0, 2238, 2236, 2238, 2255, 2245, 2254,    0, 2258, 2249,
-     2266, 2258, 2268, 2262, 2258, 2263, 2273, 2254, 2266, 2275,
-     2284, 4230, 2287, 2276, 2277, 2278, 2280,    0, 2286,    0,
-     2296, 2288, 2302, 2300, 2308, 2302, 2296,    0, 2302, 2307,
-
-        0, 4230, 2325, 2328, 4230, 2316, 2328, 2325, 2334, 2317,
-     2333, 2324, 2332, 2321, 2328, 2329, 2339, 2348, 2335, 2346,
-     2346, 2344, 4230,    0,    0, 2338,    0, 2356, 2346,    0,
-     2341, 2353,    0, 2362, 2352, 2369, 2357, 2358, 2375,    0,
-     2374, 2388, 2376, 2374, 2389, 2395, 2399, 2400,    0, 2390,
-     2384, 2386, 2389,    0,    0, 2402,    0, 2394, 2395,    0,
-     2398, 2413, 2400, 2396, 2415, 2403,    0, 2402, 2406,    0,
-     2422, 2410,    0,    0, 2418, 2432, 2456, 2421, 2439,    0,
-     2453, 2448,    0, 2456, 2432, 2461, 2458, 2493,    0, 2450,
-        0, 2448, 2474, 2478, 2466, 2464, 2480, 2460, 2467, 2486,
-
-     2477, 2478, 2491, 2511, 2518, 2494, 2519, 2509, 2520, 2512,
-     2525, 2509,    0, 2506, 2529, 2510, 2516, 2537, 2524, 2520,
-     2527, 2542, 2518, 2543, 2533, 2544,    0, 2533,    0, 2551,
-     2546, 2540, 2541, 2549, 2547, 2563, 2559, 2558, 2580, 2581,
-     2565, 2570, 2567, 2571, 2574, 2571, 2578, 2579, 2587, 2588,
-     2599, 2592, 2583, 2600, 2610, 2596, 2589, 2603, 2596, 2602,
-     2600, 2604, 2605,    0,    0, 2641, 2609, 2607, 2619, 2635,
-     2639, 2632,    0, 2643, 2630, 2641, 2640,    0, 2654, 2655,
-     2644,    0, 2658, 2656, 2656, 2640,    0,    0, 2647, 2667,
-     2651,    0, 4230, 4230, 2651, 2653, 2682, 4230, 4230, 2674,
-
-     2679, 2671, 2683, 2670, 2690, 4230, 2681, 4230, 2698,    0,
-     2686, 2705, 2688, 2702, 2711, 2695, 2705, 2717, 2717, 2706,
-     2719, 2717, 2722, 2711, 2721, 2722, 2727, 2715, 2727, 2739,
-     4230, 2735, 2741, 2733, 2745, 2737, 2734, 2750, 2749, 2747,
-     2756,    0, 2763,    0,    0, 2750,    0, 2754, 2753, 2758,
-     2778,    0, 2760, 2762, 2769, 2766, 2772,    0, 2783, 2775,
-     2772, 2783,    0, 2788,    0, 2785,    0, 2776,    0, 2782,
-     2801, 2784, 2801,    0,    0, 2793, 2794, 2811, 2794, 2791,
-     2803,    0, 2821, 2817, 2829, 2830, 2825, 2829, 2832, 2818,
-     2840, 2827, 2824, 2844, 2843,    0,    0, 2843, 2834, 2842,
-
-     2835, 2836, 2837, 2838, 2839, 2841, 2862, 2861, 2852, 2859,
-     2869, 2873, 2862, 2863,    0, 2868,    0, 2875, 2873, 2874,
-     2874, 2876, 2874, 2895, 2896, 2892, 2901, 2903, 2894, 2891,
-     2900, 2912,    0,    0, 2910,  349, 2891, 2898, 2913, 2914,
-     2896, 2914, 2915, 2910,    0,    0,    0,    0, 2926, 2919,
-     2921, 2920, 2935, 2943, 2930, 2934, 2934, 2940, 2955, 2938,
-        0, 2945,    0, 2940, 2961, 2961, 2948, 2968, 2967, 2968,
-     2972, 2973,    0,    0, 2968,    0,    0, 2958, 2960, 2960,
-     2962, 2979, 2983, 2978, 2979, 2994, 2986, 2985, 2997, 2987,
-        0, 2997, 4230, 3000, 2991, 4230, 2997, 3017, 3006, 3001,
-
-     3023, 3026, 3003,    0, 3010, 4230, 4230, 3006, 3020, 3016,
-     3031, 3023, 3025, 3016, 3036, 4230, 3026, 3030, 3026, 4230,
-      294, 3035, 3044, 3053, 3035, 3052, 3041, 3048, 3059, 3054,
-     3069,    0, 3063, 3069, 3059, 3073,    0, 3070,    0, 3076,
-     3077, 3074,    0, 3070,    0, 3076, 3079, 3084, 3081, 3086,
-     3095, 3081, 3101, 3087, 3092,    0, 3099, 3104, 3100, 3110,
-        0, 3107, 3113, 3116, 3104, 3120, 3102, 3117, 3119, 3124,
-        0, 3126, 3132,    0, 3133, 3143, 3124, 3139, 3133, 3132,
-     3142, 3150,    0, 3149, 3147, 3152, 3160, 3158,    0, 3155,
-     3164, 3145, 3159, 3151, 3154, 3172,    0, 3169, 3168, 3173,
-
-     3179, 3175,    0, 3188,    0, 3172, 3190, 3183, 3218, 3185,
-        0, 3206, 3204,    0, 3200,    0, 3197, 3212, 3197, 3214,
-     3216, 3208, 3211, 3223, 3227, 3231, 3230, 3221, 3233, 3225,
-     3232, 3245, 3235, 3246, 3240, 3243, 3260, 3273, 3261, 3261,
-     3267, 3262, 3276, 3264, 3265, 3279, 3280, 3269, 3279, 3277,
-     3278, 3276, 3284, 3279, 3295, 3290, 3283, 3284, 3325, 3299,
-     4230, 3286, 4230, 3294, 3291, 4230, 3292, 3314, 3303, 3318,
-     4230, 4230, 3322, 3319, 3318, 3324, 3328,    0, 3327, 3328,
-     3326, 3336, 3343, 3336, 3347, 3349, 3334,    0, 3342, 3346,
-     3356, 3343, 3345, 3361,    0, 3352, 3365, 3365, 3362, 3374,
-
-        0, 3383, 3382, 3370,    0, 3376, 3375, 3388, 3386, 3387,
-     3383, 3384, 3385, 3389, 3395, 3383, 3385, 3398, 3395, 3410,
-     3394, 3409, 3418, 3418, 3401, 3424,    0,    0,    0, 3400,
-     3414, 3411, 3428, 3413, 3428, 3437, 3424, 3448,    0,    0,
-     3438, 3451, 3441, 3457, 3446, 3453, 3446, 3464, 3453, 3469,
-     3448, 3462,    0, 3466, 3455,    0, 3458, 3464,    0, 3465,
-     3466, 3471,    0, 3472, 3483, 3470, 3472,    0, 3479,    0,
-     3482,    0, 3486, 3477, 3500, 3492, 3500, 3513, 3497, 3504,
-        0, 3499,    0, 3519, 3513, 3522,    0,    0,    0, 3515,
-     3510, 3517, 3528, 3520, 4230, 3531, 3522, 4230, 3533,    0,
-
-     4230, 3537, 4230, 4230, 3521, 4230, 4230, 3529, 3532,    0,
-     3543,    0, 3536,    0, 3534,    0, 3547, 3539, 3538,    0,
-     3539, 3546,    0, 3552, 3561, 3567,    0, 3557,    0,    0,
-     3567,    0, 3563,    0,    0, 3575, 3566, 3581, 3587,    0,
-     3586, 3589, 3584, 3581, 3594, 3592, 3593, 3596, 3595, 3582,
-     3602,    0, 3589, 3603, 3600, 3591, 3607, 3611, 3610, 3598,
-     3620,    0, 3617, 3618, 3612, 3626, 3623, 3633, 3621, 3632,
-     3643, 3635, 3647, 3639, 3630, 3641, 3636, 3631, 3646, 3655,
-     3656, 3650, 3661, 3658, 3653, 3669,    0,    0, 3656, 3653,
-     3660, 3663, 3662, 3675,    0,    0,    0, 3671,    0, 3683,
-
-        0, 3668,    0, 3680, 3683, 3679, 3682, 4230, 3689, 4230,
-     3692, 3695, 3705, 3693, 3693,    0, 3713, 3716,    0,    0,
-     3698, 3705, 3712,    0,    0, 3707, 3708,    0, 3704,    0,
-        0,    0,    0, 3706, 3726, 3728, 3714, 3732, 3711,    0,
-        0, 3731, 3719, 3731, 3730, 3744, 3732, 3747, 3751,    0,
-     3754, 3742, 3754, 3753, 3754, 3767, 3767, 3762, 3750,    0,
-     3769, 3764, 3760, 3780, 3772, 3769, 3766, 3767, 3776, 3784,
-     3789, 3775, 3775,    0, 3796,    0,    0, 3778,    0, 3799,
-        0,    0, 3783,    0, 3799, 3787, 3794, 3810,    0, 3809,
-     4230, 4230, 4230, 3801, 4230, 4230,    0, 3808, 3804, 3802,
-
-        0, 3818, 3820, 3818, 3812,    0, 3828, 3829, 3837, 3823,
-     3826,    0,    0,    0,    0, 3832, 3832, 3843,    0,    0,
-     3841,    0,    0, 3836, 3848,    0, 3851,    0, 3856, 3841,
-     3852, 3842, 3856, 3848, 3860, 3861, 3866,    0, 3865,    0,
-        0, 3880,    0, 3871,    0, 3882, 3869, 3883, 3870,    0,
-     3881, 4230, 3886,    0, 3883, 3888,    0, 3890,    0, 3899,
-     3900, 3888,    0, 3899, 3902, 3897,    0, 3886, 3900,    0,
-     3896, 3906,    0,    0,    0, 3901,    0, 3895, 3896, 3910,
-     3913, 3920, 3928, 3927, 3932, 3922,    0, 3931, 3932, 3943,
-        0,    0, 3947, 3950,    0, 3931, 3946,    0, 3955,    0,
-
-        0,    0, 3946, 3959, 3960, 3961,    0, 3962, 3964, 3956,
-     3953, 3953, 4230, 3956,    0, 3970, 3972, 3975, 3976,    0,
-     3962,    0,    0, 3981,    0,    0, 3971, 3973,    0,    0,
-     3976, 3979,    0,    0, 3980, 3984, 3991,    0, 3992, 3994,
-     4006, 4001,    0, 4003, 4006, 4017, 4007,    0,    0, 4008,
-     4008, 4015,    0, 4013, 4011,    0, 4230, 4082, 4091, 4100,
-     4109, 4113, 4120, 4129, 4132, 4141, 4150, 4159, 4168, 4177,
-     4186, 4193, 4202, 4211, 4220
+        0,    0,   84,    0,  168,    0,  252,    0,  335,  339,
+      340,  341,  945, 4408,  350, 4408, 4408,    0,  930,  340,
+      342,  400,  357,  351,  400,  460,  421,  468,  401,  484,
+      482,  400,  320,  335,  533,  534,  473,  585,  593,  321,
+      549,  640,  646,  655,  496,  700,    0,  885,  849, 4408,
+     4408, 4408,  329,  333,  341,  375,  391,  520,  406,  394,
+      394,  412,  537,  405,  410,  459,  533,  375,  607,  466,
+      707,  716,  702,  595,  665,  471,  570,  532,  723,  663,
+      476,  752,  761,  724,  763,  772,  782,  538, 4408,  840,
+      846,  906,  835,  872,  827,  836,  838,  842,  796,  350,
+
+      746,  716,  588,  760,  647,  467,  526,  762,  573,  832,
+      835,  762,  639,  832,  648,  714,  838,  321,  680,  744,
+     4408, 4408,  866,  746,  739,    0,  777,  815,  868,  878,
+        0,  717,  700,  888,  893,    0,  895,  620,  686,  953,
+      835,  910,  873,  870,  949,  843,  913,  842,  940,  862,
+      951,    0,  866,  896,  881,  954,  947,    0,  896,  899,
+        0,  960,  955,  952,  955,  987,  970,  950, 1001,  958,
+     1017,  964, 1011,  962,  962,  964, 1015, 1018, 1004, 1027,
+     1018, 1030, 1062, 1027, 1027, 1012, 1026, 1068,    0, 1071,
+     1028,    0, 1036,    0, 1065, 1071, 1113, 1033, 1060, 1077,
+
+     1086, 1074, 1067, 1082, 1091, 1098, 1085, 1102, 1114, 1110,
+     1113, 1118, 1131, 1132, 1137, 1130, 1170, 1141, 1131, 1152,
+     1149, 1148, 1160, 1180, 1165, 1146, 1187, 1162, 1177, 1193,
+     1186, 1189, 1184, 1214, 1186,    0,    0, 1196,    0, 1193,
+     1202, 1213, 1220, 1209, 1225, 1211, 1219, 1238,  617, 4408,
+      566,  560, 1237, 1247, 1243, 1230, 1250, 1253, 1245, 1240,
+     1242, 1253, 1255, 1262, 1238, 1240, 1266, 1259, 1269,  568,
+     1288, 4408, 1263, 1286, 1270, 1275, 1296, 1270, 1285, 1295,
+     1297, 1295, 1300, 1304, 1298, 1313, 1320, 1295, 1323, 1320,
+     1307, 1318, 1312, 1328,    0, 1315, 1331, 1318, 1324, 1343,
+
+     1338, 1338, 1358, 1337, 1367, 1357, 1361, 1360, 1361, 1354,
+     1367, 4408,  534, 4408,  524, 1391, 1395, 1412,  929, 1416,
+     1385, 4408, 4408, 4408, 4408, 1391, 1392, 1373, 1396, 1401,
+     1395, 1413, 1409, 1405, 1408, 4408, 1403, 1410, 4408, 1405,
+     4408, 1425, 1413, 1422, 1421, 1418, 1418,  502, 1442, 1443,
+     1449, 4408,  473,  330, 4408, 4408,  505, 4408,  483,    0,
+     4408, 4408, 4408, 1480, 1487,  530,  564,  795, 1433,    0,
+     1485, 1499,  905,  907, 1451, 1454, 1478, 1475, 1479, 1488,
+     1483, 1488, 1496, 1496, 1498, 1490, 1481, 1499, 1486, 1487,
+     1490, 1506, 1491, 1492, 1497, 1538,    0, 1513, 1494, 1546,
+
+     1497, 1504, 1513, 1518, 1504, 1511,    0, 1533, 1531, 1551,
+     1540, 1540, 1541, 1550, 1551, 1545, 1546, 1564, 1555,    0,
+     1556, 1557, 1552, 1569, 1553, 1573, 1577, 1573, 1577, 1598,
+     1580, 1566, 1583, 1596, 1597, 1605, 1603, 1615, 1614, 1610,
+     1618, 1621, 1606, 1622, 1623,    0,    0, 1618, 1619, 1661,
+     1624, 1642, 1630, 1633, 1715, 1639, 1626, 1631, 1666, 1652,
+     1677, 1670, 1668,    0,  473, 1686, 1689, 1693, 1677, 1677,
+     1680, 1703, 1720, 1701, 1696, 1729, 1723, 1714, 1739, 1726,
+     1738, 1726, 1746, 1748, 1758, 1757, 1746, 1753, 1762, 1757,
+     1760,    0, 1773, 1775, 1765, 1776, 1779, 1774, 1786, 1769,
+
+     1780,    0, 1792, 1783, 1780, 1777, 1795, 1779, 1793, 1801,
+     1793, 1807, 1806, 1808, 1801, 1818, 1820, 1804,    0,    0,
+     1810,    0,    0, 1816, 1821, 1815, 1822, 1838, 1838, 1841,
+     1843, 1844, 4408, 1841, 1835, 1849, 1841, 1845, 1853, 1847,
+     1848, 1846, 4408,  405, 4408, 1848, 1853, 1855, 1869, 1872,
+     1870, 1858, 1861, 1876, 1878, 1886, 1883, 1889, 1890, 1877,
+     1891, 1887, 1902, 1894, 1901, 1907, 1908, 1913, 1900, 1913,
+     1899,  382,  331,  379,  368,  916, 1043, 1924, 1959, 1098,
+     1149, 1927, 1915, 1925, 1919, 1915, 1918, 1934, 1933, 1925,
+     1935, 1948, 1949, 1950, 4408, 1940, 1950, 1949, 1952, 1949,
+
+     1967, 1964, 1953, 1961, 1977, 1015, 1603, 1463, 4408, 1689,
+     1694, 1966, 1980, 1968, 1981, 1967, 1990,  373, 1985, 1974,
+     1982, 1975, 1998, 1983, 2000,    0, 2002, 2009, 2001, 1996,
+     1996, 2001, 2011, 2016, 2011, 2016, 2020, 2010, 2030, 2032,
+        0, 2023, 2036, 2017, 2039, 2027, 2043, 2035, 2048, 2033,
+        0, 2050, 2051, 2044, 2042, 2059, 2062, 2068,    0, 2052,
+     2055, 2068, 2059, 2065, 2074, 2078, 2068, 2084, 2086, 2072,
+     2070, 2087, 2079, 2080,    0, 2088, 2095, 2089, 2093, 2102,
+     2095, 2097, 2111,    0, 2103, 2134, 2113,    0, 2103, 2108,
+     2117, 2124, 2126, 2120, 2134, 2118, 2142, 2138, 2141, 2132,
+
+     2151, 2138, 2139, 2139, 2143, 2149, 2157, 2162, 2164, 2158,
+     2168, 2190, 2172, 2169, 2161, 2174, 2173,    0, 2179,    0,
+     2190, 2196, 2176, 2193, 2194, 2198, 2191, 2201, 2206, 2212,
+     2213, 2208, 2220, 2214, 2205, 2208, 2221, 2209, 2227, 2213,
+     2230, 2235, 2216, 2240, 2242, 2232, 2238, 2235, 2257, 2252,
+     2251, 2244, 2263, 2263, 2266, 2258, 2269, 2263, 2265, 2258,
+     2268, 2264, 2262, 2280, 2272, 2283, 2281,    0, 2282,    0,
+     2285, 2278, 2283, 2289, 2287,    0, 2295, 2293, 2296, 2313,
+     2315, 2308, 2317,    0, 2321, 2310, 2325, 2317, 2330, 2324,
+     2319, 2325, 2336, 2317, 2326, 2333, 2342, 4408, 2344, 2331,
+
+     2333, 2334, 2337,    0, 2344,    0, 2354, 2345, 2355, 2353,
+     2364, 2359, 2354,    0, 2362, 2367,    0, 4408, 2391, 2395,
+     4408, 2368, 2380, 2384, 2396, 2379, 2394, 2386, 2395, 2384,
+     2388, 2389, 2389, 2399, 2408, 2402, 2395, 2399, 2410, 2410,
+     2422, 2391, 2410, 4408,    0,    0, 2404,    0, 2424, 2415,
+        0, 2413, 2424,    0, 2435, 2425, 2439, 2429, 2434, 2452,
+        0, 2454, 2454, 2455, 2447, 2459, 2465, 2448, 2469, 2470,
+        0, 2461, 2455, 2458, 2458,    0,    0, 2470,    0, 2461,
+     2462,    0, 2466, 2481, 2469, 2465, 2484, 2475,    0, 2475,
+     2480,    0, 2500, 2486,    0,    0, 2491, 2509, 2522, 2498,
+
+     2517,    0, 2521, 2511,    0, 2526, 2502, 2529, 2526, 2554,
+        0, 2530,    0, 2528, 2543, 2548, 2535, 2533, 2552, 2541,
+     2549, 2570, 2561, 2559, 2569, 2579, 2584, 2561, 2587, 2577,
+     2588, 2580, 2594, 2578,    0, 2575, 2598, 2580, 2586, 2605,
+     2593, 2589, 2597, 2611, 2587, 2615, 2606, 2618,    0, 2609,
+        0, 2624, 2617, 2610, 2613, 2619, 2618, 2636, 2631, 2626,
+     2646, 2648, 2633, 2638, 2635, 2639, 2643, 2640, 2647, 2648,
+     2657, 2661, 2666, 2659, 2652, 2670, 2668, 2666, 2666, 2682,
+     2675, 2682, 2672, 2677, 2675,    0,    0, 2705, 2680, 2680,
+     2692, 2706, 2708, 2700,    0, 2711, 2698, 2710, 2709,    0,
+
+     2723, 2727, 2715, 2712,    0, 2731, 2727, 2729, 2712,    0,
+        0, 2721, 2745, 2730, 2733,    0, 4408, 4408, 2734, 2734,
+     2755, 4408, 4408, 2753, 2759, 2752, 2764, 2749, 2769, 4408,
+     2757, 4408, 2769,    0, 2759, 2778, 2761, 2777, 2786, 2771,
+     2779, 2791, 2790, 2779, 2792, 2790, 2798, 2787, 2799, 2802,
+     2808, 2814, 2797, 2811, 2819, 4408, 2815, 2819, 2822, 2827,
+     2819, 2808, 2832, 2836, 2824, 2823, 2836, 2833, 2829, 2840,
+        0, 2847,    0,    0, 2834,    0, 2838, 2837, 2841, 2859,
+        0, 2847, 2850, 2849, 2856, 2853, 2860,    0, 2872, 2864,
+     2862, 2873,    0, 2881,    0, 2880,    0, 2872,    0, 2878,
+
+     2893, 2874, 2891,    0,    0, 2882, 2887, 2902, 2884, 2882,
+     2892,    0, 2906, 2902, 2914, 2915, 2911, 2914, 2918, 2902,
+     2928, 2915, 2911, 2931, 2930,    0,    0, 2931, 2923, 2934,
+     2925, 2929, 2932, 2934, 2935, 2933, 2952, 2951, 2941, 2952,
+     2960, 2963, 2953, 2952,    0, 2953,    0, 2960, 2958, 2959,
+     2960, 2961, 2960, 2979, 2984, 2980, 2988, 2990, 2981, 2979,
+     2989, 3001,    0,    0, 3000,  374, 2981, 2991, 3008, 3010,
+     2992, 3006, 3005, 3000,    0,    0,    0,    0, 3015, 3012,
+     3012, 3010, 3026, 3032, 3015, 3019, 3019, 3025, 3041, 3023,
+        0, 3031,    0, 3024, 3049, 3049, 3035, 3055, 3054, 3046,
+
+     3058, 3061, 3066,    0,    0, 3059,    0,    0, 3052, 3056,
+     3058, 3059, 3077, 3077, 3064, 3074, 3074, 3090, 3081, 3080,
+     3092, 3080,    0,    0, 3086, 4408, 3087, 3079, 4408, 3085,
+     3106, 3094, 3095, 3115, 3116, 3093,    0, 3101, 4408, 4408,
+     3098, 3111, 3107, 3124, 3116, 3120, 3113, 3128, 3136, 4408,
+     3126, 3137, 3125, 3131, 3131, 4408, 3148, 3150,  335, 3138,
+     3149, 3158, 3141, 3158, 3145, 3151, 3162, 3154, 3165,    0,
+     3164, 3171,    0, 3163, 3178,    0, 3175,    0, 3181, 3182,
+     3177,    0, 3176,    0, 3183, 3188, 3191, 3188, 3193, 3202,
+     3187, 3207, 3194, 3200,    0, 3206, 3212, 3205, 3215,    0,
+
+     3212, 3219, 3222, 3208, 3223, 3205, 3217, 3215, 3225,    0,
+     3228, 3236,    0, 3238, 3248, 3229, 3244, 3236, 3238, 3249,
+     3259,    0, 3256, 3254, 3259, 3267, 3264,    0, 3261, 3271,
+     3253, 3266, 3259, 3259, 3277,    0, 3274, 3274, 3279, 3283,
+     3278,    0, 3278,    0, 3278, 3304, 3287, 3313, 3285,    0,
+     3308, 3305,    0, 3298,    0, 3301, 3318, 3304, 3321, 3322,
+     3316, 3320, 3332, 3336, 3336, 3335, 3326, 3339, 3331, 3336,
+     3341, 3349, 3340, 3347, 3344, 3346, 3364, 3368, 3369, 3369,
+     3373, 3369,    0, 3382, 3370, 3371, 3385, 3386, 3374, 3384,
+     3382, 3384, 3382, 3390, 3385, 3400, 3397, 3389, 3392, 3433,
+
+     3406, 4408, 3393, 4408, 3400, 3395, 4408, 3398, 3417, 3425,
+     3412, 3408, 3430, 3433, 4408, 3439, 3443, 4408, 3438, 3435,
+     3432, 3439, 3441,    0, 3438, 3440, 3439, 3448, 3456, 3450,
+     3464, 3468, 3453,    0, 3461, 3463, 3475, 3468, 3471, 3488,
+        0, 3480, 3492, 3490, 3487, 3496,    0, 3501, 3498, 3487,
+        0, 3495, 3492, 3504, 3500, 3501, 3496, 3497, 3496, 3500,
+     3507, 3496, 3497, 3511, 3509, 3527, 3513, 3528, 3537, 3535,
+     3520, 3549,    0,    0,    0, 3526, 3541, 3539, 3555, 3538,
+     3553, 3559, 3542, 3564,    0,    0, 3555, 3570, 3558, 3573,
+     3560, 3567, 3559, 3577, 3564, 3584, 3559, 3573,    0, 3577,
+
+     3568,    0, 3572, 3585,    0, 3586, 3586, 3591,    0, 3599,
+     3609, 3597, 3600,    0, 3606,    0, 3607, 3618,    0, 3613,
+     3600, 3619, 3611, 3620, 3633, 3616, 3621,    0, 3614,    0,
+     3634, 3627, 3636,    0,    0,    0, 3627, 3623, 3631, 3642,
+     3634, 4408, 3646, 3640, 4408, 3654,    0, 4408, 3657, 4408,
+     4408, 3636, 3643, 4408, 3650, 3673, 4408, 3667, 3669, 3662,
+     3669,    0, 3680,    0, 3672,    0, 3671,    0, 3683, 3675,
+     3674,    0, 3675, 3685,    0, 3687, 3692, 3696,    0, 3685,
+        0,    0, 3695,    0, 3690,    0,    0, 3701, 3690, 3706,
+     3712,    0, 3714, 3718, 3713, 3711, 3724, 3722, 3723, 3726,
+
+     3731, 3718, 3740,    0, 3727, 3740, 3737, 3727, 3744, 3747,
+     3746, 3734, 3756,    0, 3756, 3753, 3743, 3755, 3751, 3761,
+     3748, 3758, 3767, 3760, 3772, 3767, 3759, 3770, 3766, 3761,
+     3776, 3785, 3786, 3786, 3797, 3796, 3791, 3806,    0,    0,
+     3793, 3789, 3797, 3799, 3799, 3801, 3814,    0,    0,    0,
+     3811,    0, 3823,    0, 3804,    0, 3812, 3813, 3808, 3812,
+     4408, 3818, 4408, 3819, 3821, 3832, 3836, 3826, 3826, 4408,
+     3836, 3833, 3829,    0, 3848, 3852,    0,    0, 3840, 3853,
+     3860,    0,    0, 3855, 3856,    0, 3853,    0,    0,    0,
+        0, 3854, 3874, 3877, 3863, 3884, 3862,    0,    0, 3882,
+
+     3869, 3881, 3878, 3891, 3879, 3890, 3890,    0, 3891, 3878,
+     3891, 3891, 3893, 3904, 3905, 3899, 3888,    0, 3905, 3900,
+     3902, 3928, 3920, 3917, 3914, 3916, 3924, 3932, 3938, 3924,
+     3927,    0, 3947,    0,    0, 3929,    0, 3949,    0,    0,
+        0, 3933,    0, 3947, 3934, 3941, 3953,    0, 3948, 4408,
+     4408, 4408, 3938, 4408, 4408, 4408, 4408, 3940, 3963,    0,
+     3950, 3950, 3950,    0, 3961, 3963, 3966, 3966,    0, 3981,
+     3982, 3990, 3977, 3979,    0,    0,    0,    0, 3985, 3985,
+     3997,    0,    0, 3996,    0,    0, 3994, 4005,    0, 4006,
+        0, 4011, 3995, 4006, 3996, 4010, 4000, 4010, 4011, 4012,
+
+        0, 4008,    0,    0, 4024,    0, 4018,    0, 4030, 4015,
+     4028, 4013,    0, 4024, 4408, 4044, 4030, 4034,    0, 4039,
+     4043,    0, 4047,    0, 4056, 4057, 4045,    0, 4058, 4064,
+     4059,    0, 4048, 4062,    0, 4057, 4066,    0,    0,    0,
+     4061,    0, 4054, 4055, 4068, 4071, 4077, 4086, 4085, 4089,
+     4076,    0, 4083, 4075, 4094, 4085, 4103,    0,    0, 4111,
+     4113,    0, 4092, 4107,    0, 4117,    0,    0,    0, 4109,
+     4121, 4124, 4128,    0, 4129, 4130, 4122, 4119, 4119, 4408,
+     4142,  321, 4123,    0, 4137, 4138, 4139, 4140,    0, 4130,
+        0,    0, 4149,    0,    0, 4139, 4142,    0,  302, 4408,
+
+        0, 4144, 4145,    0,    0, 4147, 4147, 4150,    0, 4408,
+     4155, 4162, 4175, 4168,    0, 4168, 4171, 4183, 4173,    0,
+        0, 4176, 4177, 4184,    0, 4182, 4180,    0, 4408, 4251,
+     4260, 4269, 4278, 4282, 4289, 4298, 4307, 4310, 4319, 4328,
+     4337, 4346, 4355, 4364, 4371, 4380, 4389, 4398
     } ;
 
-static yyconst flex_int16_t yy_def[1876] =
+static yyconst flex_int16_t yy_def[1949] =
     {   0,
-     1857,    1, 1857,    3, 1857,    5, 1857,    7, 1858, 1858,
-     1859, 1859, 1857, 1857, 1857, 1857, 1857, 1860, 1861, 1857,
-     1862, 1863, 1857, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1864, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1865, 1857, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862,   35, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1866, 1867, 1857, 1857, 1857, 1857,
-     1857, 1868, 1869, 1870, 1857, 1857, 1857, 1857, 1860, 1861,
-     1861, 1857, 1857, 1862, 1862, 1862, 1871, 1863, 1862, 1857,
-     1857, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1864, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1872, 1857, 1857, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1857, 1873, 1857,
-     1874, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1866, 1866, 1857, 1867, 1875, 1857, 1857, 1868, 1857, 1869,
-     1870, 1857, 1857, 1857, 1857, 1857, 1857, 1862, 1862, 1857,
-     1862, 1857, 1857, 1857, 1857, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1872, 1857, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1873, 1873, 1874, 1874, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1866, 1875, 1875, 1857, 1857, 1857, 1857, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1866, 1857, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1866, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-
-     1857, 1857, 1862, 1862, 1862, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1866, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1862, 1862,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1862,
-
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1857, 1857, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1857, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1857, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862, 1862,
-     1862, 1862, 1862, 1862, 1862, 1862,    0, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857
+     1929,    1, 1929,    3, 1929,    5, 1929,    7, 1930, 1930,
+     1931, 1931, 1929, 1929, 1929, 1929, 1929, 1932, 1933, 1929,
+     1934, 1935, 1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1936, 1937, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1938, 1929, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,   35, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1939, 1940, 1929, 1929,
+     1929, 1929, 1929, 1941, 1942, 1943, 1929, 1929, 1929, 1929,
+     1932, 1933, 1933, 1929, 1929, 1934, 1934, 1934, 1944, 1935,
+     1934, 1929, 1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1936, 1929,
+     1937, 1937, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1945,
+     1929, 1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1929, 1946, 1929, 1947, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1939, 1939, 1939,
+     1939, 1929, 1940, 1948, 1929, 1929, 1941, 1929, 1942, 1943,
+     1929, 1929, 1929, 1929, 1929, 1929, 1934, 1934, 1929, 1934,
+     1929, 1929, 1929, 1929, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1945, 1929, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1946, 1946, 1947, 1947, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+
+     1929, 1929, 1939, 1939, 1939, 1948, 1948, 1929, 1929, 1929,
+     1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+
+     1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1939, 1939, 1939, 1929, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1939, 1939, 1939, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1934, 1934, 1934, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1939, 1939, 1939, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1934,
+
+     1934, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1939, 1939, 1929, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1934, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1939, 1939, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1939, 1939, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1939, 1939, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1929, 1929, 1939, 1939, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1929, 1939, 1939, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929,
+     1939, 1939, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1939, 1929,
+
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1929,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,
+     1934, 1934, 1934, 1934, 1934, 1934, 1934, 1934,    0, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929
     } ;
 
-static yyconst flex_int16_t yy_nxt[4313] =
+static yyconst flex_int16_t yy_nxt[4493] =
     {   0,
        14,   15,   16,   15,   15,   14,   17,   18,   14,   17,
        19,   14,   14,   14,   20,   21,   22,   23,   23,   14,
@@ -1071,477 +1103,497 @@ static yyconst flex_int16_t yy_nxt[4313] =
        42,   43,   44,   45,   46,   47,   47,   47,   48,   14,
        14,   14,   14,   24,   25,   26,   27,   28,   29,   30,
        31,   32,   33,   34,   35,   36,   37,   38,   39,   40,
-       41,   42,   43,   44,   45,   46,   47,   47,   47,   14,
-       14,   14,   14,   14,   49,   50,   14,   14,   14,   14,
-       14,   14,   14,   14,   14,   14,   14,   51,   14,   14,
-
-       14,   14,   14,   14,   52,   14,   53,   54,   55,   14,
-       14,   14,   56,   14,   14,   57,   58,   14,   14,   59,
-       60,   61,   62,   63,   64,   14,   65,   14,   14,   14,
-       66,   14,   14,   51,   14,   52,   14,   53,   54,   55,
-       14,   14,   14,   56,   14,   14,   57,   58,   14,   14,
-       59,   60,   61,   62,   63,   64,   14,   65,   14,   14,
-       14,   50,   14,   50,   14,   15,   49,   67,   15,   14,
-       17,   14,   14,   17,   19,   14,   14,   14,   20,   21,
-       22,   23,   23,   14,   14,   14,   68,   69,   70,   71,
-       72,   73,   74,   75,   76,   47,   77,   78,   79,   80,
-
-       81,   82,   47,   83,   84,   85,   86,   47,   87,   47,
-       47,   47,   14,   14,   14,   14,   14,   68,   69,   70,
-       71,   72,   73,   74,   75,   76,   47,   77,   78,   79,
-       80,   81,   82,   47,   83,   84,   85,   86,   47,   87,
-       47,   47,   47,   50,   14,   50,   88,   89,   49,   90,
-       89,   91,   92,   88,   93,   94,   88,   88,   88,   88,
-       95,   96,   88,   97,   97,   98,   99,  100,  101,  102,
-      103,  104,  105,  106,  107,   88,  108,   88,   88,  109,
-       88,  110,  111,   88,   88,  112,   88,  113,   88,   88,
-      114,   88,   88,   88,  115,   88,   88,   88,  116,  101,
-
-      102,  103,  104,  105,  106,  107,   88,  108,   88,   88,
-      109,   88,  110,  111,   88,   88,  112,   88,  113,   88,
-       88,  114,   88,   88,   88,  117,  118,  119,  121,  802,
-      121,  121,  121,  122,  121,  121,  123,  122,  125,  125,
-      123,  126,  126,  128, 1372,  128,  128,  132,  183,  133,
-      133,  135,  135,  184,  319,  213,  249,  185,  250,  251,
-      136,  345,  320, 1304,  140,  346,  133,  133,  128,  802,
-      128,  128,  593,  564,  346,  141,  142,  354,  143,  183,
-      354,  127,  127,  830,  184,  144,  213,  249,  185,  250,
-      251,  136,  137,  137,  137,  137,  137,  137,  137,  137,
-
-      137,  137,  137,  137,  137,  137,  141,  142,  139,  143,
-      566,  137,  198,  137,  145,  252,  144,  239,  146,  566,
-      354,  240,  147,  163,  164,  165,  199,  253,  254,  166,
-      256,  148,  255,  564,  149,  167,  536,  257,  258,  259,
-      137,  137,  137,  198,  137,  145,  252,  158,  239,  146,
-      159,  160,  240,  147,  163,  164,  165,  199,  253,  254,
-      166,  256,  148,  255,  161,  149,  167,  162,  257,  258,
-      259,  137,  137,  137,  150,  593,  151,  346,  158,  152,
-      153,  159,  160,  154,  263,  593,  155,  823,  264,  156,
-      157,  708,  168,  177,  349,  161,  169,  178,  162,  349,
-
-      170,  179,  265,  271,  178,  150,  171,  151,  173,  172,
-      152,  153,  174,  289,  154,  263,  175,  155,  193,  264,
-      156,  157,  194,  168,  177,  176,  195,  169,  178,  180,
-      181,  170,  179,  265,  271,  178,  182,  171,  196,  173,
-      172,  346,  197,  174,  289,  343,  260,  175,  128,  193,
-      128,  128,  261,  194,  267,  267,  176,  195,  241,  242,
-      180,  181,  243,  262,  244,  320,  245,  182,  186,  196,
-      187,  246,  188,  197,  330,  173,  189,  260,  566,  190,
-      284,  564,  191,  261,  185,  192,  536,  268,  248,  241,
-      242,  360,  281,  243,  262,  244,  320,  245,  131,  186,
-
-      131,  187,  246,  188,  332,  330,  173,  189,  276,  277,
-      190,  284,  269,  191,  270,  185,  192,  200,  201,  278,
-      207,  144,  214,  281,  208,  202,  215,  203,  209,  204,
-      216,  210,  205,  206,  211,  332,  217,  212,  349,  276,
-      277,  338,  349,  269,  128,  270,  128,  128,  200,  201,
-      278,  207,  144,  214,  347,  208,  202,  215,  203,  209,
-      204,  216,  210,  205,  206,  211,  336,  217,  212,  218,
-      219,  220,  338,  228,  221,  222,  287,  229,  298,  223,
-      288,  230,  216,  224,  234,  322,  225,  231,  226,  323,
-      232,  227,  321,  235,  318,  236,  243,  233,  244,  237,
-
-      218,  219,  220,  238,  228,  221,  222,  287,  229,  298,
-      223,  288,  230,  216,  224,  234,  322,  225,  231,  226,
-      323,  232,  227,  150,  235,  151,  236,  243,  233,  244,
-      237,  339,  272,  274,  238,  273,  159,  275,  156,  168,
-      282,  283,  326,  169,  285,  327,  311,  279,  286,  310,
-      340,  309,  134,  280,  150,  308,  151,  312,  134,  313,
-      313,  248,  339,  272,  274,  131,  273,  159,  275,  156,
-      168,  282,  283,  326,  169,  285,  327,  290,  279,  286,
-      294,  340,  324,  134,  280,  291,  321,  203,  295,  134,
-      299,  300,  292,  293,  296,  308,  303,  297,  325, 1857,
-
-      304,  331,  301,  314,  314,  335,  305,  302,  290,  306,
-     1857,  294,  315,  324,  594,  594,  291,  321,  203,  295,
-      328,  299,  300,  292,  293,  296,  308,  303,  297,  325,
-      234,  304,  331,  301,  329,  333,  335,  305,  302,  235,
-      306,  307,  352,  315,  316,  237,  313,  313,  336,  342,
-      334,  328,  337,  353,  128,  317,  128,  128, 1857,  343,
-      128,  234,  128,  128,  361,  329,  333, 1857,  355,  355,
-      235,  366,  307,  352,  267,  267,  237,  356,  367,  336,
-      342,  334,  372,  337,  353,  140,  317,  133,  133,  135,
-      135,  375,  378,  381,  382,  361,  141, 1857,  136,  357,
-
-      358, 1857,  366,  359,  359,  362,  362,  268,  356,  367,
-     1857,  364,  364,  372,  363,  365,  365,  373,  359,  359,
-      359,  359,  375,  378,  381,  382,  383,  141,  374,  136,
-      137,  137,  137,  137,  137,  137,  137,  137,  137,  137,
-      137,  137,  137,  137,  384,  363,  139, 1857,  373,  137,
-      368,  137,  376,  388,  369,  379,  389,  383,  377,  374,
-      386,  370,  387,  392,  385,  393,  390,  371,  394,  380,
-      391,  397,  398,  399,  395,  384,  402, 1857,  137,  137,
-      137,  368,  137,  376,  388,  369,  379,  389,  396,  377,
-      405,  386,  370,  387,  392,  385,  393,  390,  371,  394,
-
-      380,  391,  397,  398,  399,  395,  410,  402,  400,  137,
-      137,  137,  401,  403,  411,  412,  413,  404,  417,  396,
-      406,  405,  407,  408,  414,  418,  409,  419,  420,  425,
-      426,  427,  415,  428, 1857,  421,  422,  410,  416,  400,
-     1857,  423,  436,  401,  403,  411,  412,  413,  404,  417,
-      437,  406,  424,  407,  408,  414,  418,  409,  419,  420,
-      425,  426,  427,  415,  428,  433,  421,  422,  429,  416,
-      434,  435,  423,  436,  438,  448,  439,  440,  442,  449,
-      454,  437,  441,  424,  430,  450,  431,  444,  445,  446,
-      455,  432,  456,  451,  443,  447,  433,  457,  458,  429,
-
-      452,  434,  435,  459,  453,  438,  448,  439,  440,  442,
-      449,  454,  460,  441,  463,  430,  450,  431,  444,  445,
-      446,  455,  432,  456,  451,  443,  447,  464,  457,  458,
-      461,  452,  462,  465,  459,  453,  466,  471,  469,  467,
-      480,  481,  472,  460,  470,  463,  468,  473,  482,  474,
-      475,  483,  484,  485,  489,  476,  365,  365,  464,  477,
-      478,  461,  479,  462,  465,  490,  493,  466,  471,  469,
-      467,  480,  481,  472,  491,  470,  494,  468,  473,  482,
-      474,  475,  483,  484,  485,  489,  476,  486,  487,  495,
-      477,  478,  496,  479,  501,  505,  490,  493,  492,  506,
-
-      488,  502,  498,  497,  499,  491,  507,  494,  508,  503,
-      500,  509,  510,  511,  512,  513,  514,  515,  486,  487,
-      495,  504,  516,  496,  517,  501,  505,  518,  519,  492,
-      506,  488,  502,  498,  497,  499,  520,  507,  521,  508,
-      503,  500,  509,  510,  511,  512,  513,  514,  515,  523,
-      524,  525,  504,  516,  526,  517,  529,  527,  518,  519,
-      530,  522,  531,  532,  533,  534,  366,  520,  373,  521,
-      528,  369,  537,  538,  540,  539,  541,  395,  370,  398,
-      523,  524,  525,  543,  371,  526,  400,  529,  527,  416,
-      542,  530,  522,  531,  532,  533,  534,  366,  545,  373,
-
-      548,  528,  369,  537,  538,  540,  539,  541,  395,  370,
-      398,  549,  434,  550,  543,  371,  406,  400,  544,  408,
-      416,  542,  546,  444,  451,  551,  552,  553,  423,  545,
-      462,  548,  554,  470,  478,  555,  557,  558,  491,  547,
-      559,  560,  549,  434,  550,  556,  501,  406,  561,  544,
-      408,  562,  497,  546,  444,  451,  551,  552,  553,  423,
-     1857,  462, 1857,  554,  470,  478,  555,  557,  558,  491,
-      547,  559,  560,  498,  365,  365,  556,  501, 1857,  561,
-      310,  500,  562,  497,  314,  314,  316,  573,  313,  313,
-      314,  314,  574,  315,  569,  569,  575,  317,  578,  315,
-
-      581,  567,  567,  570,  498,  568,  568,  576,  577,  571,
-      571,  310,  500,  572,  572,  582,  583,  584,  573,  579,
-      585,  586,  587,  574,  315,  590, 1857,  575,  317,  578,
-      315,  581,  580,  588,  570,  589,  591,  595,  576,  577,
-      355,  355,  598,  568,  568,  599,  582,  583,  584,  356,
-      579,  585,  586,  587,  357,  357,  590,  343,  594,  594,
-      362,  362,  600,  580,  588,  601,  589,  591,  595,  363,
-      596,  596,  602,  598,  597,  597,  599,  603,  604,  605,
-      356,  606,  607,  608,  609,  610,  611,  612,  613,  614,
-      615,  616,  617,  600,  618,  621,  601,  619,  622,  625,
-
-      363,  626,  627,  602,  628,  620,  629,  623,  603,  604,
-      605,  630,  606,  607,  608,  609,  610,  611,  612,  613,
-      614,  615,  616,  617,  624,  618,  621,  631,  619,  622,
-      625,  632,  626,  627,  633,  628,  620,  629,  623,  634,
-      635,  636,  630,  637,  639,  640,  641,  642,  644,  645,
-      646,  638,  647,  648,  649,  624,  650,  643,  631,  651,
-      652,  653,  632,  654,  656,  633,  657,  655,  658,  659,
-      634,  635,  636,  660,  637,  639,  640,  641,  642,  644,
-      645,  646,  638,  647,  648,  649,  661,  650,  643,  663,
-      651,  652,  653,  664,  654,  656,  662,  657,  655,  658,
-
-      659,  665,  666,  667,  660,  668,  669,  670,  671,  672,
-      673,  568,  568,  685, 1857,  688, 1857,  661,  689, 1857,
-      663,  700, 1857,  701,  664, 1857,  702,  662,  703,  572,
-      572,  686,  665,  666,  667,  687,  668,  669,  670,  671,
-      672,  673,  674,  675,  685,  676,  688,  677,  678,  689,
-      679,  704,  700,  680,  701,  705,  681,  702,  706,  703,
-      682,  683,  686,  707,  684, 1857,  687,  709, 1857,  710,
-      572,  572,  713,  674,  675,  714,  676,  715,  677,  678,
-      716,  679,  704, 1857,  680,  717,  705,  681,  719,  706,
-      720,  682,  683,  718,  707,  684,  690,  691,  709,  692,
-
-      710,  693,  694,  713,  695,  711,  714,  696,  715,  712,
-      721,  716,  723,  725,  697,  698,  717,  728,  699,  719,
-      729,  720,  726,  724,  718,  730,  731,  690,  691,  727,
-      692,  732,  693,  694,  722,  695,  711,  733,  696,  734,
-      712,  721,  735,  723,  725,  697,  698,  736,  728,  699,
-      737,  729,  738,  726,  724,  739,  730,  731,  740,  741,
-      727,  743,  732,  744,  745,  722,  746,  747,  733,  748,
-      734,  742,  749,  735,  750,  751,  752,  753,  736,  754,
-      755,  737,  756,  738,  757,  758,  739,  759,  760,  740,
-      741,  761,  743,  764,  744,  745,  762,  746,  747,  765,
-
-      748,  763,  742,  749,  766,  750,  751,  752,  753,  767,
-      754,  755,  768,  756,  769,  757,  758,  770,  759,  760,
-      771,  772,  761,  773,  764,  774,  775,  762,  776,  777,
-      765,  778,  763,  779,  780,  766,  781,  782,  783,  784,
-      767,  785,  786,  768,  787,  769,  620,  788,  770,  623,
-      789,  771,  772,  638,  773,  790,  774,  775,  791,  776,
-      777,  654,  778,  792,  779,  780,  661,  781,  782,  783,
-      784,  794,  785,  786,  687,  787,  793,  620,  788,  795,
-      623,  789,  711,  796,  638,  717,  790,  797,  723,  791,
-      741,  798,  654,  799,  792,  800,  801,  661,  763,  569,
-
-      569,  805,  794,  594,  594,  687,  806,  793,  570,  807,
-      795,  808,  809,  711,  796,  810,  717,  811,  797,  723,
-      812,  741,  798,  813,  799,  814,  800,  801,  815,  763,
-      803,  803,  805,  816,  804,  804,  817,  806,  818,  570,
-      807,  819,  808,  809,  820,  821,  810,  824,  811,  822,
-      825,  812,  597,  597,  813,  826,  814,  597,  597,  815,
-      827,  828,  829,  831,  816,  832,  833,  817,  834,  818,
-      835,  836,  819,  837,  838,  820,  821,  343,  824,  839,
-      822,  825,  841,  842,  843,  844,  826,  845,  846,  849,
-      850,  827,  828,  829,  831,  851,  832,  833,  840,  834,
-
-      852,  835,  836,  853,  837,  838,  847,  854,  848,  855,
-      839,  856,  857,  841,  842,  843,  844,  858,  845,  846,
-      849,  850,  859,  860,  861,  862,  851,  863,  864,  840,
-      865,  852,  866,  867,  853,  868,  869,  847,  854,  848,
-      855,  870,  856,  857,  871,  872,  873,  874,  858,  875,
-      876,  877,  878,  859,  860,  861,  862,  879,  863,  864,
-      880,  865,  881,  866,  867,  882,  868,  869,  883,  884,
-      887,  888,  870,  889,  890,  871,  872,  873,  874,  885,
-      875,  876,  877,  878,  891,  892,  886,  893,  879,  896,
-      894,  880,  897,  881,  898,  899,  882,  895,  900,  883,
-
-      884,  887,  888,  901,  889,  890,  902,  903,  904,  908,
-      885,  909,  910,  905,  911,  891,  892,  886,  893,  906,
-      896,  894,  912,  897,  913,  898,  899,  914,  895,  900,
-      915,  907,  916,  917,  901,  918,  919,  902,  903,  904,
-      908,  920,  909,  910,  905,  911,  921,  925,  926,  927,
-      906,  922,  928,  912,  929,  913,  930,  923,  914,  931,
-      934,  915,  907,  916,  917,  935,  918,  919,  936,  924,
-      932,  937,  920,  938,  933,  939,  940,  921,  925,  926,
-      927,  941,  922,  928,  942,  929,  943,  930,  923,  944,
-      931,  934,  945,  946,  947,  948,  935,  949,  950,  936,
-
-      924,  932,  937,  951,  938,  933,  939,  940,  952,  953,
-      954,  955,  941,  956,  957,  942,  958,  943,  959,  960,
-      944,  961,  962,  945,  946,  947,  948,  963,  949,  950,
-      964,  965,  966,  967,  951,  968,  969,  970,  971,  952,
-      953,  954,  955,  972,  956,  957,  973,  958,  974,  959,
-      960,  975,  961,  962,  976,  977,  978,  981,  963,  982,
-      983,  964,  965,  966,  967,  984,  968,  969,  970,  971,
-      985,  979,  986,  987,  972,  980,  988,  973,  989,  974,
-      990,  991,  975,  992,  993,  976,  977,  978,  981,  994,
-      982,  983,  995,  996,  997,  998,  984,  999, 1000, 1001,
-
-     1002,  985,  979,  986,  987, 1003,  980,  988, 1004,  989,
-     1005,  990,  991, 1006,  992,  993, 1007, 1008, 1009, 1010,
-      994, 1011, 1012,  995,  996,  997,  998, 1013,  999, 1000,
-     1001, 1002,  885, 1014,  932, 1015, 1003, 1016, 1017, 1004,
-     1018, 1005,  804,  804, 1006,  804,  804, 1007, 1008, 1009,
-     1010, 1019, 1011, 1012, 1020, 1021, 1022, 1023, 1013, 1024,
-     1025, 1026, 1027,  885, 1014,  932, 1015, 1028, 1016, 1017,
-     1029, 1018, 1030, 1031, 1032, 1033, 1034, 1036, 1037, 1038,
-     1039, 1035, 1019, 1040, 1041, 1020, 1021, 1022, 1023, 1042,
-     1024, 1025, 1026, 1027,  343, 1043, 1044, 1045, 1028, 1046,
-
-     1047, 1029, 1050, 1030, 1031, 1032, 1033, 1034, 1036, 1037,
-     1038, 1039, 1035, 1051, 1040, 1041, 1048, 1052, 1049, 1053,
-     1042, 1054, 1055, 1056, 1057, 1058, 1043, 1044, 1045, 1059,
-     1046, 1047, 1060, 1050, 1061, 1062, 1063, 1064, 1065, 1066,
-     1067, 1068, 1069, 1070, 1051, 1071, 1072, 1048, 1052, 1049,
-     1053, 1073, 1054, 1055, 1056, 1057, 1058, 1074, 1075, 1857,
-     1059, 1082, 1857, 1060, 1083, 1061, 1062, 1063, 1064, 1065,
-     1066, 1067, 1068, 1069, 1070, 1084, 1071, 1072, 1087, 1088,
-     1076, 1085, 1073, 1089, 1090, 1096, 1857, 1097, 1074, 1075,
-     1077, 1086, 1082, 1078, 1079, 1083, 1857, 1080, 1081, 1098,
-
-     1099, 1857, 1100, 1101, 1102, 1103, 1084, 1104, 1105, 1087,
-     1088, 1076, 1085, 1106, 1089, 1090, 1096, 1091, 1097, 1107,
-     1092, 1077, 1086, 1093, 1078, 1079, 1108, 1094, 1080, 1081,
-     1098, 1099, 1095, 1100, 1101, 1102, 1103, 1109, 1104, 1105,
-     1110, 1111, 1112, 1113, 1106, 1114, 1115, 1116, 1091, 1117,
-     1107, 1092, 1118, 1119, 1093, 1120, 1121, 1108, 1094, 1122,
-     1123, 1124, 1125, 1095, 1126, 1127, 1128, 1129, 1109, 1130,
-     1131, 1110, 1111, 1112, 1113, 1132, 1114, 1115, 1116, 1133,
-     1117, 1134, 1135, 1118, 1119, 1136, 1120, 1121, 1137, 1138,
-     1122, 1123, 1124, 1125, 1139, 1126, 1127, 1128, 1129, 1140,
-
-     1130, 1131, 1141, 1142, 1143, 1144, 1132, 1145, 1146, 1147,
-     1133, 1148, 1134, 1135, 1149, 1150, 1136, 1151, 1152, 1137,
-     1138, 1154, 1155, 1156, 1157, 1139, 1160, 1153, 1161, 1162,
-     1140, 1163, 1164, 1141, 1142, 1143, 1144, 1158, 1145, 1146,
-     1147, 1165, 1148, 1166, 1159, 1149, 1150, 1167, 1151, 1152,
-     1170, 1171, 1154, 1155, 1156, 1157, 1172, 1160, 1153, 1161,
-     1162, 1173, 1163, 1164, 1168, 1174, 1169, 1175, 1158, 1176,
-     1177, 1178, 1165, 1179, 1166, 1159, 1180, 1181, 1167, 1182,
-     1184, 1170, 1171, 1185, 1187, 1183, 1188, 1172, 1189, 1190,
-     1191, 1192, 1173, 1186, 1193, 1168, 1174, 1169, 1175, 1196,
-
-     1176, 1177, 1178, 1197, 1179, 1198, 1194, 1180, 1181, 1199,
-     1182, 1184, 1200, 1201, 1185, 1187, 1183, 1188, 1202, 1189,
-     1190, 1191, 1192, 1195, 1186, 1193, 1048, 1063, 1049, 1076,
-     1196, 1086, 1093, 1203, 1197, 1148, 1198, 1194, 1204, 1205,
-     1199, 1095, 1206, 1200, 1201, 1207, 1208, 1209, 1210, 1202,
-     1211, 1212, 1213, 1214, 1195, 1215, 1216, 1048, 1063, 1049,
-     1076, 1217, 1086, 1093, 1203, 1218, 1148, 1219, 1220, 1204,
-     1205, 1221, 1095, 1206, 1222, 1223, 1207, 1208, 1209, 1210,
-     1224, 1211, 1212, 1213, 1214, 1225, 1215, 1216, 1226, 1227,
-     1228, 1229, 1217, 1230, 1231,  343, 1218, 1232, 1219, 1220,
-
-     1233, 1234, 1221, 1235, 1236, 1222, 1223, 1237, 1238, 1239,
-     1240, 1224, 1241, 1242, 1243, 1244, 1225, 1245, 1246, 1226,
-     1227, 1228, 1229, 1247, 1230, 1231, 1248, 1249, 1232, 1250,
-     1251, 1233, 1234, 1252, 1235, 1236, 1253, 1254, 1237, 1238,
-     1239, 1240, 1255, 1241, 1242, 1243, 1244, 1256, 1245, 1246,
-     1257, 1258, 1259, 1260, 1247, 1261, 1262, 1248, 1249, 1263,
-     1250, 1251, 1264, 1265, 1252, 1266, 1267, 1253, 1254, 1269,
-     1270, 1271, 1272, 1255, 1268, 1273, 1274, 1275, 1256, 1276,
-     1277, 1257, 1258, 1259, 1260, 1278, 1261, 1262, 1279, 1280,
-     1263, 1281, 1282, 1264, 1265, 1283, 1266, 1267, 1284, 1285,
-
-     1269, 1270, 1271, 1272, 1286, 1268, 1273, 1274, 1275, 1287,
-     1276, 1277, 1288, 1289, 1290, 1291, 1278, 1292, 1293, 1279,
-     1280, 1294, 1281, 1282, 1295, 1296, 1283, 1297, 1298, 1284,
-     1285, 1299, 1300, 1301, 1302, 1286, 1303, 1305, 1306, 1307,
-     1287, 1308, 1309, 1288, 1289, 1290, 1291, 1310, 1292, 1293,
-     1311, 1312, 1294, 1313, 1314, 1295, 1296, 1315, 1297, 1298,
-     1316, 1317, 1299, 1300, 1301, 1302, 1318, 1303, 1305, 1306,
-     1307, 1319, 1308, 1309, 1320, 1321, 1322, 1323, 1310, 1324,
-     1325, 1311, 1312, 1326, 1313, 1314, 1327, 1328, 1315, 1329,
-     1330, 1316, 1317, 1331, 1332, 1335, 1333, 1318, 1336, 1337,
-
-     1338, 1339, 1319, 1340, 1341, 1320, 1321, 1322, 1323, 1342,
-     1324, 1325, 1334, 1343, 1326, 1344, 1345, 1327, 1328, 1346,
-     1329, 1330, 1347, 1348, 1331, 1332, 1335, 1333, 1349, 1336,
-     1337, 1338, 1339, 1350, 1340, 1341, 1351, 1352, 1353, 1354,
-     1342, 1355, 1356, 1334, 1343, 1357, 1344, 1345, 1358, 1359,
-     1346, 1360, 1361, 1347, 1348, 1362, 1363, 1364, 1365, 1349,
-     1366, 1367, 1368, 1369, 1350, 1370, 1371, 1351, 1352, 1353,
-     1354, 1373, 1355, 1356, 1374, 1375, 1357, 1376, 1377, 1358,
-     1359, 1378, 1360, 1361, 1379, 1380, 1362, 1363, 1364, 1365,
-     1381, 1366, 1367, 1368, 1369, 1382, 1370, 1371, 1383, 1384,
-
-     1385, 1386, 1373, 1387, 1388, 1374, 1375, 1389, 1376, 1377,
-     1390, 1391, 1378, 1392, 1393, 1379, 1380, 1394, 1395, 1396,
-     1397, 1381, 1398, 1399, 1400, 1401, 1382, 1402, 1403, 1383,
-     1384, 1385, 1386, 1404, 1387, 1388, 1405, 1406, 1389, 1407,
-     1408, 1390, 1391, 1409, 1392, 1393, 1410, 1411, 1394, 1395,
-     1396, 1397, 1412, 1398, 1399, 1400, 1401, 1413, 1402, 1403,
-     1414, 1415, 1416, 1417, 1404, 1418, 1419, 1405, 1406, 1420,
-     1407, 1408, 1421, 1422, 1409, 1423, 1424, 1410, 1411, 1425,
-     1426, 1427, 1428, 1412, 1429, 1430, 1431, 1432, 1413, 1433,
-     1434, 1414, 1415, 1416, 1417, 1435, 1418, 1419, 1436, 1437,
-
-     1420, 1438, 1439, 1421, 1422, 1440, 1423, 1424, 1441, 1444,
-     1425, 1426, 1427, 1428, 1445, 1429, 1430, 1431, 1432, 1447,
-     1433, 1434, 1442, 1857, 1443, 1453, 1435, 1857, 1454, 1436,
-     1437, 1455, 1438, 1439, 1446, 1456, 1440, 1457, 1458, 1441,
-     1444, 1448, 1449, 1459, 1460, 1445, 1461, 1462, 1463, 1464,
-     1447, 1465, 1450, 1442, 1451, 1443, 1453, 1466, 1452, 1454,
-     1467, 1468, 1455, 1469, 1470, 1446, 1456, 1471, 1457, 1458,
-     1472, 1473, 1448, 1449, 1459, 1460, 1474, 1461, 1462, 1463,
-     1464, 1475, 1465, 1450, 1476, 1451, 1477, 1480, 1466, 1452,
-     1481, 1467, 1468, 1482, 1469, 1470, 1483, 1478, 1471, 1479,
-
-     1484, 1472, 1473, 1485, 1486, 1487, 1488, 1474, 1489, 1490,
-     1491, 1492, 1475, 1493, 1494, 1476, 1495, 1477, 1480, 1496,
-     1497, 1481, 1498, 1499, 1482, 1500, 1501, 1483, 1478, 1502,
-     1479, 1484, 1503, 1504, 1485, 1486, 1487, 1488, 1505, 1489,
-     1490, 1491, 1492, 1506, 1493, 1494, 1507, 1495, 1448, 1449,
-     1496, 1497, 1508, 1498, 1499, 1509, 1500, 1501, 1510, 1511,
-     1502, 1451, 1512, 1503, 1504, 1452, 1513, 1514, 1515, 1505,
-     1516, 1517, 1518, 1519, 1506, 1520, 1521, 1507, 1522, 1448,
-     1449, 1523, 1524, 1508, 1525, 1526, 1509, 1527, 1528, 1510,
-     1511, 1529, 1451, 1512, 1530, 1531, 1452, 1513, 1514, 1515,
-
-     1532, 1516, 1517, 1518, 1519, 1533, 1520, 1521, 1534, 1522,
-     1535, 1536, 1523, 1524, 1537, 1525, 1526, 1538, 1527, 1528,
-     1539, 1540, 1529, 1541, 1542, 1530, 1531, 1543, 1544, 1545,
-     1546, 1532, 1547, 1548, 1549, 1550, 1533, 1551, 1552, 1534,
-     1553, 1535, 1536, 1554, 1555, 1537, 1556, 1557, 1538, 1558,
-     1559, 1539, 1540, 1560, 1541, 1542, 1561, 1562, 1543, 1544,
-     1545, 1546, 1563, 1547, 1548, 1549, 1550, 1564, 1551, 1552,
-     1565, 1553, 1566, 1567, 1554, 1555, 1568, 1556, 1557, 1569,
-     1558, 1559, 1570, 1571, 1560, 1572, 1573, 1561, 1562, 1574,
-     1577, 1575, 1578, 1563, 1580, 1581, 1582, 1583, 1564, 1576,
-
-     1584, 1565, 1585, 1566, 1567, 1586, 1587, 1568, 1579, 1588,
-     1569, 1589, 1590, 1570, 1571, 1591, 1572, 1573, 1592, 1593,
-     1574, 1577, 1575, 1578, 1594, 1580, 1581, 1582, 1583, 1595,
-     1576, 1584, 1596, 1585, 1597, 1598, 1586, 1587, 1599, 1579,
-     1588, 1600, 1589, 1590, 1601, 1602, 1591, 1603, 1604, 1592,
-     1593, 1605, 1606, 1607, 1608, 1594, 1609, 1610, 1611, 1612,
-     1595, 1613, 1614, 1596, 1615, 1597, 1598, 1616, 1617, 1599,
-     1618, 1619, 1600, 1620, 1621, 1601, 1602, 1622, 1603, 1604,
-     1623, 1624, 1605, 1606, 1607, 1608, 1625, 1609, 1610, 1611,
-     1612, 1626, 1613, 1614, 1627, 1615, 1628, 1629, 1616, 1617,
-
-     1630, 1618, 1619, 1631, 1620, 1621, 1632, 1633, 1622, 1634,
-     1635, 1623, 1624, 1636, 1637, 1638, 1639, 1625, 1640, 1641,
-     1642, 1643, 1626, 1644, 1645, 1627, 1646, 1628, 1629, 1647,
-     1648, 1630, 1649, 1650, 1631, 1651, 1652, 1632, 1633, 1653,
-     1634, 1635, 1654, 1655, 1636, 1637, 1638, 1639, 1656, 1640,
-     1641, 1642, 1643, 1657, 1644, 1645, 1658, 1646, 1659, 1660,
-     1647, 1648, 1661, 1649, 1650, 1662, 1651, 1652, 1663, 1664,
-     1653, 1665, 1666, 1654, 1655, 1667, 1668, 1669, 1670, 1656,
-     1671, 1672, 1673, 1674, 1657, 1675, 1676, 1658, 1677, 1659,
-     1660, 1678, 1679, 1661, 1680, 1681, 1662, 1682, 1683, 1663,
-
-     1664, 1684, 1665, 1666, 1685, 1686, 1667, 1668, 1669, 1670,
-     1687, 1671, 1672, 1673, 1674, 1688, 1675, 1676, 1689, 1677,
-     1690, 1691, 1678, 1679, 1692, 1680, 1681, 1693, 1682, 1683,
-     1694, 1695, 1684, 1696, 1697, 1685, 1686, 1698, 1699, 1700,
-     1701, 1687, 1702, 1703, 1704, 1705, 1688, 1706, 1707, 1689,
-     1708, 1690, 1691, 1709, 1710, 1692, 1711, 1712, 1693, 1713,
-     1714, 1694, 1695, 1715, 1696, 1697, 1716, 1717, 1698, 1699,
-     1700, 1701, 1718, 1702, 1703, 1704, 1705, 1719, 1706, 1707,
-     1720, 1708, 1721, 1722, 1709, 1710, 1723, 1711, 1712, 1724,
-     1713, 1714, 1725, 1726, 1715, 1727, 1728, 1716, 1717, 1729,
-
-     1730, 1731, 1732, 1718, 1733, 1734, 1735, 1736, 1719, 1737,
-     1738, 1720, 1739, 1721, 1722, 1740, 1741, 1723, 1742, 1743,
-     1724, 1744, 1745, 1725, 1726, 1746, 1727, 1728, 1747, 1748,
-     1729, 1730, 1731, 1732, 1749, 1733, 1734, 1735, 1736, 1751,
-     1737, 1738, 1752, 1739, 1753, 1754, 1740, 1741, 1755, 1742,
-     1743, 1750, 1744, 1745, 1756, 1757, 1746, 1758, 1759, 1747,
-     1748, 1760, 1761, 1762, 1763, 1749, 1764, 1765, 1766, 1767,
-     1751, 1768, 1769, 1752, 1770, 1753, 1754, 1771, 1772, 1755,
-     1773, 1774, 1750, 1775, 1776, 1756, 1757, 1777, 1758, 1759,
-     1778, 1779, 1760, 1761, 1762, 1763, 1780, 1764, 1765, 1766,
-
-     1767, 1781, 1768, 1769, 1782, 1770, 1783, 1784, 1771, 1772,
-     1785, 1773, 1774, 1786, 1775, 1776, 1787, 1788, 1777, 1789,
-     1790, 1778, 1779, 1791, 1792, 1793, 1794, 1780, 1795, 1796,
-     1797, 1798, 1781, 1799, 1800, 1782, 1801, 1783, 1784, 1802,
-     1803, 1785, 1804, 1805, 1786, 1806, 1807, 1787, 1788, 1808,
-     1789, 1790, 1809, 1810, 1791, 1792, 1793, 1794, 1811, 1795,
-     1796, 1797, 1798, 1812, 1799, 1800, 1813, 1801, 1814, 1815,
-     1802, 1803, 1816, 1804, 1805, 1817, 1806, 1807, 1818, 1819,
-     1808, 1820, 1821, 1809, 1810, 1822, 1823, 1824, 1825, 1811,
-     1826, 1827, 1828, 1829, 1812, 1830, 1831, 1813, 1832, 1814,
-
-     1815, 1833, 1834, 1816, 1835, 1836, 1817, 1837, 1838, 1818,
-     1819, 1839, 1820, 1821, 1840, 1841, 1822, 1823, 1824, 1825,
-     1842, 1826, 1827, 1828, 1829, 1843, 1830, 1831, 1844, 1832,
-     1845, 1846, 1833, 1834, 1847, 1835, 1836, 1848, 1837, 1838,
-     1849, 1850, 1839, 1851, 1852, 1840, 1841, 1853, 1854, 1855,
-     1856, 1842, 1857, 1857, 1857, 1857, 1843, 1857, 1857, 1844,
-     1857, 1845, 1846, 1857, 1857, 1847, 1857, 1857, 1848, 1857,
-     1857, 1849, 1850, 1857, 1851, 1852, 1857, 1857, 1853, 1854,
-     1855, 1856,  120,  120,  120,  120,  120,  120,  120,  120,
-      120,  124,  124,  124,  124,  124,  124,  124,  124,  124,
-
-      129, 1857,  129,  129,  129,  129,  129,  129,  129,  130,
-     1857,  130,  130,  130,  130,  130,  130,  130,  134,  134,
-      138,  138,  138,  138,  138,  138,  138,  138,  138,  247,
-      247,  247,  247,  247,  247,  247,  247,  247,  266, 1857,
-      266,  341,  341,  341,  341,  341,  341,  341,  341,  341,
-      344,  344,  344,  344,  344,  344,  344,  344,  344,  348,
-      348,  348,  348,  348,  348,  348,  348,  348,  350,  350,
-      350,  350,  350,  350,  350,  350,  350,  351,  351,  351,
-     1857, 1857,  351,  351, 1857,  351,  137,  137,  137,  137,
-      137,  137,  137,  137,  137,  535, 1857, 1857,  535,  535,
-
-     1857,  535,  563,  563,  563, 1857,  563,  563,  563,  563,
-      563,  565,  565,  565,  565, 1857,  565,  565,  565,  565,
-      592,  592,  592,  592,  592,  592,  592,  592,  592,   13,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857
+       41,   42,   43,   44,   45,   46,   47,   47,   47,   49,
+       14,   14,   14,   14,   14,   14,   50,   51,   14,   14,
+       14,   14,   14,   14,   14,   14,   14,   14,   14,   52,
+
+       14,   14,   14,   14,   14,   14,   53,   14,   54,   55,
+       56,   14,   14,   14,   57,   14,   14,   58,   59,   14,
+       14,   60,   61,   62,   63,   64,   65,   14,   66,   14,
+       14,   14,   67,   14,   14,   52,   14,   53,   14,   54,
+       55,   56,   14,   14,   14,   57,   14,   14,   58,   59,
+       14,   14,   60,   61,   62,   63,   64,   65,   14,   66,
+       14,   14,   14,   14,   51,   14,   14,   51,   14,   15,
+       50,   68,   15,   14,   17,   14,   14,   17,   19,   14,
+       14,   14,   20,   21,   22,   23,   23,   14,   14,   14,
+       69,   70,   71,   72,   73,   74,   75,   76,   77,   47,
+
+       78,   79,   80,   81,   82,   83,   47,   84,   85,   86,
+       87,   47,   88,   47,   47,   47,   14,   14,   14,   14,
+       14,   69,   70,   71,   72,   73,   74,   75,   76,   77,
+       47,   78,   79,   80,   81,   82,   83,   47,   84,   85,
+       86,   87,   47,   88,   47,   47,   47,   49,   51,   14,
+       14,   51,   89,   90,   50,   91,   90,   92,   93,   89,
+       94,   95,   89,   89,   89,   89,   96,   97,   89,   98,
+       98,   99,  100,  101,  102,  103,  104,  105,  106,  107,
+      108,   89,  109,   89,   89,  110,   89,  111,  112,   89,
+       89,  113,  114,  115,   89,   89,  116,   89,   89,   89,
+
+      117,   89,   89,   89,  118,  102,  103,  104,  105,  106,
+      107,  108,   89,  109,   89,   89,  110,   89,  111,  112,
+       89,   89,  113,  114,  115,   89,   89,  116,   89,   89,
+       89,   89,  119,   89,  120,  121,  123,  818,  123,  123,
+      123,  124,  123,  123,  125,  124,  127,  127,  125,  128,
+      128,  130, 1910,  130,  130,  134,  185,  135,  135,  137,
+      137,  186,  323,  215,  253,  187,  254,  255,  138,  354,
+      324, 1900,  142,  355,  135,  135,  130,  818,  130,  130,
+      607,  573,  355,  143,  144, 1418,  145,  185, 1343,  129,
+      129,  851,  186,  146,  215,  253,  187,  254,  255,  138,
+
+      139,  139,  139,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  143,  144,  141,  145,  575,  139,
+      256,  139,  147,  170,  146,  257,  148,  171,  260,  575,
+      149,  172,  573,  261,  182,  183,  262,  173,  263,  150,
+      174,  184,  151,  160,  267,  268,  161,  162,  139,  139,
+      139,  256,  139,  147,  170,  545,  257,  148,  171,  260,
+      163,  149,  172,  164,  261,  182,  183,  262,  173,  263,
+      150,  174,  184,  151,  160,  267,  268,  161,  162,  139,
+      139,  139,  139,  139,  152,  269,  153,  723,  275,  154,
+      155,  163,  358,  156,  164,  200,  157,  180,  293,  158,
+
+      159,  165,  166,  167,  179,  324,  175,  168,  180,  201,
+      176,  358,  181,  169,  177,  152,  269,  153,  241,  275,
+      154,  155,  242,  178,  156,  355,  200,  157,  180,  293,
+      158,  159,  165,  166,  167,  179,  324,  175,  168,  180,
+      201,  176,  258,  181,  169,  177,  259,  608,  608,  241,
+      271,  271,  352,  242,  178,  188,  195,  189,  288,  190,
+      196,  264,  187,  191,  197,  334,  192,  265,  245,  193,
+      246,  216,  194,  258,  575,  217,  198,  259,  266,  218,
+      199,  368,  368,  272,  573,  219,  188,  195,  189,  288,
+      190,  196,  264,  187,  191,  197,  334,  192,  265,  245,
+
+      193,  246,  216,  194,  286,  287,  217,  198,  337,  266,
+      218,  199,  202,  203,  328,  209,  219,  170,  545,  210,
+      204,  171,  205,  211,  206,  283,  212,  207,  208,  213,
+      329,  284,  214,  366,  367,  286,  287,  368,  368,  337,
+      273,  252,  274,  202,  203,  328,  209,  252,  170,  146,
+      210,  204,  171,  205,  211,  206,  283,  212,  207,  208,
+      213,  329,  284,  214,  220,  221,  222,  250,  230,  223,
+      224,  273,  231,  274,  225,  343,  232,  332,  226,  236,
+      146,  227,  233,  228,  346,  234,  229,  175,  237,  291,
+      238,  333,  235,  292,  239,  220,  221,  222,  240,  230,
+
+      223,  224,  369,  231,  285,  225,  343,  232,  332,  226,
+      236,  133,  227,  233,  228,  346,  234,  229,  175,  237,
+      291,  238,  333,  235,  292,  239,  243,  244,  133,  240,
+      245,  152,  246,  153,  247,  285,  280,  281,  278,  248,
+      276,  161,  279,  277,  347,  289,  158,  282,  358,  290,
+      302,  326,  358,  136,  218,  327,  356,  243,  244,  136,
+      341,  245,  152,  246,  153,  247,  325,  280,  281,  278,
+      248,  276,  161,  279,  277,  347,  289,  158,  282,  294,
+      290,  302,  326,  298,  136,  218,  327,  295,  335,  205,
+      136,  299,  303,  304,  296,  297,  330,  300,  307,  331,
+
+      301,  341,  308,  336,  305,  342,  236,  361,  309,  306,
+      294,  310,  368,  368,  298,  237,  322,  311,  295,  335,
+      205,  239,  299,  303,  304,  296,  297,  330,  300,  307,
+      331,  301,  341,  308,  336,  305,  342,  236,  361,  309,
+      306,  130,  310,  130,  130,  362,  237,  130,  311,  130,
+      130,  316,  239,  317,  317,  318,  318,  320,  338,  317,
+      317,  312,  344,  349,  319,  370,  345,  130,  321,  130,
+      130,  340,  350,  339,  363,  315,  362,  363,  351,  130,
+      314,  130,  130,  313,  381,  384,  373,  373,  352,  338,
+      374,  374,  312,  344,  349,  319,  370,  345,  387,  321,
+
+      375,  390,  340,  350,  339,  364,  364,  376,  142,  351,
+      135,  135,  137,  137,  365,  381,  384,  363,  391,  143,
+      392,  138,  374,  374,  374,  374,  312,  371,  371,  387,
+      252,  375,  390,  577,  577,  250,  372,  382,  376,  397,
+      398,  133,  576,  576, 1929,  365,  577,  577,  383,  391,
+      143,  392,  138,  139,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  139,  139,  139,  139,  372,  382,  141,
+      397,  398,  139,  377,  139,  385,  393,  378,  388,  383,
+      395,  386,  396,  399,  379,  401,  402,  400,  403,  408,
+      380,  411,  389, 1929,  406,  407,  394,  414,  419,  420,
+
+      421,  139,  139,  139,  377,  139,  385,  393,  378,  388,
+      404,  395,  386,  396,  399,  379,  401,  402,  400,  403,
+      408,  380,  411,  389,  405,  406,  407,  394,  414,  419,
+      420,  421,  139,  139,  139,  139,  139,  422,  409,  412,
+      423,  404,  410,  413,  415,  426,  416,  417,  424,  427,
+      418,  428,  429,  434,  425,  405, 1929,  435,  436,  437,
+      577,  577, 1929,  445,  446,  607,  457,  355,  422,  409,
+      412,  423, 1929,  410,  413,  415,  426,  416,  417,  424,
+      427,  418,  428,  429,  434,  425,  430,  431,  435,  436,
+      437,  438,  432,  442,  445,  446,  451,  457,  443,  444,
+
+      458,  463,  447,  433,  448,  449,  464,  439,  465,  440,
+      450,  459,  452,  466,  441,  581,  581,  430,  431,  460,
+      467,  461,  438,  432,  442,  462,  468,  451,  469,  443,
+      444,  458,  463,  447,  433,  448,  449,  464,  439,  465,
+      440,  450,  459,  452,  466,  441,  453,  454,  455,  472,
+      460,  467,  461,  470,  456,  471,  462,  468,  473,  469,
+      474,  475,  478,  480,  476,  481,  581,  581,  479,  489,
+      482,  477, 1929,  490,  491,  492, 1929,  453,  454,  455,
+      472,  493,  494, 1929,  470,  456,  471,  498,  499,  473,
+      502,  474,  475,  478,  480,  476,  481,  483,  484,  479,
+
+      489,  482,  477,  485,  490,  491,  492,  486,  487,  500,
+      488,  503,  493,  494,  495,  496,  504,  510,  498,  499,
+      505,  502,  507,  514,  508, 1929,  515,  497,  483,  484,
+      509,  506,  516,  501,  485,  517,  511,  518,  486,  487,
+      500,  488,  503,  519,  512,  495,  496,  504,  510,  520,
+      521,  505,  522,  507,  514,  508,  513,  515,  497,  523,
+      524,  509,  506,  516,  501,  525,  517,  511,  518,  526,
+      527,  528,  529,  532,  519,  512,  530,  533,  534,  535,
+      520,  521,  536,  522,  538,  539,  540,  513,  541,  542,
+      523,  524,  543,  375,  382,  537,  525,  546, 1929,  531,
+
+      526,  527,  528,  529,  532,  271,  271,  530,  533,  534,
+      535,  549,  550,  536,  378,  538,  539,  540,  404,  541,
+      542,  379,  407,  543,  375,  382,  537,  380,  546,  547,
+      531,  548,  409,  552,  425,  554,  551,  415,  272,  553,
+      417,  557,  549,  550,  555,  378,  558,  443,  559,  404,
+      432,  453,  379,  407,  460,  560,  561,  562,  380,  471,
+      547,  556,  548,  409,  552,  425,  554,  551,  415,  563,
+      553,  417,  557,  564,  479,  555,  487,  558,  443,  559,
+      566,  432,  453,  565,  567,  460,  560,  561,  562,  500,
+      471,  568,  556,  507,  510,  569,  570,  571,  580,  580,
+
+      563,  509,  581,  581,  564,  479,  506,  487,  318,  318,
+      320,  566,  317,  317,  565,  567,  314,  319,  582,  583,
+      500,  321,  568,  584,  507,  510,  569,  570,  571,  318,
+      318,  587,  509,  578,  578,  585,  586,  506,  319,  590,
+      588,  591,  579,  592,  593,  594,  595,  314,  319,  582,
+      583,  596,  321,  589,  584,  597,  598,  599,  600,  602,
+      601, 1929,  587,  609,  603,  604,  585,  586, 1929,  319,
+      590,  588,  591,  579,  592,  593,  594,  595,  605,  612,
+      608,  608,  596,  613,  589, 1929,  597,  598,  599,  600,
+      602,  601,  352,  352,  609,  603,  604,  364,  364,  352,
+
+      366,  366,  371,  371,  608,  608,  365,  614,  615,  605,
+      612,  372,  610,  610,  613,  616,  611,  611,  617,  618,
+      619,  620,  621,  622,  623,  624,  625,  626,  627,  628,
+      629,  630,  631,  632, 1929,  636,  637,  365,  614,  615,
+      640,  641,  372,  642,  643,  644,  616,  645, 1929,  617,
+      618,  619,  620,  621,  622,  623,  624,  625,  626,  627,
+      628,  629,  630,  631,  632,  633,  636,  637,  638,  646,
+      647,  640,  641,  634,  642,  643,  644,  648,  645,  635,
+      649,  650,  651,  652,  654,  639,  655,  656,  657,  659,
+      660,  653,  661,  662,  663,  664,  633,  665,  658,  638,
+
+      646,  647,  666,  667,  634,  668,  671,  672,  648,  673,
+      635,  649,  650,  651,  652,  654,  639,  655,  656,  657,
+      659,  660,  653,  661,  662,  663,  664,  669,  665,  658,
+      674,  670,  675,  666,  667,  676,  668,  671,  672,  678,
+      673,  679,  680,  681,  682,  677,  683,  684,  685,  686,
+      687,  688, 1929,  607,  700,  844,  703, 1929,  669,  704,
+     1929,  674,  670,  675,  701,  715,  676,  716,  702,  717,
+      678, 1929,  679,  680,  681,  682,  677,  683,  684,  685,
+      686,  687,  688,  689,  690,  700,  691,  703,  692,  693,
+      704,  694,  718,  719,  695,  701,  715,  696,  716,  702,
+
+      717,  697,  698,  720,  721,  699,  611,  611,  722, 1929,
+      724,  611,  611,  725,  689,  690,  728,  691,  729,  692,
+      693,  730,  694,  718,  719,  695,  726,  731,  696,  734,
+      727,  735,  697,  698,  720,  721,  699,  705,  706,  722,
+      707,  724,  708,  709,  725,  710,  732,  728,  711,  729,
+      740,  736,  730,  738,  733,  712,  713,  726,  731,  714,
+      734,  727,  735,  741,  739,  743,  744,  745,  705,  706,
+      742,  707,  746,  708,  709,  737,  710,  732,  747,  711,
+      748,  740,  736,  749,  738,  733,  712,  713,  750,  751,
+      714,  752,  753,  754,  741,  739,  743,  744,  745,  755,
+
+      756,  742,  758,  746,  759,  760,  737,  761,  762,  747,
+      763,  748,  757,  764,  749,  765,  766,  767,  768,  750,
+      751,  769,  752,  753,  754,  770,  771,  772,  773,  774,
+      755,  756,  775,  758,  776,  759,  760,  777,  761,  762,
+      779,  763,  778,  757,  764,  782,  765,  766,  767,  768,
+      780,  783,  769,  784,  785,  786,  770,  771,  772,  773,
+      774,  787,  781,  775,  788,  776,  789,  790,  777,  791,
+      792,  779,  793,  778,  794,  795,  782,  796,  797,  798,
+      799,  780,  783,  800,  784,  785,  786,  801,  802,  803,
+      634,  804,  787,  781,  638,  788,  805,  789,  790,  653,
+
+      791,  792,  806,  793,  807,  794,  795,  669,  796,  797,
+      798,  799,  808,  676,  800,  810,  702,  811,  801,  802,
+      803,  634,  804,  809,  726,  638,  812,  805,  732,  813,
+      653,  738,  756,  806,  814,  807,  815,  816,  669,  817,
+      778,  578,  578,  808,  676, 1929,  810,  702,  811,  821,
+      579,  822,  823,  824,  809,  726,  825,  812,  826,  732,
+      813,  827,  738,  756,  828,  814,  829,  815,  816,  830,
+      817,  778,  819,  819,  831,  832,  820,  820,  833,  834,
+      821,  579,  822,  823,  824,  835,  836,  825,  837,  826,
+      838,  839,  827,  840,  841,  828, 1929,  829,  842,  843,
+
+      830,  845,  846,  352,  847,  831,  832,  848,  849,  833,
+      834,  352,  850,  852,  853,  854,  835,  836,  855,  837,
+      856,  838,  839,  857,  840,  841,  858,  352,  859,  842,
+      843,  860,  845,  846,  862,  847,  863,  864,  848,  849,
+      865,  866,  867,  850,  852,  853,  854,  868,  871,  855,
+      861,  856,  872,  869,  857,  870,  873,  858,  874,  859,
+      875,  876,  860,  877,  878,  862,  879,  863,  864,  880,
+      881,  865,  866,  867,  882,  883,  884,  885,  868,  871,
+      886,  861,  887,  872,  869,  888,  870,  873,  889,  874,
+      890,  875,  876,  891,  877,  878,  892,  879,  893,  894,
+
+      880,  881,  895,  896,  897,  882,  883,  884,  885,  898,
+      899,  886,  900,  887,  901,  902,  888,  903,  904,  889,
+      905,  890,  906,  909,  891,  907,  910,  892,  911,  893,
+      894,  912,  908,  895,  896,  897,  913,  914,  915,  918,
+      898,  899,  919,  900,  920,  901,  902,  921,  903,  904,
+      922,  905,  923,  906,  909,  924,  907,  910,  916,  911,
+      925,  926,  912,  908,  930,  917,  927,  913,  914,  915,
+      918,  931,  928,  919,  932,  920,  933,  934,  921,  935,
+      936,  922,  937,  923,  929,  938,  924,  939,  940,  916,
+      941,  925,  926,  942,  943,  930,  917,  927,  947,  948,
+
+      949, 1929,  931,  928,  950,  932,  951,  933,  934,  952,
+      935,  936,  953,  937,  944,  929,  938,  956,  939,  940,
+      945,  941,  954,  957,  942,  943,  955,  958,  959,  947,
+      948,  949,  946,  960,  961,  950,  962,  951,  963,  964,
+      952,  965,  966,  953,  967,  944,  968,  969,  956,  970,
+      971,  945,  974,  954,  957,  972,  975,  955,  958,  959,
+      973,  976,  977,  946,  960,  961,  978,  962,  979,  963,
+      964,  980,  965,  966,  981,  967,  982,  968,  969,  983,
+      970,  971,  984,  974,  985,  986,  972,  975,  987,  988,
+      989,  973,  976,  977,  990,  991,  992,  978,  993,  979,
+
+      994,  995,  980,  996,  997,  981,  998,  982,  999, 1000,
+      983, 1005, 1003,  984, 1001,  985,  986, 1006, 1002,  987,
+      988,  989, 1004, 1007, 1008,  990,  991,  992, 1009,  993,
+     1010,  994,  995, 1011,  996,  997, 1012,  998, 1013,  999,
+     1000, 1014, 1005, 1003, 1015, 1001, 1016, 1017, 1006, 1002,
+     1018, 1019, 1020, 1004, 1007, 1008, 1021, 1022, 1023, 1009,
+     1024, 1010, 1025, 1026, 1011, 1027, 1028, 1012, 1029, 1013,
+     1030, 1031, 1014, 1032, 1033, 1015, 1034, 1016, 1017, 1035,
+     1036, 1018, 1019, 1020, 1037,  907, 1038, 1021, 1022, 1023,
+      954, 1024, 1039, 1025, 1026, 1040, 1027, 1028, 1041, 1029,
+
+     1042, 1030, 1031, 1043, 1032, 1033, 1044, 1034,  820,  820,
+     1035, 1036,  820,  820, 1045, 1037,  907, 1038, 1046, 1047,
+     1048,  954, 1049, 1039, 1050, 1051, 1040, 1052, 1053, 1041,
+     1054, 1042, 1055, 1056, 1043, 1057, 1058, 1044, 1059, 1060,
+     1061,  352, 1063, 1065, 1062, 1045, 1066, 1064, 1067, 1046,
+     1047, 1048, 1068, 1049, 1069, 1050, 1051, 1070, 1052, 1053,
+      352, 1054, 1071, 1055, 1056, 1072, 1057, 1058, 1073, 1059,
+     1060, 1061,  352, 1074, 1065, 1062, 1075, 1066, 1064, 1067,
+     1076, 1079, 1077, 1068, 1078, 1069, 1080, 1081, 1070, 1082,
+     1083, 1084, 1085, 1071, 1086, 1087, 1072, 1088, 1089, 1073,
+
+     1090, 1091, 1092, 1093, 1074, 1094, 1095, 1075, 1096, 1097,
+     1098, 1076, 1079, 1077, 1099, 1078, 1100, 1080, 1081, 1101,
+     1082, 1083, 1084, 1085, 1102, 1086, 1087, 1103, 1088, 1089,
+     1104, 1090, 1091, 1092, 1093, 1105, 1094, 1095, 1112, 1096,
+     1097, 1098, 1113, 1114, 1115, 1099, 1106, 1100, 1117, 1118,
+     1101, 1119, 1120, 1929, 1116, 1102, 1107, 1929, 1103, 1108,
+     1109, 1104, 1929, 1110, 1111, 1126, 1105, 1127, 1128, 1112,
+     1129, 1130, 1131, 1113, 1114, 1115, 1132, 1106, 1121, 1117,
+     1118, 1122, 1119, 1120, 1123, 1116, 1133, 1107, 1124, 1134,
+     1108, 1109, 1135, 1125, 1110, 1111, 1126, 1136, 1127, 1128,
+
+     1137, 1129, 1130, 1131, 1138, 1139, 1140, 1132, 1141, 1121,
+     1142, 1143, 1122, 1144, 1145, 1123, 1146, 1133, 1147, 1124,
+     1134, 1148, 1149, 1135, 1125, 1150, 1151, 1152, 1136, 1153,
+     1154, 1137, 1155, 1156, 1157, 1138, 1139, 1140, 1158, 1141,
+     1159, 1142, 1143, 1160, 1144, 1145, 1161, 1146, 1162, 1147,
+     1163, 1164, 1148, 1149, 1165, 1166, 1150, 1151, 1152, 1167,
+     1153, 1154, 1168, 1155, 1156, 1157, 1169, 1170, 1171, 1158,
+     1172, 1159, 1173, 1174, 1160, 1175, 1176, 1161, 1177, 1162,
+     1178, 1163, 1164, 1179, 1180, 1165, 1166, 1181, 1184, 1185,
+     1167, 1182, 1186, 1168, 1187, 1188, 1190, 1169, 1170, 1171,
+
+     1183, 1172, 1189, 1173, 1174, 1191, 1175, 1176, 1192, 1177,
+     1193, 1178, 1194, 1195, 1179, 1180, 1196, 1197, 1181, 1184,
+     1185, 1201, 1182, 1186, 1202, 1187, 1188, 1190, 1198, 1203,
+     1199, 1183, 1204, 1189, 1205, 1206, 1191, 1207, 1208, 1192,
+     1209, 1193, 1210, 1194, 1195, 1211, 1200, 1196, 1197, 1212,
+     1213, 1215, 1201, 1216, 1217, 1202, 1214, 1219, 1220, 1198,
+     1203, 1199, 1221, 1204, 1218, 1205, 1206, 1222, 1207, 1208,
+     1223, 1209, 1224, 1210, 1225, 1226, 1211, 1200, 1229, 1227,
+     1212, 1213, 1215, 1230, 1216, 1217, 1231, 1214, 1219, 1220,
+     1232, 1233, 1234, 1221, 1235, 1218, 1228, 1077, 1222, 1078,
+
+     1093, 1223, 1106, 1224, 1116, 1225, 1226, 1123, 1236, 1229,
+     1227, 1178, 1237, 1238, 1230, 1239, 1125, 1231, 1240, 1241,
+     1242, 1232, 1233, 1234, 1243, 1235, 1244, 1228, 1077, 1245,
+     1078, 1093, 1246, 1106, 1247, 1116, 1248, 1249, 1123, 1236,
+     1250, 1251, 1178, 1237, 1238, 1252, 1239, 1125, 1253, 1240,
+     1241, 1242, 1254, 1255, 1256, 1243, 1258, 1244,  352, 1257,
+     1245, 1260, 1259, 1246, 1261, 1247, 1262, 1248, 1249, 1263,
+     1264, 1250, 1251, 1265, 1266, 1267, 1252, 1268, 1269, 1253,
+     1270, 1271,  352, 1254, 1255, 1256,  352, 1258, 1272, 1273,
+     1274, 1275, 1260, 1259, 1276, 1261, 1277, 1262, 1278, 1279,
+
+     1263, 1264, 1280, 1281, 1265, 1266, 1267, 1282, 1268, 1269,
+     1283, 1270, 1271, 1284, 1285, 1286, 1287, 1288, 1289, 1272,
+     1273, 1274, 1275, 1290, 1291, 1276, 1292, 1277, 1293, 1278,
+     1279, 1294, 1295, 1280, 1281, 1296, 1297, 1298, 1282, 1299,
+     1300, 1283, 1301, 1302, 1284, 1285, 1286, 1287, 1288, 1289,
+     1303, 1304, 1305, 1306, 1290, 1291, 1308, 1292, 1309, 1293,
+     1310, 1307, 1294, 1295, 1311, 1312, 1296, 1297, 1298, 1313,
+     1299, 1300, 1314, 1301, 1302, 1315, 1316, 1317, 1318, 1319,
+     1320, 1303, 1304, 1305, 1306, 1321, 1322, 1308, 1323, 1309,
+     1324, 1310, 1307, 1325, 1326, 1311, 1312, 1327, 1328, 1329,
+
+     1313, 1330, 1331, 1314, 1332, 1333, 1315, 1316, 1317, 1318,
+     1319, 1320, 1334, 1335, 1336, 1337, 1321, 1322, 1338, 1323,
+     1339, 1324, 1340, 1341, 1325, 1326, 1342, 1344, 1327, 1328,
+     1329, 1345, 1330, 1331, 1346, 1332, 1333, 1347, 1348, 1349,
+     1350, 1351, 1352, 1334, 1335, 1336, 1337, 1353, 1354, 1338,
+     1355, 1339, 1356, 1340, 1341, 1357, 1358, 1342, 1344, 1359,
+     1360, 1361, 1345, 1362, 1363, 1346, 1364, 1365, 1347, 1348,
+     1349, 1350, 1351, 1352, 1366, 1367, 1368, 1369, 1353, 1354,
+     1370, 1355, 1371, 1356, 1372, 1373, 1357, 1358, 1375, 1376,
+     1359, 1360, 1361, 1377, 1362, 1363, 1378, 1364, 1365, 1379,
+
+     1380, 1374, 1381, 1382, 1383, 1366, 1367, 1368, 1369, 1384,
+     1385, 1370, 1386, 1371, 1387, 1372, 1373, 1388, 1389, 1375,
+     1376, 1390, 1391, 1392, 1377, 1393, 1394, 1378, 1395, 1396,
+     1379, 1380, 1374, 1381, 1382, 1383, 1397, 1398, 1399, 1400,
+     1384, 1385, 1401, 1386, 1402, 1387, 1403, 1404, 1388, 1389,
+     1405, 1406, 1390, 1391, 1392, 1407, 1393, 1394, 1408, 1395,
+     1396, 1409, 1410, 1411, 1412, 1413, 1414, 1397, 1398, 1399,
+     1400, 1415, 1416, 1401, 1419, 1402, 1417, 1403, 1404, 1420,
+     1421, 1405, 1406, 1422, 1423, 1424, 1407, 1425, 1426, 1408,
+     1427, 1428, 1409, 1410, 1411, 1412, 1413, 1414,  352, 1429,
+
+      352, 1430, 1415, 1416, 1431, 1419, 1432, 1417, 1433, 1434,
+     1420, 1421, 1435, 1436, 1422, 1423, 1424, 1437, 1425, 1426,
+     1438, 1427, 1428, 1439, 1440, 1441, 1442, 1443, 1444, 1445,
+     1429, 1446, 1430, 1447, 1448, 1431, 1449, 1432, 1450, 1433,
+     1434, 1451, 1452, 1435, 1436, 1453, 1454, 1455, 1437, 1456,
+     1457, 1438, 1458, 1459, 1439, 1440, 1441, 1442, 1443, 1444,
+     1445, 1460, 1446, 1461, 1447, 1448, 1462, 1449, 1463, 1450,
+     1464, 1465, 1451, 1452, 1466, 1467, 1453, 1454, 1455, 1468,
+     1456, 1457, 1469, 1458, 1459, 1470, 1471, 1472, 1473, 1474,
+     1475, 1476, 1460, 1477, 1461, 1478, 1479, 1462, 1480, 1463,
+
+     1481, 1464, 1465, 1482, 1483, 1466, 1467, 1484, 1485, 1486,
+     1468, 1487, 1488, 1469, 1489, 1490, 1470, 1471, 1472, 1473,
+     1474, 1475, 1476, 1493, 1477, 1499, 1478, 1479, 1491, 1480,
+     1500, 1481, 1501, 1502, 1482, 1483, 1494, 1495, 1484, 1485,
+     1486, 1503, 1487, 1488, 1504, 1489, 1490, 1496, 1492, 1497,
+     1505, 1506, 1507, 1498, 1493, 1508, 1499, 1509, 1510, 1491,
+     1511, 1500, 1512, 1501, 1502, 1513, 1514, 1494, 1495, 1515,
+     1516, 1517, 1503, 1518, 1519, 1504, 1520, 1521, 1496, 1492,
+     1497, 1505, 1506, 1507, 1498, 1522, 1508, 1523, 1509, 1510,
+     1524, 1511, 1525, 1512, 1526, 1527, 1513, 1514, 1528, 1529,
+
+     1515, 1516, 1517, 1530, 1518, 1519, 1531, 1520, 1521, 1532,
+     1533, 1534, 1535, 1536, 1537, 1538, 1522, 1539, 1523, 1540,
+     1541, 1524, 1542, 1525, 1543, 1526, 1527, 1544, 1545, 1528,
+     1529, 1546, 1547, 1548, 1530, 1549, 1550, 1531, 1929, 1551,
+     1532, 1533, 1534, 1535, 1536, 1537, 1538, 1552, 1539, 1553,
+     1540, 1541, 1554, 1542, 1555, 1543, 1494, 1495, 1544, 1545,
+     1556, 1557, 1546, 1547, 1548, 1558, 1549, 1550, 1560, 1497,
+     1551, 1561, 1562, 1498, 1563, 1564, 1559, 1565, 1552, 1566,
+     1553, 1567, 1568, 1554, 1569, 1555, 1570, 1494, 1495,  352,
+     1571, 1556, 1557,  352, 1572, 1573, 1558, 1574, 1575, 1560,
+
+     1497, 1576, 1561, 1562, 1498, 1563, 1564, 1559, 1565, 1577,
+     1566, 1578, 1567, 1568, 1579, 1569, 1580, 1570, 1581, 1582,
+     1583, 1571, 1584, 1585, 1586, 1572, 1573, 1587, 1574, 1575,
+     1588, 1589, 1576, 1590, 1591, 1592, 1593, 1594, 1595, 1596,
+     1577, 1597, 1578, 1598, 1599, 1579, 1600, 1580, 1601, 1581,
+     1582, 1583, 1602, 1584, 1585, 1586, 1603, 1604, 1587, 1605,
+     1606, 1588, 1589, 1607, 1590, 1591, 1592, 1593, 1594, 1595,
+     1596, 1608, 1597, 1609, 1598, 1599, 1610, 1600, 1611, 1601,
+     1612, 1613, 1614, 1602, 1615, 1616, 1617, 1603, 1604, 1618,
+     1605, 1606, 1619, 1620, 1607, 1621, 1622, 1623, 1624, 1625,
+
+     1626, 1629, 1608, 1630, 1609, 1632, 1627, 1610, 1633, 1611,
+     1634, 1612, 1613, 1614, 1628, 1615, 1616, 1617, 1635, 1631,
+     1618, 1636, 1637, 1619, 1620, 1638, 1621, 1622, 1623, 1624,
+     1625, 1626, 1629, 1639, 1630, 1640, 1632, 1627, 1641, 1633,
+     1642, 1634, 1643, 1644, 1645, 1628, 1646, 1647, 1648, 1635,
+     1631, 1649, 1636, 1637, 1650, 1651, 1638, 1652, 1653, 1654,
+     1655, 1656, 1657, 1658, 1639, 1659, 1640, 1660, 1661, 1641,
+     1662, 1642, 1663, 1643, 1644, 1645, 1664, 1646, 1647, 1648,
+     1665, 1666, 1649, 1667, 1668, 1650, 1651, 1669, 1652, 1653,
+     1654, 1655, 1656, 1657, 1658, 1670, 1659, 1673, 1660, 1661,
+
+     1671, 1662, 1672, 1663, 1674, 1675, 1676, 1664, 1677, 1678,
+     1679, 1665, 1666, 1680, 1667, 1668, 1681,  352, 1669,  352,
+     1682, 1683, 1684, 1685, 1686, 1687, 1670, 1688, 1673, 1689,
+     1690, 1671, 1691, 1672, 1692, 1674, 1675, 1676, 1693, 1677,
+     1678, 1679, 1694, 1695, 1680, 1696, 1697, 1681, 1698, 1699,
+     1700, 1682, 1683, 1684, 1685, 1686, 1687, 1701, 1688, 1702,
+     1689, 1690, 1703, 1691, 1704, 1692, 1705, 1706, 1707, 1693,
+     1708, 1709, 1710, 1694, 1695, 1711, 1696, 1697, 1712, 1698,
+     1699, 1700, 1713, 1714, 1715, 1716, 1717, 1718, 1701, 1719,
+     1702, 1720, 1721, 1703, 1722, 1704, 1723, 1705, 1706, 1707,
+
+     1724, 1708, 1709, 1710, 1725, 1726, 1711, 1727, 1728, 1712,
+     1729, 1730, 1731, 1713, 1714, 1715, 1716, 1717, 1718, 1732,
+     1719, 1733, 1720, 1721, 1734, 1722, 1735, 1723, 1736, 1737,
+     1738, 1724, 1739, 1740, 1741, 1725, 1726, 1742, 1727, 1728,
+     1743, 1729, 1730, 1731, 1744, 1745, 1746, 1747, 1748, 1749,
+     1732, 1750, 1733, 1751, 1752, 1734, 1753, 1735, 1754, 1736,
+     1737, 1738, 1755, 1739, 1740, 1741, 1756, 1757, 1742, 1758,
+     1760, 1743, 1761, 1759, 1762, 1744, 1745, 1746, 1747, 1748,
+     1749, 1763, 1750,  352, 1751, 1752,  352, 1753, 1764, 1754,
+     1765, 1766, 1767, 1755, 1768, 1769, 1770, 1756, 1757, 1771,
+
+     1758, 1760, 1772, 1761, 1759, 1762, 1773, 1774, 1775, 1776,
+     1777, 1778, 1763, 1779, 1780, 1781, 1782, 1783, 1784, 1764,
+     1785, 1765, 1766, 1767, 1786, 1768, 1769, 1770, 1787, 1788,
+     1771, 1789, 1790, 1772, 1791, 1792, 1793, 1773, 1774, 1775,
+     1776, 1777, 1778, 1794, 1779, 1780, 1781, 1782, 1783, 1784,
+     1795, 1785, 1796, 1797, 1798, 1786, 1799, 1800, 1801, 1787,
+     1788, 1802, 1789, 1790, 1803, 1791, 1792, 1793, 1804, 1805,
+     1806, 1807, 1808, 1809, 1794, 1810, 1811, 1812, 1814, 1815,
+     1816, 1795, 1929, 1796, 1797, 1798, 1818, 1799, 1800, 1801,
+      352, 1819, 1802, 1817, 1813, 1803, 1820, 1821, 1822, 1804,
+
+     1805, 1806, 1807, 1808, 1809, 1823, 1810, 1811, 1812, 1814,
+     1815, 1816, 1824,  352, 1825, 1826, 1827, 1818, 1828, 1829,
+     1830, 1831, 1819, 1832, 1817, 1813, 1833, 1820, 1821, 1822,
+     1834, 1835, 1836, 1837, 1838, 1839, 1823, 1840, 1841, 1842,
+     1843, 1844, 1845, 1824, 1846, 1825, 1826, 1827, 1847, 1828,
+     1829, 1830, 1831, 1848, 1832, 1849, 1850, 1833, 1851, 1852,
+     1853, 1834, 1835, 1836, 1837, 1838, 1839, 1856, 1840, 1841,
+     1842, 1843, 1844, 1845, 1854, 1846, 1857, 1855, 1858, 1847,
+      352, 1859, 1860, 1861, 1848, 1862, 1849, 1850, 1863, 1851,
+     1852, 1853, 1864, 1865,  352, 1866, 1867, 1868, 1856, 1869,
+
+     1870, 1871, 1872, 1873, 1874, 1854, 1875, 1857, 1855, 1858,
+     1876, 1877, 1859, 1860, 1861, 1878, 1862, 1879, 1880, 1863,
+     1882, 1883, 1881, 1864, 1865,  352, 1866, 1867, 1868, 1884,
+     1869, 1870, 1871, 1872, 1873, 1874, 1885, 1875, 1886, 1887,
+     1888, 1876, 1877, 1889,  352, 1890, 1878, 1891, 1879, 1880,
+     1892, 1882, 1883, 1881, 1893, 1894, 1895, 1896, 1897, 1898,
+     1884, 1929, 1901, 1902, 1903, 1904, 1905, 1885, 1899, 1886,
+     1887, 1888, 1906, 1907, 1889, 1908, 1890, 1909, 1891, 1911,
+     1912, 1892, 1913, 1914, 1915, 1893, 1894, 1895, 1896, 1897,
+     1898, 1916,  352, 1901, 1902, 1903, 1904, 1905, 1917, 1899,
+
+     1918, 1919, 1920, 1906, 1907, 1921, 1908, 1922, 1909, 1923,
+     1911, 1912, 1924, 1913, 1914, 1915, 1925, 1926, 1927, 1928,
+     1929, 1929, 1916, 1929, 1929, 1929, 1929, 1929, 1929, 1917,
+     1929, 1918, 1919, 1920, 1929, 1929, 1921, 1929, 1922, 1929,
+     1923, 1929, 1929, 1924, 1929, 1929, 1929, 1925, 1926, 1927,
+     1928,  122,  122,  122,  122,  122,  122,  122,  122,  122,
+      126,  126,  126,  126,  126,  126,  126,  126,  126,  131,
+     1929,  131,  131,  131,  131,  131,  131,  131,  132, 1929,
+      132,  132,  132,  132,  132,  132,  132,  136,  136,  140,
+      140,  140,  140,  140,  140,  140,  140,  140,  249,  249,
+
+      249,  249,  249,  249,  249,  249,  249,  251, 1929,  251,
+      251,  251,  251,  251,  251,  251,  270, 1929,  270,  348,
+      348,  348,  348,  348,  348,  348,  348,  348,  353,  353,
+      353,  353,  353,  353,  353,  353,  353,  357,  357,  357,
+      357,  357,  357,  357,  357,  357,  359,  359,  359,  359,
+      359,  359,  359,  359,  359,  360,  360,  360, 1929, 1929,
+      360,  360, 1929,  360,  139,  139,  139,  139,  139,  139,
+      139,  139,  139,  544, 1929, 1929,  544,  544, 1929,  544,
+      572,  572,  572, 1929,  572,  572,  572,  572,  572,  574,
+      574,  574,  574, 1929,  574,  574,  574,  574,  606,  606,
+
+      606,  606,  606,  606,  606,  606,  606,   13, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929
+
     } ;
 
-static yyconst flex_int16_t yy_chk[4313] =
+static yyconst flex_int16_t yy_chk[4493] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -1551,7 +1603,7 @@ static yyconst flex_int16_t yy_chk[4313] =
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    3,    3,    3,    3,    3,    3,    3,    3,
+        1,    1,    1,    1,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
 
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
@@ -1560,7 +1612,7 @@ static yyconst flex_int16_t yy_chk[4313] =
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
         3,    3,    3,    3,    3,    3,    3,    3,    3,    3,
-        3,    3,    3,    3,    5,    5,    5,    5,    5,    5,
+        3,    3,    3,    3,    3,    3,    3,    3,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
@@ -1569,8 +1621,8 @@ static yyconst flex_int16_t yy_chk[4313] =
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
         5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
-        5,    5,    5,    5,    5,    5,    7,    7,    7,    7,
-        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
+        5,    5,    5,    5,    5,    5,    5,    5,    5,    5,
+        5,    5,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
@@ -1578,446 +1630,466 @@ static yyconst flex_int16_t yy_chk[4313] =
 
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
         7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
-        7,    7,    7,    7,    7,    7,    7,    7,    9,  564,
-        9,    9,   10,    9,   10,   10,    9,   10,   11,   12,
-       10,   11,   12,   15, 1221,   15,   15,   20,   33,   20,
-       20,   21,   21,   34,   99,   40,   52,   34,   53,   54,
-       21,  116,   99, 1136,   23,  116,   23,   23,   67,  566,
-       67,   67,  345,  564,  345,   23,   24,  127,   24,   33,
-      127,   11,   12,  604,   34,   24,   40,   52,   34,   53,
-       54,   21,   22,   22,   22,   22,   22,   22,   22,   22,
-
-       22,   22,   22,   22,   22,   22,   23,   24,   22,   24,
-      566,   22,   37,   22,   25,   55,   24,   45,   25,  565,
-      127,   45,   25,   28,   28,   28,   37,   56,   57,   28,
-       58,   25,   57,  563,   25,   28,  535,   59,   60,   61,
-       22,   22,   22,   37,   22,   25,   55,   27,   45,   25,
-       27,   27,   45,   25,   28,   28,   28,   37,   56,   57,
-       28,   58,   25,   57,   27,   25,   28,   27,   59,   60,
-       61,   22,   22,   22,   26,  592,   26,  592,   27,   26,
-       26,   27,   27,   26,   63,  593,   26,  593,   64,   26,
-       26,  456,   29,   31,  350,   27,   29,   31,   27,  348,
-
-       29,   31,   65,   69,   75,   26,   29,   26,   30,   29,
-       26,   26,   30,   80,   26,   63,   30,   26,   36,   64,
-       26,   26,   36,   29,   31,   30,   36,   29,   31,   32,
-       32,   29,   31,   65,   69,   75,   32,   29,   36,   30,
-       29,  344,   36,   30,   80,  341,   62,   30,   89,   36,
-       89,   89,   62,   36,   66,   66,   30,   36,   46,   46,
-       32,   32,   46,   62,   46,  105,   46,   32,   35,   36,
-       35,   46,   35,   36,  106,   74,   35,   62,  311,   35,
-       77,  309,   35,   62,   77,   35,  266,   66,  247,   46,
-       46,  137,   74,   46,   62,   46,  105,   46,  131,   35,
-
-      130,   35,   46,   35,  108,  106,   74,   35,   72,   72,
-       35,   77,   68,   35,   68,   77,   35,   38,   38,   72,
-       39,   68,   41,   74,   39,   38,   41,   38,   39,   38,
-       41,   39,   38,   38,   39,  108,   41,   39,  123,   72,
-       72,  112,  122,   68,   90,   68,   90,   90,   38,   38,
-       72,   39,   68,   41,  118,   39,   38,   41,   38,   39,
-       38,   41,   39,   38,   38,   39,  117,   41,   39,   42,
-       42,   42,  112,   43,   42,   42,   79,   43,   83,   42,
-       79,   43,   83,   42,   44,  101,   42,   43,   42,  101,
-       43,   42,  100,   44,   98,   44,   87,   43,   87,   44,
-
-       42,   42,   42,   44,   43,   42,   42,   79,   43,   83,
-       42,   79,   43,   83,   42,   44,  101,   42,   43,   42,
-      101,   43,   42,   70,   44,   70,   44,   87,   43,   87,
-       44,  113,   70,   71,   44,   70,   71,   71,   70,   73,
-       76,   76,  103,   73,   78,  103,   94,   73,   78,   93,
-      114,   92,   78,   73,   70,   91,   70,   95,   78,   95,
-       95,   48,  113,   70,   71,   19,   70,   71,   71,   70,
-       73,   76,   76,  103,   73,   78,  103,   81,   73,   78,
-       82,  114,  102,   78,   73,   81,  107,   81,   82,   78,
-       84,   84,   81,   81,   82,  110,   85,   82,  102,   13,
-
-       85,  107,   84,   96,   96,  110,   85,   84,   81,   85,
-        0,   82,   96,  102,  357,  357,   81,  107,   81,   82,
-      104,   84,   84,   81,   81,   82,  110,   85,   82,  102,
-       86,   85,  107,   84,  104,  109,  110,   85,   84,   86,
-       85,   86,  125,   96,   97,   86,   97,   97,  111,  115,
-      109,  104,  111,  126,  121,   97,  121,  121,    0,  115,
-      128,   86,  128,  128,  139,  104,  109,    0,  132,  132,
-       86,  142,   86,  125,  267,  267,   86,  132,  142,  111,
-      115,  109,  144,  111,  126,  133,   97,  133,  133,  135,
-      135,  146,  148,  151,  152,  139,  133,    0,  135,  136,
-
-      136,    0,  142,  136,  136,  140,  140,  267,  132,  142,
-        0,  141,  141,  144,  140,  141,  141,  145,  358,  358,
-      359,  359,  146,  148,  151,  152,  153,  133,  145,  135,
-      138,  138,  138,  138,  138,  138,  138,  138,  138,  138,
-      138,  138,  138,  138,  154,  140,  138,    0,  145,  138,
-      143,  138,  147,  157,  143,  149,  158,  153,  147,  145,
-      155,  143,  155,  161,  154,  162,  160,  143,  163,  149,
-      160,  165,  165,  166,  164,  154,  168,    0,  138,  138,
-      138,  143,  138,  147,  157,  143,  149,  158,  164,  147,
-      170,  155,  143,  155,  161,  154,  162,  160,  143,  163,
-
-      149,  160,  165,  165,  166,  164,  172,  168,  167,  138,
-      138,  138,  167,  169,  173,  174,  175,  169,  177,  164,
-      171,  170,  171,  171,  176,  178,  171,  179,  180,  182,
-      183,  184,  176,  185,    0,  181,  181,  172,  176,  167,
-        0,  181,  189,  167,  169,  173,  174,  175,  169,  177,
-      191,  171,  181,  171,  171,  176,  178,  171,  179,  180,
-      182,  183,  184,  176,  185,  188,  181,  181,  186,  176,
-      188,  188,  181,  189,  193,  196,  193,  193,  194,  197,
-      200,  191,  193,  181,  186,  198,  186,  195,  195,  195,
-      201,  186,  202,  198,  194,  195,  188,  203,  204,  186,
-
-      199,  188,  188,  205,  199,  193,  196,  193,  193,  194,
-      197,  200,  206,  193,  208,  186,  198,  186,  195,  195,
-      195,  201,  186,  202,  198,  194,  195,  209,  203,  204,
-      207,  199,  207,  210,  205,  199,  211,  213,  212,  211,
-      216,  217,  214,  206,  212,  208,  211,  214,  218,  215,
-      215,  219,  220,  221,  223,  215,  364,  364,  209,  215,
-      215,  207,  215,  207,  210,  224,  226,  211,  213,  212,
-      211,  216,  217,  214,  225,  212,  227,  211,  214,  218,
-      215,  215,  219,  220,  221,  223,  215,  222,  222,  228,
-      215,  215,  229,  215,  231,  233,  224,  226,  225,  236,
-
-      222,  232,  230,  229,  230,  225,  238,  227,  239,  232,
-      230,  240,  241,  242,  243,  244,  245,  246,  222,  222,
-      228,  232,  249,  229,  250,  231,  233,  251,  252,  225,
-      236,  222,  232,  230,  229,  230,  253,  238,  254,  239,
-      232,  230,  240,  241,  242,  243,  244,  245,  246,  255,
-      256,  257,  232,  249,  258,  250,  260,  259,  251,  252,
-      261,  254,  262,  263,  264,  265,  269,  253,  271,  254,
-      259,  270,  272,  273,  274,  273,  275,  276,  270,  277,
-      255,  256,  257,  279,  270,  258,  278,  260,  259,  281,
-      278,  261,  254,  262,  263,  264,  265,  269,  282,  271,
-
-      284,  259,  270,  272,  273,  274,  273,  275,  276,  270,
-      277,  285,  286,  287,  279,  270,  280,  278,  280,  280,
-      281,  278,  283,  288,  289,  290,  292,  293,  283,  282,
-      294,  284,  295,  297,  298,  296,  299,  300,  301,  283,
-      302,  303,  285,  286,  287,  296,  305,  280,  306,  280,
-      280,  307,  303,  283,  288,  289,  290,  292,  293,  283,
-        0,  294,    0,  295,  297,  298,  296,  299,  300,  301,
-      283,  302,  303,  304,  365,  365,  296,  305,    0,  306,
-      322,  304,  307,  303,  312,  312,  313,  323,  313,  313,
-      314,  314,  324,  312,  316,  316,  325,  313,  327,  314,
-
-      329,  315,  315,  316,  304,  315,  315,  326,  326,  317,
-      317,  322,  304,  317,  317,  330,  332,  333,  323,  328,
-      335,  337,  338,  324,  312,  340,    0,  325,  313,  327,
-      314,  329,  328,  339,  316,  339,  342,  360,  326,  326,
-      355,  355,  366,  567,  567,  367,  330,  332,  333,  355,
-      328,  335,  337,  338,  356,  356,  340,  342,  356,  356,
-      362,  362,  368,  328,  339,  369,  339,  342,  360,  362,
-      363,  363,  370,  366,  363,  363,  367,  371,  372,  373,
-      355,  374,  375,  376,  377,  378,  379,  380,  381,  382,
-      383,  384,  385,  368,  386,  389,  369,  387,  390,  392,
-
-      362,  393,  394,  370,  395,  387,  396,  391,  371,  372,
-      373,  397,  374,  375,  376,  377,  378,  379,  380,  381,
-      382,  383,  384,  385,  391,  386,  389,  399,  387,  390,
-      392,  400,  393,  394,  401,  395,  387,  396,  391,  402,
-      403,  404,  397,  405,  406,  407,  408,  409,  410,  412,
-      413,  405,  414,  415,  416,  391,  417,  409,  399,  418,
-      419,  420,  400,  421,  422,  401,  423,  421,  424,  425,
-      402,  403,  404,  426,  405,  406,  407,  408,  409,  410,
-      412,  413,  405,  414,  415,  416,  427,  417,  409,  428,
-      418,  419,  420,  429,  421,  422,  427,  423,  421,  424,
-
-      425,  430,  431,  432,  426,  433,  434,  435,  436,  439,
-      440,  568,  568,  442,    0,  444,    0,  427,  445,    0,
-      428,  447,    0,  448,  429,    0,  449,  427,  450,  571,
-      571,  443,  430,  431,  432,  443,  433,  434,  435,  436,
-      439,  440,  441,  441,  442,  441,  444,  441,  441,  445,
-      441,  451,  447,  441,  448,  452,  441,  449,  453,  450,
-      441,  441,  443,  454,  441,    0,  443,  457,    0,  458,
-      572,  572,  460,  441,  441,  461,  441,  462,  441,  441,
-      463,  441,  451,    0,  441,  464,  452,  441,  465,  453,
-      466,  441,  441,  464,  454,  441,  446,  446,  457,  446,
-
-      458,  446,  446,  460,  446,  459,  461,  446,  462,  459,
-      467,  463,  468,  469,  446,  446,  464,  471,  446,  465,
-      472,  466,  470,  468,  464,  473,  474,  446,  446,  470,
-      446,  475,  446,  446,  467,  446,  459,  476,  446,  477,
-      459,  467,  478,  468,  469,  446,  446,  479,  471,  446,
-      480,  472,  481,  470,  468,  482,  473,  474,  484,  485,
-      470,  486,  475,  487,  488,  467,  489,  490,  476,  491,
-      477,  485,  492,  478,  494,  495,  496,  497,  479,  498,
-      499,  480,  500,  481,  501,  502,  482,  503,  504,  484,
-      485,  505,  486,  507,  487,  488,  506,  489,  490,  508,
-
-      491,  506,  485,  492,  509,  494,  495,  496,  497,  512,
-      498,  499,  515,  500,  516,  501,  502,  517,  503,  504,
-      518,  519,  505,  520,  507,  521,  522,  506,  523,  525,
-      508,  526,  506,  527,  528,  509,  529,  530,  531,  532,
-      512,  533,  537,  515,  538,  516,  539,  540,  517,  541,
-      542,  518,  519,  543,  520,  544,  521,  522,  545,  523,
-      525,  546,  526,  547,  527,  528,  548,  529,  530,  531,
-      532,  549,  533,  537,  550,  538,  548,  539,  540,  551,
-      541,  542,  552,  553,  543,  554,  544,  555,  556,  545,
-      557,  558,  546,  559,  547,  560,  561,  548,  562,  569,
-
-      569,  573,  549,  594,  594,  550,  574,  548,  569,  575,
-      551,  576,  577,  552,  553,  578,  554,  579,  555,  556,
-      580,  557,  558,  581,  559,  582,  560,  561,  583,  562,
-      570,  570,  573,  584,  570,  570,  586,  574,  587,  569,
-      575,  588,  576,  577,  589,  590,  578,  598,  579,  591,
-      599,  580,  596,  596,  581,  600,  582,  597,  597,  583,
-      601,  602,  603,  605,  584,  606,  607,  586,  608,  587,
-      609,  610,  588,  611,  613,  589,  590,  591,  598,  614,
-      591,  599,  615,  616,  617,  618,  600,  619,  620,  622,
-      623,  601,  602,  603,  605,  624,  606,  607,  614,  608,
-
-      625,  609,  610,  627,  611,  613,  621,  628,  621,  629,
-      614,  630,  631,  615,  616,  617,  618,  632,  619,  620,
-      622,  623,  633,  634,  635,  637,  624,  638,  639,  614,
-      640,  625,  641,  642,  627,  643,  645,  621,  628,  621,
-      629,  646,  630,  631,  647,  648,  649,  650,  632,  651,
-      652,  653,  654,  633,  634,  635,  637,  655,  638,  639,
-      656,  640,  657,  641,  642,  658,  643,  645,  659,  661,
-      663,  664,  646,  665,  666,  647,  648,  649,  650,  662,
-      651,  652,  653,  654,  667,  668,  662,  670,  655,  672,
-      671,  656,  674,  657,  675,  676,  658,  671,  677,  659,
-
-      661,  663,  664,  678,  665,  666,  679,  680,  681,  683,
-      662,  684,  685,  682,  686,  667,  668,  662,  670,  682,
-      672,  671,  687,  674,  688,  675,  676,  689,  671,  677,
-      690,  682,  691,  692,  678,  693,  694,  679,  680,  681,
-      683,  695,  684,  685,  682,  686,  696,  698,  699,  700,
-      682,  697,  701,  687,  702,  688,  704,  697,  689,  706,
-      708,  690,  682,  691,  692,  709,  693,  694,  710,  697,
-      707,  711,  695,  712,  707,  713,  714,  696,  698,  699,
-      700,  715,  697,  701,  716,  702,  717,  704,  697,  718,
-      706,  708,  719,  720,  721,  722,  709,  723,  724,  710,
-
-      697,  707,  711,  724,  712,  707,  713,  714,  725,  726,
-      727,  728,  715,  729,  730,  716,  731,  717,  732,  733,
-      718,  734,  735,  719,  720,  721,  722,  736,  723,  724,
-      737,  738,  739,  740,  724,  741,  742,  743,  744,  725,
-      726,  727,  728,  745,  729,  730,  746,  731,  747,  732,
-      733,  748,  734,  735,  749,  750,  751,  754,  736,  756,
-      757,  737,  738,  739,  740,  758,  741,  742,  743,  744,
-      759,  752,  760,  762,  745,  752,  763,  746,  764,  747,
-      765,  766,  748,  767,  769,  749,  750,  751,  754,  770,
-      756,  757,  771,  772,  773,  774,  758,  775,  776,  777,
-
-      778,  759,  752,  760,  762,  779,  752,  763,  780,  764,
-      781,  765,  766,  783,  767,  769,  784,  785,  786,  787,
-      770,  789,  791,  771,  772,  773,  774,  792,  775,  776,
-      777,  778,  793,  794,  795,  796,  779,  797,  799,  780,
-      800,  781,  803,  803,  783,  804,  804,  784,  785,  786,
-      787,  806,  789,  791,  807,  808,  809,  810,  792,  811,
-      812,  813,  814,  793,  794,  795,  796,  815,  797,  799,
-      816,  800,  817,  818,  819,  820,  821,  826,  828,  829,
-      831,  822,  806,  832,  834,  807,  808,  809,  810,  835,
-      811,  812,  813,  814,  822,  836,  837,  838,  815,  839,
-
-      841,  816,  843,  817,  818,  819,  820,  821,  826,  828,
-      829,  831,  822,  844,  832,  834,  842,  845,  842,  846,
-      835,  847,  848,  850,  851,  852,  836,  837,  838,  853,
-      839,  841,  856,  843,  858,  859,  859,  861,  862,  863,
-      864,  865,  866,  868,  844,  869,  871,  842,  845,  842,
-      846,  872,  847,  848,  850,  851,  852,  875,  876,    0,
-      853,  878,    0,  856,  879,  858,  859,  859,  861,  862,
-      863,  864,  865,  866,  868,  881,  869,  871,  884,  885,
-      877,  882,  872,  886,  887,  890,    0,  892,  875,  876,
-      877,  882,  878,  877,  877,  879,    0,  877,  877,  893,
-
-      894,    0,  895,  896,  897,  898,  881,  899,  900,  884,
-      885,  877,  882,  901,  886,  887,  890,  888,  892,  902,
-      888,  877,  882,  888,  877,  877,  903,  888,  877,  877,
-      893,  894,  888,  895,  896,  897,  898,  904,  899,  900,
-      905,  906,  907,  908,  901,  909,  910,  911,  888,  912,
-      902,  888,  914,  915,  888,  916,  917,  903,  888,  918,
-      919,  920,  921,  888,  922,  923,  924,  925,  904,  926,
-      928,  905,  906,  907,  908,  930,  909,  910,  911,  931,
-      912,  932,  933,  914,  915,  934,  916,  917,  935,  936,
-      918,  919,  920,  921,  937,  922,  923,  924,  925,  938,
-
-      926,  928,  939,  940,  941,  942,  930,  943,  944,  945,
-      931,  946,  932,  933,  947,  948,  934,  949,  950,  935,
-      936,  951,  952,  953,  954,  937,  956,  950,  957,  958,
-      938,  959,  960,  939,  940,  941,  942,  955,  943,  944,
-      945,  961,  946,  962,  955,  947,  948,  963,  949,  950,
-      967,  968,  951,  952,  953,  954,  969,  956,  950,  957,
-      958,  970,  959,  960,  966,  971,  966,  972,  955,  974,
-      975,  976,  961,  977,  962,  955,  979,  980,  963,  981,
-      983,  967,  968,  984,  985,  981,  986,  969,  989,  990,
-      991,  995,  970,  984,  996,  966,  971,  966,  972, 1000,
-
-      974,  975,  976, 1001,  977, 1002,  997,  979,  980, 1003,
-      981,  983, 1004, 1005,  984,  985,  981,  986, 1007,  989,
-      990,  991,  995,  997,  984,  996, 1009, 1011, 1009, 1012,
-     1000, 1013, 1014, 1015, 1001, 1016, 1002,  997, 1017, 1018,
-     1003, 1014, 1019, 1004, 1005, 1020, 1021, 1022, 1023, 1007,
-     1024, 1025, 1026, 1027,  997, 1028, 1029, 1009, 1011, 1009,
-     1012, 1030, 1013, 1014, 1015, 1032, 1016, 1033, 1034, 1017,
-     1018, 1035, 1014, 1019, 1036, 1037, 1020, 1021, 1022, 1023,
-     1038, 1024, 1025, 1026, 1027, 1039, 1028, 1029, 1040, 1041,
-     1043, 1046, 1030, 1048, 1049, 1035, 1032, 1050, 1033, 1034,
-
-     1051, 1053, 1035, 1054, 1055, 1036, 1037, 1056, 1057, 1059,
-     1060, 1038, 1061, 1062, 1064, 1066, 1039, 1068, 1070, 1040,
-     1041, 1043, 1046, 1071, 1048, 1049, 1072, 1073, 1050, 1076,
-     1077, 1051, 1053, 1078, 1054, 1055, 1079, 1080, 1056, 1057,
-     1059, 1060, 1081, 1061, 1062, 1064, 1066, 1083, 1068, 1070,
-     1084, 1085, 1086, 1087, 1071, 1088, 1089, 1072, 1073, 1090,
-     1076, 1077, 1091, 1092, 1078, 1093, 1094, 1079, 1080, 1095,
-     1098, 1099, 1100, 1081, 1094, 1101, 1102, 1103, 1083, 1104,
-     1105, 1084, 1085, 1086, 1087, 1106, 1088, 1089, 1107, 1108,
-     1090, 1109, 1110, 1091, 1092, 1111, 1093, 1094, 1112, 1113,
-
-     1095, 1098, 1099, 1100, 1114, 1094, 1101, 1102, 1103, 1116,
-     1104, 1105, 1118, 1119, 1120, 1121, 1106, 1122, 1123, 1107,
-     1108, 1124, 1109, 1110, 1125, 1126, 1111, 1127, 1128, 1112,
-     1113, 1129, 1130, 1131, 1132, 1114, 1135, 1137, 1138, 1139,
-     1116, 1140, 1141, 1118, 1119, 1120, 1121, 1142, 1122, 1123,
-     1143, 1144, 1124, 1149, 1150, 1125, 1126, 1151, 1127, 1128,
-     1152, 1153, 1129, 1130, 1131, 1132, 1154, 1135, 1137, 1138,
-     1139, 1155, 1140, 1141, 1156, 1157, 1158, 1159, 1142, 1160,
-     1162, 1143, 1144, 1164, 1149, 1150, 1165, 1166, 1151, 1167,
-     1168, 1152, 1153, 1169, 1170, 1172, 1171, 1154, 1175, 1178,
-
-     1179, 1180, 1155, 1181, 1182, 1156, 1157, 1158, 1159, 1183,
-     1160, 1162, 1171, 1184, 1164, 1185, 1186, 1165, 1166, 1187,
-     1167, 1168, 1188, 1189, 1169, 1170, 1172, 1171, 1190, 1175,
-     1178, 1179, 1180, 1192, 1181, 1182, 1194, 1195, 1197, 1198,
-     1183, 1199, 1200, 1171, 1184, 1201, 1185, 1186, 1202, 1203,
-     1187, 1205, 1208, 1188, 1189, 1209, 1210, 1211, 1212, 1190,
-     1213, 1214, 1215, 1217, 1192, 1218, 1219, 1194, 1195, 1197,
-     1198, 1222, 1199, 1200, 1223, 1224, 1201, 1225, 1226, 1202,
-     1203, 1227, 1205, 1208, 1228, 1229, 1209, 1210, 1211, 1212,
-     1230, 1213, 1214, 1215, 1217, 1231, 1218, 1219, 1233, 1234,
-
-     1235, 1236, 1222, 1238, 1240, 1223, 1224, 1241, 1225, 1226,
-     1242, 1244, 1227, 1246, 1247, 1228, 1229, 1248, 1249, 1250,
-     1251, 1230, 1252, 1253, 1254, 1255, 1231, 1257, 1258, 1233,
-     1234, 1235, 1236, 1259, 1238, 1240, 1260, 1262, 1241, 1263,
-     1264, 1242, 1244, 1265, 1246, 1247, 1266, 1267, 1248, 1249,
-     1250, 1251, 1268, 1252, 1253, 1254, 1255, 1269, 1257, 1258,
-     1270, 1272, 1273, 1275, 1259, 1276, 1277, 1260, 1262, 1278,
-     1263, 1264, 1279, 1280, 1265, 1281, 1282, 1266, 1267, 1284,
-     1285, 1286, 1287, 1268, 1288, 1290, 1291, 1292, 1269, 1293,
-     1294, 1270, 1272, 1273, 1275, 1295, 1276, 1277, 1296, 1298,
-
-     1278, 1299, 1300, 1279, 1280, 1301, 1281, 1282, 1302, 1306,
-     1284, 1285, 1286, 1287, 1307, 1288, 1290, 1291, 1292, 1308,
-     1293, 1294, 1304,    0, 1304, 1310, 1295,    0, 1312, 1296,
-     1298, 1313, 1299, 1300, 1307, 1315, 1301, 1317, 1318, 1302,
-     1306, 1309, 1309, 1319, 1320, 1307, 1321, 1322, 1323, 1324,
-     1308, 1325, 1309, 1304, 1309, 1304, 1310, 1326, 1309, 1312,
-     1327, 1328, 1313, 1329, 1330, 1307, 1315, 1331, 1317, 1318,
-     1332, 1333, 1309, 1309, 1319, 1320, 1334, 1321, 1322, 1323,
-     1324, 1335, 1325, 1309, 1336, 1309, 1337, 1339, 1326, 1309,
-     1340, 1327, 1328, 1341, 1329, 1330, 1342, 1338, 1331, 1338,
-
-     1343, 1332, 1333, 1344, 1345, 1346, 1347, 1334, 1348, 1349,
-     1350, 1351, 1335, 1352, 1353, 1336, 1354, 1337, 1339, 1355,
-     1356, 1340, 1357, 1358, 1341, 1360, 1362, 1342, 1338, 1364,
-     1338, 1343, 1365, 1367, 1344, 1345, 1346, 1347, 1368, 1348,
-     1349, 1350, 1351, 1369, 1352, 1353, 1370, 1354, 1359, 1359,
-     1355, 1356, 1373, 1357, 1358, 1374, 1360, 1362, 1375, 1376,
-     1364, 1359, 1377, 1365, 1367, 1359, 1379, 1380, 1381, 1368,
-     1382, 1383, 1384, 1385, 1369, 1386, 1387, 1370, 1389, 1359,
-     1359, 1390, 1391, 1373, 1392, 1393, 1374, 1394, 1396, 1375,
-     1376, 1397, 1359, 1377, 1398, 1399, 1359, 1379, 1380, 1381,
-
-     1400, 1382, 1383, 1384, 1385, 1402, 1386, 1387, 1403, 1389,
-     1404, 1406, 1390, 1391, 1407, 1392, 1393, 1408, 1394, 1396,
-     1409, 1410, 1397, 1411, 1412, 1398, 1399, 1413, 1414, 1415,
-     1416, 1400, 1417, 1418, 1419, 1420, 1402, 1421, 1422, 1403,
-     1423, 1404, 1406, 1424, 1425, 1407, 1426, 1430, 1408, 1431,
-     1432, 1409, 1410, 1433, 1411, 1412, 1434, 1435, 1413, 1414,
-     1415, 1416, 1436, 1417, 1418, 1419, 1420, 1437, 1421, 1422,
-     1438, 1423, 1441, 1442, 1424, 1425, 1443, 1426, 1430, 1444,
-     1431, 1432, 1445, 1446, 1433, 1447, 1448, 1434, 1435, 1449,
-     1451, 1450, 1452, 1436, 1454, 1455, 1457, 1458, 1437, 1450,
-
-     1460, 1438, 1461, 1441, 1442, 1462, 1464, 1443, 1452, 1465,
-     1444, 1466, 1467, 1445, 1446, 1469, 1447, 1448, 1471, 1473,
-     1449, 1451, 1450, 1452, 1474, 1454, 1455, 1457, 1458, 1475,
-     1450, 1460, 1476, 1461, 1477, 1478, 1462, 1464, 1479, 1452,
-     1465, 1480, 1466, 1467, 1482, 1484, 1469, 1485, 1486, 1471,
-     1473, 1490, 1491, 1492, 1493, 1474, 1494, 1496, 1497, 1499,
-     1475, 1502, 1505, 1476, 1508, 1477, 1478, 1509, 1511, 1479,
-     1513, 1515, 1480, 1517, 1518, 1482, 1484, 1519, 1485, 1486,
-     1521, 1522, 1490, 1491, 1492, 1493, 1524, 1494, 1496, 1497,
-     1499, 1525, 1502, 1505, 1526, 1508, 1528, 1531, 1509, 1511,
-
-     1533, 1513, 1515, 1536, 1517, 1518, 1537, 1538, 1519, 1539,
-     1541, 1521, 1522, 1542, 1543, 1544, 1545, 1524, 1546, 1547,
-     1548, 1549, 1525, 1550, 1551, 1526, 1553, 1528, 1531, 1554,
-     1555, 1533, 1556, 1557, 1536, 1558, 1559, 1537, 1538, 1560,
-     1539, 1541, 1561, 1563, 1542, 1543, 1544, 1545, 1564, 1546,
-     1547, 1548, 1549, 1565, 1550, 1551, 1566, 1553, 1567, 1568,
-     1554, 1555, 1569, 1556, 1557, 1570, 1558, 1559, 1571, 1572,
-     1560, 1573, 1574, 1561, 1563, 1575, 1576, 1577, 1578, 1564,
-     1579, 1580, 1581, 1582, 1565, 1583, 1584, 1566, 1585, 1567,
-     1568, 1586, 1589, 1569, 1590, 1591, 1570, 1592, 1593, 1571,
-
-     1572, 1594, 1573, 1574, 1598, 1600, 1575, 1576, 1577, 1578,
-     1602, 1579, 1580, 1581, 1582, 1604, 1583, 1584, 1605, 1585,
-     1606, 1607, 1586, 1589, 1609, 1590, 1591, 1611, 1592, 1593,
-     1612, 1613, 1594, 1614, 1615, 1598, 1600, 1617, 1618, 1621,
-     1622, 1602, 1623, 1626, 1627, 1629, 1604, 1634, 1635, 1605,
-     1636, 1606, 1607, 1637, 1638, 1609, 1639, 1642, 1611, 1643,
-     1644, 1612, 1613, 1645, 1614, 1615, 1646, 1647, 1617, 1618,
-     1621, 1622, 1648, 1623, 1626, 1627, 1629, 1649, 1634, 1635,
-     1651, 1636, 1652, 1653, 1637, 1638, 1654, 1639, 1642, 1655,
-     1643, 1644, 1656, 1657, 1645, 1658, 1659, 1646, 1647, 1661,
-
-     1662, 1663, 1664, 1648, 1665, 1666, 1667, 1668, 1649, 1669,
-     1670, 1651, 1671, 1652, 1653, 1672, 1673, 1654, 1675, 1678,
-     1655, 1680, 1683, 1656, 1657, 1685, 1658, 1659, 1686, 1687,
-     1661, 1662, 1663, 1664, 1688, 1665, 1666, 1667, 1668, 1690,
-     1669, 1670, 1694, 1671, 1698, 1699, 1672, 1673, 1700, 1675,
-     1678, 1688, 1680, 1683, 1702, 1703, 1685, 1704, 1705, 1686,
-     1687, 1707, 1708, 1709, 1710, 1688, 1711, 1716, 1717, 1718,
-     1690, 1721, 1724, 1694, 1725, 1698, 1699, 1727, 1729, 1700,
-     1730, 1731, 1688, 1732, 1733, 1702, 1703, 1734, 1704, 1705,
-     1735, 1736, 1707, 1708, 1709, 1710, 1737, 1711, 1716, 1717,
-
-     1718, 1739, 1721, 1724, 1742, 1725, 1744, 1746, 1727, 1729,
-     1747, 1730, 1731, 1748, 1732, 1733, 1749, 1751, 1734, 1753,
-     1755, 1735, 1736, 1756, 1758, 1760, 1761, 1737, 1762, 1764,
-     1765, 1766, 1739, 1768, 1769, 1742, 1771, 1744, 1746, 1772,
-     1776, 1747, 1778, 1779, 1748, 1780, 1781, 1749, 1751, 1782,
-     1753, 1755, 1783, 1784, 1756, 1758, 1760, 1761, 1785, 1762,
-     1764, 1765, 1766, 1786, 1768, 1769, 1788, 1771, 1789, 1790,
-     1772, 1776, 1793, 1778, 1779, 1794, 1780, 1781, 1796, 1797,
-     1782, 1799, 1803, 1783, 1784, 1804, 1805, 1806, 1808, 1785,
-     1809, 1810, 1811, 1812, 1786, 1814, 1816, 1788, 1817, 1789,
-
-     1790, 1818, 1819, 1793, 1821, 1824, 1794, 1827, 1828, 1796,
-     1797, 1831, 1799, 1803, 1832, 1835, 1804, 1805, 1806, 1808,
-     1836, 1809, 1810, 1811, 1812, 1837, 1814, 1816, 1839, 1817,
-     1840, 1841, 1818, 1819, 1842, 1821, 1824, 1844, 1827, 1828,
-     1845, 1846, 1831, 1847, 1850, 1832, 1835, 1851, 1852, 1854,
-     1855, 1836,    0,    0,    0,    0, 1837,    0,    0, 1839,
-        0, 1840, 1841,    0,    0, 1842,    0,    0, 1844,    0,
-        0, 1845, 1846,    0, 1847, 1850,    0,    0, 1851, 1852,
-     1854, 1855, 1858, 1858, 1858, 1858, 1858, 1858, 1858, 1858,
-     1858, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859, 1859,
-
-     1860,    0, 1860, 1860, 1860, 1860, 1860, 1860, 1860, 1861,
-        0, 1861, 1861, 1861, 1861, 1861, 1861, 1861, 1862, 1862,
-     1863, 1863, 1863, 1863, 1863, 1863, 1863, 1863, 1863, 1864,
-     1864, 1864, 1864, 1864, 1864, 1864, 1864, 1864, 1865,    0,
-     1865, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866, 1866,
-     1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1867, 1868,
-     1868, 1868, 1868, 1868, 1868, 1868, 1868, 1868, 1869, 1869,
-     1869, 1869, 1869, 1869, 1869, 1869, 1869, 1870, 1870, 1870,
-        0,    0, 1870, 1870,    0, 1870, 1871, 1871, 1871, 1871,
-     1871, 1871, 1871, 1871, 1871, 1872,    0,    0, 1872, 1872,
-
-        0, 1872, 1873, 1873, 1873,    0, 1873, 1873, 1873, 1873,
-     1873, 1874, 1874, 1874, 1874,    0, 1874, 1874, 1874, 1874,
-     1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1875, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-
-     1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857, 1857,
-     1857, 1857
+        7,    7,    7,    7,    7,    7,    7,    7,    7,    7,
+        7,    7,    7,    7,    7,    7,    9,  573,    9,    9,
+       10,    9,   10,   10,    9,   10,   11,   12,   10,   11,
+       12,   15, 1899,   15,   15,   20,   33,   20,   20,   21,
+       21,   34,  100,   40,   53,   34,   54,   55,   21,  118,
+      100, 1882,   23,  118,   23,   23,   68,  575,   68,   68,
+      354,  573,  354,   23,   24, 1259,   24,   33, 1166,   11,
+       12,  618,   34,   24,   40,   53,   34,   54,   55,   21,
+
+       22,   22,   22,   22,   22,   22,   22,   22,   22,   22,
+       22,   22,   22,   22,   23,   24,   22,   24,  575,   22,
+       56,   22,   25,   29,   24,   57,   25,   29,   59,  574,
+       25,   29,  572,   60,   32,   32,   61,   29,   62,   25,
+       29,   32,   25,   27,   64,   65,   27,   27,   22,   22,
+       22,   56,   22,   25,   29,  544,   57,   25,   29,   59,
+       27,   25,   29,   27,   60,   32,   32,   61,   29,   62,
+       25,   29,   32,   25,   27,   64,   65,   27,   27,   22,
+       22,   22,   22,   22,   26,   66,   26,  465,   70,   26,
+       26,   27,  359,   26,   27,   37,   26,   76,   81,   26,
+
+       26,   28,   28,   28,   31,  106,   30,   28,   31,   37,
+       30,  357,   31,   28,   30,   26,   66,   26,   45,   70,
+       26,   26,   45,   30,   26,  353,   37,   26,   76,   81,
+       26,   26,   28,   28,   28,   31,  106,   30,   28,   31,
+       37,   30,   58,   31,   28,   30,   58,  366,  366,   45,
+       67,   67,  348,   45,   30,   35,   36,   35,   78,   35,
+       36,   63,   78,   35,   36,  107,   35,   63,   88,   35,
+       88,   41,   35,   58,  315,   41,   36,   58,   63,   41,
+       36,  367,  367,   67,  313,   41,   35,   36,   35,   78,
+       35,   36,   63,   78,   35,   36,  107,   35,   63,   88,
+
+       35,   88,   41,   35,   77,   77,   41,   36,  109,   63,
+       41,   36,   38,   38,  103,   39,   41,   74,  270,   39,
+       38,   74,   38,   39,   38,   74,   39,   38,   38,   39,
+      103,   74,   39,  138,  138,   77,   77,  138,  138,  109,
+       69,  252,   69,   38,   38,  103,   39,  251,   74,   69,
+       39,   38,   74,   38,   39,   38,   74,   39,   38,   38,
+       39,  103,   74,   39,   42,   42,   42,  249,   43,   42,
+       42,   69,   43,   69,   42,  113,   43,  105,   42,   44,
+       69,   42,   43,   42,  115,   43,   42,   75,   44,   80,
+       44,  105,   43,   80,   44,   42,   42,   42,   44,   43,
+
+       42,   42,  139,   43,   75,   42,  113,   43,  105,   42,
+       44,  133,   42,   43,   42,  115,   43,   42,   75,   44,
+       80,   44,  105,   43,   80,   44,   46,   46,  132,   44,
+       46,   71,   46,   71,   46,   75,   73,   73,   72,   46,
+       71,   72,   72,   71,  116,   79,   71,   73,  125,   79,
+       84,  102,  124,   79,   84,  102,  120,   46,   46,   79,
+      119,   46,   71,   46,   71,   46,  101,   73,   73,   72,
+       46,   71,   72,   72,   71,  116,   79,   71,   73,   82,
+       79,   84,  102,   83,   79,   84,  102,   82,  108,   82,
+       79,   83,   85,   85,   82,   82,  104,   83,   86,  104,
+
+       83,  112,   86,  108,   85,  112,   87,  127,   86,   85,
+       82,   86,  368,  368,   83,   87,   99,   87,   82,  108,
+       82,   87,   83,   85,   85,   82,   82,  104,   83,   86,
+      104,   83,  112,   86,  108,   85,  112,   87,  127,   86,
+       85,   90,   86,   90,   90,  128,   87,   91,   87,   91,
+       91,   96,   87,   96,   96,   97,   97,   98,  110,   98,
+       98,  111,  114,  117,   97,  141,  114,  123,   98,  123,
+      123,  111,  117,  110,  129,   95,  128,  129,  117,  130,
+       94,  130,  130,   93,  146,  148,  143,  143,  117,  110,
+      143,  143,  111,  114,  117,   97,  141,  114,  150,   98,
+
+      144,  153,  111,  117,  110,  134,  134,  144,  135,  117,
+      135,  135,  137,  137,  134,  146,  148,  129,  154,  135,
+      155,  137,  373,  373,  374,  374,   92,  142,  142,  150,
+       49,  144,  153,  576,  576,   48,  142,  147,  144,  159,
+      160,   19,  319,  319,   13,  134,  319,  319,  147,  154,
+      135,  155,  137,  140,  140,  140,  140,  140,  140,  140,
+      140,  140,  140,  140,  140,  140,  140,  142,  147,  140,
+      159,  160,  140,  145,  140,  149,  156,  145,  151,  147,
+      157,  149,  157,  162,  145,  163,  164,  162,  165,  168,
+      145,  170,  151,    0,  167,  167,  156,  172,  174,  175,
+
+      176,  140,  140,  140,  145,  140,  149,  156,  145,  151,
+      166,  157,  149,  157,  162,  145,  163,  164,  162,  165,
+      168,  145,  170,  151,  166,  167,  167,  156,  172,  174,
+      175,  176,  140,  140,  140,  140,  140,  177,  169,  171,
+      178,  166,  169,  171,  173,  179,  173,  173,  178,  180,
+      173,  181,  182,  184,  178,  166,    0,  185,  186,  187,
+      577,  577,    0,  191,  193,  606,  198,  606,  177,  169,
+      171,  178,    0,  169,  171,  173,  179,  173,  173,  178,
+      180,  173,  181,  182,  184,  178,  183,  183,  185,  186,
+      187,  188,  183,  190,  191,  193,  196,  198,  190,  190,
+
+      199,  202,  195,  183,  195,  195,  203,  188,  204,  188,
+      195,  200,  196,  205,  188,  580,  580,  183,  183,  200,
+      206,  201,  188,  183,  190,  201,  207,  196,  208,  190,
+      190,  199,  202,  195,  183,  195,  195,  203,  188,  204,
+      188,  195,  200,  196,  205,  188,  197,  197,  197,  210,
+      200,  206,  201,  209,  197,  209,  201,  207,  211,  208,
+      212,  213,  214,  215,  213,  216,  581,  581,  214,  218,
+      216,  213,    0,  219,  220,  221,    0,  197,  197,  197,
+      210,  222,  223,    0,  209,  197,  209,  225,  226,  211,
+      228,  212,  213,  214,  215,  213,  216,  217,  217,  214,
+
+      218,  216,  213,  217,  219,  220,  221,  217,  217,  227,
+      217,  229,  222,  223,  224,  224,  230,  233,  225,  226,
+      231,  228,  232,  235,  232,    0,  238,  224,  217,  217,
+      232,  231,  240,  227,  217,  241,  234,  242,  217,  217,
+      227,  217,  229,  243,  234,  224,  224,  230,  233,  244,
+      245,  231,  246,  232,  235,  232,  234,  238,  224,  247,
+      248,  232,  231,  240,  227,  253,  241,  234,  242,  254,
+      255,  256,  257,  259,  243,  234,  258,  260,  261,  262,
+      244,  245,  263,  246,  264,  265,  266,  234,  267,  268,
+      247,  248,  269,  273,  275,  263,  253,  276,    0,  258,
+
+      254,  255,  256,  257,  259,  271,  271,  258,  260,  261,
+      262,  278,  279,  263,  274,  264,  265,  266,  280,  267,
+      268,  274,  281,  269,  273,  275,  263,  274,  276,  277,
+      258,  277,  282,  283,  285,  286,  282,  284,  271,  284,
+      284,  288,  278,  279,  287,  274,  289,  290,  291,  280,
+      287,  292,  274,  281,  293,  294,  296,  297,  274,  298,
+      277,  287,  277,  282,  283,  285,  286,  282,  284,  299,
+      284,  284,  288,  300,  301,  287,  302,  289,  290,  291,
+      303,  287,  292,  300,  304,  293,  294,  296,  297,  305,
+      298,  306,  287,  308,  309,  307,  310,  311,  321,  321,
+
+      299,  308,  321,  321,  300,  301,  307,  302,  316,  316,
+      317,  303,  317,  317,  300,  304,  326,  316,  327,  328,
+      305,  317,  306,  329,  308,  309,  307,  310,  311,  318,
+      318,  331,  308,  320,  320,  330,  330,  307,  318,  333,
+      332,  334,  320,  335,  337,  338,  340,  326,  316,  327,
+      328,  342,  317,  332,  329,  343,  344,  345,  346,  347,
+      346,    0,  331,  369,  349,  350,  330,  330,    0,  318,
+      333,  332,  334,  320,  335,  337,  338,  340,  351,  375,
+      608,  608,  342,  376,  332,    0,  343,  344,  345,  346,
+      347,  346,  349,  350,  369,  349,  350,  364,  364,  351,
+
+      365,  365,  371,  371,  365,  365,  364,  377,  378,  351,
+      375,  371,  372,  372,  376,  379,  372,  372,  380,  381,
+      382,  383,  384,  385,  386,  387,  388,  389,  390,  391,
+      392,  393,  394,  395,    0,  398,  399,  364,  377,  378,
+      401,  402,  371,  403,  404,  405,  379,  406,    0,  380,
+      381,  382,  383,  384,  385,  386,  387,  388,  389,  390,
+      391,  392,  393,  394,  395,  396,  398,  399,  400,  408,
+      409,  401,  402,  396,  403,  404,  405,  410,  406,  396,
+      411,  412,  413,  414,  415,  400,  416,  417,  418,  419,
+      421,  414,  422,  423,  424,  425,  396,  426,  418,  400,
+
+      408,  409,  427,  428,  396,  429,  431,  432,  410,  433,
+      396,  411,  412,  413,  414,  415,  400,  416,  417,  418,
+      419,  421,  414,  422,  423,  424,  425,  430,  426,  418,
+      434,  430,  435,  427,  428,  436,  429,  431,  432,  437,
+      433,  438,  439,  440,  441,  436,  442,  443,  444,  445,
+      448,  449,    0,  607,  451,  607,  453,    0,  430,  454,
+        0,  434,  430,  435,  452,  456,  436,  457,  452,  458,
+      437,    0,  438,  439,  440,  441,  436,  442,  443,  444,
+      445,  448,  449,  450,  450,  451,  450,  453,  450,  450,
+      454,  450,  459,  460,  450,  452,  456,  450,  457,  452,
+
+      458,  450,  450,  461,  462,  450,  610,  610,  463,    0,
+      466,  611,  611,  467,  450,  450,  469,  450,  470,  450,
+      450,  471,  450,  459,  460,  450,  468,  472,  450,  474,
+      468,  475,  450,  450,  461,  462,  450,  455,  455,  463,
+      455,  466,  455,  455,  467,  455,  473,  469,  455,  470,
+      478,  476,  471,  477,  473,  455,  455,  468,  472,  455,
+      474,  468,  475,  479,  477,  480,  481,  482,  455,  455,
+      479,  455,  483,  455,  455,  476,  455,  473,  484,  455,
+      485,  478,  476,  486,  477,  473,  455,  455,  487,  488,
+      455,  489,  490,  491,  479,  477,  480,  481,  482,  493,
+
+      494,  479,  495,  483,  496,  497,  476,  498,  499,  484,
+      500,  485,  494,  501,  486,  503,  504,  505,  506,  487,
+      488,  507,  489,  490,  491,  508,  509,  510,  511,  512,
+      493,  494,  513,  495,  514,  496,  497,  515,  498,  499,
+      516,  500,  515,  494,  501,  518,  503,  504,  505,  506,
+      517,  521,  507,  524,  525,  526,  508,  509,  510,  511,
+      512,  527,  517,  513,  528,  514,  529,  530,  515,  531,
+      532,  516,  534,  515,  535,  536,  518,  537,  538,  539,
+      540,  517,  521,  541,  524,  525,  526,  542,  546,  547,
+      548,  549,  527,  517,  550,  528,  551,  529,  530,  552,
+
+      531,  532,  553,  534,  554,  535,  536,  555,  537,  538,
+      539,  540,  556,  557,  541,  558,  559,  560,  542,  546,
+      547,  548,  549,  557,  561,  550,  562,  551,  563,  564,
+      552,  565,  566,  553,  567,  554,  568,  569,  555,  570,
+      571,  578,  578,  556,  557,    0,  558,  559,  560,  582,
+      578,  583,  584,  585,  557,  561,  586,  562,  587,  563,
+      564,  588,  565,  566,  589,  567,  590,  568,  569,  591,
+      570,  571,  579,  579,  592,  593,  579,  579,  594,  596,
+      582,  578,  583,  584,  585,  597,  598,  586,  599,  587,
+      600,  601,  588,  602,  603,  589,    0,  590,  604,  605,
+
+      591,  612,  613,  603,  614,  592,  593,  615,  616,  594,
+      596,  604,  617,  619,  620,  621,  597,  598,  622,  599,
+      623,  600,  601,  624,  602,  603,  625,  605,  627,  604,
+      605,  628,  612,  613,  629,  614,  630,  631,  615,  616,
+      632,  633,  634,  617,  619,  620,  621,  635,  637,  622,
+      628,  623,  638,  636,  624,  636,  639,  625,  640,  627,
+      642,  643,  628,  644,  645,  629,  646,  630,  631,  647,
+      648,  632,  633,  634,  649,  650,  652,  653,  635,  637,
+      654,  628,  655,  638,  636,  656,  636,  639,  657,  640,
+      658,  642,  643,  660,  644,  645,  661,  646,  662,  663,
+
+      647,  648,  664,  665,  666,  649,  650,  652,  653,  667,
+      668,  654,  669,  655,  670,  671,  656,  672,  673,  657,
+      674,  658,  676,  678,  660,  677,  679,  661,  680,  662,
+      663,  681,  677,  664,  665,  666,  682,  683,  685,  687,
+      667,  668,  689,  669,  690,  670,  671,  691,  672,  673,
+      692,  674,  693,  676,  678,  694,  677,  679,  686,  680,
+      695,  696,  681,  677,  698,  686,  697,  682,  683,  685,
+      687,  699,  697,  689,  700,  690,  701,  702,  691,  703,
+      704,  692,  705,  693,  697,  706,  694,  707,  708,  686,
+      709,  695,  696,  710,  711,  698,  686,  697,  713,  714,
+
+      715,    0,  699,  697,  716,  700,  717,  701,  702,  719,
+      703,  704,  721,  705,  712,  697,  706,  723,  707,  708,
+      712,  709,  722,  724,  710,  711,  722,  725,  726,  713,
+      714,  715,  712,  727,  728,  716,  729,  717,  730,  731,
+      719,  732,  733,  721,  734,  712,  735,  736,  723,  737,
+      738,  712,  740,  722,  724,  739,  741,  722,  725,  726,
+      739,  742,  743,  712,  727,  728,  744,  729,  745,  730,
+      731,  746,  732,  733,  747,  734,  748,  735,  736,  749,
+      737,  738,  750,  740,  751,  752,  739,  741,  753,  754,
+      755,  739,  742,  743,  756,  757,  758,  744,  759,  745,
+
+      760,  761,  746,  762,  763,  747,  764,  748,  765,  766,
+      749,  771,  769,  750,  767,  751,  752,  772,  767,  753,
+      754,  755,  769,  773,  774,  756,  757,  758,  775,  759,
+      777,  760,  761,  778,  762,  763,  779,  764,  780,  765,
+      766,  781,  771,  769,  782,  767,  783,  785,  772,  767,
+      786,  787,  788,  769,  773,  774,  789,  790,  791,  775,
+      792,  777,  793,  794,  778,  795,  796,  779,  797,  780,
+      799,  800,  781,  801,  802,  782,  803,  783,  785,  805,
+      807,  786,  787,  788,  808,  809,  810,  789,  790,  791,
+      811,  792,  812,  793,  794,  813,  795,  796,  815,  797,
+
+      816,  799,  800,  822,  801,  802,  823,  803,  819,  819,
+      805,  807,  820,  820,  824,  808,  809,  810,  825,  826,
+      827,  811,  828,  812,  829,  830,  813,  831,  832,  815,
+      833,  816,  834,  835,  822,  836,  837,  823,  838,  839,
+      840,  842,  842,  847,  841,  824,  849,  843,  850,  825,
+      826,  827,  852,  828,  853,  829,  830,  855,  831,  832,
+      843,  833,  856,  834,  835,  857,  836,  837,  858,  838,
+      839,  840,  841,  859,  847,  841,  860,  849,  843,  850,
+      862,  864,  863,  852,  863,  853,  865,  866,  855,  867,
+      868,  869,  870,  856,  872,  873,  857,  874,  875,  858,
+
+      878,  880,  881,  881,  859,  883,  884,  860,  885,  886,
+      887,  862,  864,  863,  888,  863,  890,  865,  866,  891,
+      867,  868,  869,  870,  893,  872,  873,  894,  874,  875,
+      897,  878,  880,  881,  881,  898,  883,  884,  900,  885,
+      886,  887,  901,  903,  904,  888,  899,  890,  906,  907,
+      891,  908,  909,    0,  904,  893,  899,    0,  894,  899,
+      899,  897,    0,  899,  899,  912,  898,  914,  915,  900,
+      916,  917,  918,  901,  903,  904,  919,  899,  910,  906,
+      907,  910,  908,  909,  910,  904,  920,  899,  910,  921,
+      899,  899,  922,  910,  899,  899,  912,  923,  914,  915,
+
+      924,  916,  917,  918,  925,  926,  927,  919,  928,  910,
+      929,  930,  910,  931,  932,  910,  933,  920,  934,  910,
+      921,  936,  937,  922,  910,  938,  939,  940,  923,  941,
+      942,  924,  943,  944,  945,  925,  926,  927,  946,  928,
+      947,  929,  930,  948,  931,  932,  950,  933,  952,  934,
+      953,  954,  936,  937,  955,  956,  938,  939,  940,  957,
+      941,  942,  958,  943,  944,  945,  959,  960,  961,  946,
+      962,  947,  963,  964,  948,  965,  966,  950,  967,  952,
+      968,  953,  954,  969,  970,  955,  956,  971,  973,  974,
+      957,  972,  975,  958,  976,  977,  978,  959,  960,  961,
+
+      972,  962,  977,  963,  964,  979,  965,  966,  980,  967,
+      981,  968,  982,  983,  969,  970,  984,  985,  971,  973,
+      974,  989,  972,  975,  990,  976,  977,  978,  988,  991,
+      988,  972,  992,  977,  993,  994,  979,  996,  997,  980,
+      998,  981,  999,  982,  983, 1001,  988,  984,  985, 1002,
+     1003, 1004,  989, 1006, 1007,  990, 1003, 1008, 1009,  988,
+      991,  988, 1012,  992, 1007,  993,  994, 1013,  996,  997,
+     1014,  998, 1015,  999, 1019, 1020, 1001,  988, 1024, 1021,
+     1002, 1003, 1004, 1025, 1006, 1007, 1026, 1003, 1008, 1009,
+     1027, 1028, 1029, 1012, 1031, 1007, 1021, 1033, 1013, 1033,
+
+     1035, 1014, 1036, 1015, 1037, 1019, 1020, 1038, 1039, 1024,
+     1021, 1040, 1041, 1042, 1025, 1043, 1038, 1026, 1044, 1045,
+     1046, 1027, 1028, 1029, 1047, 1031, 1048, 1021, 1033, 1049,
+     1033, 1035, 1050, 1036, 1051, 1037, 1052, 1053, 1038, 1039,
+     1054, 1055, 1040, 1041, 1042, 1057, 1043, 1038, 1058, 1044,
+     1045, 1046, 1059, 1060, 1061, 1047, 1063, 1048, 1062, 1062,
+     1049, 1065, 1064, 1050, 1066, 1051, 1067, 1052, 1053, 1068,
+     1069, 1054, 1055, 1070, 1072, 1075, 1057, 1077, 1078, 1058,
+     1079, 1080, 1063, 1059, 1060, 1061, 1064, 1063, 1082, 1083,
+     1084, 1085, 1065, 1064, 1086, 1066, 1087, 1067, 1089, 1090,
+
+     1068, 1069, 1091, 1092, 1070, 1072, 1075, 1094, 1077, 1078,
+     1096, 1079, 1080, 1098, 1100, 1101, 1102, 1103, 1106, 1082,
+     1083, 1084, 1085, 1107, 1108, 1086, 1109, 1087, 1110, 1089,
+     1090, 1111, 1113, 1091, 1092, 1114, 1115, 1116, 1094, 1117,
+     1118, 1096, 1119, 1120, 1098, 1100, 1101, 1102, 1103, 1106,
+     1121, 1122, 1123, 1124, 1107, 1108, 1125, 1109, 1128, 1110,
+     1129, 1124, 1111, 1113, 1130, 1131, 1114, 1115, 1116, 1132,
+     1117, 1118, 1133, 1119, 1120, 1134, 1135, 1136, 1137, 1138,
+     1139, 1121, 1122, 1123, 1124, 1140, 1141, 1125, 1142, 1128,
+     1143, 1129, 1124, 1144, 1146, 1130, 1131, 1148, 1149, 1150,
+
+     1132, 1151, 1152, 1133, 1153, 1154, 1134, 1135, 1136, 1137,
+     1138, 1139, 1155, 1156, 1157, 1158, 1140, 1141, 1159, 1142,
+     1160, 1143, 1161, 1162, 1144, 1146, 1165, 1167, 1148, 1149,
+     1150, 1168, 1151, 1152, 1169, 1153, 1154, 1170, 1171, 1172,
+     1173, 1174, 1179, 1155, 1156, 1157, 1158, 1180, 1181, 1159,
+     1182, 1160, 1183, 1161, 1162, 1184, 1185, 1165, 1167, 1186,
+     1187, 1188, 1168, 1189, 1190, 1169, 1192, 1194, 1170, 1171,
+     1172, 1173, 1174, 1179, 1195, 1196, 1197, 1198, 1180, 1181,
+     1199, 1182, 1200, 1183, 1201, 1202, 1184, 1185, 1203, 1206,
+     1186, 1187, 1188, 1209, 1189, 1190, 1210, 1192, 1194, 1211,
+
+     1212, 1202, 1213, 1214, 1215, 1195, 1196, 1197, 1198, 1216,
+     1217, 1199, 1218, 1200, 1219, 1201, 1202, 1220, 1221, 1203,
+     1206, 1222, 1225, 1227, 1209, 1228, 1230, 1210, 1231, 1232,
+     1211, 1212, 1202, 1213, 1214, 1215, 1233, 1234, 1235, 1236,
+     1216, 1217, 1238, 1218, 1241, 1219, 1242, 1243, 1220, 1221,
+     1244, 1245, 1222, 1225, 1227, 1246, 1228, 1230, 1247, 1231,
+     1232, 1248, 1249, 1251, 1252, 1253, 1254, 1233, 1234, 1235,
+     1236, 1255, 1257, 1238, 1260, 1241, 1258, 1242, 1243, 1261,
+     1262, 1244, 1245, 1263, 1264, 1265, 1246, 1266, 1267, 1247,
+     1268, 1269, 1248, 1249, 1251, 1252, 1253, 1254, 1257, 1271,
+
+     1258, 1272, 1255, 1257, 1274, 1260, 1275, 1258, 1277, 1279,
+     1261, 1262, 1280, 1281, 1263, 1264, 1265, 1283, 1266, 1267,
+     1285, 1268, 1269, 1286, 1287, 1288, 1289, 1290, 1291, 1292,
+     1271, 1293, 1272, 1294, 1296, 1274, 1297, 1275, 1298, 1277,
+     1279, 1299, 1301, 1280, 1281, 1302, 1303, 1304, 1283, 1305,
+     1306, 1285, 1307, 1308, 1286, 1287, 1288, 1289, 1290, 1291,
+     1292, 1309, 1293, 1311, 1294, 1296, 1312, 1297, 1314, 1298,
+     1315, 1316, 1299, 1301, 1317, 1318, 1302, 1303, 1304, 1319,
+     1305, 1306, 1320, 1307, 1308, 1321, 1323, 1324, 1325, 1326,
+     1327, 1329, 1309, 1330, 1311, 1331, 1332, 1312, 1333, 1314,
+
+     1334, 1315, 1316, 1335, 1337, 1317, 1318, 1338, 1339, 1340,
+     1319, 1341, 1343, 1320, 1343, 1345, 1321, 1323, 1324, 1325,
+     1326, 1327, 1329, 1347, 1330, 1349, 1331, 1332, 1346, 1333,
+     1351, 1334, 1352, 1354, 1335, 1337, 1348, 1348, 1338, 1339,
+     1340, 1356, 1341, 1343, 1357, 1343, 1345, 1348, 1346, 1348,
+     1358, 1359, 1360, 1348, 1347, 1361, 1349, 1362, 1363, 1346,
+     1364, 1351, 1365, 1352, 1354, 1366, 1367, 1348, 1348, 1368,
+     1369, 1370, 1356, 1371, 1372, 1357, 1373, 1374, 1348, 1346,
+     1348, 1358, 1359, 1360, 1348, 1375, 1361, 1376, 1362, 1363,
+     1377, 1364, 1378, 1365, 1378, 1379, 1366, 1367, 1380, 1381,
+
+     1368, 1369, 1370, 1382, 1371, 1372, 1384, 1373, 1374, 1385,
+     1386, 1387, 1388, 1389, 1390, 1391, 1375, 1392, 1376, 1393,
+     1394, 1377, 1395, 1378, 1396, 1378, 1379, 1397, 1398, 1380,
+     1381, 1399, 1401, 1403, 1382, 1405, 1406, 1384,    0, 1408,
+     1385, 1386, 1387, 1388, 1389, 1390, 1391, 1409, 1392, 1410,
+     1393, 1394, 1411, 1395, 1412, 1396, 1400, 1400, 1397, 1398,
+     1413, 1414, 1399, 1401, 1403, 1416, 1405, 1406, 1419, 1400,
+     1408, 1420, 1421, 1400, 1422, 1423, 1417, 1425, 1409, 1426,
+     1410, 1427, 1428, 1411, 1429, 1412, 1430, 1400, 1400, 1416,
+     1431, 1413, 1414, 1417, 1432, 1433, 1416, 1435, 1436, 1419,
+
+     1400, 1437, 1420, 1421, 1400, 1422, 1423, 1417, 1425, 1438,
+     1426, 1439, 1427, 1428, 1440, 1429, 1442, 1430, 1443, 1444,
+     1445, 1431, 1446, 1448, 1449, 1432, 1433, 1450, 1435, 1436,
+     1452, 1453, 1437, 1454, 1455, 1456, 1457, 1458, 1459, 1460,
+     1438, 1461, 1439, 1462, 1463, 1440, 1464, 1442, 1465, 1443,
+     1444, 1445, 1466, 1446, 1448, 1449, 1467, 1468, 1450, 1469,
+     1470, 1452, 1453, 1471, 1454, 1455, 1456, 1457, 1458, 1459,
+     1460, 1472, 1461, 1476, 1462, 1463, 1477, 1464, 1478, 1465,
+     1479, 1480, 1481, 1466, 1482, 1483, 1484, 1467, 1468, 1487,
+     1469, 1470, 1488, 1489, 1471, 1490, 1491, 1492, 1493, 1494,
+
+     1495, 1497, 1472, 1498, 1476, 1500, 1496, 1477, 1501, 1478,
+     1503, 1479, 1480, 1481, 1496, 1482, 1483, 1484, 1504, 1498,
+     1487, 1506, 1507, 1488, 1489, 1508, 1490, 1491, 1492, 1493,
+     1494, 1495, 1497, 1510, 1498, 1511, 1500, 1496, 1512, 1501,
+     1513, 1503, 1515, 1517, 1518, 1496, 1520, 1521, 1522, 1504,
+     1498, 1523, 1506, 1507, 1524, 1525, 1508, 1526, 1527, 1529,
+     1531, 1532, 1533, 1537, 1510, 1538, 1511, 1539, 1540, 1512,
+     1541, 1513, 1543, 1515, 1517, 1518, 1544, 1520, 1521, 1522,
+     1546, 1549, 1523, 1552, 1553, 1524, 1525, 1555, 1526, 1527,
+     1529, 1531, 1532, 1533, 1537, 1556, 1538, 1560, 1539, 1540,
+
+     1558, 1541, 1559, 1543, 1561, 1563, 1565, 1544, 1567, 1569,
+     1570, 1546, 1549, 1571, 1552, 1553, 1573, 1558, 1555, 1559,
+     1574, 1576, 1577, 1578, 1580, 1583, 1556, 1585, 1560, 1588,
+     1589, 1558, 1590, 1559, 1591, 1561, 1563, 1565, 1593, 1567,
+     1569, 1570, 1594, 1595, 1571, 1596, 1597, 1573, 1598, 1599,
+     1600, 1574, 1576, 1577, 1578, 1580, 1583, 1601, 1585, 1602,
+     1588, 1589, 1603, 1590, 1605, 1591, 1606, 1607, 1608, 1593,
+     1609, 1610, 1611, 1594, 1595, 1612, 1596, 1597, 1613, 1598,
+     1599, 1600, 1615, 1616, 1617, 1618, 1619, 1620, 1601, 1621,
+     1602, 1622, 1623, 1603, 1624, 1605, 1625, 1606, 1607, 1608,
+
+     1626, 1609, 1610, 1611, 1627, 1628, 1612, 1629, 1630, 1613,
+     1631, 1632, 1633, 1615, 1616, 1617, 1618, 1619, 1620, 1634,
+     1621, 1635, 1622, 1623, 1636, 1624, 1637, 1625, 1638, 1641,
+     1642, 1626, 1643, 1644, 1645, 1627, 1628, 1646, 1629, 1630,
+     1647, 1631, 1632, 1633, 1651, 1653, 1655, 1657, 1658, 1659,
+     1634, 1660, 1635, 1662, 1664, 1636, 1665, 1637, 1666, 1638,
+     1641, 1642, 1667, 1643, 1644, 1645, 1668, 1669, 1646, 1671,
+     1673, 1647, 1675, 1672, 1676, 1651, 1653, 1655, 1657, 1658,
+     1659, 1679, 1660, 1672, 1662, 1664, 1671, 1665, 1680, 1666,
+     1681, 1684, 1685, 1667, 1687, 1692, 1693, 1668, 1669, 1694,
+
+     1671, 1673, 1695, 1675, 1672, 1676, 1696, 1697, 1700, 1701,
+     1702, 1703, 1679, 1704, 1705, 1706, 1707, 1709, 1710, 1680,
+     1711, 1681, 1684, 1685, 1712, 1687, 1692, 1693, 1713, 1714,
+     1694, 1715, 1716, 1695, 1717, 1719, 1720, 1696, 1697, 1700,
+     1701, 1702, 1703, 1721, 1704, 1705, 1706, 1707, 1709, 1710,
+     1722, 1711, 1723, 1724, 1725, 1712, 1726, 1727, 1728, 1713,
+     1714, 1729, 1715, 1716, 1730, 1717, 1719, 1720, 1731, 1733,
+     1736, 1738, 1742, 1744, 1721, 1745, 1746, 1747, 1749, 1753,
+     1758, 1722,    0, 1723, 1724, 1725, 1761, 1726, 1727, 1728,
+     1758, 1762, 1729, 1759, 1747, 1730, 1763, 1765, 1766, 1731,
+
+     1733, 1736, 1738, 1742, 1744, 1767, 1745, 1746, 1747, 1749,
+     1753, 1758, 1768, 1759, 1770, 1771, 1772, 1761, 1773, 1774,
+     1779, 1780, 1762, 1781, 1759, 1747, 1784, 1763, 1765, 1766,
+     1787, 1788, 1790, 1792, 1793, 1794, 1767, 1795, 1796, 1797,
+     1798, 1799, 1800, 1768, 1802, 1770, 1771, 1772, 1805, 1773,
+     1774, 1779, 1780, 1807, 1781, 1809, 1810, 1784, 1811, 1812,
+     1814, 1787, 1788, 1790, 1792, 1793, 1794, 1818, 1795, 1796,
+     1797, 1798, 1799, 1800, 1816, 1802, 1820, 1817, 1821, 1805,
+     1817, 1823, 1825, 1826, 1807, 1827, 1809, 1810, 1829, 1811,
+     1812, 1814, 1830, 1831, 1816, 1833, 1834, 1836, 1818, 1837,
+
+     1841, 1843, 1844, 1845, 1846, 1816, 1847, 1820, 1817, 1821,
+     1848, 1849, 1823, 1825, 1826, 1850, 1827, 1851, 1853, 1829,
+     1855, 1856, 1854, 1830, 1831, 1854, 1833, 1834, 1836, 1857,
+     1837, 1841, 1843, 1844, 1845, 1846, 1860, 1847, 1861, 1863,
+     1864, 1848, 1849, 1866, 1855, 1870, 1850, 1871, 1851, 1853,
+     1872, 1855, 1856, 1854, 1873, 1875, 1876, 1877, 1878, 1879,
+     1857,    0, 1883, 1885, 1886, 1887, 1888, 1860, 1881, 1861,
+     1863, 1864, 1890, 1893, 1866, 1896, 1870, 1897, 1871, 1902,
+     1903, 1872, 1906, 1907, 1908, 1873, 1875, 1876, 1877, 1878,
+     1879, 1911, 1881, 1883, 1885, 1886, 1887, 1888, 1912, 1881,
+
+     1913, 1914, 1916, 1890, 1893, 1917, 1896, 1918, 1897, 1919,
+     1902, 1903, 1922, 1906, 1907, 1908, 1923, 1924, 1926, 1927,
+        0,    0, 1911,    0,    0,    0,    0,    0,    0, 1912,
+        0, 1913, 1914, 1916,    0,    0, 1917,    0, 1918,    0,
+     1919,    0,    0, 1922,    0,    0,    0, 1923, 1924, 1926,
+     1927, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930, 1930,
+     1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1931, 1932,
+        0, 1932, 1932, 1932, 1932, 1932, 1932, 1932, 1933,    0,
+     1933, 1933, 1933, 1933, 1933, 1933, 1933, 1934, 1934, 1935,
+     1935, 1935, 1935, 1935, 1935, 1935, 1935, 1935, 1936, 1936,
+
+     1936, 1936, 1936, 1936, 1936, 1936, 1936, 1937,    0, 1937,
+     1937, 1937, 1937, 1937, 1937, 1937, 1938,    0, 1938, 1939,
+     1939, 1939, 1939, 1939, 1939, 1939, 1939, 1939, 1940, 1940,
+     1940, 1940, 1940, 1940, 1940, 1940, 1940, 1941, 1941, 1941,
+     1941, 1941, 1941, 1941, 1941, 1941, 1942, 1942, 1942, 1942,
+     1942, 1942, 1942, 1942, 1942, 1943, 1943, 1943,    0,    0,
+     1943, 1943,    0, 1943, 1944, 1944, 1944, 1944, 1944, 1944,
+     1944, 1944, 1944, 1945,    0,    0, 1945, 1945,    0, 1945,
+     1946, 1946, 1946,    0, 1946, 1946, 1946, 1946, 1946, 1947,
+     1947, 1947, 1947,    0, 1947, 1947, 1947, 1947, 1948, 1948,
+
+     1948, 1948, 1948, 1948, 1948, 1948, 1948, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929, 1929,
+     1929, 1929
+
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -2034,8 +2106,8 @@ int msyy_flex_debug = 0;
 #define YY_MORE_ADJ 0
 #define YY_RESTORE_YY_MORE_OFFSET
 char *msyytext;
-#line 1 "maplexer.l"
-#line 2 "maplexer.l"
+#line 1 "/home/even/mapserver/git/mapserver/maplexer.l"
+#line 2 "/home/even/mapserver/git/mapserver/maplexer.l"
 /*
 ** READ ME FIRST!
 **
@@ -2116,7 +2188,7 @@ char path[MS_MAXPATHLEN];
 
 
 
-#line 2120 "maplexer.c"
+#line 2192 "/home/even/mapserver/git/mapserver/maplexer.c"
 
 #define INITIAL 0
 #define URL_VARIABLE 1
@@ -2152,7 +2224,7 @@ FILE *msyyget_out (void );
 
 void msyyset_out  (FILE * out_str  );
 
-yy_size_t msyyget_leng (void );
+int msyyget_leng (void );
 
 char *msyyget_text (void );
 
@@ -2194,7 +2266,12 @@ static int input (void );
 
 /* Amount of stuff to slurp up with each read. */
 #ifndef YY_READ_BUF_SIZE
+#ifdef __ia64__
+/* On IA-64, the buffer size is 16k, not 8k */
+#define YY_READ_BUF_SIZE 16384
+#else
 #define YY_READ_BUF_SIZE 8192
+#endif /* __ia64__ */
 #endif
 
 /* Copy whatever the last rule matched to the standard output. */
@@ -2202,7 +2279,7 @@ static int input (void );
 /* This used to be an fputs(), but since the string might contain NUL's,
  * we now use fwrite().
  */
-#define ECHO fwrite( msyytext, msyyleng, 1, msyyout )
+#define ECHO do { if (fwrite( msyytext, msyyleng, 1, msyyout )) {} } while (0)
 #endif
 
 /* Gets input and stuffs it into "buf".  number of characters read, or YY_NULL,
@@ -2213,7 +2290,7 @@ static int input (void );
 	if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
 		{ \
 		int c = '*'; \
-		yy_size_t n; \
+		size_t n; \
 		for ( n = 0; n < max_size && \
 			     (c = getc( msyyin )) != EOF && c != '\n'; ++n ) \
 			buf[n] = (char) c; \
@@ -2295,7 +2372,7 @@ YY_DECL
 	register char *yy_cp, *yy_bp;
 	register int yy_act;
     
-#line 85 "maplexer.l"
+#line 85 "/home/even/mapserver/git/mapserver/maplexer.l"
 
        if (msyystring_buffer == NULL)
            msyystring_buffer = (char*) msSmallMalloc(sizeof(char) * msyystring_buffer_size);
@@ -2369,7 +2446,7 @@ YY_DECL
          break;
        }
 
-#line 2373 "maplexer.c"
+#line 2450 "/home/even/mapserver/git/mapserver/maplexer.c"
 
 	if ( !(yy_init) )
 		{
@@ -2422,13 +2499,13 @@ yy_match:
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 1858 )
+				if ( yy_current_state >= 1930 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_base[yy_current_state] != 4230 );
+		while ( yy_base[yy_current_state] != 4408 );
 
 yy_find_action:
 		yy_act = yy_accept[yy_current_state];
@@ -2454,1492 +2531,1532 @@ do_action:	/* This label is used only to access EOF actions. */
 
 case 1:
 YY_RULE_SETUP
-#line 158 "maplexer.l"
+#line 158 "/home/even/mapserver/git/mapserver/maplexer.l"
 ;
 	YY_BREAK
 case 2:
 YY_RULE_SETUP
-#line 160 "maplexer.l"
+#line 160 "/home/even/mapserver/git/mapserver/maplexer.l"
 { if (msyyreturncomments) return(MS_COMMENT); }
 	YY_BREAK
 case 3:
 YY_RULE_SETUP
-#line 162 "maplexer.l"
+#line 162 "/home/even/mapserver/git/mapserver/maplexer.l"
 ;
 	YY_BREAK
 case 4:
 YY_RULE_SETUP
-#line 164 "maplexer.l"
+#line 164 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_LOGICAL_OR); }
 	YY_BREAK
 case 5:
 YY_RULE_SETUP
-#line 165 "maplexer.l"
+#line 165 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_LOGICAL_AND); }
 	YY_BREAK
 case 6:
 YY_RULE_SETUP
-#line 166 "maplexer.l"
+#line 166 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_LOGICAL_NOT); }
 	YY_BREAK
 case 7:
 YY_RULE_SETUP
-#line 167 "maplexer.l"
+#line 167 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_EQ); }
 	YY_BREAK
 case 8:
 YY_RULE_SETUP
-#line 168 "maplexer.l"
+#line 168 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_NE); }
 	YY_BREAK
 case 9:
 YY_RULE_SETUP
-#line 169 "maplexer.l"
+#line 169 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_GT); }
 	YY_BREAK
 case 10:
 YY_RULE_SETUP
-#line 170 "maplexer.l"
+#line 170 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_LT); }
 	YY_BREAK
 case 11:
 YY_RULE_SETUP
-#line 171 "maplexer.l"
+#line 171 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_GE); }
 	YY_BREAK
 case 12:
 YY_RULE_SETUP
-#line 172 "maplexer.l"
+#line 172 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_LE); }
 	YY_BREAK
 case 13:
 YY_RULE_SETUP
-#line 173 "maplexer.l"
+#line 173 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_RE); }
 	YY_BREAK
 case 14:
 YY_RULE_SETUP
-#line 175 "maplexer.l"
+#line 175 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_IEQ); }
 	YY_BREAK
 case 15:
 YY_RULE_SETUP
-#line 176 "maplexer.l"
+#line 176 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_IRE); }
 	YY_BREAK
 case 16:
 YY_RULE_SETUP
-#line 178 "maplexer.l"
+#line 178 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(IN); }
 	YY_BREAK
 case 17:
 YY_RULE_SETUP
-#line 180 "maplexer.l"
+#line 180 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_AREA); }
 	YY_BREAK
 case 18:
 YY_RULE_SETUP
-#line 181 "maplexer.l"
+#line 181 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_LENGTH); }
 	YY_BREAK
 case 19:
 YY_RULE_SETUP
-#line 182 "maplexer.l"
+#line 182 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_TOSTRING); }
 	YY_BREAK
 case 20:
 YY_RULE_SETUP
-#line 183 "maplexer.l"
+#line 183 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_COMMIFY); }
 	YY_BREAK
 case 21:
 YY_RULE_SETUP
-#line 184 "maplexer.l"
+#line 184 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_ROUND); }
 	YY_BREAK
 case 22:
 YY_RULE_SETUP
-#line 186 "maplexer.l"
+#line 186 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_BUFFER); }
 	YY_BREAK
 case 23:
 YY_RULE_SETUP
-#line 187 "maplexer.l"
+#line 187 "/home/even/mapserver/git/mapserver/maplexer.l"
 { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_DIFFERENCE); }
 	YY_BREAK
 case 24:
 YY_RULE_SETUP
-#line 189 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_INTERSECTS); }
+#line 188 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SIMPLIFY); }
 	YY_BREAK
 case 25:
 YY_RULE_SETUP
-#line 190 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DISJOINT); }
+#line 189 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SIMPLIFYPT); }
 	YY_BREAK
 case 26:
 YY_RULE_SETUP
-#line 191 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_TOUCHES); }
+#line 190 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_GENERALIZE); }
 	YY_BREAK
 case 27:
 YY_RULE_SETUP
-#line 192 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_OVERLAPS); }
+#line 191 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SMOOTHSIA); }
 	YY_BREAK
 case 28:
 YY_RULE_SETUP
-#line 193 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CROSSES); }
+#line 193 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_INTERSECTS); }
 	YY_BREAK
 case 29:
 YY_RULE_SETUP
-#line 194 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_WITHIN); }
+#line 194 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DISJOINT); }
 	YY_BREAK
 case 30:
 YY_RULE_SETUP
-#line 195 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CONTAINS); }
+#line 195 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_TOUCHES); }
 	YY_BREAK
 case 31:
 YY_RULE_SETUP
-#line 196 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_BEYOND); }
+#line 196 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_OVERLAPS); }
 	YY_BREAK
 case 32:
 YY_RULE_SETUP
-#line 197 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DWITHIN); }
+#line 197 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CROSSES); }
 	YY_BREAK
 case 33:
 YY_RULE_SETUP
-#line 199 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_FROMTEXT); }
+#line 198 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_WITHIN); }
 	YY_BREAK
 case 34:
 YY_RULE_SETUP
-#line 201 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(COLORRANGE); }
+#line 199 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_CONTAINS); }
 	YY_BREAK
 case 35:
 YY_RULE_SETUP
-#line 202 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DATARANGE); }
+#line 200 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_BEYOND); }
 	YY_BREAK
 case 36:
 YY_RULE_SETUP
-#line 203 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(RANGEITEM); }
+#line 201 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DWITHIN); }
 	YY_BREAK
 case 37:
 YY_RULE_SETUP
-#line 205 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ALIGN); }
+#line 203 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_FROMTEXT); }
 	YY_BREAK
 case 38:
 YY_RULE_SETUP
-#line 206 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ANCHORPOINT); }
+#line 205 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(COLORRANGE); }
 	YY_BREAK
 case 39:
 YY_RULE_SETUP
-#line 207 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ANGLE); }
+#line 206 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DATARANGE); }
 	YY_BREAK
 case 40:
 YY_RULE_SETUP
-#line 208 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ANTIALIAS); }
+#line 207 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(RANGEITEM); }
 	YY_BREAK
 case 41:
 YY_RULE_SETUP
-#line 209 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BACKGROUNDCOLOR); }
+#line 209 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ALIGN); }
 	YY_BREAK
 case 42:
 YY_RULE_SETUP
-#line 210 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BANDSITEM); }
+#line 210 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ANCHORPOINT); }
 	YY_BREAK
 case 43:
 YY_RULE_SETUP
-#line 211 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BINDVALS); }
+#line 211 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ANGLE); }
 	YY_BREAK
 case 44:
 YY_RULE_SETUP
-#line 212 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BROWSEFORMAT); }
+#line 212 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ANTIALIAS); }
 	YY_BREAK
 case 45:
 YY_RULE_SETUP
-#line 213 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(BUFFER); }
+#line 213 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(BACKGROUNDCOLOR); }
 	YY_BREAK
 case 46:
 YY_RULE_SETUP
-#line 214 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CHARACTER); }
+#line 214 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(BANDSITEM); }
 	YY_BREAK
 case 47:
 YY_RULE_SETUP
-#line 215 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLASS); }
+#line 215 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(BINDVALS); }
 	YY_BREAK
 case 48:
 YY_RULE_SETUP
-#line 216 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLASSITEM); }
+#line 216 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(BROWSEFORMAT); }
 	YY_BREAK
 case 49:
 YY_RULE_SETUP
-#line 217 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLASSGROUP); }
+#line 217 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(BUFFER); }
 	YY_BREAK
 case 50:
 YY_RULE_SETUP
-#line 218 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CLUSTER); }
+#line 218 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CHARACTER); }
 	YY_BREAK
 case 51:
 YY_RULE_SETUP
-#line 219 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(COLOR); }
+#line 219 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CLASS); }
 	YY_BREAK
 case 52:
 YY_RULE_SETUP
-#line 220 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CONFIG); }
+#line 220 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CLASSITEM); }
 	YY_BREAK
 case 53:
 YY_RULE_SETUP
-#line 221 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CONNECTION); }
+#line 221 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CLASSGROUP); }
 	YY_BREAK
 case 54:
 YY_RULE_SETUP
-#line 222 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(CONNECTIONTYPE); }
+#line 222 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CLUSTER); }
 	YY_BREAK
 case 55:
 YY_RULE_SETUP
-#line 223 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DATA); }
+#line 223 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(COLOR); }
 	YY_BREAK
 case 56:
 YY_RULE_SETUP
-#line 224 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DATAPATTERN); }
+#line 224 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CONFIG); }
 	YY_BREAK
 case 57:
 YY_RULE_SETUP
-#line 225 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DEBUG); }
+#line 225 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CONNECTION); }
 	YY_BREAK
 case 58:
 YY_RULE_SETUP
-#line 226 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DRIVER); }
+#line 226 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(CONNECTIONTYPE); }
 	YY_BREAK
 case 59:
 YY_RULE_SETUP
-#line 227 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DUMP); }
+#line 227 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DATA); }
 	YY_BREAK
 case 60:
 YY_RULE_SETUP
-#line 228 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EMPTY); }
+#line 228 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DATAPATTERN); }
 	YY_BREAK
 case 61:
 YY_RULE_SETUP
-#line 229 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ENCODING); }
+#line 229 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DEBUG); }
 	YY_BREAK
 case 62:
 YY_RULE_SETUP
-#line 230 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(END); }
+#line 230 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DRIVER); }
 	YY_BREAK
 case 63:
 YY_RULE_SETUP
-#line 231 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ERROR); }
+#line 231 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DUMP); }
 	YY_BREAK
 case 64:
 YY_RULE_SETUP
-#line 232 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EXPRESSION); }
+#line 232 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(EMPTY); }
 	YY_BREAK
 case 65:
 YY_RULE_SETUP
-#line 233 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EXTENT); }
+#line 233 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ENCODING); }
 	YY_BREAK
 case 66:
 YY_RULE_SETUP
-#line 234 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(EXTENSION); }
+#line 234 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(END); }
 	YY_BREAK
 case 67:
 YY_RULE_SETUP
-#line 235 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FEATURE); }
+#line 235 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ERROR); }
 	YY_BREAK
 case 68:
 YY_RULE_SETUP
-#line 236 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FILLED); }
+#line 236 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(EXPRESSION); }
 	YY_BREAK
 case 69:
 YY_RULE_SETUP
-#line 237 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FILTER); }
+#line 237 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(EXTENT); }
 	YY_BREAK
 case 70:
 YY_RULE_SETUP
-#line 238 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FILTERITEM); }
+#line 238 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(EXTENSION); }
 	YY_BREAK
 case 71:
 YY_RULE_SETUP
-#line 239 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FOOTER); }
+#line 239 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FEATURE); }
 	YY_BREAK
 case 72:
 YY_RULE_SETUP
-#line 240 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FONT); }
+#line 240 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FILLED); }
 	YY_BREAK
 case 73:
 YY_RULE_SETUP
-#line 241 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FONTSET); }
+#line 241 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FILTER); }
 	YY_BREAK
 case 74:
 YY_RULE_SETUP
-#line 242 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FORCE); }
+#line 242 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FILTERITEM); }
 	YY_BREAK
 case 75:
 YY_RULE_SETUP
-#line 243 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FORMATOPTION); }
+#line 243 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FOOTER); }
 	YY_BREAK
 case 76:
 YY_RULE_SETUP
-#line 244 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(FROM); }
+#line 244 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FONT); }
 	YY_BREAK
 case 77:
 YY_RULE_SETUP
-#line 245 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GAP); }
+#line 245 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FONTSET); }
 	YY_BREAK
 case 78:
 YY_RULE_SETUP
-#line 246 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GEOMTRANSFORM); }
+#line 246 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FORCE); }
 	YY_BREAK
 case 79:
 YY_RULE_SETUP
-#line 247 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GRID); }
+#line 247 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FORMATOPTION); }
 	YY_BREAK
 case 80:
 YY_RULE_SETUP
-#line 248 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GRIDSTEP); }
+#line 248 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(FROM); }
 	YY_BREAK
 case 81:
 YY_RULE_SETUP
-#line 249 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GRATICULE); }
+#line 249 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GAP); }
 	YY_BREAK
 case 82:
 YY_RULE_SETUP
-#line 250 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(GROUP); }
+#line 250 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GEOMTRANSFORM); }
 	YY_BREAK
 case 83:
 YY_RULE_SETUP
-#line 251 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(HEADER); }
+#line 251 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GRID); }
 	YY_BREAK
 case 84:
 YY_RULE_SETUP
-#line 252 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGE); }
+#line 252 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GRIDSTEP); }
 	YY_BREAK
 case 85:
 YY_RULE_SETUP
-#line 253 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGECOLOR); }
+#line 253 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GRATICULE); }
 	YY_BREAK
 case 86:
 YY_RULE_SETUP
-#line 254 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGETYPE); }
+#line 254 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(GROUP); }
 	YY_BREAK
 case 87:
 YY_RULE_SETUP
-#line 255 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEQUALITY); }
+#line 255 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(HEADER); }
 	YY_BREAK
 case 88:
 YY_RULE_SETUP
-#line 256 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEMODE); }
+#line 256 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGE); }
 	YY_BREAK
 case 89:
 YY_RULE_SETUP
-#line 257 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEPATH); }
+#line 257 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGECOLOR); }
 	YY_BREAK
 case 90:
 YY_RULE_SETUP
-#line 258 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEMPPATH); }
+#line 258 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGETYPE); }
 	YY_BREAK
 case 91:
 YY_RULE_SETUP
-#line 259 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(IMAGEURL); }
+#line 259 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGEQUALITY); }
 	YY_BREAK
 case 92:
 YY_RULE_SETUP
-#line 260 "maplexer.l"
-{ BEGIN(INCLUDE); }
+#line 260 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGEMODE); }
 	YY_BREAK
 case 93:
 YY_RULE_SETUP
-#line 261 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INDEX); }
+#line 261 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGEPATH); }
 	YY_BREAK
 case 94:
 YY_RULE_SETUP
-#line 262 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INITIALGAP); }
+#line 262 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TEMPPATH); }
 	YY_BREAK
 case 95:
 YY_RULE_SETUP
-#line 263 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INTERLACE); }
+#line 263 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(IMAGEURL); }
 	YY_BREAK
 case 96:
 YY_RULE_SETUP
-#line 264 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(INTERVALS); } 
+#line 264 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ BEGIN(INCLUDE); }
 	YY_BREAK
 case 97:
 YY_RULE_SETUP
-#line 265 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(JOIN); }
+#line 265 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(INDEX); }
 	YY_BREAK
 case 98:
 YY_RULE_SETUP
-#line 266 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(KEYIMAGE); }
+#line 266 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(INITIALGAP); }
 	YY_BREAK
 case 99:
 YY_RULE_SETUP
-#line 267 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(KEYSIZE); }
+#line 267 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(INTERLACE); }
 	YY_BREAK
 case 100:
 YY_RULE_SETUP
-#line 268 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(KEYSPACING); }
+#line 268 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(INTERVALS); } 
 	YY_BREAK
 case 101:
 YY_RULE_SETUP
-#line 269 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABEL); }
+#line 269 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(JOIN); }
 	YY_BREAK
 case 102:
 YY_RULE_SETUP
-#line 270 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELCACHE); }
+#line 270 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(KEYIMAGE); }
 	YY_BREAK
 case 103:
 YY_RULE_SETUP
-#line 271 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELFORMAT); }
+#line 271 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(KEYSIZE); }
 	YY_BREAK
 case 104:
 YY_RULE_SETUP
-#line 272 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELITEM); }
+#line 272 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(KEYSPACING); }
 	YY_BREAK
 case 105:
 YY_RULE_SETUP
-#line 273 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALE); }
+#line 273 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABEL); }
 	YY_BREAK
 case 106:
 YY_RULE_SETUP
-#line 274 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALEDENOM); }
+#line 274 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELCACHE); }
 	YY_BREAK
 case 107:
 YY_RULE_SETUP
-#line 275 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMINSCALE); }
+#line 275 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELFORMAT); }
 	YY_BREAK
 case 108:
 YY_RULE_SETUP
-#line 276 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELMINSCALEDENOM); }
+#line 276 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELITEM); }
 	YY_BREAK
 case 109:
 YY_RULE_SETUP
-#line 277 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LABELREQUIRES); }
+#line 277 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALE); }
 	YY_BREAK
 case 110:
 YY_RULE_SETUP
-#line 278 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LATLON); }
+#line 278 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELMAXSCALEDENOM); }
 	YY_BREAK
 case 111:
 YY_RULE_SETUP
-#line 279 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LAYER); }
+#line 279 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELMINSCALE); }
 	YY_BREAK
 case 112:
 YY_RULE_SETUP
-#line 280 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LEADER); }
+#line 280 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELMINSCALEDENOM); }
 	YY_BREAK
 case 113:
 YY_RULE_SETUP
-#line 281 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LEGEND); }
+#line 281 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LABELREQUIRES); }
 	YY_BREAK
 case 114:
 YY_RULE_SETUP
-#line 282 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LEGENDFORMAT); }
+#line 282 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LATLON); }
 	YY_BREAK
 case 115:
 YY_RULE_SETUP
-#line 283 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LINECAP); }
+#line 283 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LAYER); }
 	YY_BREAK
 case 116:
 YY_RULE_SETUP
-#line 284 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LINEJOIN); }
+#line 284 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LEADER); }
 	YY_BREAK
 case 117:
 YY_RULE_SETUP
-#line 285 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LINEJOINMAXSIZE); }
+#line 285 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LEGEND); }
 	YY_BREAK
 case 118:
 YY_RULE_SETUP
-#line 286 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(LOG); }
+#line 286 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LEGENDFORMAT); }
 	YY_BREAK
 case 119:
 YY_RULE_SETUP
-#line 287 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAP); }
+#line 287 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LINECAP); }
 	YY_BREAK
 case 120:
 YY_RULE_SETUP
-#line 288 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MARKER); }
+#line 288 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LINEJOIN); }
 	YY_BREAK
 case 121:
 YY_RULE_SETUP
-#line 289 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MARKERSIZE); }
+#line 289 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LINEJOINMAXSIZE); }
 	YY_BREAK
 case 122:
 YY_RULE_SETUP
-#line 290 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MASK); }
+#line 290 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(LOG); }
 	YY_BREAK
 case 123:
 YY_RULE_SETUP
-#line 291 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXARCS); }
+#line 291 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAP); }
 	YY_BREAK
 case 124:
 YY_RULE_SETUP
-#line 292 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXBOXSIZE); }
+#line 292 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MARKER); }
 	YY_BREAK
 case 125:
 YY_RULE_SETUP
-#line 293 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXDISTANCE); }
+#line 293 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MARKERSIZE); }
 	YY_BREAK
 case 126:
 YY_RULE_SETUP
-#line 294 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXFEATURES); }
+#line 294 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MASK); }
 	YY_BREAK
 case 127:
 YY_RULE_SETUP
-#line 295 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXINTERVAL); }
+#line 295 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXARCS); }
 	YY_BREAK
 case 128:
 YY_RULE_SETUP
-#line 296 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSCALE); }
+#line 296 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXBOXSIZE); }
 	YY_BREAK
 case 129:
 YY_RULE_SETUP
-#line 297 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSCALEDENOM); }
+#line 297 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXDISTANCE); }
 	YY_BREAK
 case 130:
 YY_RULE_SETUP
-#line 298 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXGEOWIDTH); }
+#line 298 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXFEATURES); }
 	YY_BREAK
 case 131:
 YY_RULE_SETUP
-#line 299 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXLENGTH); }
+#line 299 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXINTERVAL); }
 	YY_BREAK
 case 132:
 YY_RULE_SETUP
-#line 300 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSIZE); }
+#line 300 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXSCALE); }
 	YY_BREAK
 case 133:
 YY_RULE_SETUP
-#line 301 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXSUBDIVIDE); }
+#line 301 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXSCALEDENOM); }
 	YY_BREAK
 case 134:
 YY_RULE_SETUP
-#line 302 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXTEMPLATE); }
+#line 302 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXGEOWIDTH); }
 	YY_BREAK
 case 135:
 YY_RULE_SETUP
-#line 303 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXWIDTH); }
+#line 303 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXLENGTH); }
 	YY_BREAK
 case 136:
 YY_RULE_SETUP
-#line 304 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(METADATA); }
+#line 304 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXSIZE); }
 	YY_BREAK
 case 137:
 YY_RULE_SETUP
-#line 305 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MIMETYPE); }
+#line 305 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXSUBDIVIDE); }
 	YY_BREAK
 case 138:
 YY_RULE_SETUP
-#line 306 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINARCS); }
+#line 306 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXTEMPLATE); }
 	YY_BREAK
 case 139:
 YY_RULE_SETUP
-#line 307 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINBOXSIZE); }
+#line 307 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXWIDTH); }
 	YY_BREAK
 case 140:
 YY_RULE_SETUP
-#line 308 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINDISTANCE); }
+#line 308 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(METADATA); }
 	YY_BREAK
 case 141:
 YY_RULE_SETUP
-#line 309 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REPEATDISTANCE); }
+#line 309 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MIMETYPE); }
 	YY_BREAK
 case 142:
 YY_RULE_SETUP
-#line 310 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MAXOVERLAPANGLE); } 
+#line 310 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINARCS); }
 	YY_BREAK
 case 143:
 YY_RULE_SETUP
-#line 311 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINFEATURESIZE); }
+#line 311 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINBOXSIZE); }
 	YY_BREAK
 case 144:
 YY_RULE_SETUP
-#line 312 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MININTERVAL); }
+#line 312 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINDISTANCE); }
 	YY_BREAK
 case 145:
 YY_RULE_SETUP
-#line 313 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSCALE); }
+#line 313 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(REPEATDISTANCE); }
 	YY_BREAK
 case 146:
 YY_RULE_SETUP
-#line 314 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSCALEDENOM); }
+#line 314 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MAXOVERLAPANGLE); } 
 	YY_BREAK
 case 147:
 YY_RULE_SETUP
-#line 315 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINGEOWIDTH); }
+#line 315 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINFEATURESIZE); }
 	YY_BREAK
 case 148:
 YY_RULE_SETUP
-#line 316 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINLENGTH); }
+#line 316 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MININTERVAL); }
 	YY_BREAK
 case 149:
 YY_RULE_SETUP
-#line 317 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSIZE); }
+#line 317 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINSCALE); }
 	YY_BREAK
 case 150:
 YY_RULE_SETUP
-#line 318 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINSUBDIVIDE); }
+#line 318 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINSCALEDENOM); }
 	YY_BREAK
 case 151:
 YY_RULE_SETUP
-#line 319 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINTEMPLATE); }
+#line 319 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINGEOWIDTH); }
 	YY_BREAK
 case 152:
 YY_RULE_SETUP
-#line 320 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MINWIDTH); }
+#line 320 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINLENGTH); }
 	YY_BREAK
 case 153:
 YY_RULE_SETUP
-#line 321 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(NAME); }
+#line 321 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINSIZE); }
 	YY_BREAK
 case 154:
 YY_RULE_SETUP
-#line 322 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OFFSET); }
+#line 322 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINSUBDIVIDE); }
 	YY_BREAK
 case 155:
 YY_RULE_SETUP
-#line 323 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OFFSITE); }
+#line 323 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINTEMPLATE); }
 	YY_BREAK
 case 156:
 YY_RULE_SETUP
-#line 324 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OPACITY); }
+#line 324 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MINWIDTH); }
 	YY_BREAK
 case 157:
 YY_RULE_SETUP
-#line 325 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OUTLINECOLOR); }
+#line 325 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(NAME); }
 	YY_BREAK
 case 158:
 YY_RULE_SETUP
-#line 326 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OUTLINEWIDTH); }
+#line 326 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OFFSET); }
 	YY_BREAK
 case 159:
 YY_RULE_SETUP
-#line 327 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OUTPUTFORMAT); }
+#line 327 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OFFSITE); }
 	YY_BREAK
 case 160:
 YY_RULE_SETUP
-#line 328 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYBACKGROUNDCOLOR); }
+#line 328 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OPACITY); }
 	YY_BREAK
 case 161:
 YY_RULE_SETUP
-#line 329 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYCOLOR); }
+#line 329 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OUTLINECOLOR); }
 	YY_BREAK
 case 162:
 YY_RULE_SETUP
-#line 330 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYMAXSIZE); }
+#line 330 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OUTLINEWIDTH); }
 	YY_BREAK
 case 163:
 YY_RULE_SETUP
-#line 331 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYMINSIZE); }
+#line 331 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OUTPUTFORMAT); }
 	YY_BREAK
 case 164:
 YY_RULE_SETUP
-#line 332 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYOUTLINECOLOR); }
+#line 332 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYBACKGROUNDCOLOR); }
 	YY_BREAK
 case 165:
 YY_RULE_SETUP
-#line 333 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYSIZE); }
+#line 333 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYCOLOR); }
 	YY_BREAK
 case 166:
 YY_RULE_SETUP
-#line 334 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(OVERLAYSYMBOL); }
+#line 334 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYMAXSIZE); }
 	YY_BREAK
 case 167:
 YY_RULE_SETUP
-#line 335 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PARTIALS); }
+#line 335 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYMINSIZE); }
 	YY_BREAK
 case 168:
 YY_RULE_SETUP
-#line 336 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PATTERN); }
+#line 336 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYOUTLINECOLOR); }
 	YY_BREAK
 case 169:
 YY_RULE_SETUP
-#line 337 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POINTS); }
+#line 337 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYSIZE); }
 	YY_BREAK
 case 170:
 YY_RULE_SETUP
-#line 338 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(ITEMS); }
+#line 338 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(OVERLAYSYMBOL); }
 	YY_BREAK
 case 171:
 YY_RULE_SETUP
-#line 339 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POSITION); }
+#line 339 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(PARTIALS); }
 	YY_BREAK
 case 172:
 YY_RULE_SETUP
-#line 340 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POSTLABELCACHE); }
+#line 340 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(PATTERN); }
 	YY_BREAK
 case 173:
 YY_RULE_SETUP
-#line 341 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PRIORITY); }
+#line 341 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(POINTS); }
 	YY_BREAK
 case 174:
 YY_RULE_SETUP
-#line 342 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PROCESSING); }
+#line 342 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(ITEMS); }
 	YY_BREAK
 case 175:
 YY_RULE_SETUP
-#line 343 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(PROJECTION); }
+#line 343 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(POSITION); }
 	YY_BREAK
 case 176:
 YY_RULE_SETUP
-#line 344 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(QUERYFORMAT); }
+#line 344 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(POSTLABELCACHE); }
 	YY_BREAK
 case 177:
 YY_RULE_SETUP
-#line 345 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(QUERYMAP); }
+#line 345 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(PRIORITY); }
 	YY_BREAK
 case 178:
 YY_RULE_SETUP
-#line 346 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REFERENCE); }
+#line 346 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(PROCESSING); }
 	YY_BREAK
 case 179:
 YY_RULE_SETUP
-#line 347 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REGION); }
+#line 347 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(PROJECTION); }
 	YY_BREAK
 case 180:
 YY_RULE_SETUP
-#line 348 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(RELATIVETO); }
+#line 348 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(QUERYFORMAT); }
 	YY_BREAK
 case 181:
 YY_RULE_SETUP
-#line 349 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(REQUIRES); }
+#line 349 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(QUERYMAP); }
 	YY_BREAK
 case 182:
 YY_RULE_SETUP
-#line 350 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(RESOLUTION); }
+#line 350 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(REFERENCE); }
 	YY_BREAK
 case 183:
 YY_RULE_SETUP
-#line 351 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(DEFRESOLUTION); }
+#line 351 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(REGION); }
 	YY_BREAK
 case 184:
 YY_RULE_SETUP
-#line 352 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SCALE); }
+#line 352 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(RELATIVETO); }
 	YY_BREAK
 case 185:
 YY_RULE_SETUP
-#line 353 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SCALEDENOM); }
+#line 353 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(REQUIRES); }
 	YY_BREAK
 case 186:
 YY_RULE_SETUP
-#line 354 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SCALEBAR); }
+#line 354 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(RESOLUTION); }
 	YY_BREAK
 case 187:
 YY_RULE_SETUP
-#line 355 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SHADOWCOLOR); }
+#line 355 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(DEFRESOLUTION); }
 	YY_BREAK
 case 188:
 YY_RULE_SETUP
-#line 356 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SHADOWSIZE); }
+#line 356 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SCALE); }
 	YY_BREAK
 case 189:
 YY_RULE_SETUP
-#line 357 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SHAPEPATH); }
+#line 357 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SCALEDENOM); }
 	YY_BREAK
 case 190:
 YY_RULE_SETUP
-#line 358 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SIZE); }
+#line 358 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SCALEBAR); }
 	YY_BREAK
 case 191:
 YY_RULE_SETUP
-#line 359 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SIZEUNITS); }
+#line 359 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SCALETOKEN); }
 	YY_BREAK
 case 192:
 YY_RULE_SETUP
-#line 360 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(STATUS); }
+#line 360 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SHADOWCOLOR); }
 	YY_BREAK
 case 193:
 YY_RULE_SETUP
-#line 361 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(STYLE); }
+#line 361 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SHADOWSIZE); }
 	YY_BREAK
 case 194:
 YY_RULE_SETUP
-#line 362 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(STYLEITEM); }
+#line 362 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SHAPEPATH); }
 	YY_BREAK
 case 195:
 YY_RULE_SETUP
-#line 363 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOL); }
+#line 363 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SIZE); }
 	YY_BREAK
 case 196:
 YY_RULE_SETUP
-#line 364 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALE); }
+#line 364 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SIZEUNITS); }
 	YY_BREAK
 case 197:
 YY_RULE_SETUP
-#line 365 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALEDENOM); }
+#line 365 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(STATUS); }
 	YY_BREAK
 case 198:
 YY_RULE_SETUP
-#line 366 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(SYMBOLSET); }
+#line 366 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(STYLE); }
 	YY_BREAK
 case 199:
 YY_RULE_SETUP
-#line 367 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TABLE); }
+#line 367 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(STYLEITEM); }
 	YY_BREAK
 case 200:
 YY_RULE_SETUP
-#line 368 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEMPLATE); }
+#line 368 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SYMBOL); }
 	YY_BREAK
 case 201:
 YY_RULE_SETUP
-#line 369 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEMPLATEPATTERN); }
+#line 369 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALE); }
 	YY_BREAK
 case 202:
 YY_RULE_SETUP
-#line 370 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TEXT); }
+#line 370 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SYMBOLSCALEDENOM); }
 	YY_BREAK
 case 203:
 YY_RULE_SETUP
-#line 371 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TILEINDEX); }
+#line 371 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(SYMBOLSET); }
 	YY_BREAK
 case 204:
 YY_RULE_SETUP
-#line 372 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TILEITEM); }
+#line 372 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TABLE); }
 	YY_BREAK
 case 205:
 YY_RULE_SETUP
-#line 373 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TITLE); }
+#line 373 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TEMPLATE); }
 	YY_BREAK
 case 206:
 YY_RULE_SETUP
-#line 374 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TO); }
+#line 374 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TEMPLATEPATTERN); }
 	YY_BREAK
 case 207:
 YY_RULE_SETUP
-#line 375 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TOLERANCE); }
+#line 375 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TEXT); }
 	YY_BREAK
 case 208:
 YY_RULE_SETUP
-#line 376 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TOLERANCEUNITS); }
+#line 376 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TILEINDEX); }
 	YY_BREAK
 case 209:
 YY_RULE_SETUP
-#line 377 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TRANSPARENCY); }
+#line 377 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TILEITEM); }
 	YY_BREAK
 case 210:
 YY_RULE_SETUP
-#line 378 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TRANSPARENT); }
+#line 378 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TILESRS); }
 	YY_BREAK
 case 211:
 YY_RULE_SETUP
-#line 379 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TRANSFORM); }
+#line 379 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TITLE); }
 	YY_BREAK
 case 212:
 YY_RULE_SETUP
-#line 380 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(TYPE); }
+#line 380 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TO); }
 	YY_BREAK
 case 213:
 YY_RULE_SETUP
-#line 381 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(UNITS); }
+#line 381 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TOLERANCE); }
 	YY_BREAK
 case 214:
 YY_RULE_SETUP
-#line 382 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(VALIDATION); }
+#line 382 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TOLERANCEUNITS); }
 	YY_BREAK
 case 215:
 YY_RULE_SETUP
-#line 383 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WEB); }
+#line 383 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TRANSPARENCY); }
 	YY_BREAK
 case 216:
 YY_RULE_SETUP
-#line 384 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WIDTH); }
+#line 384 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TRANSPARENT); }
 	YY_BREAK
 case 217:
 YY_RULE_SETUP
-#line 385 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WKT); }
+#line 385 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TRANSFORM); }
 	YY_BREAK
 case 218:
 YY_RULE_SETUP
-#line 386 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(WRAP); }
+#line 386 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(TYPE); }
 	YY_BREAK
 case 219:
 YY_RULE_SETUP
-#line 388 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_ANNOTATION); }
+#line 387 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(UNITS); }
 	YY_BREAK
 case 220:
 YY_RULE_SETUP
-#line 389 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_AUTO); }
+#line 388 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(VALIDATION); }
 	YY_BREAK
 case 221:
 YY_RULE_SETUP
-#line 390 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_AUTO2); }
+#line 389 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(VALUES); }
 	YY_BREAK
 case 222:
 YY_RULE_SETUP
-#line 391 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_BEVEL); }
+#line 390 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(WEB); }
 	YY_BREAK
 case 223:
 YY_RULE_SETUP
-#line 392 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_BITMAP); }
+#line 391 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(WIDTH); }
 	YY_BREAK
 case 224:
 YY_RULE_SETUP
-#line 393 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_BUTT); }
+#line 392 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(WKT); }
 	YY_BREAK
 case 225:
 YY_RULE_SETUP
-#line 394 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CC); }
+#line 393 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(WRAP); }
 	YY_BREAK
 case 226:
 YY_RULE_SETUP
-#line 395 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_CENTER); }
+#line 395 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_ANNOTATION); }
 	YY_BREAK
 case 227:
 YY_RULE_SETUP
-#line 396 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CHART); }
+#line 396 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_AUTO); }
 	YY_BREAK
 case 228:
 YY_RULE_SETUP
-#line 397 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CIRCLE); }
+#line 397 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_AUTO2); }
 	YY_BREAK
 case 229:
 YY_RULE_SETUP
-#line 398 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CL); }
+#line 398 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_BEVEL); }
 	YY_BREAK
 case 230:
 YY_RULE_SETUP
-#line 399 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CR); }
+#line 399 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_BITMAP); }
 	YY_BREAK
 case 231:
 YY_RULE_SETUP
-#line 400 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DB_CSV); }
+#line 400 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_BUTT); }
 	YY_BREAK
 case 232:
 YY_RULE_SETUP
-#line 401 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DB_POSTGRES); }
+#line 401 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CC); }
 	YY_BREAK
 case 233:
 YY_RULE_SETUP
-#line 402 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DB_MYSQL); }
+#line 402 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_CENTER); }
 	YY_BREAK
 case 234:
 YY_RULE_SETUP
-#line 403 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DEFAULT); }
+#line 403 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CHART); }
 	YY_BREAK
 case 235:
 YY_RULE_SETUP
-#line 404 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_DD); }
+#line 404 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_CIRCLE); }
 	YY_BREAK
 case 236:
 YY_RULE_SETUP
-#line 405 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_ELLIPSE); }
+#line 405 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CL); }
 	YY_BREAK
 case 237:
 YY_RULE_SETUP
-#line 406 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_EMBED); }
+#line 406 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CR); }
 	YY_BREAK
 case 238:
 YY_RULE_SETUP
-#line 407 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_FALSE); }
+#line 407 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_DB_CSV); }
 	YY_BREAK
 case 239:
 YY_RULE_SETUP
-#line 408 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_FEET); }
+#line 408 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_DB_POSTGRES); }
 	YY_BREAK
 case 240:
 YY_RULE_SETUP
-#line 409 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_FOLLOW); }
+#line 409 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_DB_MYSQL); }
 	YY_BREAK
 case 241:
 YY_RULE_SETUP
-#line 410 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_GIANT); }
+#line 410 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_DEFAULT); }
 	YY_BREAK
 case 242:
 YY_RULE_SETUP
-#line 411 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_HATCH); }
+#line 411 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_DD); }
 	YY_BREAK
 case 243:
 YY_RULE_SETUP
-#line 412 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_HILITE); }
+#line 412 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_ELLIPSE); }
 	YY_BREAK
 case 244:
 YY_RULE_SETUP
-#line 413 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_INCHES); }
+#line 413 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_EMBED); }
 	YY_BREAK
 case 245:
 YY_RULE_SETUP
-#line 414 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_KILOMETERS); }
+#line 414 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_FALSE); }
 	YY_BREAK
 case 246:
 YY_RULE_SETUP
-#line 415 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LARGE); }
+#line 415 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_FEET); }
 	YY_BREAK
 case 247:
 YY_RULE_SETUP
-#line 416 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LC); }
+#line 416 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_FOLLOW); }
 	YY_BREAK
 case 248:
 YY_RULE_SETUP
-#line 417 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_LEFT); }
+#line 417 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_GIANT); }
 	YY_BREAK
 case 249:
 YY_RULE_SETUP
-#line 418 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_LINE); }
+#line 418 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_HATCH); }
 	YY_BREAK
 case 250:
 YY_RULE_SETUP
-#line 419 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LL); }
+#line 419 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_HILITE); }
 	YY_BREAK
 case 251:
 YY_RULE_SETUP
-#line 420 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LR); }
+#line 420 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_INCHES); }
 	YY_BREAK
 case 252:
 YY_RULE_SETUP
-#line 421 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_MEDIUM); }
+#line 421 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_KILOMETERS); }
 	YY_BREAK
 case 253:
 YY_RULE_SETUP
-#line 422 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_METERS); }
+#line 422 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LARGE); }
 	YY_BREAK
 case 254:
 YY_RULE_SETUP
-#line 423 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_NAUTICALMILES); }
+#line 423 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LC); }
 	YY_BREAK
 case 255:
 YY_RULE_SETUP
-#line 424 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_MILES); }
+#line 424 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_LEFT); }
 	YY_BREAK
 case 256:
 YY_RULE_SETUP
-#line 425 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_MITER); }
+#line 425 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_LINE); }
 	YY_BREAK
 case 257:
 YY_RULE_SETUP
-#line 426 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_MULTIPLE); }
+#line 426 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LL); }
 	YY_BREAK
 case 258:
 YY_RULE_SETUP
-#line 427 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_NONE); }
+#line 427 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LR); }
 	YY_BREAK
 case 259:
 YY_RULE_SETUP
-#line 428 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_NORMAL); }
+#line 428 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_MEDIUM); }
 	YY_BREAK
 case 260:
 YY_RULE_SETUP
-#line 429 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_OFF); }
+#line 429 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_METERS); }
 	YY_BREAK
 case 261:
 YY_RULE_SETUP
-#line 430 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_OGR); }
+#line 430 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_NAUTICALMILES); }
 	YY_BREAK
 case 262:
 YY_RULE_SETUP
-#line 431 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ON); }
+#line 431 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_MILES); }
 	YY_BREAK
 case 263:
 YY_RULE_SETUP
-#line 432 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_ONE); }
+#line 432 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_MITER); }
 	YY_BREAK
 case 264:
 YY_RULE_SETUP
-#line 433 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_MANY); }
+#line 433 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_MULTIPLE); }
 	YY_BREAK
 case 265:
 YY_RULE_SETUP
-#line 434 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ORACLESPATIAL); }
+#line 434 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_NONE); }
 	YY_BREAK
 case 266:
 YY_RULE_SETUP
-#line 435 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_PERCENTAGES); }
+#line 435 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_NORMAL); }
 	YY_BREAK
 case 267:
 YY_RULE_SETUP
-#line 436 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_PIXMAP); }
+#line 436 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_OFF); }
 	YY_BREAK
 case 268:
 YY_RULE_SETUP
-#line 437 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_PIXELS); }
+#line 437 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_OGR); }
 	YY_BREAK
 case 269:
 YY_RULE_SETUP
-#line 438 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POINT); }
+#line 438 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_ON); }
 	YY_BREAK
 case 270:
 YY_RULE_SETUP
-#line 439 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POLYGON); }
+#line 439 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_ONE); }
 	YY_BREAK
 case 271:
 YY_RULE_SETUP
-#line 440 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_POSTGIS); }
+#line 440 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_JOIN_ONE_TO_MANY); }
 	YY_BREAK
 case 272:
 YY_RULE_SETUP
-#line 441 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_PLUGIN); }
+#line 441 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_ORACLESPATIAL); }
 	YY_BREAK
 case 273:
 YY_RULE_SETUP
-#line 442 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_QUERY); }
+#line 442 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_PERCENTAGES); }
 	YY_BREAK
 case 274:
 YY_RULE_SETUP
-#line 443 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_LAYER_RASTER); }
+#line 443 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_PIXMAP); }
 	YY_BREAK
 case 275:
 YY_RULE_SETUP
-#line 444 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_RIGHT); }
+#line 444 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_PIXELS); }
 	YY_BREAK
 case 276:
 YY_RULE_SETUP
-#line 445 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_ROUND); }
+#line 445 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POINT); }
 	YY_BREAK
 case 277:
 YY_RULE_SETUP
-#line 446 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SDE); }
+#line 446 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_POLYGON); }
 	YY_BREAK
 case 278:
 YY_RULE_SETUP
-#line 447 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SELECTED); }
+#line 447 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_POSTGIS); }
 	YY_BREAK
 case 279:
 YY_RULE_SETUP
-#line 448 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SIMPLE); }
+#line 448 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_PLUGIN); }
 	YY_BREAK
 case 280:
 YY_RULE_SETUP
-#line 449 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SINGLE); }
+#line 449 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_QUERY); }
 	YY_BREAK
 case 281:
 YY_RULE_SETUP
-#line 450 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SMALL); }
+#line 450 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_LAYER_RASTER); }
 	YY_BREAK
 case 282:
 YY_RULE_SETUP
-#line 451 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_SQUARE); }
+#line 451 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_ALIGN_RIGHT); }
 	YY_BREAK
 case 283:
 YY_RULE_SETUP
-#line 452 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SVG); }
+#line 452 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_ROUND); }
 	YY_BREAK
 case 284:
 YY_RULE_SETUP
-#line 453 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(POLAROFFSET); }
+#line 453 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SDE); }
 	YY_BREAK
 case 285:
 YY_RULE_SETUP
-#line 454 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TINY); }
+#line 454 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SELECTED); }
 	YY_BREAK
 case 286:
 YY_RULE_SETUP
-#line 455 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_CJC_TRIANGLE); }
+#line 455 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SIMPLE); }
 	YY_BREAK
 case 287:
 YY_RULE_SETUP
-#line 456 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TRUE); }
+#line 456 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SINGLE); }
 	YY_BREAK
 case 288:
 YY_RULE_SETUP
-#line 457 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_TRUETYPE); }
+#line 457 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SMALL); }
 	YY_BREAK
 case 289:
 YY_RULE_SETUP
-#line 458 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UC); }
+#line 458 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_SQUARE); }
 	YY_BREAK
 case 290:
 YY_RULE_SETUP
-#line 459 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UL); }
+#line 459 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_SVG); }
 	YY_BREAK
 case 291:
 YY_RULE_SETUP
-#line 460 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UR); }
+#line 460 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(POLAROFFSET); }
 	YY_BREAK
 case 292:
 YY_RULE_SETUP
-#line 461 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UNION); }
+#line 461 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TINY); }
 	YY_BREAK
 case 293:
 YY_RULE_SETUP
-#line 462 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_UVRASTER); }
+#line 462 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CJC_TRIANGLE); }
 	YY_BREAK
 case 294:
 YY_RULE_SETUP
-#line 463 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_VECTOR); }
+#line 463 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TRUE); }
 	YY_BREAK
 case 295:
 YY_RULE_SETUP
-#line 464 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_WFS); }
+#line 464 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_TRUETYPE); }
 	YY_BREAK
 case 296:
 YY_RULE_SETUP
-#line 465 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_WMS); }
+#line 465 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_UC); }
 	YY_BREAK
 case 297:
 YY_RULE_SETUP
-#line 466 "maplexer.l"
-{ MS_LEXER_RETURN_TOKEN(MS_GD_ALPHA); }
+#line 466 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_UL); }
 	YY_BREAK
 case 298:
 YY_RULE_SETUP
-#line 468 "maplexer.l"
+#line 467 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_UR); }
+	YY_BREAK
+case 299:
+YY_RULE_SETUP
+#line 468 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_UNION); }
+	YY_BREAK
+case 300:
+YY_RULE_SETUP
+#line 469 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_UVRASTER); }
+	YY_BREAK
+case 301:
+YY_RULE_SETUP
+#line 470 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_CONTOUR); }
+	YY_BREAK
+case 302:
+YY_RULE_SETUP
+#line 471 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_SYMBOL_VECTOR); }
+	YY_BREAK
+case 303:
+YY_RULE_SETUP
+#line 472 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_WFS); }
+	YY_BREAK
+case 304:
+YY_RULE_SETUP
+#line 473 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_WMS); }
+	YY_BREAK
+case 305:
+YY_RULE_SETUP
+#line 474 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ MS_LEXER_RETURN_TOKEN(MS_GD_ALPHA); }
+	YY_BREAK
+case 306:
+YY_RULE_SETUP
+#line 476 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -3949,9 +4066,9 @@ YY_RULE_SETUP
                                                  return(MS_STRING);
                                                }
 	YY_BREAK
-case 299:
+case 307:
 YY_RULE_SETUP
-#line 476 "maplexer.l"
+#line 484 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -3962,10 +4079,10 @@ YY_RULE_SETUP
                                                  return(MS_NUMBER);
                                                }
 	YY_BREAK
-case 300:
-/* rule 300 can match eol */
+case 308:
+/* rule 308 can match eol */
 YY_RULE_SETUP
-#line 486 "maplexer.l"
+#line 494 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -3975,18 +4092,34 @@ YY_RULE_SETUP
                                                  return(MS_BINDING);
                                                }
 	YY_BREAK
-case 301:
+case 309:
 YY_RULE_SETUP
-#line 495 "maplexer.l"
+#line 503 "/home/even/mapserver/git/mapserver/maplexer.l"
 { 
   /* attribute binding - shape (fixed value) */
   return(MS_TOKEN_BINDING_SHAPE);
 }
 	YY_BREAK
-case 302:
-/* rule 302 can match eol */
+case 310:
 YY_RULE_SETUP
-#line 499 "maplexer.l"
+#line 507 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ 
+  /* attribute binding - map cellsize */
+  return(MS_TOKEN_BINDING_MAP_CELLSIZE);
+}
+	YY_BREAK
+case 311:
+YY_RULE_SETUP
+#line 511 "/home/even/mapserver/git/mapserver/maplexer.l"
+{ 
+  /* attribute binding - data cellsize */
+  return(MS_TOKEN_BINDING_DATA_CELLSIZE);
+}
+	YY_BREAK
+case 312:
+/* rule 312 can match eol */
+YY_RULE_SETUP
+#line 515 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
   /* attribute binding - numeric (no quotes) */
   msyytext++;
@@ -3997,10 +4130,10 @@ YY_RULE_SETUP
   return(MS_TOKEN_BINDING_DOUBLE);
 }
 	YY_BREAK
-case 303:
-/* rule 303 can match eol */
+case 313:
+/* rule 313 can match eol */
 YY_RULE_SETUP
-#line 508 "maplexer.l"
+#line 524 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
   /* attribute binding - string (single or double quotes) */
   msyytext+=2;
@@ -4011,10 +4144,10 @@ YY_RULE_SETUP
   return(MS_TOKEN_BINDING_STRING);
 }
 	YY_BREAK
-case 304:
-/* rule 304 can match eol */
+case 314:
+/* rule 314 can match eol */
 YY_RULE_SETUP
-#line 517 "maplexer.l"
+#line 533 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
   /* attribute binding - time */
   msyytext+=2;
@@ -4025,9 +4158,9 @@ YY_RULE_SETUP
   return(MS_TOKEN_BINDING_TIME);
 }
 	YY_BREAK
-case 305:
+case 315:
 YY_RULE_SETUP
-#line 527 "maplexer.l"
+#line 543 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
   MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), 
                           msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4036,9 +4169,9 @@ YY_RULE_SETUP
   return(MS_NUMBER); 
 }
 	YY_BREAK
-case 306:
+case 316:
 YY_RULE_SETUP
-#line 535 "maplexer.l"
+#line 551 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
   MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), 
                           msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4047,10 +4180,10 @@ YY_RULE_SETUP
   return(MS_TOKEN_LITERAL_NUMBER);
 }
 	YY_BREAK
-case 307:
-/* rule 307 can match eol */
+case 317:
+/* rule 317 can match eol */
 YY_RULE_SETUP
-#line 543 "maplexer.l"
+#line 559 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
   msyytext++;
   msyytext[strlen(msyytext)-1] = '\0';
@@ -4060,10 +4193,10 @@ YY_RULE_SETUP
   return(MS_TOKEN_LITERAL_TIME);
 }
 	YY_BREAK
-case 308:
-/* rule 308 can match eol */
+case 318:
+/* rule 318 can match eol */
 YY_RULE_SETUP
-#line 552 "maplexer.l"
+#line 568 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-2] = '\0';
@@ -4073,10 +4206,10 @@ YY_RULE_SETUP
                                                  return(MS_IREGEX);
                                                }
 	YY_BREAK
-case 309:
-/* rule 309 can match eol */
+case 319:
+/* rule 319 can match eol */
 YY_RULE_SETUP
-#line 561 "maplexer.l"
+#line 577 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -4086,9 +4219,9 @@ YY_RULE_SETUP
                                                  return(MS_REGEX);
                                                }
 	YY_BREAK
-case 310:
+case 320:
 YY_RULE_SETUP
-#line 570 "maplexer.l"
+#line 586 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -4098,9 +4231,21 @@ YY_RULE_SETUP
                                                  return(MS_EXPRESSION);
                                                }
 	YY_BREAK
-case 311:
+case 321:
 YY_RULE_SETUP
-#line 579 "maplexer.l"
+#line 595 "/home/even/mapserver/git/mapserver/maplexer.l"
+{
+                                                 msyytext++;
+                                                 msyytext[strlen(msyytext)-1] = '\0';
+                                                 MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), 
+                                                                         msyystring_buffer_size, msyystring_buffer_ptr);
+                                                 strcpy(msyystring_buffer, msyytext);
+                                                 return(MS_LIST);
+                                               }
+	YY_BREAK
+case 322:
+YY_RULE_SETUP
+#line 604 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                  msyystring_return_state = MS_STRING;
                                                  msyystring_begin = msyytext[0]; 
@@ -4109,9 +4254,9 @@ YY_RULE_SETUP
                                                  BEGIN(MSSTRING);
                                               }
 	YY_BREAK
-case 312:
+case 323:
 YY_RULE_SETUP
-#line 587 "maplexer.l"
+#line 612 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                 MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, 
                                                                                            msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4142,9 +4287,9 @@ YY_RULE_SETUP
                                                 }
                                               }
 	YY_BREAK
-case 313:
+case 324:
 YY_RULE_SETUP
-#line 617 "maplexer.l"
+#line 642 "/home/even/mapserver/git/mapserver/maplexer.l"
 { 
                                                 MS_LEXER_STRING_REALLOC(msyystring_buffer, msyystring_size, 
                                                                                            msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4156,10 +4301,10 @@ YY_RULE_SETUP
                                                     *msyystring_buffer_ptr++ = msyytext[0];
                                              }
 	YY_BREAK
-case 314:
-/* rule 314 can match eol */
+case 325:
+/* rule 325 can match eol */
 YY_RULE_SETUP
-#line 628 "maplexer.l"
+#line 653 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                  char *yptr = msyytext;
                                                  while ( *yptr ) { 
@@ -4170,10 +4315,10 @@ YY_RULE_SETUP
                                                  }
                                              }
 	YY_BREAK
-case 315:
-/* rule 315 can match eol */
+case 326:
+/* rule 326 can match eol */
 YY_RULE_SETUP
-#line 638 "maplexer.l"
+#line 663 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                  msyytext++;
                                                  msyytext[strlen(msyytext)-1] = '\0';
@@ -4199,9 +4344,9 @@ YY_RULE_SETUP
                                                  BEGIN(INITIAL);
                                                }
 	YY_BREAK
-case 316:
+case 327:
 YY_RULE_SETUP
-#line 663 "maplexer.l"
+#line 688 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                  msyystring_return_state = MS_TOKEN_LITERAL_STRING;
                                                  msyystring_begin = msyytext[0]; 
@@ -4210,9 +4355,9 @@ YY_RULE_SETUP
                                                  BEGIN(MSSTRING);
                                               }
 	YY_BREAK
-case 317:
+case 328:
 YY_RULE_SETUP
-#line 671 "maplexer.l"
+#line 696 "/home/even/mapserver/git/mapserver/maplexer.l"
 { 
                                                     MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), 
                                                                             msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4220,14 +4365,14 @@ YY_RULE_SETUP
                                                     return(MS_STRING); 
                                                 }
 	YY_BREAK
-case 318:
-/* rule 318 can match eol */
+case 329:
+/* rule 329 can match eol */
 YY_RULE_SETUP
-#line 678 "maplexer.l"
+#line 703 "/home/even/mapserver/git/mapserver/maplexer.l"
 { msyylineno++; }
 	YY_BREAK
 case YY_STATE_EOF(INITIAL):
-#line 680 "maplexer.l"
+#line 705 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
                                                   if( --include_stack_ptr < 0 )
                                                     return(EOF); /* end of main file */
@@ -4239,17 +4384,17 @@ case YY_STATE_EOF(INITIAL):
                                                   }
                                                 }
 	YY_BREAK
-case 319:
-/* rule 319 can match eol */
+case 330:
+/* rule 330 can match eol */
 YY_RULE_SETUP
-#line 691 "maplexer.l"
+#line 716 "/home/even/mapserver/git/mapserver/maplexer.l"
 {
   return(0); 
 }
 	YY_BREAK
-case 320:
+case 331:
 YY_RULE_SETUP
-#line 695 "maplexer.l"
+#line 720 "/home/even/mapserver/git/mapserver/maplexer.l"
 { 
                                                   MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), 
                                                                           msyystring_buffer_size, msyystring_buffer_ptr);
@@ -4257,17 +4402,17 @@ YY_RULE_SETUP
                                                   return(0); 
                                                 }
 	YY_BREAK
-case 321:
+case 332:
 YY_RULE_SETUP
-#line 701 "maplexer.l"
+#line 726 "/home/even/mapserver/git/mapserver/maplexer.l"
 { return(msyytext[0]); }
 	YY_BREAK
-case 322:
+case 333:
 YY_RULE_SETUP
-#line 702 "maplexer.l"
+#line 727 "/home/even/mapserver/git/mapserver/maplexer.l"
 ECHO;
 	YY_BREAK
-#line 4271 "maplexer.c"
+#line 4416 "/home/even/mapserver/git/mapserver/maplexer.c"
 case YY_STATE_EOF(URL_VARIABLE):
 case YY_STATE_EOF(URL_STRING):
 case YY_STATE_EOF(EXPRESSION_STRING):
@@ -4457,7 +4602,7 @@ static int yy_get_next_buffer (void)
 
 	else
 		{
-			yy_size_t num_to_read =
+			int num_to_read =
 			YY_CURRENT_BUFFER_LVALUE->yy_buf_size - number_to_move - 1;
 
 		while ( num_to_read <= 0 )
@@ -4471,7 +4616,7 @@ static int yy_get_next_buffer (void)
 
 			if ( b->yy_is_our_buffer )
 				{
-				yy_size_t new_size = b->yy_buf_size * 2;
+				int new_size = b->yy_buf_size * 2;
 
 				if ( new_size <= 0 )
 					b->yy_buf_size += b->yy_buf_size / 8;
@@ -4502,7 +4647,7 @@ static int yy_get_next_buffer (void)
 
 		/* Read in more data. */
 		YY_INPUT( (&YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[number_to_move]),
-			(yy_n_chars), num_to_read );
+			(yy_n_chars), (size_t) num_to_read );
 
 		YY_CURRENT_BUFFER_LVALUE->yy_n_chars = (yy_n_chars);
 		}
@@ -4554,7 +4699,7 @@ static int yy_get_next_buffer (void)
 
 	for ( yy_cp = (yytext_ptr) + YY_MORE_ADJ; yy_cp < (yy_c_buf_p); ++yy_cp )
 		{
-		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 82);
+		register YY_CHAR yy_c = (*yy_cp ? yy_ec[YY_SC_TO_UI(*yy_cp)] : 84);
 		if ( yy_accept[yy_current_state] )
 			{
 			(yy_last_accepting_state) = yy_current_state;
@@ -4563,7 +4708,7 @@ static int yy_get_next_buffer (void)
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 1858 )
+			if ( yy_current_state >= 1930 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -4582,7 +4727,7 @@ static int yy_get_next_buffer (void)
 	register int yy_is_jam;
     	register char *yy_cp = (yy_c_buf_p);
 
-	register YY_CHAR yy_c = 82;
+	register YY_CHAR yy_c = 84;
 	if ( yy_accept[yy_current_state] )
 		{
 		(yy_last_accepting_state) = yy_current_state;
@@ -4591,11 +4736,11 @@ static int yy_get_next_buffer (void)
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 1858 )
+		if ( yy_current_state >= 1930 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 1857);
+	yy_is_jam = (yy_current_state == 1929);
 
 	return yy_is_jam ? 0 : yy_current_state;
 }
@@ -4612,7 +4757,7 @@ static int yy_get_next_buffer (void)
 	if ( yy_cp < YY_CURRENT_BUFFER_LVALUE->yy_ch_buf + 2 )
 		{ /* need to shift things up to make room */
 		/* +2 for EOB chars. */
-		register yy_size_t number_to_move = (yy_n_chars) + 2;
+		register int number_to_move = (yy_n_chars) + 2;
 		register char *dest = &YY_CURRENT_BUFFER_LVALUE->yy_ch_buf[
 					YY_CURRENT_BUFFER_LVALUE->yy_buf_size + 2];
 		register char *source =
@@ -4661,7 +4806,7 @@ static int yy_get_next_buffer (void)
 
 		else
 			{ /* need more input */
-			yy_size_t offset = (yy_c_buf_p) - (yytext_ptr);
+			int offset = (yy_c_buf_p) - (yytext_ptr);
 			++(yy_c_buf_p);
 
 			switch ( yy_get_next_buffer(  ) )
@@ -4685,7 +4830,7 @@ static int yy_get_next_buffer (void)
 				case EOB_ACT_END_OF_FILE:
 					{
 					if ( msyywrap( ) )
-						return 0;
+						return EOF;
 
 					if ( ! (yy_did_buffer_switch_on_eof) )
 						YY_NEW_FILE;
@@ -4937,7 +5082,7 @@ void msyypop_buffer_state (void)
  */
 static void msyyensure_buffer_stack (void)
 {
-	yy_size_t num_to_alloc;
+	int num_to_alloc;
     
 	if (!(yy_buffer_stack)) {
 
@@ -5029,16 +5174,17 @@ YY_BUFFER_STATE msyy_scan_string (yyconst char * yystr )
 
 /** Setup the input buffer state to scan the given bytes. The next call to msyylex() will
  * scan from a @e copy of @a bytes.
- * @param bytes the byte buffer to scan
- * @param len the number of bytes in the buffer pointed to by @a bytes.
+ * @param yybytes the byte buffer to scan
+ * @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
  * 
  * @return the newly allocated buffer state object.
  */
-YY_BUFFER_STATE msyy_scan_bytes  (yyconst char * yybytes, yy_size_t  _yybytes_len )
+YY_BUFFER_STATE msyy_scan_bytes  (yyconst char * yybytes, int  _yybytes_len )
 {
 	YY_BUFFER_STATE b;
 	char *buf;
-	yy_size_t n, i;
+	yy_size_t n;
+	int i;
     
 	/* Get memory for full buffer, including space for trailing EOB's. */
 	n = _yybytes_len + 2;
@@ -5120,7 +5266,7 @@ FILE *msyyget_out  (void)
 /** Get the length of the current token.
  * 
  */
-yy_size_t msyyget_leng  (void)
+int msyyget_leng  (void)
 {
         return msyyleng;
 }
@@ -5268,7 +5414,7 @@ void msyyfree (void * ptr )
 
 #define YYTABLES_NAME "yytables"
 
-#line 702 "maplexer.l"
+#line 727 "/home/even/mapserver/git/mapserver/maplexer.l"
 
 
 
@@ -5282,7 +5428,7 @@ int msyywrap() /* override */
 }
 
 int msyyerror(char *s) {
-  msSetError(MS_PARSEERR, s, "msyyparse()");
+  msSetError(MS_PARSEERR, "%s", "msyyparse()", s);
   return(0);
 }
 
diff --git a/maplexer.l b/maplexer.l
index 8a8c402..7f7f574 100644
--- a/maplexer.l
+++ b/maplexer.l
@@ -185,6 +185,10 @@ char path[MS_MAXPATHLEN];
 
 <EXPRESSION_STRING>buffer                      { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_BUFFER); }
 <EXPRESSION_STRING>difference                  { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_DIFFERENCE); }
+<EXPRESSION_STRING>simplify                    { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SIMPLIFY); }
+<EXPRESSION_STRING>simplifypt                  { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SIMPLIFYPT); }
+<EXPRESSION_STRING>generalize                  { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_GENERALIZE); }
+<EXPRESSION_STRING>smoothsia                   { MS_LEXER_RETURN_TOKEN(MS_TOKEN_FUNCTION_SMOOTHSIA); }
 
 <EXPRESSION_STRING>intersects                  { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_INTERSECTS); }
 <EXPRESSION_STRING>disjoint                    { MS_LEXER_RETURN_TOKEN(MS_TOKEN_COMPARISON_DISJOINT); }
@@ -352,6 +356,7 @@ char path[MS_MAXPATHLEN];
 <INITIAL>scale                                 { MS_LEXER_RETURN_TOKEN(SCALE); }
 <INITIAL>scaledenom                            { MS_LEXER_RETURN_TOKEN(SCALEDENOM); }
 <INITIAL,URL_VARIABLE>scalebar                 { MS_LEXER_RETURN_TOKEN(SCALEBAR); }
+<INITIAL>scaletoken                            { MS_LEXER_RETURN_TOKEN(SCALETOKEN); }
 <INITIAL,URL_STRING>shadowcolor                { MS_LEXER_RETURN_TOKEN(SHADOWCOLOR); }
 <INITIAL,URL_STRING>shadowsize                 { MS_LEXER_RETURN_TOKEN(SHADOWSIZE); }
 <INITIAL>shapepath                             { MS_LEXER_RETURN_TOKEN(SHAPEPATH); }
@@ -370,6 +375,7 @@ char path[MS_MAXPATHLEN];
 <INITIAL,URL_STRING>text                       { MS_LEXER_RETURN_TOKEN(TEXT); }
 <INITIAL,URL_STRING>tileindex                  { MS_LEXER_RETURN_TOKEN(TILEINDEX); }
 <INITIAL,URL_STRING>tileitem                   { MS_LEXER_RETURN_TOKEN(TILEITEM); }
+<INITIAL,URL_STRING>tilesrs                    { MS_LEXER_RETURN_TOKEN(TILESRS); }
 <INITIAL,URL_STRING>title                      { MS_LEXER_RETURN_TOKEN(TITLE); }
 <INITIAL>to                                    { MS_LEXER_RETURN_TOKEN(TO); }
 <INITIAL,URL_STRING>tolerance                  { MS_LEXER_RETURN_TOKEN(TOLERANCE); }
@@ -380,6 +386,7 @@ char path[MS_MAXPATHLEN];
 <INITIAL>type                                  { MS_LEXER_RETURN_TOKEN(TYPE); }
 <INITIAL,URL_VARIABLE,URL_STRING>units         { MS_LEXER_RETURN_TOKEN(UNITS); }
 <INITIAL>validation                            { MS_LEXER_RETURN_TOKEN(VALIDATION); }
+<INITIAL>values                                { MS_LEXER_RETURN_TOKEN(VALUES); }
 <INITIAL,URL_VARIABLE>web                      { MS_LEXER_RETURN_TOKEN(WEB); }
 <INITIAL,URL_STRING>width                      { MS_LEXER_RETURN_TOKEN(WIDTH); }
 <INITIAL,URL_STRING>wkt                        { MS_LEXER_RETURN_TOKEN(WKT); }
@@ -460,6 +467,7 @@ char path[MS_MAXPATHLEN];
 <INITIAL,URL_STRING>ur                         { MS_LEXER_RETURN_TOKEN(MS_UR); }
 <INITIAL>union                                 { MS_LEXER_RETURN_TOKEN(MS_UNION); }
 <INITIAL>uvraster                              { MS_LEXER_RETURN_TOKEN(MS_UVRASTER); }
+<INITIAL>contour                               { MS_LEXER_RETURN_TOKEN(MS_CONTOUR); }
 <INITIAL>vector                                { MS_LEXER_RETURN_TOKEN(MS_SYMBOL_VECTOR); }
 <INITIAL>wfs                                   { MS_LEXER_RETURN_TOKEN(MS_WFS); }
 <INITIAL>wms                                   { MS_LEXER_RETURN_TOKEN(MS_WMS); }
@@ -496,6 +504,14 @@ char path[MS_MAXPATHLEN];
   /* attribute binding - shape (fixed value) */
   return(MS_TOKEN_BINDING_SHAPE);
 }
+<EXPRESSION_STRING>\[map_cellsize\] { 
+  /* attribute binding - map cellsize */
+  return(MS_TOKEN_BINDING_MAP_CELLSIZE);
+}
+<EXPRESSION_STRING>\[data_cellsize\] { 
+  /* attribute binding - data cellsize */
+  return(MS_TOKEN_BINDING_DATA_CELLSIZE);
+}
 <EXPRESSION_STRING>\[[^\]]*\] {
   /* attribute binding - numeric (no quotes) */
   msyytext++;
@@ -576,6 +592,15 @@ char path[MS_MAXPATHLEN];
                                                  return(MS_EXPRESSION);
                                                }
 
+<INITIAL,URL_STRING>\{.*\}                     {
+                                                 msyytext++;
+                                                 msyytext[strlen(msyytext)-1] = '\0';
+                                                 MS_LEXER_STRING_REALLOC(msyystring_buffer, strlen(msyytext), 
+                                                                         msyystring_buffer_size, msyystring_buffer_ptr);
+                                                 strcpy(msyystring_buffer, msyytext);
+                                                 return(MS_LIST);
+                                               }
+
 <INITIAL,URL_STRING>\'|\"                     {
                                                  msyystring_return_state = MS_STRING;
                                                  msyystring_begin = msyytext[0]; 
@@ -711,6 +736,6 @@ int msyywrap() /* override */
 }
 
 int msyyerror(char *s) {
-  msSetError(MS_PARSEERR, s, "msyyparse()");
+  msSetError(MS_PARSEERR, "%s", "msyyparse()", s);
   return(0);
 }
diff --git a/mapogcfilter.c b/mapogcfilter.c
index 940fac0..ad14159 100644
--- a/mapogcfilter.c
+++ b/mapogcfilter.c
@@ -28,6 +28,7 @@
 
 
 #define _GNU_SOURCE
+#include "mapserver-config.h"
 
 #ifdef USE_OGR
 #include "cpl_minixml.h"
@@ -384,34 +385,27 @@ int FLTParseEpsgString(char *pszEpsg, projectionObj *psProj)
   int nTokens = 0;
   char **tokens = NULL;
   int nEpsgTmp=0;
-  size_t bufferSize = 0;
 
 #ifdef USE_PROJ
   if (pszEpsg && psProj) {
     nTokens = 0;
-    tokens = msStringSplit(pszEpsg,'#', &nTokens);
-    if (tokens && nTokens == 2) {
-      char *szTmp;
-      bufferSize = 10+strlen(tokens[1])+1;
-      szTmp = (char *)malloc(bufferSize);
-      snprintf(szTmp, bufferSize, "init=epsg:%s", tokens[1]);
-      msInitProjection(psProj);
-      if (msLoadProjectionString(psProj, szTmp) == 0)
-        nStatus = MS_TRUE;
-      free(szTmp);
-    } else if (tokens &&  nTokens == 1) {
-      if (tokens)
-        msFreeCharArray(tokens, nTokens);
-      nTokens = 0;
 
+    /* There are several forms an epsg code may be given. In any case the */
+    /* epsg code is the last token.                                       */
+    /* TODO: To make sure it is an epsg code check the string, too.       */
+    /*  - urn:ogc:def:crs:EPSG:6.5:4326                                   */
+    /*  - urn:ogc:def:crs:EPSG::4326                                      */
+    /*  - http://www.opengis.net/gml/srs/epsg.xml#4326                    */
+    /*  - epsg:4326                                                       */
+    tokens = msStringSplit(pszEpsg,'#', &nTokens);
+    if( tokens && nTokens == 1 ) {
+      msFreeCharArray(tokens, nTokens);
       tokens = msStringSplit(pszEpsg,':', &nTokens);
-      nEpsgTmp = -1;
-      if (tokens &&  nTokens == 1) {
-        nEpsgTmp = atoi(tokens[0]);
+    }
+
+    if (tokens && nTokens > 1) {
+      nEpsgTmp = atoi(tokens[nTokens-1]);
 
-      } else if (tokens &&  nTokens == 2) {
-        nEpsgTmp = atoi(tokens[1]);
-      }
       if (nEpsgTmp > 0) {
         char szTmp[32];
         snprintf(szTmp, sizeof(szTmp), "init=epsg:%d",nEpsgTmp);
@@ -420,6 +414,7 @@ int FLTParseEpsgString(char *pszEpsg, projectionObj *psProj)
           nStatus = MS_TRUE;
       }
     }
+
     if (tokens)
       msFreeCharArray(tokens, nTokens);
   }
@@ -503,14 +498,11 @@ int FLTApplySimpleSQLFilter(FilterEncodingNode *psNode, mapObj *map,
   char *szExpression = NULL;
   rectObj sQueryRect = map->extent;
   char *szEPSG = NULL;
-  char **tokens = NULL;
-  int nTokens = 0, nEpsgTmp = 0;
   projectionObj sProjTmp;
   char *pszBuffer = NULL;
   int bConcatWhere = 0;
   int bHasAWhere =0;
   char *pszTmp = NULL, *pszTmp2 = NULL;
-  size_t bufferSize = 0;
   char *tmpfilename = NULL;
 
   lp = (GET_LAYER(map, iLayerIndex));
@@ -518,43 +510,10 @@ int FLTApplySimpleSQLFilter(FilterEncodingNode *psNode, mapObj *map,
   /* if there is a bbox use it */
   szEPSG = FLTGetBBOX(psNode, &sQueryRect);
   if(szEPSG && map->projection.numargs > 0) {
-#ifdef USE_PROJ
-    nTokens = 0;
-    tokens = msStringSplit(szEPSG,'#', &nTokens);
-    if (tokens && nTokens == 2) {
-      char *szTmp;
-      bufferSize = 10+strlen(tokens[1])+1;
-      szTmp = (char *)malloc(bufferSize);
-      snprintf(szTmp, bufferSize, "init=epsg:%s",tokens[1]);
-      msInitProjection(&sProjTmp);
-      if (msLoadProjectionString(&sProjTmp, szTmp) == 0)
-        msProjectRect(&sProjTmp, &map->projection,  &sQueryRect);
-      free(szTmp);
-    } else if (tokens &&  nTokens == 1) {
-      if (tokens)
-        msFreeCharArray(tokens, nTokens);
-      nTokens = 0;
-
-      tokens = msStringSplit(szEPSG,':', &nTokens);
-      nEpsgTmp = -1;
-      if (tokens &&  nTokens == 1) {
-        nEpsgTmp = atoi(tokens[0]);
-
-      } else if (tokens &&  nTokens == 2) {
-        nEpsgTmp = atoi(tokens[1]);
-      }
-      if (nEpsgTmp > 0) {
-        char szTmp[32];
-        snprintf(szTmp, sizeof(szTmp), "init=epsg:%d",nEpsgTmp);
-        msInitProjection(&sProjTmp);
-        if (msLoadProjectionString(&sProjTmp, szTmp) == 0)
-          msProjectRect(&sProjTmp, &map->projection,  &sQueryRect);
-        msFreeProjection(&sProjTmp);
-      }
+    if (FLTParseEpsgString(szEPSG, &sProjTmp)) {
+      msProjectRect(&sProjTmp, &map->projection, &sQueryRect);
+      msFreeProjection(&sProjTmp);
     }
-    if (tokens)
-      msFreeCharArray(tokens, nTokens);
-#endif
   }
 
   /* make sure that the layer can be queried*/
@@ -648,7 +607,7 @@ int FLTApplySimpleSQLFilter(FilterEncodingNode *psNode, mapObj *map,
     }
     if (tmpfilename) {
       msSaveMap(map,tmpfilename);
-      msDebug("FLTApplySimpleSQLFilter(): Map file after Filter was applied %s", tmpfilename);
+      msDebug("FLTApplySimpleSQLFilter(): Map file after Filter was applied %s\n", tmpfilename);
       msFree(tmpfilename);
     }
   }
@@ -775,6 +734,8 @@ int FLTLayerApplyPlainFilterToLayer(FilterEncodingNode *psNode, mapObj *map,
   int status =MS_FALSE;
 
   pszExpression = FLTGetCommonExpression(psNode,  GET_LAYER(map, iLayerIndex));
+  if(map->debug == MS_DEBUGLEVEL_VVV)
+    msDebug("FLTLayerApplyPlainFilterToLayer(): %s\n", pszExpression);
   if (pszExpression) {
     status = FLTApplyFilterToLayerCommonExpression(map, iLayerIndex, pszExpression);
     msFree(pszExpression);
@@ -1206,11 +1167,10 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
             bPolygon = 1;
           else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "Box")))
             bPolygon = 1;
-          else {
-            psGMLElement= CPLGetXMLNode(psXMLNode, "LineString");
-            if (psGMLElement)
-              bLine = 1;
-          }
+          else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "LineString")))
+            bLine = 1;
+          else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiPoint")))
+            bPoint = 1;
         }
 
         psDistance = CPLGetXMLNode(psXMLNode, "Distance");
@@ -1277,18 +1237,14 @@ void FLTInsertElementInNode(FilterEncodingNode *psFilterNode,
           bPolygon = 1;
         else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "Box")))
           bPolygon = 1;
-        else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "LineString"))) {
-          if (psGMLElement)
-            bLine = 1;
-        }
-
-        else {
-          psGMLElement = CPLGetXMLNode(psXMLNode, "Point");
-          if (!psGMLElement)
-            psGMLElement =  CPLGetXMLNode(psXMLNode, "PointType");
-          if (psGMLElement)
-            bPoint =1;
-        }
+        else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "LineString")))
+          bLine = 1;
+        else if ((psGMLElement= CPLGetXMLNode(psXMLNode, "MultiPoint")))
+          bPoint = 1;
+        else if ((psGMLElement = CPLGetXMLNode(psXMLNode, "Point")))
+          bPoint = 1;
+        else if ((psGMLElement = CPLGetXMLNode(psXMLNode, "PointType")))
+          bPoint = 1;
 
         if (psGMLElement) {
           psShape = (shapeObj *)msSmallMalloc(sizeof(shapeObj));
diff --git a/mapogcfilter.h b/mapogcfilter.h
index b06c9ec..d516823 100644
--- a/mapogcfilter.h
+++ b/mapogcfilter.h
@@ -122,6 +122,7 @@ MS_DLL_EXPORT int FLTIsSimpleFilter(FilterEncodingNode *psFilterNode);
 
 MS_DLL_EXPORT FilterEncodingNode *FLTCreateFeatureIdFilterEncoding(char *pszString);
 
+MS_DLL_EXPORT int FLTParseEpsgString(char *pszEpsg, projectionObj *psProj);
 MS_DLL_EXPORT int FLTParseGMLEnvelope(CPLXMLNode *psRoot, rectObj *psBbox, char **ppszSRS);
 MS_DLL_EXPORT  int FLTParseGMLBox(CPLXMLNode *psBox, rectObj *psBbox, char **ppszSRS);
 
diff --git a/mapogcfiltercommon.c b/mapogcfiltercommon.c
index cdd6abc..7d00d74 100644
--- a/mapogcfiltercommon.c
+++ b/mapogcfiltercommon.c
@@ -38,51 +38,6 @@
 
 #ifdef USE_OGR
 
-static int FTLParseEpsgString(char *pszEpsg, projectionObj *psProj)
-{
-  int nStatus = MS_FALSE;
-  int nTokens = 0;
-  char **tokens = NULL;
-  int nEpsgTmp=0;
-
-#ifdef USE_PROJ
-  if (pszEpsg && psProj) {
-    nTokens = 0;
-    tokens = msStringSplit(pszEpsg,'#', &nTokens);
-    if (tokens && nTokens == 2) {
-      char szTmp[32];
-      sprintf(szTmp, "init=epsg:%s",tokens[1]);
-      msInitProjection(psProj);
-      if (msLoadProjectionString(psProj, szTmp) == 0)
-        nStatus = MS_TRUE;
-    } else if (tokens &&  nTokens == 1) {
-      if (tokens)
-        msFreeCharArray(tokens, nTokens);
-      nTokens = 0;
-
-      tokens = msStringSplit(pszEpsg,':', &nTokens);
-      nEpsgTmp = -1;
-      if (tokens &&  nTokens == 1) {
-        nEpsgTmp = atoi(tokens[0]);
-
-      } else if (tokens &&  nTokens == 2) {
-        nEpsgTmp = atoi(tokens[1]);
-      }
-      if (nEpsgTmp > 0) {
-        char szTmp[32];
-        sprintf(szTmp, "init=epsg:%d",nEpsgTmp);
-        msInitProjection(psProj);
-        if (msLoadProjectionString(psProj, szTmp) == 0)
-          nStatus = MS_TRUE;
-      }
-    }
-    if (tokens)
-      msFreeCharArray(tokens, nTokens);
-  }
-#endif
-  return nStatus;
-}
-
 char *FLTGetIsLikeComparisonCommonExpression(FilterEncodingNode *psFilterNode)
 {
   const size_t bufferSize = 1024;
@@ -527,11 +482,14 @@ char *FLTGetSpatialComparisonCommonExpression(FilterEncodingNode *psNode, layerO
 
   if (psTmpShape) {
     if( lp->projection.numargs > 0) {
-      if (psNode->pszSRS && FTLParseEpsgString(psNode->pszSRS, &sProjTmp)) {
+      if (psNode->pszSRS)
+        msInitProjection(&sProjTmp);
+      if (psNode->pszSRS && FLTParseEpsgString(psNode->pszSRS, &sProjTmp)) {
         msProjectShape(&sProjTmp, &lp->projection, psTmpShape);
-        msFreeProjection(&sProjTmp);
       } else if (lp->map->projection.numargs > 0)
         msProjectShape(&lp->map->projection, &lp->projection, psTmpShape);
+      if (psNode->pszSRS)
+        msFreeProjection(&sProjTmp);
     }
     /* ==================================================================== */
     /*      use within for bbox. Not Disjoint does not work.                */
diff --git a/mapogcsld.c b/mapogcsld.c
index 654175c..1152c7c 100644
--- a/mapogcsld.c
+++ b/mapogcsld.c
@@ -77,23 +77,35 @@ int msSLDApplySLDURL(mapObj *map, char *szURL, int iLayer,
     if (pszSLDTmpFile == NULL) {
       pszSLDTmpFile = msTmpFile(map, NULL, NULL, "sld.xml" );
     }
-    if (msHTTPGetFile(szURL, pszSLDTmpFile, &status,-1, 0, 0) ==  MS_SUCCESS) {
-      if ((fp = fopen(pszSLDTmpFile, "rb")) != NULL) {
-        int   nBufsize=0;
-        fseek(fp, 0, SEEK_END);
-        nBufsize = ftell(fp);
-        rewind(fp);
-        pszSLDbuf = (char*)malloc((nBufsize+1)*sizeof(char));
-        fread(pszSLDbuf, 1, nBufsize, fp);
-        fclose(fp);
-        pszSLDbuf[nBufsize] = '\0';
+    if (pszSLDTmpFile == NULL) {
+      msSetError(MS_WMSERR, "Could not determine temporary file %s. Please make sure that the temporary path is set. The temporary path can be defined for example by setting TMPPATH in the map file. Please check the MapServer documentation on temporary path settings.", "msSLDApplySLDURL()", pszSLDTmpFile);
+    } else {
+      int nMaxRemoteSLDBytes;
+      const char *pszMaxRemoteSLDBytes = msOWSLookupMetadata(&(map->web.metadata), "MO", "remote_sld_max_bytes");
+      if(!pszMaxRemoteSLDBytes) {
+    	  nMaxRemoteSLDBytes = 1024*1024; /* 1 megaByte */
+      } else {
+    	  nMaxRemoteSLDBytes = atoi(pszMaxRemoteSLDBytes);
+      }
+      if (msHTTPGetFile(szURL, pszSLDTmpFile, &status,-1, 0, 0, nMaxRemoteSLDBytes) ==  MS_SUCCESS) {
+        if ((fp = fopen(pszSLDTmpFile, "rb")) != NULL) {
+          int   nBufsize=0;
+          fseek(fp, 0, SEEK_END);
+          nBufsize = ftell(fp);
+          rewind(fp);
+          pszSLDbuf = (char*)malloc((nBufsize+1)*sizeof(char));
+          fread(pszSLDbuf, 1, nBufsize, fp);
+          fclose(fp);
+          pszSLDbuf[nBufsize] = '\0';
+          unlink(pszSLDTmpFile);
+        }
+      } else {
         unlink(pszSLDTmpFile);
+        msSetError(MS_WMSERR, "Could not open SLD %s and save it in a temporary file. Please make sure that the sld url is valid and that the temporary path is set. The temporary path can be defined for example by setting TMPPATH in the map file. Please check the MapServer documentation on temporary path settings.", "msSLDApplySLDURL", szURL);
       }
-    } else {
-      msSetError(MS_WMSERR, "Could not open SLD %s and save it in temporary file %s. Please make sure that the sld url is valid and that the temporary path is set. The temporary path can be defined for example by setting TMPPATH in the map file. Please check the MapServer documentation on temporary path settings.", "msSLDApplySLDURL", szURL, pszSLDTmpFile);
+      if (pszSLDbuf)
+        nStatus = msSLDApplySLD(map, pszSLDbuf, iLayer, pszStyleLayerName, ppszLayerNames);
     }
-    if (pszSLDbuf)
-      nStatus = msSLDApplySLD(map, pszSLDbuf, iLayer, pszStyleLayerName, ppszLayerNames);
   }
 
   return nStatus;
@@ -161,11 +173,12 @@ int msSLDApplySLD(mapObj *map, char *psSLDXML, int iLayer,
       layerObj *psTmpLayer=NULL;
       int nIndex;
       char tmpId[128];
+      nIndex = msGetLayerIndex(map, pasLayers[m].name);
+      if(pasLayers[m].name == NULL) continue;
       for (l=0; l<nLayers; l++) {
-        if(pasLayers[m].name == NULL || pasLayers[l].name == NULL)
+        if(pasLayers[l].name == NULL)
           continue;
 
-        nIndex = msGetLayerIndex(map, pasLayers[m].name);
 
         if (m !=l && strcasecmp(pasLayers[m].name, pasLayers[l].name)== 0 &&
             nIndex != -1) {
@@ -613,20 +626,20 @@ layerObj  *msSLDParseSLD(mapObj *map, char *psSLDXML, int *pnLayers)
 }
 
 
-int _msSLDParseSizeParameter(CPLXMLNode *psSize)
+double _msSLDParseSizeParameter(CPLXMLNode *psSize)
 {
-  int nSize = 0;
+  double dSize = 0;
   CPLXMLNode *psLiteral = NULL;
 
   if (psSize) {
     psLiteral = CPLGetXMLNode(psSize, "Literal");
     if (psLiteral && psLiteral->psChild && psLiteral->psChild->pszValue)
-      nSize = atof(psLiteral->psChild->pszValue);
+      dSize = atof(psLiteral->psChild->pszValue);
     else if (psSize->psChild && psSize->psChild->pszValue)
-      nSize = atof(psSize->psChild->pszValue);
+      dSize = atof(psSize->psChild->pszValue);
   }
 
-  return nSize;
+  return dSize;
 }
 
 /************************************************************************/
diff --git a/mapogcsos.c b/mapogcsos.c
index 274405f..43a321a 100644
--- a/mapogcsos.c
+++ b/mapogcsos.c
@@ -1164,7 +1164,7 @@ int msSOSGetCapabilities(mapObj *map, sosParamsObj *sosparams, cgiRequestObj *re
       iVersion = msOWSParseVersionString(tokens[i]);
 
       if (iVersion == -1) {
-        msSetError(MS_SOSERR, "Invalid version format.", "msSOSGetCapabilities()", tokens[i]);
+        msSetError(MS_SOSERR, "Invalid version format : %s.", "msSOSGetCapabilities()", tokens[i]);
         msFreeCharArray(tokens, j);
         return msSOSException(map, "acceptversions", "VersionNegotiationFailed");
       }
@@ -2127,13 +2127,14 @@ this request. Check sos/ows_enable_request settings.", "msSOSGetObservation()",
 
       if (tokens && n > 0) {
         for (k=0; k<n; k++) {
-          if (strcasecmp(sosparams->pszSrsName, tokens[k]) == 0) { /* match */
+          if (strncasecmp(tokens[k], "EPSG:", strlen("EPSG:")) == 0 &&
+              strcasecmp(sosparams->pszSrsName, tokens[k]) == 0) { /* match */
             bFound = 1;
 
             /* project MAP.EXTENT to this SRS */
             msInitProjection(&po);
 
-            snprintf(srsbuffer, sizeof(srsbuffer), "+init=epsg:%.20s", sosparams->pszSrsName+5);
+            snprintf(srsbuffer, sizeof(srsbuffer), "+init=epsg:%.20s", sosparams->pszSrsName+strlen("EPSG:"));
 
             if (msLoadProjectionString(&po, srsbuffer) != 0) {
               msSetError(MS_SOSERR, "Could not set output projection to \"%s\"", "msSOSGetObservation()", sosparams->pszSrsName);
diff --git a/mapogr.cpp b/mapogr.cpp
index 18d83ba..7f51961 100644
--- a/mapogr.cpp
+++ b/mapogr.cpp
@@ -494,7 +494,19 @@ int msOGRGeometryToShape(OGRGeometryH hGeometry, shapeObj *psShape,
 #define MSOGR_LABELHCOLORINDEX     -119
 #define MSOGR_LABELOCOLORNAME      "OGR:LabelOColor"
 #define MSOGR_LABELOCOLORINDEX     -120
-
+// Special codes for the OGR style parameters
+#define MSOGR_LABELPARAMNAME       "OGR:LabelParam"
+#define MSOGR_LABELPARAMNAMELEN    14
+#define MSOGR_LABELPARAMINDEX      -500
+#define MSOGR_BRUSHPARAMNAME       "OGR:BrushParam"
+#define MSOGR_BRUSHPARAMNAMELEN    14
+#define MSOGR_BRUSHPARAMINDEX      -600
+#define MSOGR_PENPARAMNAME         "OGR:PenParam"
+#define MSOGR_PENPARAMNAMELEN      12
+#define MSOGR_PENPARAMINDEX        -700
+#define MSOGR_SYMBOLPARAMNAME      "OGR:SymbolParam"
+#define MSOGR_SYMBOLPARAMNAMELEN   15
+#define MSOGR_SYMBOLPARAMINDEX     -800
 
 /**********************************************************************
  *                     msOGRGetValues()
@@ -527,6 +539,9 @@ static char **msOGRGetValues(layerObj *layer, OGRFeatureH hFeature)
 
   OGRStyleMgrH  hStyleMgr = NULL;
   OGRStyleToolH hLabelStyle = NULL;
+  OGRStyleToolH hPenStyle = NULL;
+  OGRStyleToolH hBrushStyle = NULL;
+  OGRStyleToolH hSymbolStyle = NULL;
 
   int *itemindexes = (int*)layer->iteminfo;
 
@@ -539,17 +554,27 @@ static char **msOGRGetValues(layerObj *layer, OGRFeatureH hFeature)
       if (!hStyleMgr) {
         hStyleMgr = OGR_SM_Create(NULL);
         OGR_SM_InitFromFeature(hStyleMgr, hFeature);
-        OGRStyleToolH hStylePart = OGR_SM_GetPart(hStyleMgr, 0, NULL);
-        if (hStylePart && OGR_ST_GetType(hStylePart) == OGRSTCLabel)
-          hLabelStyle = hStylePart;
-        else if (hStylePart) {
-          OGR_ST_Destroy(hStylePart);
-          hStylePart =  NULL;
+        int numParts = OGR_SM_GetPartCount(hStyleMgr, NULL);
+        for(int i=0; i<numParts; i++) {
+          OGRStyleToolH hStylePart = OGR_SM_GetPart(hStyleMgr, i, NULL);
+          if (hStylePart) {
+            if (OGR_ST_GetType(hStylePart) == OGRSTCLabel && !hLabelStyle)
+              hLabelStyle = hStylePart;
+            else if (OGR_ST_GetType(hStylePart) == OGRSTCPen && !hPenStyle)
+              hPenStyle = hStylePart;
+            else if (OGR_ST_GetType(hStylePart) == OGRSTCBrush && !hBrushStyle)
+              hBrushStyle = hStylePart;
+            else if (OGR_ST_GetType(hStylePart) == OGRSTCSymbol && !hSymbolStyle)
+              hSymbolStyle = hStylePart;
+            else {
+              OGR_ST_Destroy(hStylePart);
+              hStylePart =  NULL;
+            }
+          }
+          /* Setting up the size units according to msOGRLayerGetAutoStyle*/
+          if (hStylePart && layer->map)
+            OGR_ST_SetUnit(hStylePart, OGRSTUPixel, layer->map->cellsize*72.0*39.37);
         }
-
-        /* Setting up the size units according to msOGRLayerGetAutoStyle*/
-        if (hStylePart && layer->map)
-          OGR_ST_SetUnit(hStylePart, OGRSTUPixel, layer->map->cellsize*72.0*39.37);
       }
       int bDefault;
       if (itemindexes[i] == MSOGR_LABELTEXTINDEX) {
@@ -787,6 +812,54 @@ static char **msOGRGetValues(layerObj *layer, OGRFeatureH hFeature)
           msDebug(MSOGR_LABELOCOLORNAME " = \"%s\"\n", values[i]);
       }
 #endif /* GDAL_VERSION_NUM >= 1600 */
+      else if (itemindexes[i] >= MSOGR_LABELPARAMINDEX) {
+        if (hLabelStyle == NULL
+            || ((pszValue = OGR_ST_GetParamStr(hLabelStyle,
+                                               itemindexes[i] - MSOGR_LABELPARAMINDEX,
+                                               &bDefault)) == NULL))
+          values[i] = msStrdup("");
+        else
+          values[i] = msStrdup(pszValue);
+
+        if (layer->debug >= MS_DEBUGLEVEL_VVV)
+          msDebug(MSOGR_LABELPARAMNAME " = \"%s\"\n", values[i]);
+      }
+      else if (itemindexes[i] >= MSOGR_BRUSHPARAMINDEX) {
+        if (hBrushStyle == NULL
+            || ((pszValue = OGR_ST_GetParamStr(hBrushStyle,
+                                               itemindexes[i] - MSOGR_BRUSHPARAMINDEX,
+                                               &bDefault)) == NULL))
+          values[i] = msStrdup("");
+        else
+          values[i] = msStrdup(pszValue);
+
+        if (layer->debug >= MS_DEBUGLEVEL_VVV)
+          msDebug(MSOGR_BRUSHPARAMNAME " = \"%s\"\n", values[i]);
+      }
+      else if (itemindexes[i] >= MSOGR_PENPARAMINDEX) {
+        if (hPenStyle == NULL
+            || ((pszValue = OGR_ST_GetParamStr(hPenStyle,
+                                               itemindexes[i] - MSOGR_PENPARAMINDEX,
+                                               &bDefault)) == NULL))
+          values[i] = msStrdup("");
+        else
+          values[i] = msStrdup(pszValue);
+
+        if (layer->debug >= MS_DEBUGLEVEL_VVV)
+          msDebug(MSOGR_PENPARAMNAME " = \"%s\"\n", values[i]);
+      }
+      else if (itemindexes[i] >= MSOGR_SYMBOLPARAMINDEX) {
+        if (hSymbolStyle == NULL
+            || ((pszValue = OGR_ST_GetParamStr(hSymbolStyle,
+                                               itemindexes[i] - MSOGR_SYMBOLPARAMINDEX,
+                                               &bDefault)) == NULL))
+          values[i] = msStrdup("");
+        else
+          values[i] = msStrdup(pszValue);
+
+        if (layer->debug >= MS_DEBUGLEVEL_VVV)
+          msDebug(MSOGR_SYMBOLPARAMNAME " = \"%s\"\n", values[i]);
+      }
       else {
         msSetError(MS_OGRERR,"Invalid field index!?!","msOGRGetValues()");
         return(NULL);
@@ -796,6 +869,9 @@ static char **msOGRGetValues(layerObj *layer, OGRFeatureH hFeature)
 
   OGR_SM_Destroy(hStyleMgr);
   OGR_ST_Destroy(hLabelStyle);
+  OGR_ST_Destroy(hPenStyle);
+  OGR_ST_Destroy(hBrushStyle);
+  OGR_ST_Destroy(hSymbolStyle);
 
   return(values);
 }
@@ -1522,7 +1598,7 @@ msOGRFileNextShape(layerObj *layer, shapeObj *shape,
           break; // Shape is ready to be returned!
 
         if (layer->debug >= MS_DEBUGLEVEL_VVV)
-          msDebug("msOGRFileNextShape: Rejecting feature (shapeid = %d, tileid=%d) of incompatible type for this layer (feature wkbType %d, layer type %d)\n",
+          msDebug("msOGRFileNextShape: Rejecting feature (shapeid = %ld, tileid=%d) of incompatible type for this layer (feature wkbType %d, layer type %d)\n",
                   OGR_F_GetFID( hFeature ), psInfo->nTileId,
                   OGR_F_GetGeometryRef( hFeature )==NULL ? wkbFlatten(wkbUnknown):wkbFlatten( OGR_G_GetGeometryType( OGR_F_GetGeometryRef( hFeature ) ) ),
                   layer->type);
@@ -1545,7 +1621,7 @@ msOGRFileNextShape(layerObj *layer, shapeObj *shape,
   shape->tileindex = psInfo->nTileId;
 
   if (layer->debug >= MS_DEBUGLEVEL_VVV)
-    msDebug("msOGRFileNextShape: Returning shape=%d, tile=%d\n",
+    msDebug("msOGRFileNextShape: Returning shape=%ld, tile=%d\n",
             shape->index, shape->tileindex );
 
   // Keep ref. to last feature read in case we need style info.
@@ -1843,6 +1919,13 @@ int msOGRLayerOpen(layerObj *layer, const char *pszOverrideConnection)
     if( layer->layerinfo == NULL )
       return MS_FAILURE;
 
+    if( layer->tilesrs != NULL ) {
+      msSetError(MS_OGRERR,
+                 "TILESRS not supported in vector layers.",
+                 "msOGRLayerOpen()");
+      return MS_FAILURE;
+    }
+
     // Identify TILEITEM
 
     OGRFeatureDefnH hDefn = OGR_L_GetLayerDefn( psInfo->hLayer );
@@ -2148,13 +2231,25 @@ static int msOGRLayerInitItemInfo(layerObj *layer)
     else if (EQUAL(layer->items[i], MSOGR_LABELOCOLORNAME))
       itemindexes[i] = MSOGR_LABELOCOLORINDEX;
 #endif /* GDAL_VERSION_NUM >= 1600 */
+    else if (EQUALN(layer->items[i], MSOGR_LABELPARAMNAME, MSOGR_LABELPARAMNAMELEN))
+        itemindexes[i] = MSOGR_LABELPARAMINDEX 
+                          + atoi(layer->items[i] + MSOGR_LABELPARAMNAMELEN);
+    else if (EQUALN(layer->items[i], MSOGR_BRUSHPARAMNAME, MSOGR_BRUSHPARAMNAMELEN))
+        itemindexes[i] = MSOGR_BRUSHPARAMINDEX 
+                          + atoi(layer->items[i] + MSOGR_BRUSHPARAMNAMELEN);
+    else if (EQUALN(layer->items[i], MSOGR_PENPARAMNAME, MSOGR_PENPARAMNAMELEN))
+        itemindexes[i] = MSOGR_PENPARAMINDEX 
+                          + atoi(layer->items[i] + MSOGR_PENPARAMNAMELEN);
+    else if (EQUALN(layer->items[i], MSOGR_SYMBOLPARAMNAME, MSOGR_SYMBOLPARAMNAMELEN))
+        itemindexes[i] = MSOGR_SYMBOLPARAMINDEX 
+                          + atoi(layer->items[i] + MSOGR_SYMBOLPARAMNAMELEN);
     else
       itemindexes[i] = OGR_FD_GetFieldIndex( hDefn, layer->items[i] );
     if(itemindexes[i] == -1) {
       msSetError(MS_OGRERR,
-                 (char*)CPLSPrintf("Invalid Field name: %s",
-                                   layer->items[i]),
-                 "msOGRLayerInitItemInfo()");
+                 "Invalid Field name: %s",
+                 "msOGRLayerInitItemInfo()",
+                 layer->items[i]);
       return(MS_FAILURE);
     }
   }
diff --git a/mapogroutput.c b/mapogroutput.c
index d6b63e2..a0949d9 100644
--- a/mapogroutput.c
+++ b/mapogroutput.c
@@ -46,7 +46,7 @@
 #ifdef USE_OGR
 
 /************************************************************************/
-/*                       msInitOGROutputFormat()                        */
+/*                   msInitDefaultOGROutputFormat()                     */
 /************************************************************************/
 
 int msInitDefaultOGROutputFormat( outputFormatObj *format )
@@ -64,13 +64,13 @@ int msInitDefaultOGROutputFormat( outputFormatObj *format )
   hDriver = OGRGetDriverByName( format->driver+4 );
   if( hDriver == NULL ) {
     msSetError( MS_MISCERR, "No OGR driver named `%s' available.",
-                "msInitOGROutputFormat()", format->driver+4 );
+                "msInitDefaultOGROutputFormat()", format->driver+4 );
     return MS_FAILURE;
   }
 
   if( !OGR_Dr_TestCapability( hDriver, ODrCCreateDataSource ) ) {
     msSetError( MS_MISCERR, "OGR `%s' driver does not support output.",
-                "msInitOGROutputFormat()", format->driver+4 );
+                "msInitDefaultOGROutputFormat()", format->driver+4 );
     return MS_FAILURE;
   }
 
@@ -193,6 +193,36 @@ static void msOGRCleanupDS( const char *datasource_name )
 }
 
 /************************************************************************/
+/*                          msOGRSetPoints()                            */
+/************************************************************************/
+
+static void msOGRSetPoints( OGRGeometryH hGeom, lineObj *line, int bWant2DOutput)
+{
+    int i;
+    if( bWant2DOutput )
+    {
+      for( i = 0; i < line->numpoints; i++ ) {
+        OGR_G_SetPoint_2D( hGeom, i,
+                           line->point[i].x,
+                           line->point[i].y );
+      }
+    }
+    else {
+      for( i = 0; i < line->numpoints; i++ ) {
+        OGR_G_SetPoint( hGeom, i,
+                        line->point[i].x,
+                        line->point[i].y,
+#ifdef USE_POINT_Z_M
+                        line->point[i].z
+#else
+                        0.0
+#endif
+                      );
+      }
+    }
+}
+
+/************************************************************************/
 /*                          msOGRWriteShape()                           */
 /************************************************************************/
 
@@ -204,11 +234,14 @@ static int msOGRWriteShape( layerObj *map_layer, OGRLayerH hOGRLayer,
   OGRFeatureH hFeat;
   OGRErr eErr;
   int i, out_field;
-  OGRwkbGeometryType eLayerGType, eFeatureGType = wkbUnknown;
+  OGRwkbGeometryType eLayerGType, eFlattenLayerGType;
   OGRFeatureDefnH hLayerDefn;
+  int bWant2DOutput;
 
   hLayerDefn = OGR_L_GetLayerDefn( hOGRLayer );
   eLayerGType = OGR_FD_GetGeomType(hLayerDefn);
+  eFlattenLayerGType = wkbFlatten(eLayerGType);
+  bWant2DOutput = (eLayerGType == eFlattenLayerGType);
 
   /* -------------------------------------------------------------------- */
   /*      Transform point geometry.                                       */
@@ -236,15 +269,22 @@ static int msOGRWriteShape( layerObj *map_layer, OGRLayerH hOGRLayer,
       }
 
       hGeom = OGR_G_CreateGeometry( wkbPoint );
-      OGR_G_SetPoint( hGeom, 0,
-                      shape->line[j].point[0].x,
-                      shape->line[j].point[0].y,
+      if( bWant2DOutput ) {
+        OGR_G_SetPoint_2D( hGeom, 0,
+                           shape->line[j].point[0].x,
+                           shape->line[j].point[0].y );
+      }
+      else {
+        OGR_G_SetPoint( hGeom, 0,
+                        shape->line[j].point[0].x,
+                        shape->line[j].point[0].y,
 #ifdef USE_POINT_Z_M
-                      shape->line[j].point[0].z
+                        shape->line[j].point[0].z
 #else
-                      0.0
+                        0.0
 #endif
-                    );
+                        );
+      }
 
       if( hMP != NULL ) {
         OGR_G_AddGeometryDirectly( hMP, hGeom );
@@ -273,17 +313,7 @@ static int msOGRWriteShape( layerObj *map_layer, OGRLayerH hOGRLayer,
     for( j = 0; j < shape->numlines; j++ ) {
       hGeom = OGR_G_CreateGeometry( wkbLineString );
 
-      for( i = 0; i < shape->line[j].numpoints; i++ ) {
-        OGR_G_SetPoint( hGeom, i,
-                        shape->line[j].point[i].x,
-                        shape->line[j].point[i].y,
-#ifdef USE_POINT_Z_M
-                        shape->line[j].point[i].z
-#else
-                        0.0
-#endif
-                      );
-      }
+      msOGRSetPoints( hGeom, &(shape->line[j]), bWant2DOutput);
 
       if( hML != NULL ) {
         OGR_G_AddGeometryDirectly( hML, hGeom );
@@ -323,17 +353,7 @@ static int msOGRWriteShape( layerObj *map_layer, OGRLayerH hOGRLayer,
 
       hRing = OGR_G_CreateGeometry( wkbLinearRing );
 
-      for( i = 0; i < shape->line[iOuter].numpoints; i++ ) {
-        OGR_G_SetPoint( hRing, i,
-                        shape->line[iOuter].point[i].x,
-                        shape->line[iOuter].point[i].y,
-#ifdef USE_POINT_Z_M
-                        shape->line[iOuter].point[i].z
-#else
-                        0.0
-#endif
-                      );
-      }
+      msOGRSetPoints( hRing, &(shape->line[iOuter]), bWant2DOutput);
 
       OGR_G_AddGeometryDirectly( hGeom, hRing );
 
@@ -347,17 +367,7 @@ static int msOGRWriteShape( layerObj *map_layer, OGRLayerH hOGRLayer,
 
         hRing = OGR_G_CreateGeometry( wkbLinearRing );
 
-        for( i = 0; i < shape->line[iRing].numpoints; i++ ) {
-          OGR_G_SetPoint( hRing, i,
-                          shape->line[iRing].point[i].x,
-                          shape->line[iRing].point[i].y,
-#ifdef USE_POINT_Z_M
-                          shape->line[iRing].point[i].z
-#else
-                          0.0
-#endif
-                        );
-        }
+        msOGRSetPoints( hRing, &(shape->line[iRing]), bWant2DOutput);
 
         OGR_G_AddGeometryDirectly( hGeom, hRing );
       }
@@ -381,49 +391,39 @@ static int msOGRWriteShape( layerObj *map_layer, OGRLayerH hOGRLayer,
   /*      Consider trying to force the geometry to a new type if it       */
   /*      doesn't match the layer.                                        */
   /* -------------------------------------------------------------------- */
-  eLayerGType =
-    wkbFlatten(OGR_FD_GetGeomType(hLayerDefn));
-
-  if( hGeom != NULL )
-    eFeatureGType = wkbFlatten(OGR_G_GetGeometryType( hGeom ));
-
 #if defined(GDAL_VERSION_NUM) && (GDAL_VERSION_NUM >= 1800)
+  if( hGeom != NULL ) {
+    OGRwkbGeometryType eFlattenFeatureGType =
+        wkbFlatten(OGR_G_GetGeometryType( hGeom ));
 
-  if( hGeom != NULL
-      && eLayerGType == wkbPolygon
-      && eFeatureGType != eLayerGType )
-    hGeom = OGR_G_ForceToPolygon( hGeom );
-
-  else if( hGeom != NULL
-           && eLayerGType == wkbMultiPolygon
-           && eFeatureGType != eLayerGType )
-    hGeom = OGR_G_ForceToMultiPolygon( hGeom );
+    if( eFlattenFeatureGType != eFlattenLayerGType ) {
+      if( eFlattenLayerGType == wkbPolygon )
+        hGeom = OGR_G_ForceToPolygon( hGeom );
 
-  else if( hGeom != NULL
-           && eLayerGType == wkbMultiPoint
-           && eFeatureGType != eLayerGType )
-    hGeom = OGR_G_ForceToMultiPoint( hGeom );
+      else if( eFlattenLayerGType == wkbMultiPolygon )
+        hGeom = OGR_G_ForceToMultiPolygon( hGeom );
 
-  else if( hGeom != NULL
-           && eLayerGType == wkbMultiLineString
-           && eFeatureGType != eLayerGType )
-    hGeom = OGR_G_ForceToMultiLineString( hGeom );
+      else if( eFlattenLayerGType == wkbMultiPoint )
+        hGeom = OGR_G_ForceToMultiPoint( hGeom );
 
+      else if( eFlattenLayerGType == wkbMultiLineString )
+        hGeom = OGR_G_ForceToMultiLineString( hGeom );
+    }
+  }
 #endif /* GDAL/OGR 1.8 or later */
 
   /* -------------------------------------------------------------------- */
   /*      Consider flattening the geometry to 2D if we want 2D            */
   /*      output.                                                         */
+  /*      Note: this shouldn't be called in recent OGR versions where     */
+  /*      OGR_G_SetPoint_2D is properly honoured.                         */
   /* -------------------------------------------------------------------- */
-  eLayerGType = OGR_FD_GetGeomType(hLayerDefn);
 
-  if( hGeom != NULL )
-    eFeatureGType = OGR_G_GetGeometryType( hGeom );
-
-  if( eLayerGType == wkbFlatten(eLayerGType)
-      && hGeom != NULL
-      && eFeatureGType != wkbFlatten(eFeatureGType) )
-    OGR_G_FlattenTo2D( hGeom );
+  if( bWant2DOutput && hGeom != NULL ) {
+    OGRwkbGeometryType eFeatureGType = OGR_G_GetGeometryType( hGeom );
+    if( eFeatureGType != wkbFlatten(eFeatureGType) )
+      OGR_G_FlattenTo2D( hGeom );
+  }
 
   /* -------------------------------------------------------------------- */
   /*      Create the feature, and attach the geometry.                    */
@@ -605,7 +605,7 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
   /* -------------------------------------------------------------------- */
   if( EQUAL(storage,"stream") ) {
     if( sendheaders && format->mimetype ) {
-      msIO_setHeader("Content-Type",format->mimetype);
+      msIO_setHeader("Content-Type","%s",format->mimetype);
       msIO_sendHeaders();
     } else
       msIO_fprintf( stdout, "%c", 10 );
@@ -925,7 +925,7 @@ int msOGRWriteFromQuery( mapObj *map, outputFormatObj *format, int sendheaders )
       msIO_setHeader("Content-Disposition","attachment; filename=%s",
                      CPLGetFilename( file_list[0] ) );
       if( format->mimetype )
-        msIO_setHeader("Content-Type",format->mimetype);
+        msIO_setHeader("Content-Type","%s",format->mimetype);
       msIO_sendHeaders();
     } else
       msIO_fprintf( stdout, "%c", 10 );
diff --git a/maporaclespatial.c b/maporaclespatial.c
index d59a181..c2aaeeb 100644
--- a/maporaclespatial.c
+++ b/maporaclespatial.c
@@ -41,7 +41,7 @@
 
 
 
-#ifdef USE_ORACLESPATIAL
+#if defined(USE_ORACLESPATIAL) || defined(USE_ORACLE_PLUGIN)
 
 #include <oci.h>
 #include <ctype.h>
@@ -164,8 +164,6 @@ struct {
 
 } msOracleSpatialLayerInfo;
 
-static OCIType  *ordinates_tdo = NULL;
-static OCIArray *ordinates;
 
 
 
@@ -281,7 +279,7 @@ static int ERROR( char *routine, msOracleSpatialHandler *hand, msOracleSpatialDa
 {
   if (hand->last_oci_status == MS_FAILURE) {
     /* there was an error */
-    msSetError( MS_ORACLESPATIALERR, (char *)hand->last_oci_error, routine );
+    msSetError( MS_ORACLESPATIALERR, "%s", routine, (char *)hand->last_oci_error); 
     
     /* reset error flag */
     hand->last_oci_status = MS_SUCCESS;
@@ -600,7 +598,11 @@ static msOracleSpatialHandler *msOCISetHandlers( char *username, char *password,
 
   success = TRY( hand,
                  /* allocate envhp */
+#ifdef USE_THREAD
+                 OCIEnvCreate( &hand->envhp, OCI_OBJECT|OCI_THREADED, (dvoid *)0, 0, 0, 0, (size_t) 0, (dvoid **)0 ) )
+#else
                  OCIEnvCreate( &hand->envhp, OCI_OBJECT, (dvoid *)0, 0, 0, 0, (size_t) 0, (dvoid **)0 ) )
+#endif
             && TRY( hand,
                     /* allocate errhp */
                     OCIHandleAlloc( (dvoid *)hand->envhp, (dvoid **)&hand->errhp, (ub4)OCI_HTYPE_ERROR, (size_t)0, (dvoid **)0 ) )
@@ -1815,6 +1817,8 @@ int msOracleSpatialLayerWhichShapes( layerObj *layer, rectObj rect, int isQuery)
   OCIDefine **items = NULL;
   OCINumber oci_number;
   OCIBind *bnd1p = NULL,  *bnd2p = NULL;
+  OCIType  *ordinates_tdo = NULL;
+  OCIArray *ordinates = NULL;
 
   int existunique = MS_FALSE;
   int rownumisuniquekey = MS_FALSE;
@@ -2248,14 +2252,14 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
 
     if (resultindex >= sthand->rows_count) {
       if (layer->debug >= 5)
-        msDebug("msOracleSpatialLayerGetShape problem with cursor. Trying to fetch record = %ld of %ld, falling back to GetShape\n", resultindex, sthand->rows_count);
+        msDebug("msOracleSpatialLayerGetShape problem with cursor. Trying to fetch record = %d of %d, falling back to GetShape\n", resultindex, sthand->rows_count);
 
       msSetError( MS_ORACLESPATIALERR, "msOracleSpatialLayerGetShape record out of range","msOracleSpatialLayerGetShape()" );
       return MS_FAILURE;
     }
 
     if (layer->debug >= 5)
-      msDebug("msOracleSpatialLayerGetShape was called. Using the record = %ld of %ld. (shape: %ld should equal pkey: %ld)\n",
+      msDebug("msOracleSpatialLayerGetShape was called. Using the record = %d of %d. (shape: %ld should equal pkey: %ld)\n",
               resultindex, layer->resultcache->numresults, layer->resultcache->results[resultindex].shapeindex, shapeindex);
 
     /* NOTE: with the way the resultcache works, we should see items in increasing order, but some may have been filtered out. */
@@ -2269,7 +2273,7 @@ int msOracleSpatialLayerGetShape( layerObj *layer, shapeObj *shape, resultObj *r
       sthand->row_num += resultindex - sthand->row_num;
     } else { /* Item is not in buffer. Fetch item from Oracle */
       if (layer->debug >= 4)
-        msDebug("msOracleSpatialLayerGetShape: Fetching result from DB start: %ld end:%ld record: %ld\n", buffer_first_row_num, buffer_last_row_num, resultindex);
+        msDebug("msOracleSpatialLayerGetShape: Fetching result from DB start: %ld end:%ld record: %d\n", buffer_first_row_num, buffer_last_row_num, resultindex);
 
       success = TRY( hand, OCIStmtFetch2( sthand->stmthp, hand->errhp, (ub4)ARRAY_SIZE, (ub2)OCI_FETCH_ABSOLUTE, (sb4)resultindex+1, (ub4)OCI_DEFAULT ) )
                 && TRY( hand, OCIAttrGet( (dvoid *)sthand->stmthp, (ub4)OCI_HTYPE_STMT, (dvoid *)&sthand->rows_fetched, (ub4 *)0, (ub4)OCI_ATTR_ROWS_FETCHED, hand->errhp ) );
@@ -3384,8 +3388,7 @@ int msOracleSpatialGetPaging(layerObj *layer)
 
 #endif
 
-#ifdef USE_ORACLE_PLUGIN
-#ifdef USE_ORACLESPATIAL
+#if defined USE_ORACLE_PLUGIN
 MS_DLL_EXPORT  int
 PluginInitializeVirtualTable(layerVTableObj* vtable, layerObj *layer)
 {
@@ -3415,9 +3418,9 @@ PluginInitializeVirtualTable(layerVTableObj* vtable, layerObj *layer)
 
   return MS_SUCCESS;
 }
-#endif
-#endif
 
+#else /*if ORACLE_PLUGIN is defined, then this file is not used by libmapserver
+        and therefre there is no need to include this function */
 int msOracleSpatialLayerInitializeVirtualTable(layerObj *layer)
 {
   assert(layer != NULL);
@@ -3445,4 +3448,4 @@ int msOracleSpatialLayerInitializeVirtualTable(layerObj *layer)
 
   return MS_SUCCESS;
 }
-
+#endif
diff --git a/mapoutput.c b/mapoutput.c
index de4a8f1..a1d6878 100644
--- a/mapoutput.c
+++ b/mapoutput.c
@@ -397,6 +397,10 @@ void msFreeOutputFormat( outputFormatObj *format )
 {
   if( format == NULL )
     return;
+  if( MS_REFCNT_DECR_IS_NOT_ZERO(format) ) {
+    return;
+  }
+
   if(MS_RENDERER_PLUGIN(format) && format->vtable) {
     format->vtable->cleanup(MS_RENDERER_CACHE(format->vtable));
     free( format->vtable );
@@ -479,7 +483,7 @@ int msAppendOutputFormat(mapObj *map, outputFormatObj *format)
                                       sizeof(void*) * map->numoutputformats );
 
     map->outputformatlist[map->numoutputformats-1] = format;
-    format->refcount++;
+    MS_REFCNT_INCR(format);
   }
 
   return map->numoutputformats;
@@ -505,8 +509,8 @@ int msRemoveOutputFormat(mapObj *map, const char *name)
       i = msGetOutputFormatIndex(map, name);
       if (i >= 0) {
         map->numoutputformats--;
-        if( map->outputformatlist[i]->refcount-- < 1 )
-          msFreeOutputFormat( map->outputformatlist[i] );
+	if(MS_REFCNT_DECR_IS_ZERO(map->outputformatlist[i]))
+           msFreeOutputFormat( map->outputformatlist[i] );
 
         for (j=i; j<map->numoutputformats-1; j++) {
           map->outputformatlist[j] = map->outputformatlist[j+1];
@@ -613,7 +617,7 @@ void msApplyOutputFormat( outputFormatObj **target,
 
   assert( target != NULL );
 
-  if( *target != NULL && --((*target)->refcount) < 1 ) {
+  if( *target != NULL && MS_REFCNT_DECR_IS_ZERO( (*target) ) ) {
     formatToFree = *target;
     *target = NULL;
   }
@@ -1053,18 +1057,26 @@ int msInitializeRendererVTable(outputFormatObj *format)
     case MS_RENDER_WITH_GD:
       return msPopulateRendererVTableGD(format->vtable);
 #endif
+#ifdef USE_CAIRO
     case MS_RENDER_WITH_CAIRO_RASTER:
       return msPopulateRendererVTableCairoRaster(format->vtable);
     case MS_RENDER_WITH_CAIRO_PDF:
       return msPopulateRendererVTableCairoPDF(format->vtable);
     case MS_RENDER_WITH_CAIRO_SVG:
       return msPopulateRendererVTableCairoSVG(format->vtable);
+#endif
+#ifdef USE_OGL
     case MS_RENDER_WITH_OGL:
       return msPopulateRendererVTableOGL(format->vtable);
+#endif
+#ifdef USE_KML
     case MS_RENDER_WITH_KML:
       return msPopulateRendererVTableKML(format->vtable);
+#endif
+#ifdef USE_OGR
     case MS_RENDER_WITH_OGR:
       return msPopulateRendererVTableOGR(format->vtable);
+#endif
     default:
       msSetError(MS_MISCERR, "unsupported RendererVtable renderer %d",
                  "msInitializeRendererVTable()",format->renderer);
diff --git a/mapows.c b/mapows.c
index cd30d9c..9bcc985 100644
--- a/mapows.c
+++ b/mapows.c
@@ -95,7 +95,8 @@ static int msOWSPreParseRequest(cgiRequestObj *request,
                                 owsRequestObj *ows_request)
 {
   /* decide if KVP or XML */
-  if (request->type == MS_GET_REQUEST || (request->type == MS_POST_REQUEST && strcmp(request->contenttype, "application/x-www-form-urlencoded")==0)) {
+  if (request->type == MS_GET_REQUEST || (request->type == MS_POST_REQUEST 
+    && request->contenttype && strncmp(request->contenttype, "application/x-www-form-urlencoded", strlen("application/x-www-form-urlencoded")) == 0)) {
     int i;
     /* parse KVP parameters service, version and request */
     for (i = 0; i < request->NumParams; ++i) {
@@ -282,6 +283,243 @@ int msOWSDispatch(mapObj *map, cgiRequestObj *request, int ows_mode)
 }
 
 /*
+** msOWSIpParse()
+**
+** Parse the IP address or range into a binary array.
+** Supports ipv4 and ipv6 addresses
+** Ranges can be specified using the CIDR notation (ie: 192.100.100.0/24)
+**
+** Returns the parsed of the IP (4 or 16).
+*/
+int msOWSIpParse(const char* ip, unsigned char* ip1, unsigned char* mask)
+{
+  int len = 0, masklen, seps;
+  
+  if (msCountChars((char*)ip, '.') == 3) {
+    /* ipv4 */
+    unsigned char* val = ip1;
+    len = 1;
+    masklen = 32;
+    *val = 0;
+    while (*ip) {
+      if (*ip >= '0' && *ip <= '9')
+        (*val) = 10 * (*val) + (*ip - '0');
+      else if (*ip == '.') {
+        ++val;
+        *val = 0;
+        ++len;
+      }
+      else if (*ip == '/')
+      {
+        masklen = atoi(ip+1);
+        if (masklen > 32)
+          masklen = 32;
+        break;
+      }
+      else 
+        break;
+      ++ip;
+    }
+    if (len != 4)
+      return 0;
+    /* write mask */
+    if (mask) {
+      memset(mask, 0, len);
+      val = mask;
+      while (masklen) {
+        if (masklen >= 8) {
+          *val = 0xff;
+          masklen -= 8;
+        }
+        else {
+          *val = - ((unsigned char)pow(2, 8 - masklen));
+          break;
+        }
+        ++val;
+      }
+    }
+  }
+  else if ((seps = msCountChars((char*)ip, ':')) > 1 && seps < 8) {
+    /* ipv6 */
+    unsigned short* val = (unsigned short*)ip1;
+    len = 2;
+    masklen = 128;
+    *val = 0;
+    while (*ip) {
+      if (*ip >= '0' && *ip <= '9')
+        (*val) = 16 * (*val) + (*ip - '0');
+      else if (*ip >= 'a' && *ip <= 'f')
+        (*val) = 16 * (*val) + (*ip - 'a' + 10);
+      else if (*ip >= 'A' && *ip <= 'F')
+        (*val) = 16 * (*val) + (*ip - 'A' + 10);
+      else if (*ip == ':') {
+        ++ip;
+        ++val;
+        len += 2;
+        *val = 0;
+        if (*ip == ':') {
+          /* insert 0 values */
+          while (seps <= 7) {
+            ++val;
+            len += 2;
+            *val = 0;
+            ++seps;
+          }
+        }
+        else
+          continue;
+      }
+      else if (*ip == '/')
+      {
+        masklen = atoi(ip+1);
+        if (masklen > 128)
+          masklen = 128;
+        break;
+      }
+      else
+        break;
+      ++ip;
+    }
+    if (len != 16)
+      return 0;
+    /* write mask */
+    if (mask) {
+      memset(mask, 0, len);
+      val = (unsigned short*)mask;
+      while (masklen) {
+        if (masklen >= 16) {
+          *val = 0xffff;
+          masklen -= 16;
+        }
+        else {
+          *val = - ((unsigned short)pow(2, 16 - masklen));
+          break;
+        }
+        ++val;
+      }
+    }
+  }
+
+  return len;
+}
+
+/*
+** msOWSIpInList()
+**
+** Check if an ip is in a space separated list of IP addresses/ranges.
+** Supports ipv4 and ipv6 addresses
+** Ranges can be specified using the CIDR notation (ie: 192.100.100.0/24)
+**
+** Returns MS_TRUE if the IP is found.
+*/
+int msOWSIpInList(const char *ip_list, const char* ip)
+{
+  int i, j, numips, iplen;
+  unsigned char ip1[16];
+  unsigned char ip2[16];
+  unsigned char mask[16];
+  char** ips;
+
+  /* Parse input IP */
+  iplen = msOWSIpParse(ip, (unsigned char*)&ip1, NULL);
+  if (iplen != 4 && iplen != 16) /* ipv4 or ipv6 */
+    return MS_FALSE;
+
+  ips = msStringSplit(ip_list, ' ', &numips);
+  if (ips) {
+    for (i = 0; i < numips; i++) {
+      if (msOWSIpParse(ips[i], (unsigned char*)&ip2, (unsigned char*)&mask) == iplen)
+      {
+        for (j = 0; j < iplen; j++) {
+          if ((ip1[j] & mask[j]) != (ip2[j] & mask[j]))
+            break;
+        }
+        if (j == iplen) {
+          msFreeCharArray(ips, numips);
+          return MS_TRUE; /* match found */
+        }
+      }
+    }
+    msFreeCharArray(ips, numips);
+  }
+
+  return MS_FALSE;
+}
+
+/*
+** msOWSIpDisabled()
+**
+** Check if an ip is in a list specified in the metadata section.
+**
+** Returns MS_TRUE if the IP is found.
+*/
+int msOWSIpInMetadata(const char *ip_list, const char* ip)
+{
+  FILE *stream;
+  char buffer[MS_BUFFER_LENGTH];
+  int found = MS_FALSE;
+  
+  if (strncasecmp(ip_list, "file:", 5) == 0) {
+    stream = fopen(ip_list + 5, "r");
+    if(stream) {
+      found = MS_FALSE;
+      while(fgets(buffer, MS_BUFFER_LENGTH, stream)) {
+        if(msOWSIpInList(buffer, ip)) {
+          found = MS_TRUE;
+          break;
+        }
+      }
+      fclose(stream);
+    }  
+  }
+  else {
+    if(msOWSIpInList(ip_list, ip))
+      found = MS_TRUE;
+  }  
+  return found;
+}
+
+/*
+** msOWSIpDisabled()
+**
+** Check if the layers are enabled or disabled by IP list.
+**
+** 'namespaces' is a string with a letter for each namespace to lookup
+** in the order they should be looked up. e.g. "MO" to lookup wms_ and ows_
+** If namespaces is NULL then this function just does a regular metadata
+** lookup.
+**
+** Returns the disabled flag.
+*/
+int msOWSIpDisabled(hashTableObj *metadata, const char *namespaces, const char* ip)
+{
+  const char *ip_list;
+  int disabled = MS_FALSE;
+
+  if (!ip)
+    return MS_FALSE; /* no endpoint ip */
+
+  ip_list = msOWSLookupMetadata(metadata, namespaces, "allowed_ip_list");
+  if (!ip_list)
+    ip_list = msOWSLookupMetadata(metadata, "O", "allowed_ip_list");
+
+  if (ip_list) {
+    disabled = MS_TRUE;
+    if (msOWSIpInMetadata(ip_list, ip))
+      disabled = MS_FALSE;
+  }
+
+  ip_list = msOWSLookupMetadata(metadata, namespaces, "denied_ip_list");
+  if (!ip_list)
+    ip_list = msOWSLookupMetadata(metadata, "O", "denied_ip_list");
+
+  if (ip_list && msOWSIpInMetadata(ip_list, ip))
+    disabled = MS_TRUE;
+
+  return disabled;
+}
+
+/*
 ** msOWSRequestIsEnabled()
 **
 ** Check if a layer is visible for a specific OWS request.
@@ -296,10 +534,13 @@ int msOWSRequestIsEnabled(mapObj *map, layerObj *layer,
 {
   int disabled = MS_FALSE; /* explicitly disabled flag */
   const char *enable_request;
+  const char *remote_ip;
 
   if (request == NULL)
     return MS_FALSE;
 
+  remote_ip = getenv("REMOTE_ADDR");
+
   /* First, we check in the layer metadata */
   if (layer && check_all_layers == MS_FALSE) {
     enable_request = msOWSLookupMetadata(&layer->metadata, namespaces, "enable_request");
@@ -311,6 +552,9 @@ int msOWSRequestIsEnabled(mapObj *map, layerObj *layer,
     if (msOWSParseRequestMetadata(enable_request, request, &disabled))
       return MS_TRUE;
     if (disabled) return MS_FALSE;
+
+    if (msOWSIpDisabled(&layer->metadata, namespaces, remote_ip))
+      return MS_FALSE;
   }
 
   if (map && check_all_layers == MS_FALSE) {
@@ -324,6 +568,9 @@ int msOWSRequestIsEnabled(mapObj *map, layerObj *layer,
     if (msOWSParseRequestMetadata(enable_request, request, &disabled))
       return MS_TRUE;
     if (disabled) return MS_FALSE;
+
+    if (msOWSIpDisabled(&map->web.metadata, namespaces, remote_ip))
+      return MS_FALSE;
   }
 
   if (map && check_all_layers == MS_TRUE) {
@@ -336,6 +583,9 @@ int msOWSRequestIsEnabled(mapObj *map, layerObj *layer,
       globally_enabled = msOWSParseRequestMetadata(enable_request, request, &disabled);
     }
 
+    if (globally_enabled && msOWSIpDisabled(&map->web.metadata, namespaces, remote_ip))
+      globally_enabled = MS_FALSE;
+
     /* Check all layers */
     for(i=0; i<map->numlayers; i++) {
       int result = MS_FALSE;
@@ -354,6 +604,9 @@ int msOWSRequestIsEnabled(mapObj *map, layerObj *layer,
         if (!result && disabled) continue;
       }
 
+      if (msOWSIpDisabled(&lp->metadata, namespaces, remote_ip))
+        continue;
+
       if (result || (!disabled && globally_enabled))
         return MS_TRUE;
     }
@@ -383,6 +636,7 @@ void msOWSRequestLayersEnabled(mapObj *map, const char *namespaces,
   int disabled = MS_FALSE; /* explicitly disabled flag */
   int globally_enabled = MS_FALSE;
   const char *enable_request;
+  const char *remote_ip;
 
   if (ows_request->numlayers > 0)
     msFree(ows_request->enabled_layers);
@@ -393,6 +647,8 @@ void msOWSRequestLayersEnabled(mapObj *map, const char *namespaces,
   if (request == NULL || (map == NULL) || (map->numlayers <= 0))
     return;
 
+  remote_ip = getenv("REMOTE_ADDR");
+
   enable_request = msOWSLookupMetadata(&map->web.metadata, namespaces, "enable_request");
   globally_enabled = msOWSParseRequestMetadata(enable_request, request, &disabled);
 
@@ -401,6 +657,9 @@ void msOWSRequestLayersEnabled(mapObj *map, const char *namespaces,
     globally_enabled = msOWSParseRequestMetadata(enable_request, request, &disabled);
   }
 
+  if (globally_enabled && msOWSIpDisabled(&map->web.metadata, namespaces, remote_ip))
+      globally_enabled = MS_FALSE;
+
   if (map->numlayers) {
     int i, layers_size = map->numlayers; /* for most of cases, this will be relatively small */
 
@@ -423,6 +682,9 @@ void msOWSRequestLayersEnabled(mapObj *map, const char *namespaces,
         if (!result && disabled) continue;
       }
 
+      if (msOWSIpDisabled(&lp->metadata, namespaces, remote_ip))
+          continue;
+
       if (result || (!disabled && globally_enabled)) {
         ows_request->enabled_layers[ows_request->numlayers] = lp->index;
         ows_request->numlayers++;
@@ -1707,6 +1969,23 @@ int msOWSPrintEncodeParamList(FILE *stream, const char *name,
 
 
 /*
+** msOWSProjectToWGS84()
+**
+** Reprojects the extent to WGS84.
+**
+*/
+void msOWSProjectToWGS84(projectionObj *srcproj, rectObj *ext)
+{
+  if (srcproj->numargs > 0 && !pj_is_latlong(srcproj->proj)) {
+    projectionObj wgs84;
+    msInitProjection(&wgs84);
+    msLoadProjectionString(&wgs84, "+proj=longlat +ellps=WGS84 +datum=WGS84");
+    msProjectRect(srcproj, &wgs84, ext);
+    msFreeProjection(&wgs84);
+  }
+}
+
+/*
 ** msOWSPrintEX_GeographicBoundingBox()
 **
 ** Print a EX_GeographicBoundingBox tag for WMS1.3.0
@@ -1722,14 +2001,7 @@ void msOWSPrintEX_GeographicBoundingBox(FILE *stream, const char *tabspace,
   ext = *extent;
 
   /* always project to lat long */
-  if (srcproj->numargs > 0 && !pj_is_latlong(srcproj->proj)) {
-    projectionObj wgs84;
-    msInitProjection(&wgs84);
-    msLoadProjectionString(&wgs84, "+proj=longlat +datum=WGS84");
-    msProjectRect(srcproj, &wgs84, &ext);
-    msFreeProjection(&wgs84);
-  }
-
+  msOWSProjectToWGS84(srcproj, &ext);
 
   msIO_fprintf(stream, "%s<%s>\n", tabspace, pszTag);
   msIO_fprintf(stream, "%s    <westBoundLongitude>%g</westBoundLongitude>\n", tabspace, ext.minx);
@@ -1759,16 +2031,8 @@ void msOWSPrintLatLonBoundingBox(FILE *stream, const char *tabspace,
   ext = *extent;
 
   if (nService == OWS_WMS) { /* always project to lat long */
-    if (srcproj->numargs > 0 && !pj_is_latlong(srcproj->proj)) {
-      projectionObj wgs84;
-      msInitProjection(&wgs84);
-      msLoadProjectionString(&wgs84, "+proj=longlat +datum=WGS84");
-      msProjectRect(srcproj, &wgs84, &ext);
-      msFreeProjection(&wgs84);
-    }
-  }
-
-  if (nService == OWS_WFS) {
+    msOWSProjectToWGS84(srcproj, &ext);
+  } else if (nService == OWS_WFS) { /* called from wfs 1.0.0 only: project to map srs, if set */
     pszTag = "LatLongBoundingBox";
     if (wfsproj) {
       if (msProjectionsDiffer(srcproj, wfsproj) == MS_TRUE)
diff --git a/mapows.h b/mapows.h
index 571c646..d7799fb 100644
--- a/mapows.h
+++ b/mapows.h
@@ -246,6 +246,7 @@ int msOWSPrintEncodeParamList(FILE *stream, const char *name,
                               char delimiter, const char *startTag,
                               const char *endTag, const char *format,
                               const char *default_value);
+void msOWSProjectToWGS84(projectionObj *srcproj, rectObj *ext);
 void msOWSPrintLatLonBoundingBox(FILE *stream, const char *tabspace,
                                  rectObj *extent, projectionObj *srcproj,
                                  projectionObj *wfsproj, int nService);
@@ -366,6 +367,7 @@ typedef struct {
   int numnamespaces;
 } gmlNamespaceListObj;
 
+
 #if defined(USE_WMS_SVR) || defined (USE_WFS_SVR)
 
 MS_DLL_EXPORT int msItemInGroups(char *name, gmlGroupListObj *groupList);
diff --git a/mapparser.c b/mapparser.c
index 9c1df10..eb13b0c 100644
--- a/mapparser.c
+++ b/mapparser.c
@@ -1,24 +1,23 @@
-/* A Bison parser, made by GNU Bison 2.3.  */
 
-/* Skeleton implementation for Bison's Yacc-like parsers in C
+/* A Bison parser, made by GNU Bison 2.4.1.  */
 
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+/* Skeleton implementation for Bison's Yacc-like parsers in C
+   
+      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
+   
+   This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+   
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-
+   
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -29,7 +28,7 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
@@ -47,7 +46,7 @@
 #define YYBISON 1
 
 /* Bison version.  */
-#define YYBISON_VERSION "2.3"
+#define YYBISON_VERSION "2.4.1"
 
 /* Skeleton name.  */
 #define YYSKELETON_NAME "yacc.c"
@@ -55,11 +54,61 @@
 /* Pure parsers.  */
 #define YYPURE 1
 
+/* Push parsers.  */
+#define YYPUSH 0
+
+/* Pull parsers.  */
+#define YYPULL 1
+
 /* Using locations.  */
 #define YYLSP_NEEDED 0
 
 
 
+/* Copy the first part of user declarations.  */
+
+/* Line 189 of yacc.c  */
+#line 5 "/home/even/mapserver/git/mapserver/mapparser.y"
+
+/* C declarations */
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <time.h>
+
+#include "mapserver.h" /* for TRUE/FALSE and REGEX includes */
+#include "maptime.h" /* for time comparison routines */
+#include "mapprimitive.h" /* for shapeObj */
+
+#include "mapparser.h" /* for YYSTYPE in the function prototype for yylex() */
+
+int yylex(YYSTYPE *, parseObj *); /* prototype functions, defined after the grammar */
+int yyerror(parseObj *, const char *);
+
+
+/* Line 189 of yacc.c  */
+#line 92 "/home/even/mapserver/git/mapserver/mapparser.c"
+
+/* Enabling traces.  */
+#ifndef YYDEBUG
+# define YYDEBUG 0
+#endif
+
+/* Enabling verbose error messages.  */
+#ifdef YYERROR_VERBOSE
+# undef YYERROR_VERBOSE
+# define YYERROR_VERBOSE 1
+#else
+# define YYERROR_VERBOSE 0
+#endif
+
+/* Enabling the token table.  */
+#ifndef YYTOKEN_TABLE
+# define YYTOKEN_TABLE 0
+#endif
+
+
 /* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
@@ -97,113 +146,47 @@
      LENGTH = 286,
      AREA = 287,
      TOSTRING = 288,
-     DIFFERENCE = 289,
-     YYBUFFER = 290,
-     NEG = 291
+     SMOOTHSIA = 289,
+     GENERALIZE = 290,
+     SIMPLIFYPT = 291,
+     SIMPLIFY = 292,
+     DIFFERENCE = 293,
+     YYBUFFER = 294,
+     NEG = 295
    };
 #endif
-/* Tokens.  */
-#define NUMBER 258
-#define STRING 259
-#define TIME 260
-#define SHAPE 261
-#define OR 262
-#define AND 263
-#define NOT 264
-#define IRE 265
-#define IEQ 266
-#define IN 267
-#define GE 268
-#define LE 269
-#define GT 270
-#define LT 271
-#define NE 272
-#define EQ 273
-#define RE 274
-#define DWITHIN 275
-#define BEYOND 276
-#define CONTAINS 277
-#define WITHIN 278
-#define CROSSES 279
-#define OVERLAPS 280
-#define TOUCHES 281
-#define DISJOINT 282
-#define INTERSECTS 283
-#define ROUND 284
-#define COMMIFY 285
-#define LENGTH 286
-#define AREA 287
-#define TOSTRING 288
-#define DIFFERENCE 289
-#define YYBUFFER 290
-#define NEG 291
 
 
 
-
-/* Copy the first part of user declarations.  */
-#line 5 "mapparser.y"
-
-/* C declarations */
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <math.h>
-#include <time.h>
-
-#include "mapserver.h" /* for TRUE/FALSE and REGEX includes */
-#include "maptime.h" /* for time comparison routines */
-#include "mapprimitive.h" /* for shapeObj */
-
-#include "mapparser.h" /* for YYSTYPE in the function prototype for yylex() */
-
-int yylex(YYSTYPE *, parseObj *); /* prototype functions, defined after the grammar */
-int yyerror(parseObj *, const char *);
-
-
-/* Enabling traces.  */
-#ifndef YYDEBUG
-# define YYDEBUG 0
-#endif
-
-/* Enabling verbose error messages.  */
-#ifdef YYERROR_VERBOSE
-# undef YYERROR_VERBOSE
-# define YYERROR_VERBOSE 1
-#else
-# define YYERROR_VERBOSE 0
-#endif
-
-/* Enabling the token table.  */
-#ifndef YYTOKEN_TABLE
-# define YYTOKEN_TABLE 0
-#endif
-
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 30 "mapparser.y"
 {
+
+/* Line 214 of yacc.c  */
+#line 30 "/home/even/mapserver/git/mapserver/mapparser.y"
+
   double dblval;
   int intval;  
   char *strval;  
   struct tm tmval;
   shapeObj *shpval;
-}
-/* Line 193 of yacc.c.  */
-#line 194 "mapparser.c"
-	YYSTYPE;
+
+
+
+/* Line 214 of yacc.c  */
+#line 178 "/home/even/mapserver/git/mapserver/mapparser.c"
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 
-
 /* Copy the second part of user declarations.  */
 
 
-/* Line 216 of yacc.c.  */
-#line 207 "mapparser.c"
+/* Line 264 of yacc.c  */
+#line 190 "/home/even/mapserver/git/mapserver/mapparser.c"
 
 #ifdef short
 # undef short
@@ -253,7 +236,7 @@ typedef short int yytype_int16;
 #define YYSIZE_MAXIMUM ((YYSIZE_T) -1)
 
 #ifndef YY_
-# if defined YYENABLE_NLS && YYENABLE_NLS
+# if YYENABLE_NLS
 #  if ENABLE_NLS
 #   include <libintl.h> /* INFRINGES ON USER NAME SPACE */
 #   define YY_(msgid) dgettext ("bison-runtime", msgid)
@@ -278,14 +261,14 @@ typedef short int yytype_int16;
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static int
-YYID (int i)
+YYID (int yyi)
 #else
 static int
-YYID (i)
-    int i;
+YYID (yyi)
+    int yyi;
 #endif
 {
-  return i;
+  return yyi;
 }
 #endif
 
@@ -366,9 +349,9 @@ void free (void *); /* INFRINGES ON USER NAME SPACE */
 /* A type that is properly aligned for any stack member.  */
 union yyalloc
 {
-  yytype_int16 yyss;
-  YYSTYPE yyvs;
-  };
+  yytype_int16 yyss_alloc;
+  YYSTYPE yyvs_alloc;
+};
 
 /* The size of the maximum gap between one aligned stack and the next.  */
 # define YYSTACK_GAP_MAXIMUM (sizeof (union yyalloc) - 1)
@@ -402,12 +385,12 @@ union yyalloc
    elements in the stack, and YYPTR gives the new location of the
    stack.  Advance YYPTR to a properly aligned location for the next
    stack.  */
-# define YYSTACK_RELOCATE(Stack)					\
+# define YYSTACK_RELOCATE(Stack_alloc, Stack)				\
     do									\
       {									\
 	YYSIZE_T yynewbytes;						\
-	YYCOPY (&yyptr->Stack, Stack, yysize);				\
-	Stack = &yyptr->Stack;						\
+	YYCOPY (&yyptr->Stack_alloc, Stack, yysize);			\
+	Stack = &yyptr->Stack_alloc;					\
 	yynewbytes = yystacksize * sizeof (*Stack) + YYSTACK_GAP_MAXIMUM; \
 	yyptr += yynewbytes / sizeof (*yyptr);				\
       }									\
@@ -416,22 +399,22 @@ union yyalloc
 #endif
 
 /* YYFINAL -- State number of the termination state.  */
-#define YYFINAL  39
+#define YYFINAL  47
 /* YYLAST -- Last index in YYTABLE.  */
-#define YYLAST   362
+#define YYLAST   415
 
 /* YYNTOKENS -- Number of terminals.  */
-#define YYNTOKENS  46
+#define YYNTOKENS  50
 /* YYNNTS -- Number of nonterminals.  */
 #define YYNNTS  7
 /* YYNRULES -- Number of rules.  */
-#define YYNRULES  75
+#define YYNRULES  82
 /* YYNRULES -- Number of states.  */
-#define YYNSTATES  170
+#define YYNSTATES  201
 
 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX.  */
 #define YYUNDEFTOK  2
-#define YYMAXUTOK   291
+#define YYMAXUTOK   295
 
 #define YYTRANSLATE(YYX)						\
   ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -442,13 +425,13 @@ static const yytype_uint8 yytranslate[] =
        0,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,     2,     2,     2,    40,     2,     2,
-      43,    44,    38,    36,    45,    37,     2,    39,     2,     2,
+       2,     2,     2,     2,     2,     2,     2,    44,     2,     2,
+      47,    48,    42,    40,    49,    41,     2,    43,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
-       2,     2,     2,     2,    42,     2,     2,     2,     2,     2,
+       2,     2,     2,     2,    46,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
        2,     2,     2,     2,     2,     2,     2,     2,     2,     2,
@@ -468,7 +451,7 @@ static const yytype_uint8 yytranslate[] =
        5,     6,     7,     8,     9,    10,    11,    12,    13,    14,
       15,    16,    17,    18,    19,    20,    21,    22,    23,    24,
       25,    26,    27,    28,    29,    30,    31,    32,    33,    34,
-      35,    41
+      35,    36,    37,    38,    39,    45
 };
 
 #if YYDEBUG
@@ -483,42 +466,48 @@ static const yytype_uint16 yyprhs[] =
      142,   146,   150,   154,   158,   162,   166,   170,   174,   178,
      182,   186,   190,   194,   196,   200,   204,   208,   212,   216,
      220,   223,   227,   232,   237,   244,   246,   250,   257,   264,
-     266,   270,   274,   281,   286,   288
+     271,   278,   285,   290,   297,   306,   317,   319,   323,   327,
+     334,   339,   341
 };
 
 /* YYRHS -- A `-1'-separated list of the rules' RHS.  */
 static const yytype_int8 yyrhs[] =
 {
-      47,     0,    -1,    -1,    48,    -1,    49,    -1,    51,    -1,
-      50,    -1,    48,     7,    48,    -1,    48,     8,    48,    -1,
-      48,     7,    49,    -1,    48,     8,    49,    -1,    49,     7,
-      48,    -1,    49,     8,    48,    -1,    49,     7,    49,    -1,
-      49,     8,    49,    -1,     9,    48,    -1,     9,    49,    -1,
-      51,    19,    51,    -1,    51,    10,    51,    -1,    49,    18,
-      49,    -1,    49,    17,    49,    -1,    49,    15,    49,    -1,
-      49,    16,    49,    -1,    49,    13,    49,    -1,    49,    14,
-      49,    -1,    43,    48,    44,    -1,    51,    18,    51,    -1,
-      51,    17,    51,    -1,    51,    15,    51,    -1,    51,    16,
-      51,    -1,    51,    13,    51,    -1,    51,    14,    51,    -1,
-      52,    18,    52,    -1,    52,    17,    52,    -1,    52,    15,
-      52,    -1,    52,    16,    52,    -1,    52,    13,    52,    -1,
-      52,    14,    52,    -1,    51,    12,    51,    -1,    49,    12,
-      51,    -1,    49,    11,    49,    -1,    51,    11,    51,    -1,
-      52,    11,    52,    -1,    50,    18,    50,    -1,    50,    28,
-      50,    -1,    50,    27,    50,    -1,    50,    26,    50,    -1,
-      50,    25,    50,    -1,    50,    24,    50,    -1,    50,    23,
-      50,    -1,    50,    22,    50,    -1,    50,    20,    50,    -1,
-      50,    21,    50,    -1,     3,    -1,    43,    49,    44,    -1,
-      49,    36,    49,    -1,    49,    37,    49,    -1,    49,    38,
-      49,    -1,    49,    40,    49,    -1,    49,    39,    49,    -1,
-      37,    49,    -1,    49,    42,    49,    -1,    31,    43,    51,
-      44,    -1,    32,    43,    50,    44,    -1,    29,    43,    49,
-      45,    49,    44,    -1,     6,    -1,    43,    50,    44,    -1,
-      35,    43,    50,    45,    49,    44,    -1,    34,    43,    50,
-      45,    50,    44,    -1,     4,    -1,    43,    51,    44,    -1,
-      51,    36,    51,    -1,    33,    43,    49,    45,    51,    44,
-      -1,    30,    43,    51,    44,    -1,     5,    -1,    43,    52,
-      44,    -1
+      51,     0,    -1,    -1,    52,    -1,    53,    -1,    55,    -1,
+      54,    -1,    52,     7,    52,    -1,    52,     8,    52,    -1,
+      52,     7,    53,    -1,    52,     8,    53,    -1,    53,     7,
+      52,    -1,    53,     8,    52,    -1,    53,     7,    53,    -1,
+      53,     8,    53,    -1,     9,    52,    -1,     9,    53,    -1,
+      55,    19,    55,    -1,    55,    10,    55,    -1,    53,    18,
+      53,    -1,    53,    17,    53,    -1,    53,    15,    53,    -1,
+      53,    16,    53,    -1,    53,    13,    53,    -1,    53,    14,
+      53,    -1,    47,    52,    48,    -1,    55,    18,    55,    -1,
+      55,    17,    55,    -1,    55,    15,    55,    -1,    55,    16,
+      55,    -1,    55,    13,    55,    -1,    55,    14,    55,    -1,
+      56,    18,    56,    -1,    56,    17,    56,    -1,    56,    15,
+      56,    -1,    56,    16,    56,    -1,    56,    13,    56,    -1,
+      56,    14,    56,    -1,    55,    12,    55,    -1,    53,    12,
+      55,    -1,    53,    11,    53,    -1,    55,    11,    55,    -1,
+      56,    11,    56,    -1,    54,    18,    54,    -1,    54,    28,
+      54,    -1,    54,    27,    54,    -1,    54,    26,    54,    -1,
+      54,    25,    54,    -1,    54,    24,    54,    -1,    54,    23,
+      54,    -1,    54,    22,    54,    -1,    54,    20,    54,    -1,
+      54,    21,    54,    -1,     3,    -1,    47,    53,    48,    -1,
+      53,    40,    53,    -1,    53,    41,    53,    -1,    53,    42,
+      53,    -1,    53,    44,    53,    -1,    53,    43,    53,    -1,
+      41,    53,    -1,    53,    46,    53,    -1,    31,    47,    55,
+      48,    -1,    32,    47,    54,    48,    -1,    29,    47,    53,
+      49,    53,    48,    -1,     6,    -1,    47,    54,    48,    -1,
+      39,    47,    54,    49,    53,    48,    -1,    38,    47,    54,
+      49,    54,    48,    -1,    37,    47,    54,    49,    53,    48,
+      -1,    36,    47,    54,    49,    53,    48,    -1,    35,    47,
+      54,    49,    53,    48,    -1,    34,    47,    54,    48,    -1,
+      34,    47,    54,    49,    53,    48,    -1,    34,    47,    54,
+      49,    53,    49,    53,    48,    -1,    34,    47,    54,    49,
+      53,    49,    53,    49,    55,    48,    -1,     4,    -1,    47,
+      55,    48,    -1,    55,    40,    55,    -1,    33,    47,    53,
+      49,    55,    48,    -1,    30,    47,    55,    48,    -1,     5,
+      -1,    47,    56,    48,    -1
 };
 
 /* YYRLINE[YYN] -- source line where rule number YYN was defined.  */
@@ -530,8 +519,9 @@ static const yytype_uint16 yyrline[] =
      287,   295,   303,   309,   315,   321,   327,   333,   339,   360,
      381,   387,   395,   402,   413,   424,   435,   446,   457,   468,
      479,   490,   500,   512,   513,   514,   515,   516,   517,   518,
-     525,   526,   527,   528,   536,   539,   540,   541,   551,   563,
-     564,   565,   569,   573,   579,   580
+     525,   526,   527,   528,   536,   539,   540,   541,   551,   561,
+     571,   581,   591,   601,   611,   621,   634,   635,   636,   640,
+     644,   650,   651
 };
 #endif
 
@@ -544,10 +534,10 @@ static const char *const yytname[] =
   "OR", "AND", "NOT", "IRE", "IEQ", "IN", "GE", "LE", "GT", "LT", "NE",
   "EQ", "RE", "DWITHIN", "BEYOND", "CONTAINS", "WITHIN", "CROSSES",
   "OVERLAPS", "TOUCHES", "DISJOINT", "INTERSECTS", "ROUND", "COMMIFY",
-  "LENGTH", "AREA", "TOSTRING", "DIFFERENCE", "YYBUFFER", "'+'", "'-'",
-  "'*'", "'/'", "'%'", "NEG", "'^'", "'('", "')'", "','", "$accept",
-  "input", "logical_exp", "math_exp", "shape_exp", "string_exp",
-  "time_exp", 0
+  "LENGTH", "AREA", "TOSTRING", "SMOOTHSIA", "GENERALIZE", "SIMPLIFYPT",
+  "SIMPLIFY", "DIFFERENCE", "YYBUFFER", "'+'", "'-'", "'*'", "'/'", "'%'",
+  "NEG", "'^'", "'('", "')'", "','", "$accept", "input", "logical_exp",
+  "math_exp", "shape_exp", "string_exp", "time_exp", 0
 };
 #endif
 
@@ -559,22 +549,23 @@ static const yytype_uint16 yytoknum[] =
        0,   256,   257,   258,   259,   260,   261,   262,   263,   264,
      265,   266,   267,   268,   269,   270,   271,   272,   273,   274,
      275,   276,   277,   278,   279,   280,   281,   282,   283,   284,
-     285,   286,   287,   288,   289,   290,    43,    45,    42,    47,
-      37,   291,    94,    40,    41,    44
+     285,   286,   287,   288,   289,   290,   291,   292,   293,   294,
+      43,    45,    42,    47,    37,   295,    94,    40,    41,    44
 };
 # endif
 
 /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives.  */
 static const yytype_uint8 yyr1[] =
 {
-       0,    46,    47,    47,    47,    47,    47,    48,    48,    48,
-      48,    48,    48,    48,    48,    48,    48,    48,    48,    48,
-      48,    48,    48,    48,    48,    48,    48,    48,    48,    48,
-      48,    48,    48,    48,    48,    48,    48,    48,    48,    48,
-      48,    48,    48,    48,    48,    48,    48,    48,    48,    48,
-      48,    48,    48,    49,    49,    49,    49,    49,    49,    49,
-      49,    49,    49,    49,    49,    50,    50,    50,    50,    51,
-      51,    51,    51,    51,    52,    52
+       0,    50,    51,    51,    51,    51,    51,    52,    52,    52,
+      52,    52,    52,    52,    52,    52,    52,    52,    52,    52,
+      52,    52,    52,    52,    52,    52,    52,    52,    52,    52,
+      52,    52,    52,    52,    52,    52,    52,    52,    52,    52,
+      52,    52,    52,    52,    52,    52,    52,    52,    52,    52,
+      52,    52,    52,    53,    53,    53,    53,    53,    53,    53,
+      53,    53,    53,    53,    53,    54,    54,    54,    54,    54,
+      54,    54,    54,    54,    54,    54,    55,    55,    55,    55,
+      55,    56,    56
 };
 
 /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN.  */
@@ -586,8 +577,9 @@ static const yytype_uint8 yyr2[] =
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
        3,     3,     3,     3,     3,     3,     3,     3,     3,     3,
        3,     3,     3,     1,     3,     3,     3,     3,     3,     3,
-       2,     3,     4,     4,     6,     1,     3,     6,     6,     1,
-       3,     3,     6,     4,     1,     3
+       2,     3,     4,     4,     6,     1,     3,     6,     6,     6,
+       6,     6,     4,     6,     8,    10,     1,     3,     3,     6,
+       4,     1,     3
 };
 
 /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -595,59 +587,67 @@ static const yytype_uint8 yyr2[] =
    means the default is an error.  */
 static const yytype_uint8 yydefact[] =
 {
-       2,    53,    69,    74,    65,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,     3,     4,     6,     5,
-       0,    15,    16,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,    60,     0,     0,     0,     0,     0,     1,
+       2,    53,    76,    81,    65,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       3,     4,     6,     5,     0,    15,    16,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,    60,     0,     0,     0,     0,     0,     1,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
        0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
-       0,     0,     0,     0,     0,     0,    25,    54,    66,    70,
-      75,     7,     9,     8,    10,    11,    13,    12,    14,    40,
-      39,    23,    24,    21,    22,    20,    19,    55,    56,    57,
-      59,    58,    61,    43,    51,    52,    50,    49,    48,    47,
-      46,    45,    44,    18,    41,    38,    30,    31,    28,    29,
-      27,    26,    17,    71,     0,    42,    36,    37,    34,    35,
-      33,    32,     0,     0,    73,    62,     0,    63,     0,     0,
-       0,     0,     0,     0,     0,     0,    64,    72,    68,    67
+       0,     0,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,     0,    25,    54,
+      66,    77,    82,     7,     9,     8,    10,    11,    13,    12,
+      14,    40,    39,    23,    24,    21,    22,    20,    19,    55,
+      56,    57,    59,    58,    61,    43,    51,    52,    50,    49,
+      48,    47,    46,    45,    44,    18,    41,    38,    30,    31,
+      28,    29,    27,    26,    17,    78,     0,    42,    36,    37,
+      34,    35,    33,    32,     0,     0,    80,    62,     0,    63,
+       0,    72,     0,     0,     0,     0,     0,     0,     0,     0,
+       0,     0,     0,     0,     0,     0,     0,    64,    79,    73,
+       0,    71,    70,    69,    68,    67,     0,    74,     0,     0,
+      75
 };
 
 /* YYDEFGOTO[NTERM-NUM].  */
 static const yytype_int8 yydefgoto[] =
 {
-      -1,    15,    16,    17,    23,    24,    20
+      -1,    19,    20,    21,    27,    28,    24
 };
 
 /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
    STATE-NUM.  */
-#define YYPACT_NINF -40
+#define YYPACT_NINF -46
 static const yytype_int16 yypact[] =
 {
-       7,   -40,   -40,   -40,   -40,     7,   -39,   -38,   -28,    -8,
-       4,     5,     9,    68,     7,     8,    -5,   192,   298,   281,
-     171,   -40,   248,   298,   281,    68,    13,    13,   106,    68,
-     106,   106,    68,    12,    11,   154,   283,   239,   139,   -40,
-       7,     7,     7,     7,    68,    13,    68,    68,    68,    68,
-      68,    68,    68,    68,    68,    68,    68,    68,   106,   106,
-     106,   106,   106,   106,   106,   106,   106,   106,    13,    13,
-      13,    13,    13,    13,    13,    13,    13,    13,    13,     2,
-       2,     2,     2,     2,     2,     2,   231,    13,   -35,   -10,
-     106,    29,   292,    40,    42,   -15,   -40,   -40,   -40,   -40,
-     -40,    45,   206,   -40,   248,    45,   206,   -40,   248,   320,
-      21,   320,   320,   320,   320,   320,   320,    30,    30,    12,
-      12,    12,    12,   -40,   -40,   -40,   -40,   -40,   -40,   -40,
-     -40,   -40,   -40,    21,    21,    21,    21,    21,    21,    21,
-      21,    21,    21,   -40,     2,   -40,   -40,   -40,   -40,   -40,
-     -40,   -40,    68,    52,   -40,   -40,    47,   -40,    13,   106,
-      68,    48,   302,    65,    54,   311,   -40,   -40,   -40,   -40
+      85,   -46,   -46,   -46,   -46,    85,   -45,   -30,   -24,   -21,
+      -8,    26,    40,    46,    78,    80,    81,    13,    85,    21,
+      -3,   205,   293,   272,   253,   -46,   263,   293,   272,    13,
+      -1,    -1,   167,    13,   167,   167,   167,   167,   167,   167,
+      13,     2,    27,   145,   274,   225,   120,   -46,    85,    85,
+      85,    85,    13,    -1,    13,    13,    13,    13,    13,    13,
+      13,    13,    13,    13,    13,    13,   167,   167,   167,   167,
+     167,   167,   167,   167,   167,   167,    -1,    -1,    -1,    -1,
+      -1,    -1,    -1,    -1,    -1,    -1,    -1,    -4,    -4,    -4,
+      -4,    -4,    -4,    -4,   304,    -1,   -26,   -20,   167,    82,
+     314,   -11,    90,   101,   102,   105,   106,   -33,   -46,   -46,
+     -46,   -46,   -46,   121,   216,   -46,   263,   121,   216,   -46,
+     263,   369,   124,   369,   369,   369,   369,   369,   369,    61,
+      61,     2,     2,     2,     2,   -46,   -46,   -46,   -46,   -46,
+     -46,   -46,   -46,   -46,   -46,   124,   124,   124,   124,   124,
+     124,   124,   124,   124,   124,   -46,    -4,   -46,   -46,   -46,
+     -46,   -46,   -46,   -46,    13,    -7,   -46,   -46,   128,   -46,
+      -1,   -46,    13,    13,    13,    13,   167,    13,   129,   324,
+     126,   283,   333,   342,   351,   130,   360,   -46,   -46,   -46,
+      13,   -46,   -46,   -46,   -46,   -46,   294,   -46,    -1,   127,
+     -46
 };
 
 /* YYPGOTO[NTERM-NUM].  */
-static const yytype_int16 yypgoto[] =
+static const yytype_int8 yypgoto[] =
 {
-     -40,   -40,   134,    81,     0,     6,    35
+     -46,   -46,     1,     7,    74,     0,     9
 };
 
 /* YYTABLE[YYPACT[STATE-NUM]].  What to do in state STATE-NUM.  If
@@ -657,84 +657,94 @@ static const yytype_int16 yypgoto[] =
 #define YYTABLE_NINF -1
 static const yytype_uint8 yytable[] =
 {
-      18,    78,    40,    41,    25,    26,    19,     3,    39,   154,
-       1,     2,     3,     4,    36,    27,     5,     2,    40,    41,
-      37,    52,    53,    54,    55,    56,    78,    57,    91,    97,
-      93,    94,    88,    89,   155,    28,     6,     7,     8,     9,
-      10,    11,    12,     7,    13,   144,    10,    29,    30,    38,
-      14,   110,    31,    41,    57,    96,    87,    78,   123,   124,
-     125,   126,   127,   128,   129,   130,   131,   132,    54,    55,
-      56,     1,    57,   157,   133,   134,   135,   136,   137,   138,
-     139,   140,   141,   142,   143,   159,    22,   160,    78,     0,
-     156,    98,   100,   153,    33,    35,    99,     6,   168,     8,
-       9,    78,     0,     0,     0,    13,    86,     0,     0,   167,
-      92,    32,     4,    95,   145,   146,   147,   148,   149,   150,
-     151,   102,   104,   106,   108,   109,     0,   111,   112,   113,
-     114,   115,   116,   117,   118,   119,   120,   121,   122,    21,
-      11,    12,     0,     0,     0,     0,     0,     0,    34,    90,
-      79,     0,    80,    81,    82,    83,    84,    85,     0,   164,
-       0,    42,    43,     0,   163,    44,    45,    46,    47,    48,
-      49,    50,    51,     0,   101,   103,   105,   107,     0,   161,
-       0,     0,    79,   100,    80,    81,    82,    83,    84,    85,
-      52,    53,    54,    55,    56,     0,    57,     0,    97,    42,
-      43,     0,     0,    44,    45,    46,    47,    48,    49,    50,
-      51,     0,     0,     0,    43,     0,     0,    44,    45,    46,
-      47,    48,    49,    50,    51,     0,     0,     0,    52,    53,
-      54,    55,    56,   162,    57,     0,     0,     0,     0,     0,
-       0,   165,    52,    53,    54,    55,    56,     0,    57,    68,
-      69,    70,    71,    72,    73,    74,    75,    76,    77,    44,
-      45,    46,    47,    48,    49,    50,    51,    52,    53,    54,
-      55,    56,     0,    57,     0,    78,   152,     0,     0,     0,
-       0,     0,     0,    99,    52,    53,    54,    55,    56,     0,
-      57,    68,    69,    70,    71,    72,    73,    74,    75,    76,
-      77,    58,     0,    59,    60,    61,    62,    63,    64,    65,
-      66,    67,     0,     0,     0,     0,    58,    78,    59,    60,
-      61,    62,    63,    64,    65,    66,    67,    98,    52,    53,
-      54,    55,    56,     0,    57,     0,     0,   158,    52,    53,
-      54,    55,    56,     0,    57,     0,   166,    52,    53,    54,
-      55,    56,     0,    57,     0,   169,    52,    53,    54,    55,
-      56,     0,    57
+      23,     3,    29,     2,    48,    49,    25,    60,    61,    62,
+      63,    64,    26,    65,    86,   109,     1,    30,    45,    42,
+      86,    47,   166,    31,    41,    43,    32,    46,   167,     7,
+      96,    97,    10,    86,    48,    49,    94,   171,   172,    33,
+     100,   111,     6,   156,     8,     9,    95,   107,    65,   113,
+     115,   117,   119,   122,    17,   114,   116,   118,   120,   121,
+      40,   123,   124,   125,   126,   127,   128,   129,   130,   131,
+     132,   133,   134,    34,    22,   108,   145,   146,   147,   148,
+     149,   150,   151,   152,   153,   154,   155,    35,     1,     2,
+       3,     4,    44,    36,     5,   165,   157,   158,   159,   160,
+     161,   162,   163,    62,    63,    64,    99,    65,   101,   102,
+     103,   104,   105,   106,     6,     7,     8,     9,    10,    11,
+      12,    13,    14,    15,    16,    37,    17,    38,    39,    49,
+     169,    87,    18,    88,    89,    90,    91,    92,    93,   173,
+     135,   136,   137,   138,   139,   140,   141,   142,   143,   144,
+     174,   175,    50,    51,   176,   177,    52,    53,    54,    55,
+      56,    57,    58,    59,    86,   178,    86,    86,   112,     0,
+     180,   179,   168,     4,   188,   200,   110,   112,   194,   181,
+     182,   183,   184,     0,   186,    60,    61,    62,    63,    64,
+       0,    65,     0,   109,     0,     0,     0,   196,   199,     0,
+       0,    11,    12,    13,    14,    15,    16,     0,     0,     0,
+       0,     0,    50,    51,    98,     0,    52,    53,    54,    55,
+      56,    57,    58,    59,    51,     0,     0,    52,    53,    54,
+      55,    56,    57,    58,    59,    76,    77,    78,    79,    80,
+      81,    82,    83,    84,    85,    60,    61,    62,    63,    64,
+     185,    65,     0,     0,     0,     0,    60,    61,    62,    63,
+      64,     0,    65,     0,    87,    86,    88,    89,    90,    91,
+      92,    93,     0,   111,    52,    53,    54,    55,    56,    57,
+      58,    59,    76,    77,    78,    79,    80,    81,    82,    83,
+      84,    85,    66,     0,    67,    68,    69,    70,    71,    72,
+      73,    74,    75,    60,    61,    62,    63,    64,     0,    65,
+       0,    66,    86,    67,    68,    69,    70,    71,    72,    73,
+      74,    75,   110,    60,    61,    62,    63,    64,     0,    65,
+       0,   189,   190,     0,    60,    61,    62,    63,    64,     0,
+      65,     0,   197,   198,    60,    61,    62,    63,    64,     0,
+      65,     0,     0,   164,    60,    61,    62,    63,    64,     0,
+      65,     0,     0,   170,    60,    61,    62,    63,    64,     0,
+      65,     0,   187,    60,    61,    62,    63,    64,     0,    65,
+       0,   191,    60,    61,    62,    63,    64,     0,    65,     0,
+     192,    60,    61,    62,    63,    64,     0,    65,     0,   193,
+      60,    61,    62,    63,    64,     0,    65,     0,   195,    60,
+      61,    62,    63,    64,     0,    65
 };
 
 static const yytype_int16 yycheck[] =
 {
-       0,    36,     7,     8,    43,    43,     0,     5,     0,    44,
-       3,     4,     5,     6,    14,    43,     9,     4,     7,     8,
-      14,    36,    37,    38,    39,    40,    36,    42,    28,    44,
-      30,    31,    26,    27,    44,    43,    29,    30,    31,    32,
-      33,    34,    35,    30,    37,    43,    33,    43,    43,    14,
-      43,    45,    43,     8,    42,    44,    43,    36,    58,    59,
-      60,    61,    62,    63,    64,    65,    66,    67,    38,    39,
-      40,     3,    42,    44,    68,    69,    70,    71,    72,    73,
-      74,    75,    76,    77,    78,    45,     5,    45,    36,    -1,
-      90,    44,    44,    87,    13,    14,    44,    29,    44,    31,
-      32,    36,    -1,    -1,    -1,    37,    25,    -1,    -1,    44,
-      29,    43,     6,    32,    79,    80,    81,    82,    83,    84,
-      85,    40,    41,    42,    43,    44,    -1,    46,    47,    48,
-      49,    50,    51,    52,    53,    54,    55,    56,    57,     5,
-      34,    35,    -1,    -1,    -1,    -1,    -1,    -1,    14,    43,
-      11,    -1,    13,    14,    15,    16,    17,    18,    -1,   159,
-      -1,     7,     8,    -1,   158,    11,    12,    13,    14,    15,
-      16,    17,    18,    -1,    40,    41,    42,    43,    -1,   144,
-      -1,    -1,    11,    44,    13,    14,    15,    16,    17,    18,
-      36,    37,    38,    39,    40,    -1,    42,    -1,    44,     7,
-       8,    -1,    -1,    11,    12,    13,    14,    15,    16,    17,
-      18,    -1,    -1,    -1,     8,    -1,    -1,    11,    12,    13,
-      14,    15,    16,    17,    18,    -1,    -1,    -1,    36,    37,
-      38,    39,    40,   152,    42,    -1,    -1,    -1,    -1,    -1,
-      -1,   160,    36,    37,    38,    39,    40,    -1,    42,    10,
-      11,    12,    13,    14,    15,    16,    17,    18,    19,    11,
-      12,    13,    14,    15,    16,    17,    18,    36,    37,    38,
-      39,    40,    -1,    42,    -1,    36,    45,    -1,    -1,    -1,
-      -1,    -1,    -1,    44,    36,    37,    38,    39,    40,    -1,
-      42,    10,    11,    12,    13,    14,    15,    16,    17,    18,
-      19,    18,    -1,    20,    21,    22,    23,    24,    25,    26,
-      27,    28,    -1,    -1,    -1,    -1,    18,    36,    20,    21,
-      22,    23,    24,    25,    26,    27,    28,    44,    36,    37,
-      38,    39,    40,    -1,    42,    -1,    -1,    45,    36,    37,
-      38,    39,    40,    -1,    42,    -1,    44,    36,    37,    38,
-      39,    40,    -1,    42,    -1,    44,    36,    37,    38,    39,
-      40,    -1,    42
+       0,     5,    47,     4,     7,     8,     5,    40,    41,    42,
+      43,    44,     5,    46,    40,    48,     3,    47,    18,    18,
+      40,     0,    48,    47,    17,    18,    47,    18,    48,    30,
+      30,    31,    33,    40,     7,     8,    29,    48,    49,    47,
+      33,    48,    29,    47,    31,    32,    47,    40,    46,    48,
+      49,    50,    51,    53,    41,    48,    49,    50,    51,    52,
+      47,    54,    55,    56,    57,    58,    59,    60,    61,    62,
+      63,    64,    65,    47,     0,    48,    76,    77,    78,    79,
+      80,    81,    82,    83,    84,    85,    86,    47,     3,     4,
+       5,     6,    18,    47,     9,    95,    87,    88,    89,    90,
+      91,    92,    93,    42,    43,    44,    32,    46,    34,    35,
+      36,    37,    38,    39,    29,    30,    31,    32,    33,    34,
+      35,    36,    37,    38,    39,    47,    41,    47,    47,     8,
+      48,    11,    47,    13,    14,    15,    16,    17,    18,    49,
+      66,    67,    68,    69,    70,    71,    72,    73,    74,    75,
+      49,    49,     7,     8,    49,    49,    11,    12,    13,    14,
+      15,    16,    17,    18,    40,   156,    40,    40,    48,    -1,
+     170,   164,    98,     6,    48,    48,    48,    48,    48,   172,
+     173,   174,   175,    -1,   177,    40,    41,    42,    43,    44,
+      -1,    46,    -1,    48,    -1,    -1,    -1,   190,   198,    -1,
+      -1,    34,    35,    36,    37,    38,    39,    -1,    -1,    -1,
+      -1,    -1,     7,     8,    47,    -1,    11,    12,    13,    14,
+      15,    16,    17,    18,     8,    -1,    -1,    11,    12,    13,
+      14,    15,    16,    17,    18,    10,    11,    12,    13,    14,
+      15,    16,    17,    18,    19,    40,    41,    42,    43,    44,
+     176,    46,    -1,    -1,    -1,    -1,    40,    41,    42,    43,
+      44,    -1,    46,    -1,    11,    40,    13,    14,    15,    16,
+      17,    18,    -1,    48,    11,    12,    13,    14,    15,    16,
+      17,    18,    10,    11,    12,    13,    14,    15,    16,    17,
+      18,    19,    18,    -1,    20,    21,    22,    23,    24,    25,
+      26,    27,    28,    40,    41,    42,    43,    44,    -1,    46,
+      -1,    18,    40,    20,    21,    22,    23,    24,    25,    26,
+      27,    28,    48,    40,    41,    42,    43,    44,    -1,    46,
+      -1,    48,    49,    -1,    40,    41,    42,    43,    44,    -1,
+      46,    -1,    48,    49,    40,    41,    42,    43,    44,    -1,
+      46,    -1,    -1,    49,    40,    41,    42,    43,    44,    -1,
+      46,    -1,    -1,    49,    40,    41,    42,    43,    44,    -1,
+      46,    -1,    48,    40,    41,    42,    43,    44,    -1,    46,
+      -1,    48,    40,    41,    42,    43,    44,    -1,    46,    -1,
+      48,    40,    41,    42,    43,    44,    -1,    46,    -1,    48,
+      40,    41,    42,    43,    44,    -1,    46,    -1,    48,    40,
+      41,    42,    43,    44,    -1,    46
 };
 
 /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -742,22 +752,26 @@ static const yytype_int16 yycheck[] =
 static const yytype_uint8 yystos[] =
 {
        0,     3,     4,     5,     6,     9,    29,    30,    31,    32,
-      33,    34,    35,    37,    43,    47,    48,    49,    50,    51,
-      52,    48,    49,    50,    51,    43,    43,    43,    43,    43,
-      43,    43,    43,    49,    48,    49,    50,    51,    52,     0,
-       7,     8,     7,     8,    11,    12,    13,    14,    15,    16,
-      17,    18,    36,    37,    38,    39,    40,    42,    18,    20,
-      21,    22,    23,    24,    25,    26,    27,    28,    10,    11,
-      12,    13,    14,    15,    16,    17,    18,    19,    36,    11,
-      13,    14,    15,    16,    17,    18,    49,    43,    51,    51,
-      43,    50,    49,    50,    50,    49,    44,    44,    44,    44,
-      44,    48,    49,    48,    49,    48,    49,    48,    49,    49,
-      51,    49,    49,    49,    49,    49,    49,    49,    49,    49,
-      49,    49,    49,    50,    50,    50,    50,    50,    50,    50,
-      50,    50,    50,    51,    51,    51,    51,    51,    51,    51,
-      51,    51,    51,    51,    43,    52,    52,    52,    52,    52,
-      52,    52,    45,    51,    44,    44,    50,    44,    45,    45,
-      45,    52,    49,    51,    50,    49,    44,    44,    44,    44
+      33,    34,    35,    36,    37,    38,    39,    41,    47,    51,
+      52,    53,    54,    55,    56,    52,    53,    54,    55,    47,
+      47,    47,    47,    47,    47,    47,    47,    47,    47,    47,
+      47,    53,    52,    53,    54,    55,    56,     0,     7,     8,
+       7,     8,    11,    12,    13,    14,    15,    16,    17,    18,
+      40,    41,    42,    43,    44,    46,    18,    20,    21,    22,
+      23,    24,    25,    26,    27,    28,    10,    11,    12,    13,
+      14,    15,    16,    17,    18,    19,    40,    11,    13,    14,
+      15,    16,    17,    18,    53,    47,    55,    55,    47,    54,
+      53,    54,    54,    54,    54,    54,    54,    53,    48,    48,
+      48,    48,    48,    52,    53,    52,    53,    52,    53,    52,
+      53,    53,    55,    53,    53,    53,    53,    53,    53,    53,
+      53,    53,    53,    53,    53,    54,    54,    54,    54,    54,
+      54,    54,    54,    54,    54,    55,    55,    55,    55,    55,
+      55,    55,    55,    55,    55,    55,    47,    56,    56,    56,
+      56,    56,    56,    56,    49,    55,    48,    48,    54,    48,
+      49,    48,    49,    49,    49,    49,    49,    49,    56,    53,
+      55,    53,    53,    53,    53,    54,    53,    48,    48,    48,
+      49,    48,    48,    48,    48,    48,    53,    48,    49,    55,
+      48
 };
 
 #define yyerrok		(yyerrstatus = 0)
@@ -831,7 +845,7 @@ while (YYID (0))
    we won't break user code: when these are the locations we know.  */
 
 #ifndef YY_LOCATION_PRINT
-# if defined YYLTYPE_IS_TRIVIAL && YYLTYPE_IS_TRIVIAL
+# if YYLTYPE_IS_TRIVIAL
 #  define YY_LOCATION_PRINT(File, Loc)			\
      fprintf (File, "%d.%d-%d.%d",			\
 	      (Loc).first_line, (Loc).first_column,	\
@@ -945,17 +959,20 @@ yy_symbol_print (yyoutput, yytype, yyvaluep, p)
 #if (defined __STDC__ || defined __C99__FUNC__ \
      || defined __cplusplus || defined _MSC_VER)
 static void
-yy_stack_print (yytype_int16 *bottom, yytype_int16 *top)
+yy_stack_print (yytype_int16 *yybottom, yytype_int16 *yytop)
 #else
 static void
-yy_stack_print (bottom, top)
-    yytype_int16 *bottom;
-    yytype_int16 *top;
+yy_stack_print (yybottom, yytop)
+    yytype_int16 *yybottom;
+    yytype_int16 *yytop;
 #endif
 {
   YYFPRINTF (stderr, "Stack now");
-  for (; bottom <= top; ++bottom)
-    YYFPRINTF (stderr, " %d", *bottom);
+  for (; yybottom <= yytop; yybottom++)
+    {
+      int yybot = *yybottom;
+      YYFPRINTF (stderr, " %d", yybot);
+    }
   YYFPRINTF (stderr, "\n");
 }
 
@@ -990,11 +1007,11 @@ yy_reduce_print (yyvsp, yyrule, p)
   /* The symbols being reduced.  */
   for (yyi = 0; yyi < yynrhs; yyi++)
     {
-      fprintf (stderr, "   $%d = ", yyi + 1);
+      YYFPRINTF (stderr, "   $%d = ", yyi + 1);
       yy_symbol_print (stderr, yyrhs[yyprhs[yyrule] + yyi],
 		       &(yyvsp[(yyi + 1) - (yynrhs)])
 		       		       , p);
-      fprintf (stderr, "\n");
+      YYFPRINTF (stderr, "\n");
     }
 }
 
@@ -1276,10 +1293,8 @@ yydestruct (yymsg, yytype, yyvaluep, p)
 	break;
     }
 }
-
 
 /* Prevent warnings from -Wmissing-prototypes.  */
-
 #ifdef YYPARSE_PARAM
 #if defined __STDC__ || defined __cplusplus
 int yyparse (void *YYPARSE_PARAM);
@@ -1298,10 +1313,9 @@ int yyparse ();
 
 
 
-
-/*----------.
-| yyparse.  |
-`----------*/
+/*-------------------------.
+| yyparse or yypush_parse.  |
+`-------------------------*/
 
 #ifdef YYPARSE_PARAM
 #if (defined __STDC__ || defined __C99__FUNC__ \
@@ -1325,74 +1339,75 @@ yyparse (p)
 #endif
 #endif
 {
-  /* The look-ahead symbol.  */
+/* The lookahead symbol.  */
 int yychar;
 
-/* The semantic value of the look-ahead symbol.  */
+/* The semantic value of the lookahead symbol.  */
 YYSTYPE yylval;
 
-/* Number of syntax errors so far.  */
-int yynerrs;
+    /* Number of syntax errors so far.  */
+    int yynerrs;
 
-  int yystate;
-  int yyn;
-  int yyresult;
-  /* Number of tokens to shift before error messages enabled.  */
-  int yyerrstatus;
-  /* Look-ahead token as an internal (translated) token number.  */
-  int yytoken = 0;
-#if YYERROR_VERBOSE
-  /* Buffer for error messages, and its allocated size.  */
-  char yymsgbuf[128];
-  char *yymsg = yymsgbuf;
-  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
-#endif
-
-  /* Three stacks and their tools:
-     `yyss': related to states,
-     `yyvs': related to semantic values,
-     `yyls': related to locations.
+    int yystate;
+    /* Number of tokens to shift before error messages enabled.  */
+    int yyerrstatus;
 
-     Refer to the stacks thru separate pointers, to allow yyoverflow
-     to reallocate them elsewhere.  */
+    /* The stacks and their tools:
+       `yyss': related to states.
+       `yyvs': related to semantic values.
 
-  /* The state stack.  */
-  yytype_int16 yyssa[YYINITDEPTH];
-  yytype_int16 *yyss = yyssa;
-  yytype_int16 *yyssp;
+       Refer to the stacks thru separate pointers, to allow yyoverflow
+       to reallocate them elsewhere.  */
 
-  /* The semantic value stack.  */
-  YYSTYPE yyvsa[YYINITDEPTH];
-  YYSTYPE *yyvs = yyvsa;
-  YYSTYPE *yyvsp;
+    /* The state stack.  */
+    yytype_int16 yyssa[YYINITDEPTH];
+    yytype_int16 *yyss;
+    yytype_int16 *yyssp;
 
+    /* The semantic value stack.  */
+    YYSTYPE yyvsa[YYINITDEPTH];
+    YYSTYPE *yyvs;
+    YYSTYPE *yyvsp;
 
+    YYSIZE_T yystacksize;
 
-#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
-
-  YYSIZE_T yystacksize = YYINITDEPTH;
-
+  int yyn;
+  int yyresult;
+  /* Lookahead token as an internal (translated) token number.  */
+  int yytoken;
   /* The variables used to return semantic value and location from the
      action routines.  */
   YYSTYPE yyval;
 
+#if YYERROR_VERBOSE
+  /* Buffer for error messages, and its allocated size.  */
+  char yymsgbuf[128];
+  char *yymsg = yymsgbuf;
+  YYSIZE_T yymsg_alloc = sizeof yymsgbuf;
+#endif
+
+#define YYPOPSTACK(N)   (yyvsp -= (N), yyssp -= (N))
 
   /* The number of symbols on the RHS of the reduced rule.
      Keep to zero when no symbol should be popped.  */
   int yylen = 0;
 
+  yytoken = 0;
+  yyss = yyssa;
+  yyvs = yyvsa;
+  yystacksize = YYINITDEPTH;
+
   YYDPRINTF ((stderr, "Starting parse\n"));
 
   yystate = 0;
   yyerrstatus = 0;
   yynerrs = 0;
-  yychar = YYEMPTY;		/* Cause a token to be read.  */
+  yychar = YYEMPTY; /* Cause a token to be read.  */
 
   /* Initialize stack pointers.
      Waste one element of value and location stack
      so that they stay on the same level as the state stack.
      The wasted elements are never initialized.  */
-
   yyssp = yyss;
   yyvsp = yyvs;
 
@@ -1422,7 +1437,6 @@ int yynerrs;
 	YYSTYPE *yyvs1 = yyvs;
 	yytype_int16 *yyss1 = yyss;
 
-
 	/* Each stack pointer address is followed by the size of the
 	   data in use in that stack, in bytes.  This used to be a
 	   conditional around just the two extra args, but that might
@@ -1430,7 +1444,6 @@ int yynerrs;
 	yyoverflow (YY_("memory exhausted"),
 		    &yyss1, yysize * sizeof (*yyssp),
 		    &yyvs1, yysize * sizeof (*yyvsp),
-
 		    &yystacksize);
 
 	yyss = yyss1;
@@ -1453,9 +1466,8 @@ int yynerrs;
 	  (union yyalloc *) YYSTACK_ALLOC (YYSTACK_BYTES (yystacksize));
 	if (! yyptr)
 	  goto yyexhaustedlab;
-	YYSTACK_RELOCATE (yyss);
-	YYSTACK_RELOCATE (yyvs);
-
+	YYSTACK_RELOCATE (yyss_alloc, yyss);
+	YYSTACK_RELOCATE (yyvs_alloc, yyvs);
 #  undef YYSTACK_RELOCATE
 	if (yyss1 != yyssa)
 	  YYSTACK_FREE (yyss1);
@@ -1466,7 +1478,6 @@ int yynerrs;
       yyssp = yyss + yysize - 1;
       yyvsp = yyvs + yysize - 1;
 
-
       YYDPRINTF ((stderr, "Stack size increased to %lu\n",
 		  (unsigned long int) yystacksize));
 
@@ -1476,6 +1487,9 @@ int yynerrs;
 
   YYDPRINTF ((stderr, "Entering state %d\n", yystate));
 
+  if (yystate == YYFINAL)
+    YYACCEPT;
+
   goto yybackup;
 
 /*-----------.
@@ -1484,16 +1498,16 @@ int yynerrs;
 yybackup:
 
   /* Do appropriate processing given the current state.  Read a
-     look-ahead token if we need one and don't already have one.  */
+     lookahead token if we need one and don't already have one.  */
 
-  /* First try to decide what to do without reference to look-ahead token.  */
+  /* First try to decide what to do without reference to lookahead token.  */
   yyn = yypact[yystate];
   if (yyn == YYPACT_NINF)
     goto yydefault;
 
-  /* Not known => get a look-ahead token if don't already have one.  */
+  /* Not known => get a lookahead token if don't already have one.  */
 
-  /* YYCHAR is either YYEMPTY or YYEOF or a valid look-ahead symbol.  */
+  /* YYCHAR is either YYEMPTY or YYEOF or a valid lookahead symbol.  */
   if (yychar == YYEMPTY)
     {
       YYDPRINTF ((stderr, "Reading a token: "));
@@ -1525,20 +1539,16 @@ yybackup:
       goto yyreduce;
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   /* Count tokens shifted since error; after three, turn off error
      status.  */
   if (yyerrstatus)
     yyerrstatus--;
 
-  /* Shift the look-ahead token.  */
+  /* Shift the lookahead token.  */
   YY_SYMBOL_PRINT ("Shifting", yytoken, &yylval, &yylloc);
 
-  /* Discard the shifted token unless it is eof.  */
-  if (yychar != YYEOF)
-    yychar = YYEMPTY;
+  /* Discard the shifted token.  */
+  yychar = YYEMPTY;
 
   yystate = yyn;
   *++yyvsp = yylval;
@@ -1578,7 +1588,9 @@ yyreduce:
   switch (yyn)
     {
         case 3:
-#line 66 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 66 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       switch(p->type) {
       case(MS_PARSE_TYPE_BOOLEAN):
@@ -1591,11 +1603,13 @@ yyreduce:
           p->result.strval = strdup("false");
         break;
       }
-    }
+    ;}
     break;
 
   case 4:
-#line 79 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 79 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       switch(p->type) {
       case(MS_PARSE_TYPE_BOOLEAN):
@@ -1609,11 +1623,13 @@ yyreduce:
         snprintf(p->result.strval, 64, "%g", (yyvsp[(1) - (1)].dblval));
         break;
       }
-    }
+    ;}
     break;
 
   case 5:
-#line 93 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 93 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       switch(p->type) {
       case(MS_PARSE_TYPE_BOOLEAN):
@@ -1626,11 +1642,13 @@ yyreduce:
         p->result.strval = (yyvsp[(1) - (1)].strval); // strdup($1);
         break;
       }
-    }
+    ;}
     break;
 
   case 6:
-#line 106 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 106 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
     switch(p->type) {
     case(MS_PARSE_TYPE_SHAPE):
@@ -1638,11 +1656,13 @@ yyreduce:
       p->result.shpval->scratch = MS_FALSE;
       break;
     }
-  }
+  ;}
     break;
 
   case 7:
-#line 117 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 117 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].intval) == MS_TRUE)
 		                           (yyval.intval) = MS_TRUE;
@@ -1650,11 +1670,13 @@ yyreduce:
 			                   (yyval.intval) = MS_TRUE;
 			                 else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 8:
-#line 125 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 125 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].intval) == MS_TRUE) {
 			                   if((yyvsp[(3) - (3)].intval) == MS_TRUE)
@@ -1663,11 +1685,13 @@ yyreduce:
 			                     (yyval.intval) = MS_FALSE;
 			                 } else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 9:
-#line 134 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 134 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].intval) == MS_TRUE)
 		                           (yyval.intval) = MS_TRUE;
@@ -1675,11 +1699,13 @@ yyreduce:
 			                   (yyval.intval) = MS_TRUE;
 			                 else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 10:
-#line 142 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 142 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].intval) == MS_TRUE) {
 			                   if((yyvsp[(3) - (3)].dblval) != 0)
@@ -1688,11 +1714,13 @@ yyreduce:
 			                     (yyval.intval) = MS_FALSE;
 			                 } else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 11:
-#line 151 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 151 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].dblval) != 0)
 		                           (yyval.intval) = MS_TRUE;
@@ -1700,11 +1728,13 @@ yyreduce:
 			                   (yyval.intval) = MS_TRUE;
 			                 else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 12:
-#line 159 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 159 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].dblval) != 0) {
 			                   if((yyvsp[(3) - (3)].intval) == MS_TRUE)
@@ -1713,11 +1743,13 @@ yyreduce:
 			                     (yyval.intval) = MS_FALSE;
 			                 } else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 13:
-#line 168 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 168 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].dblval) != 0)
 		                           (yyval.intval) = MS_TRUE;
@@ -1725,11 +1757,13 @@ yyreduce:
 			                   (yyval.intval) = MS_TRUE;
 			                 else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 14:
-#line 176 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 176 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].dblval) != 0) {
 			                   if((yyvsp[(3) - (3)].dblval) != 0)
@@ -1738,21 +1772,27 @@ yyreduce:
 			                     (yyval.intval) = MS_FALSE;
 			                 } else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 15:
-#line 185 "mapparser.y"
-    { (yyval.intval) = !(yyvsp[(2) - (2)].intval); }
+
+/* Line 1455 of yacc.c  */
+#line 185 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.intval) = !(yyvsp[(2) - (2)].intval); ;}
     break;
 
   case 16:
-#line 186 "mapparser.y"
-    { (yyval.intval) = !(yyvsp[(2) - (2)].dblval); }
+
+/* Line 1455 of yacc.c  */
+#line 186 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.intval) = !(yyvsp[(2) - (2)].dblval); ;}
     break;
 
   case 17:
-#line 187 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 187 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                          ms_regex_t re;
 
@@ -1767,11 +1807,13 @@ yyreduce:
                                          ms_regfree(&re);
                                          free((yyvsp[(1) - (3)].strval));
                                          free((yyvsp[(3) - (3)].strval));
-                                       }
+                                       ;}
     break;
 
   case 18:
-#line 202 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 202 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                          ms_regex_t re;
 
@@ -1786,76 +1828,92 @@ yyreduce:
                                          ms_regfree(&re);
                                          free((yyvsp[(1) - (3)].strval));
                                          free((yyvsp[(3) - (3)].strval));
-                                       }
+                                       ;}
     break;
 
   case 19:
-#line 217 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 217 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].dblval) == (yyvsp[(3) - (3)].dblval))
 	 		                   (yyval.intval) = MS_TRUE;
 			                 else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 20:
-#line 223 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 223 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].dblval) != (yyvsp[(3) - (3)].dblval))
 			                   (yyval.intval) = MS_TRUE;
 			                 else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 21:
-#line 229 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 229 "/home/even/mapserver/git/mapserver/mapparser.y"
     {	                                 
 	                                 if((yyvsp[(1) - (3)].dblval) > (yyvsp[(3) - (3)].dblval))
 			                   (yyval.intval) = MS_TRUE;
 			                 else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 22:
-#line 235 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 235 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].dblval) < (yyvsp[(3) - (3)].dblval))
 			                   (yyval.intval) = MS_TRUE;
 			                 else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 23:
-#line 241 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 241 "/home/even/mapserver/git/mapserver/mapparser.y"
     {	                                 
 	                                 if((yyvsp[(1) - (3)].dblval) >= (yyvsp[(3) - (3)].dblval))
 			                   (yyval.intval) = MS_TRUE;
 			                 else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 24:
-#line 247 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 247 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].dblval) <= (yyvsp[(3) - (3)].dblval))
 			                   (yyval.intval) = MS_TRUE;
 			                 else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 25:
-#line 253 "mapparser.y"
-    { (yyval.intval) = (yyvsp[(2) - (3)].intval); }
+
+/* Line 1455 of yacc.c  */
+#line 253 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.intval) = (yyvsp[(2) - (3)].intval); ;}
     break;
 
   case 26:
-#line 254 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 254 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                          if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) == 0)
 					   (yyval.intval) = MS_TRUE;
@@ -1863,11 +1921,13 @@ yyreduce:
 					   (yyval.intval) = MS_FALSE;
 					 free((yyvsp[(1) - (3)].strval));
 					 free((yyvsp[(3) - (3)].strval));
-				       }
+				       ;}
     break;
 
   case 27:
-#line 262 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 262 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                          if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) != 0)
 					   (yyval.intval) = MS_TRUE;
@@ -1875,11 +1935,13 @@ yyreduce:
 					   (yyval.intval) = MS_FALSE;
 					 free((yyvsp[(1) - (3)].strval));
 					 free((yyvsp[(3) - (3)].strval));
-				       }
+				       ;}
     break;
 
   case 28:
-#line 270 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 270 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                          if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) > 0)
 					   (yyval.intval) = MS_TRUE;
@@ -1888,11 +1950,13 @@ yyreduce:
 					 /* printf("Not freeing: %s >= %s\n",$1, $3); */
 					 free((yyvsp[(1) - (3)].strval));
 					 free((yyvsp[(3) - (3)].strval));
-                                       }
+                                       ;}
     break;
 
   case 29:
-#line 279 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 279 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                          if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) < 0)
 					   (yyval.intval) = MS_TRUE;
@@ -1900,11 +1964,13 @@ yyreduce:
 					   (yyval.intval) = MS_FALSE;
 					 free((yyvsp[(1) - (3)].strval));
 					 free((yyvsp[(3) - (3)].strval));
-                                       }
+                                       ;}
     break;
 
   case 30:
-#line 287 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 287 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                          if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) >= 0)
 					   (yyval.intval) = MS_TRUE;
@@ -1912,11 +1978,13 @@ yyreduce:
 					   (yyval.intval) = MS_FALSE;
 					 free((yyvsp[(1) - (3)].strval));
 					 free((yyvsp[(3) - (3)].strval));
-                                       }
+                                       ;}
     break;
 
   case 31:
-#line 295 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 295 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                          if(strcmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) <= 0)
 					   (yyval.intval) = MS_TRUE;
@@ -1924,71 +1992,85 @@ yyreduce:
 					   (yyval.intval) = MS_FALSE;
 					 free((yyvsp[(1) - (3)].strval));
 					 free((yyvsp[(3) - (3)].strval));
-                                       }
+                                       ;}
     break;
 
   case 32:
-#line 303 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 303 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                      if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) == 0)
 				       (yyval.intval) = MS_TRUE;
 				     else
 				       (yyval.intval) = MS_FALSE;
-				   }
+				   ;}
     break;
 
   case 33:
-#line 309 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 309 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                      if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) != 0)
 				       (yyval.intval) = MS_TRUE;
 				     else
 				       (yyval.intval) = MS_FALSE;
-				   }
+				   ;}
     break;
 
   case 34:
-#line 315 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 315 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                      if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) > 0)
 				       (yyval.intval) = MS_TRUE;
 				     else
 				       (yyval.intval) = MS_FALSE;
-                                   }
+                                   ;}
     break;
 
   case 35:
-#line 321 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 321 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                      if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) < 0)
 				       (yyval.intval) = MS_TRUE;
 				     else
 				       (yyval.intval) = MS_FALSE;
-                                   }
+                                   ;}
     break;
 
   case 36:
-#line 327 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 327 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                      if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) >= 0)
 				       (yyval.intval) = MS_TRUE;
 				     else
 				       (yyval.intval) = MS_FALSE;
-                                   }
+                                   ;}
     break;
 
   case 37:
-#line 333 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 333 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                      if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) <= 0)
 				       (yyval.intval) = MS_TRUE;
 				     else
 				       (yyval.intval) = MS_FALSE;
-                                   }
+                                   ;}
     break;
 
   case 38:
-#line 339 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 339 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 					 char *delim,*bufferp;
 
@@ -2005,15 +2087,17 @@ yyreduce:
 					   bufferp=delim+1;
 					 }
 
-					 if(strcmp((yyvsp[(1) - (3)].strval),bufferp) == 0) // is this test necessary?
+					 if((yyval.intval)==MS_FALSE && strcmp((yyvsp[(1) - (3)].strval),bufferp) == 0) // test for last (or only) item
 					   (yyval.intval) = MS_TRUE;
 					 free((yyvsp[(1) - (3)].strval));
 					 free((yyvsp[(3) - (3)].strval));
-				       }
+				       ;}
     break;
 
   case 39:
-#line 360 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 360 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 					 char *delim,*bufferp;
 
@@ -2034,21 +2118,25 @@ yyreduce:
 					   (yyval.intval) = MS_TRUE;
 					   
 					 free((yyvsp[(3) - (3)].strval));
-				       }
+				       ;}
     break;
 
   case 40:
-#line 381 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 381 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
 	                                 if((yyvsp[(1) - (3)].dblval) == (yyvsp[(3) - (3)].dblval))
 	 		                   (yyval.intval) = MS_TRUE;
 			                 else
 			                   (yyval.intval) = MS_FALSE;
-		                       }
+		                       ;}
     break;
 
   case 41:
-#line 387 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 387 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                          if(strcasecmp((yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)) == 0)
 					   (yyval.intval) = MS_TRUE;
@@ -2056,21 +2144,25 @@ yyreduce:
 					   (yyval.intval) = MS_FALSE;
 					 free((yyvsp[(1) - (3)].strval));
 					 free((yyvsp[(3) - (3)].strval));
-				       }
+				       ;}
     break;
 
   case 42:
-#line 395 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 395 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
                                      if(msTimeCompare(&((yyvsp[(1) - (3)].tmval)), &((yyvsp[(3) - (3)].tmval))) == 0)
 				       (yyval.intval) = MS_TRUE;
 				     else
 				       (yyval.intval) = MS_FALSE;
-				   }
+				   ;}
     break;
 
   case 43:
-#line 402 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 402 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       int rval;
       rval = msGEOSEquals((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
@@ -2081,11 +2173,13 @@ yyreduce:
         return(-1);
       } else
         (yyval.intval) = rval;
-    }
+    ;}
     break;
 
   case 44:
-#line 413 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 413 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       int rval;
       rval = msGEOSIntersects((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));      
@@ -2096,11 +2190,13 @@ yyreduce:
         return(-1);
       } else
         (yyval.intval) = rval;
-    }
+    ;}
     break;
 
   case 45:
-#line 424 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 424 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       int rval;
       rval = msGEOSDisjoint((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
@@ -2111,11 +2207,13 @@ yyreduce:
         return(-1);
       } else
         (yyval.intval) = rval;
-    }
+    ;}
     break;
 
   case 46:
-#line 435 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 435 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       int rval;
       rval = msGEOSTouches((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
@@ -2126,11 +2224,13 @@ yyreduce:
         return(-1);
       } else
         (yyval.intval) = rval;
-    }
+    ;}
     break;
 
   case 47:
-#line 446 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 446 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       int rval;
       rval = msGEOSOverlaps((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
@@ -2141,11 +2241,13 @@ yyreduce:
         return(-1);
       } else
         (yyval.intval) = rval;
-    }
+    ;}
     break;
 
   case 48:
-#line 457 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 457 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       int rval;
       rval = msGEOSCrosses((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
@@ -2156,11 +2258,13 @@ yyreduce:
         return(-1);
       } else
         (yyval.intval) = rval;
-    }
+    ;}
     break;
 
   case 49:
-#line 468 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 468 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       int rval;
       rval = msGEOSWithin((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
@@ -2171,11 +2275,13 @@ yyreduce:
         return(-1);
       } else
         (yyval.intval) = rval;
-    }
+    ;}
     break;
 
   case 50:
-#line 479 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 479 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       int rval;
       rval = msGEOSContains((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
@@ -2186,11 +2292,13 @@ yyreduce:
         return(-1);
       } else
         (yyval.intval) = rval;
-    }
+    ;}
     break;
 
   case 51:
-#line 490 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 490 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       double d;
       d = msGEOSDistance((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
@@ -2200,11 +2308,13 @@ yyreduce:
         (yyval.intval) = MS_TRUE;
       else
         (yyval.intval) = MS_FALSE;
-    }
+    ;}
     break;
 
   case 52:
-#line 500 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 500 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       double d;
       d = msGEOSDistance((yyvsp[(1) - (3)].shpval), (yyvsp[(3) - (3)].shpval));
@@ -2214,62 +2324,82 @@ yyreduce:
         (yyval.intval) = MS_TRUE;
       else
         (yyval.intval) = MS_FALSE;
-    }
+    ;}
     break;
 
   case 54:
-#line 513 "mapparser.y"
-    { (yyval.dblval) = (yyvsp[(2) - (3)].dblval); }
+
+/* Line 1455 of yacc.c  */
+#line 513 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.dblval) = (yyvsp[(2) - (3)].dblval); ;}
     break;
 
   case 55:
-#line 514 "mapparser.y"
-    { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) + (yyvsp[(3) - (3)].dblval); }
+
+/* Line 1455 of yacc.c  */
+#line 514 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) + (yyvsp[(3) - (3)].dblval); ;}
     break;
 
   case 56:
-#line 515 "mapparser.y"
-    { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) - (yyvsp[(3) - (3)].dblval); }
+
+/* Line 1455 of yacc.c  */
+#line 515 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) - (yyvsp[(3) - (3)].dblval); ;}
     break;
 
   case 57:
-#line 516 "mapparser.y"
-    { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) * (yyvsp[(3) - (3)].dblval); }
+
+/* Line 1455 of yacc.c  */
+#line 516 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.dblval) = (yyvsp[(1) - (3)].dblval) * (yyvsp[(3) - (3)].dblval); ;}
     break;
 
   case 58:
-#line 517 "mapparser.y"
-    { (yyval.dblval) = (int)(yyvsp[(1) - (3)].dblval) % (int)(yyvsp[(3) - (3)].dblval); }
+
+/* Line 1455 of yacc.c  */
+#line 517 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.dblval) = (int)(yyvsp[(1) - (3)].dblval) % (int)(yyvsp[(3) - (3)].dblval); ;}
     break;
 
   case 59:
-#line 518 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 518 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       if((yyvsp[(3) - (3)].dblval) == 0.0) {
         yyerror(p, "Division by zero.");
         return(-1);
       } else
         (yyval.dblval) = (yyvsp[(1) - (3)].dblval) / (yyvsp[(3) - (3)].dblval); 
-    }
+    ;}
     break;
 
   case 60:
-#line 525 "mapparser.y"
-    { (yyval.dblval) = (yyvsp[(2) - (2)].dblval); }
+
+/* Line 1455 of yacc.c  */
+#line 525 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.dblval) = (yyvsp[(2) - (2)].dblval); ;}
     break;
 
   case 61:
-#line 526 "mapparser.y"
-    { (yyval.dblval) = pow((yyvsp[(1) - (3)].dblval), (yyvsp[(3) - (3)].dblval)); }
+
+/* Line 1455 of yacc.c  */
+#line 526 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.dblval) = pow((yyvsp[(1) - (3)].dblval), (yyvsp[(3) - (3)].dblval)); ;}
     break;
 
   case 62:
-#line 527 "mapparser.y"
-    { (yyval.dblval) = strlen((yyvsp[(3) - (4)].strval)); }
+
+/* Line 1455 of yacc.c  */
+#line 527 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.dblval) = strlen((yyvsp[(3) - (4)].strval)); ;}
     break;
 
   case 63:
-#line 528 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 528 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       if((yyvsp[(3) - (4)].shpval)->type != MS_SHAPE_POLYGON) {
         yyerror(p, "Area can only be computed for polygon shapes.");
@@ -2277,21 +2407,27 @@ yyreduce:
       }
       (yyval.dblval) = msGetPolygonArea((yyvsp[(3) - (4)].shpval));
       if((yyvsp[(3) - (4)].shpval)->scratch == MS_TRUE) msFreeShape((yyvsp[(3) - (4)].shpval));
-    }
+    ;}
     break;
 
   case 64:
-#line 536 "mapparser.y"
-    { (yyval.dblval) = (MS_NINT((yyvsp[(3) - (6)].dblval)/(yyvsp[(5) - (6)].dblval)))*(yyvsp[(5) - (6)].dblval); }
+
+/* Line 1455 of yacc.c  */
+#line 536 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.dblval) = (MS_NINT((yyvsp[(3) - (6)].dblval)/(yyvsp[(5) - (6)].dblval)))*(yyvsp[(5) - (6)].dblval); ;}
     break;
 
   case 66:
-#line 540 "mapparser.y"
-    { (yyval.shpval) = (yyvsp[(2) - (3)].shpval); }
+
+/* Line 1455 of yacc.c  */
+#line 540 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.shpval) = (yyvsp[(2) - (3)].shpval); ;}
     break;
 
   case 67:
-#line 541 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 541 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       shapeObj *s;
       s = msGEOSBuffer((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
@@ -2301,11 +2437,13 @@ yyreduce:
       }
       s->scratch = MS_TRUE;
       (yyval.shpval) = s;
-    }
+    ;}
     break;
 
   case 68:
-#line 551 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 551 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       shapeObj *s;
       s = msGEOSDifference((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].shpval));
@@ -2315,46 +2453,170 @@ yyreduce:
       }
       s->scratch = MS_TRUE;
       (yyval.shpval) = s;
-    }
+    ;}
+    break;
+
+  case 69:
+
+/* Line 1455 of yacc.c  */
+#line 561 "/home/even/mapserver/git/mapserver/mapparser.y"
+    {
+      shapeObj *s;
+      s = msGEOSSimplify((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
+      if(!s) {
+        yyerror(p, "Executing simplify failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      (yyval.shpval) = s;
+    ;}
     break;
 
   case 70:
-#line 564 "mapparser.y"
-    { (yyval.strval) = (yyvsp[(2) - (3)].strval); }
+
+/* Line 1455 of yacc.c  */
+#line 571 "/home/even/mapserver/git/mapserver/mapparser.y"
+    {
+      shapeObj *s;
+      s = msGEOSTopologyPreservingSimplify((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
+      if(!s) {
+        yyerror(p, "Executing simplifypt failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      (yyval.shpval) = s;
+    ;}
     break;
 
   case 71:
-#line 565 "mapparser.y"
+
+/* Line 1455 of yacc.c  */
+#line 581 "/home/even/mapserver/git/mapserver/mapparser.y"
+    {
+      shapeObj *s;
+      s = msGeneralize((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval));
+      if(!s) {
+        yyerror(p, "Executing generalize failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      (yyval.shpval) = s;
+    ;}
+    break;
+
+  case 72:
+
+/* Line 1455 of yacc.c  */
+#line 591 "/home/even/mapserver/git/mapserver/mapparser.y"
+    {
+      shapeObj *s;
+      s = msSmoothShapeSIA((yyvsp[(3) - (4)].shpval), 3, 1, NULL);
+      if(!s) {
+        yyerror(p, "Executing smoothsia failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      (yyval.shpval) = s;
+    ;}
+    break;
+
+  case 73:
+
+/* Line 1455 of yacc.c  */
+#line 601 "/home/even/mapserver/git/mapserver/mapparser.y"
+    {
+      shapeObj *s;
+      s = msSmoothShapeSIA((yyvsp[(3) - (6)].shpval), (yyvsp[(5) - (6)].dblval), 1, NULL);
+      if(!s) {
+        yyerror(p, "Executing smoothsia failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      (yyval.shpval) = s;
+    ;}
+    break;
+
+  case 74:
+
+/* Line 1455 of yacc.c  */
+#line 611 "/home/even/mapserver/git/mapserver/mapparser.y"
+    {
+      shapeObj *s;
+      s = msSmoothShapeSIA((yyvsp[(3) - (8)].shpval), (yyvsp[(5) - (8)].dblval), (yyvsp[(7) - (8)].dblval), NULL);
+      if(!s) {
+        yyerror(p, "Executing smoothsia failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      (yyval.shpval) = s;
+    ;}
+    break;
+
+  case 75:
+
+/* Line 1455 of yacc.c  */
+#line 621 "/home/even/mapserver/git/mapserver/mapparser.y"
+    {
+      shapeObj *s;
+      s = msSmoothShapeSIA((yyvsp[(3) - (10)].shpval), (yyvsp[(5) - (10)].dblval), (yyvsp[(7) - (10)].dblval), (yyvsp[(9) - (10)].strval));
+      free((yyvsp[(9) - (10)].strval));
+      if(!s) {
+        yyerror(p, "Executing smoothsia failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      (yyval.shpval) = s;
+    ;}
+    break;
+
+  case 77:
+
+/* Line 1455 of yacc.c  */
+#line 635 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.strval) = (yyvsp[(2) - (3)].strval); ;}
+    break;
+
+  case 78:
+
+/* Line 1455 of yacc.c  */
+#line 636 "/home/even/mapserver/git/mapserver/mapparser.y"
     { 
       (yyval.strval) = (char *)malloc(strlen((yyvsp[(1) - (3)].strval)) + strlen((yyvsp[(3) - (3)].strval)) + 1);
       sprintf((yyval.strval), "%s%s", (yyvsp[(1) - (3)].strval), (yyvsp[(3) - (3)].strval)); free((yyvsp[(1) - (3)].strval)); free((yyvsp[(3) - (3)].strval)); 
-    }
+    ;}
     break;
 
-  case 72:
-#line 569 "mapparser.y"
+  case 79:
+
+/* Line 1455 of yacc.c  */
+#line 640 "/home/even/mapserver/git/mapserver/mapparser.y"
     {
       (yyval.strval) = (char *) malloc(strlen((yyvsp[(5) - (6)].strval)) + 64); /* Plenty big? Should use snprintf below... */
       sprintf((yyval.strval), (yyvsp[(5) - (6)].strval), (yyvsp[(3) - (6)].dblval));
-    }
+    ;}
     break;
 
-  case 73:
-#line 573 "mapparser.y"
+  case 80:
+
+/* Line 1455 of yacc.c  */
+#line 644 "/home/even/mapserver/git/mapserver/mapparser.y"
     {  
       (yyvsp[(3) - (4)].strval) = msCommifyString((yyvsp[(3) - (4)].strval)); 
       (yyval.strval) = (yyvsp[(3) - (4)].strval); 
-    }
+    ;}
     break;
 
-  case 75:
-#line 580 "mapparser.y"
-    { (yyval.tmval) = (yyvsp[(2) - (3)].tmval); }
+  case 82:
+
+/* Line 1455 of yacc.c  */
+#line 651 "/home/even/mapserver/git/mapserver/mapparser.y"
+    { (yyval.tmval) = (yyvsp[(2) - (3)].tmval); ;}
     break;
 
 
-/* Line 1267 of yacc.c.  */
-#line 2358 "mapparser.c"
+
+/* Line 1455 of yacc.c  */
+#line 2620 "/home/even/mapserver/git/mapserver/mapparser.c"
       default: break;
     }
   YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -2365,7 +2627,6 @@ yyreduce:
 
   *++yyvsp = yyval;
 
-
   /* Now `shift' the result of the reduction.  Determine what state
      that goes to, based on the state we popped back to and the rule
      number reduced by.  */
@@ -2430,7 +2691,7 @@ yyerrlab:
 
   if (yyerrstatus == 3)
     {
-      /* If just tried and failed to reuse look-ahead token after an
+      /* If just tried and failed to reuse lookahead token after an
 	 error, discard it.  */
 
       if (yychar <= YYEOF)
@@ -2447,7 +2708,7 @@ yyerrlab:
 	}
     }
 
-  /* Else will try to reuse look-ahead token after shifting the error
+  /* Else will try to reuse lookahead token after shifting the error
      token.  */
   goto yyerrlab1;
 
@@ -2504,9 +2765,6 @@ yyerrlab1:
       YY_STACK_PRINT (yyss, yyssp);
     }
 
-  if (yyn == YYFINAL)
-    YYACCEPT;
-
   *++yyvsp = yylval;
 
 
@@ -2531,7 +2789,7 @@ yyabortlab:
   yyresult = 1;
   goto yyreturn;
 
-#ifndef yyoverflow
+#if !defined(yyoverflow) || YYERROR_VERBOSE
 /*-------------------------------------------------.
 | yyexhaustedlab -- memory exhaustion comes here.  |
 `-------------------------------------------------*/
@@ -2542,7 +2800,7 @@ yyexhaustedlab:
 #endif
 
 yyreturn:
-  if (yychar != YYEOF && yychar != YYEMPTY)
+  if (yychar != YYEMPTY)
      yydestruct ("Cleanup: discarding lookahead",
 		 yytoken, &yylval, p);
   /* Do not reclaim the symbols of the rule which action triggered
@@ -2568,7 +2826,9 @@ yyreturn:
 }
 
 
-#line 583 "mapparser.y"
+
+/* Line 1675 of yacc.c  */
+#line 654 "/home/even/mapserver/git/mapserver/mapparser.y"
 
 
 /*
@@ -2642,6 +2902,14 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
     // fprintf(stderr, "token value = %s\n", msShapeToWKT(p->shape));
     (*lvalp).shpval = p->shape;
     break;
+  case MS_TOKEN_BINDING_MAP_CELLSIZE:
+    token = NUMBER;
+    (*lvalp).dblval = p->dblval;
+    break;
+  case MS_TOKEN_BINDING_DATA_CELLSIZE:
+    token = NUMBER;
+    (*lvalp).dblval = p->dblval2;
+    break;    
   case MS_TOKEN_BINDING_TIME:
     token = TIME;
     msTimeInit(&((*lvalp).tmval));
@@ -2659,6 +2927,10 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
 
   case MS_TOKEN_FUNCTION_BUFFER: token = YYBUFFER; break;
   case MS_TOKEN_FUNCTION_DIFFERENCE: token = DIFFERENCE; break;
+  case MS_TOKEN_FUNCTION_SIMPLIFY: token = SIMPLIFY; break;
+  case MS_TOKEN_FUNCTION_SIMPLIFYPT: token = SIMPLIFYPT; break;
+  case MS_TOKEN_FUNCTION_GENERALIZE: token = GENERALIZE; break;
+  case MS_TOKEN_FUNCTION_SMOOTHSIA: token = SMOOTHSIA; break;    
 
   default:
     break;
@@ -2669,7 +2941,7 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
 }
 
 int yyerror(parseObj *p, const char *s) {
-  msSetError(MS_PARSEERR, s, "yyparse()");
+  msSetError(MS_PARSEERR, "%s", "yyparse()", s);
   return(0);
 }
 
diff --git a/mapparser.h b/mapparser.h
index 47506c1..6dcc770 100644
--- a/mapparser.h
+++ b/mapparser.h
@@ -1,24 +1,23 @@
-/* A Bison parser, made by GNU Bison 2.3.  */
 
-/* Skeleton interface for Bison's Yacc-like parsers in C
+/* A Bison parser, made by GNU Bison 2.4.1.  */
 
-   Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
+/* Skeleton interface for Bison's Yacc-like parsers in C
+   
+      Copyright (C) 1984, 1989, 1990, 2000, 2001, 2002, 2003, 2004, 2005, 2006
    Free Software Foundation, Inc.
-
-   This program is free software; you can redistribute it and/or modify
+   
+   This program is free software: you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
-
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
+   
    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    GNU General Public License for more details.
-
+   
    You should have received a copy of the GNU General Public License
-   along with this program; if not, write to the Free Software
-   Foundation, Inc., 51 Franklin Street, Fifth Floor,
-   Boston, MA 02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 /* As a special exception, you may create a larger work that contains
    part or all of the Bison parser skeleton and distribute that work
@@ -29,10 +28,11 @@
    special exception, which will cause the skeleton and the resulting
    Bison output files to be licensed under the GNU General Public
    License without this special exception.
-
+   
    This special exception was added by the Free Software Foundation in
    version 2.2 of Bison.  */
 
+
 /* Tokens.  */
 #ifndef YYTOKENTYPE
 # define YYTOKENTYPE
@@ -70,67 +70,41 @@
      LENGTH = 286,
      AREA = 287,
      TOSTRING = 288,
-     DIFFERENCE = 289,
-     YYBUFFER = 290,
-     NEG = 291
+     SMOOTHSIA = 289,
+     GENERALIZE = 290,
+     SIMPLIFYPT = 291,
+     SIMPLIFY = 292,
+     DIFFERENCE = 293,
+     YYBUFFER = 294,
+     NEG = 295
    };
 #endif
-/* Tokens.  */
-#define NUMBER 258
-#define STRING 259
-#define TIME 260
-#define SHAPE 261
-#define OR 262
-#define AND 263
-#define NOT 264
-#define IRE 265
-#define IEQ 266
-#define IN 267
-#define GE 268
-#define LE 269
-#define GT 270
-#define LT 271
-#define NE 272
-#define EQ 273
-#define RE 274
-#define DWITHIN 275
-#define BEYOND 276
-#define CONTAINS 277
-#define WITHIN 278
-#define CROSSES 279
-#define OVERLAPS 280
-#define TOUCHES 281
-#define DISJOINT 282
-#define INTERSECTS 283
-#define ROUND 284
-#define COMMIFY 285
-#define LENGTH 286
-#define AREA 287
-#define TOSTRING 288
-#define DIFFERENCE 289
-#define YYBUFFER 290
-#define NEG 291
-
 
 
 
 #if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
 typedef union YYSTYPE
-#line 30 "mapparser.y"
 {
+
+/* Line 1676 of yacc.c  */
+#line 30 "/home/even/mapserver/git/mapserver/mapparser.y"
+
   double dblval;
   int intval;  
   char *strval;  
   struct tm tmval;
   shapeObj *shpval;
-}
-/* Line 1529 of yacc.c.  */
-#line 129 "mapparser.h"
-	YYSTYPE;
+
+
+
+/* Line 1676 of yacc.c  */
+#line 102 "/home/even/mapserver/git/mapserver/mapparser.h"
+} YYSTYPE;
+# define YYSTYPE_IS_TRIVIAL 1
 # define yystype YYSTYPE /* obsolescent; will be withdrawn */
 # define YYSTYPE_IS_DECLARED 1
-# define YYSTYPE_IS_TRIVIAL 1
 #endif
 
 
 
+
diff --git a/mapparser.y b/mapparser.y
index 5008fe3..ea9b5f0 100644
--- a/mapparser.y
+++ b/mapparser.y
@@ -46,7 +46,7 @@ int yyerror(parseObj *, const char *);
 %left INTERSECTS DISJOINT TOUCHES OVERLAPS CROSSES WITHIN CONTAINS BEYOND DWITHIN
 %left AREA LENGTH COMMIFY ROUND
 %left TOSTRING
-%left YYBUFFER DIFFERENCE
+%left YYBUFFER DIFFERENCE SIMPLIFY SIMPLIFYPT GENERALIZE SMOOTHSIA
 %left '+' '-'
 %left '*' '/' '%'
 %left NEG
@@ -352,7 +352,7 @@ logical_exp:
 					   bufferp=delim+1;
 					 }
 
-					 if(strcmp($1,bufferp) == 0) // is this test necessary?
+					 if($$==MS_FALSE && strcmp($1,bufferp) == 0) // test for last (or only) item
 					   $$ = MS_TRUE;
 					 free($1);
 					 free($3);
@@ -558,6 +558,77 @@ shape_exp: SHAPE
       s->scratch = MS_TRUE;
       $$ = s;
     }
+  | SIMPLIFY '(' shape_exp ',' math_exp ')' {
+      shapeObj *s;
+      s = msGEOSSimplify($3, $5);
+      if(!s) {
+        yyerror(p, "Executing simplify failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      $$ = s;
+    }
+  | SIMPLIFYPT '(' shape_exp ',' math_exp ')' {
+      shapeObj *s;
+      s = msGEOSTopologyPreservingSimplify($3, $5);
+      if(!s) {
+        yyerror(p, "Executing simplifypt failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      $$ = s;
+    }
+  | GENERALIZE '(' shape_exp ',' math_exp ')' {
+      shapeObj *s;
+      s = msGeneralize($3, $5);
+      if(!s) {
+        yyerror(p, "Executing generalize failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      $$ = s;
+    }
+  | SMOOTHSIA '(' shape_exp ')' {
+      shapeObj *s;
+      s = msSmoothShapeSIA($3, 3, 1, NULL);
+      if(!s) {
+        yyerror(p, "Executing smoothsia failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      $$ = s;
+    }
+  | SMOOTHSIA '(' shape_exp ',' math_exp ')' {
+      shapeObj *s;
+      s = msSmoothShapeSIA($3, $5, 1, NULL);
+      if(!s) {
+        yyerror(p, "Executing smoothsia failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      $$ = s;
+    }
+  | SMOOTHSIA '(' shape_exp ',' math_exp ',' math_exp ')' {
+      shapeObj *s;
+      s = msSmoothShapeSIA($3, $5, $7, NULL);
+      if(!s) {
+        yyerror(p, "Executing smoothsia failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      $$ = s;
+    }
+  | SMOOTHSIA '(' shape_exp ',' math_exp ',' math_exp ',' string_exp ')' {
+      shapeObj *s;
+      s = msSmoothShapeSIA($3, $5, $7, $9);
+      free($9);
+      if(!s) {
+        yyerror(p, "Executing smoothsia failed.");
+        return(-1);
+      }
+      s->scratch = MS_TRUE;
+      $$ = s;
+    }
 ;
 
 string_exp: STRING
@@ -653,6 +724,14 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
     // fprintf(stderr, "token value = %s\n", msShapeToWKT(p->shape));
     (*lvalp).shpval = p->shape;
     break;
+  case MS_TOKEN_BINDING_MAP_CELLSIZE:
+    token = NUMBER;
+    (*lvalp).dblval = p->dblval;
+    break;
+  case MS_TOKEN_BINDING_DATA_CELLSIZE:
+    token = NUMBER;
+    (*lvalp).dblval = p->dblval2;
+    break;    
   case MS_TOKEN_BINDING_TIME:
     token = TIME;
     msTimeInit(&((*lvalp).tmval));
@@ -670,6 +749,10 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
 
   case MS_TOKEN_FUNCTION_BUFFER: token = YYBUFFER; break;
   case MS_TOKEN_FUNCTION_DIFFERENCE: token = DIFFERENCE; break;
+  case MS_TOKEN_FUNCTION_SIMPLIFY: token = SIMPLIFY; break;
+  case MS_TOKEN_FUNCTION_SIMPLIFYPT: token = SIMPLIFYPT; break;
+  case MS_TOKEN_FUNCTION_GENERALIZE: token = GENERALIZE; break;
+  case MS_TOKEN_FUNCTION_SMOOTHSIA: token = SMOOTHSIA; break;    
 
   default:
     break;
@@ -680,6 +763,6 @@ int yylex(YYSTYPE *lvalp, parseObj *p)
 }
 
 int yyerror(parseObj *p, const char *s) {
-  msSetError(MS_PARSEERR, s, "yyparse()");
+  msSetError(MS_PARSEERR, "%s", "yyparse()", s);
   return(0);
 }
diff --git a/mappostgis.c b/mappostgis.c
index 1f4c64e..0631b79 100644
--- a/mappostgis.c
+++ b/mappostgis.c
@@ -1202,7 +1202,7 @@ msPostGISRetrievePK(layerObj *layer)
     tmp2 = (char*)msSmallMalloc(size2);
     strlcpy(tmp2, tmp1, size2);
     strlcat(tmp2, sql, size2);
-    msSetError(MS_QUERYERR, tmp2, "msPostGISRetrievePK()");
+    msSetError(MS_QUERYERR, "%s", "msPostGISRetrievePK()", tmp2);
     free(tmp2);
     free(sql);
     return MS_FAILURE;
@@ -1729,7 +1729,7 @@ char *msPostGISBuildSQLSRID(layerObj *layer)
     char *strSRIDTemplate = "find_srid('','%s','%s')";
     char *pos = strstr(layerinfo->fromsource, " ");
     if( layer->debug > 1 ) {
-      msDebug("msPostGISBuildSQLSRID: Building find_srid line.\n", strSRID);
+      msDebug("msPostGISBuildSQLSRID: Building find_srid line.\n");
     }
 
     if ( ! pos ) {
@@ -2183,14 +2183,14 @@ int msPostGISReadShape(layerObj *layer, shapeObj *shape)
       uid = 0;
     }
     if( layer->debug > 4 ) {
-      msDebug("msPostGISReadShape: Setting shape->index = %d\n", uid);
-      msDebug("msPostGISReadShape: Setting shape->resultindex = %d\n", layerinfo->rownum);
+      msDebug("msPostGISReadShape: Setting shape->index = %ld\n", uid);
+      msDebug("msPostGISReadShape: Setting shape->resultindex = %ld\n", layerinfo->rownum);
     }
     shape->index = uid;
     shape->resultindex = layerinfo->rownum;
 
     if( layer->debug > 2 ) {
-      msDebug("msPostGISReadShape: [index] %d\n",  shape->index);
+      msDebug("msPostGISReadShape: [index] %ld\n",  shape->index);
     }
 
     shape->numvalues = layer->numitems;
@@ -2532,7 +2532,7 @@ int msPostGISLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
   /* Something went wrong. */
   if (!pgresult || PQresultStatus(pgresult) != PGRES_TUPLES_OK) {
     if ( layer->debug ) {
-      msDebug("Error (%s) executing query: %s", "msPostGISLayerWhichShapes()\n", PQerrorMessage(layerinfo->pgconn), strSQL);
+      msDebug("msPostGISLayerWhichShapes(): Error (%s) executing query: %s\n", PQerrorMessage(layerinfo->pgconn), strSQL);
     }
     msSetError(MS_QUERYERR, "Error executing query: %s ", "msPostGISLayerWhichShapes()", PQerrorMessage(layerinfo->pgconn));
     free(strSQL);
@@ -2713,7 +2713,7 @@ int msPostGISLayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
     /* Something went wrong. */
     if ( (!pgresult) || (PQresultStatus(pgresult) != PGRES_TUPLES_OK) ) {
       if ( layer->debug ) {
-        msDebug("Error (%s) executing SQL: %s", "msPostGISLayerGetShape()\n", PQerrorMessage(layerinfo->pgconn), strSQL );
+        msDebug("msPostGISLayerGetShape(): Error (%s) executing SQL: %s\n", PQerrorMessage(layerinfo->pgconn), strSQL );
       }
       msSetError(MS_QUERYERR, "Error executing SQL: %s", "msPostGISLayerGetShape()", PQerrorMessage(layerinfo->pgconn));
 
@@ -2939,7 +2939,7 @@ int msPostGISLayerGetItems(layerObj *layer)
 
   if ( (!pgresult) || (PQresultStatus(pgresult) != PGRES_TUPLES_OK) ) {
     if ( layer->debug ) {
-      msDebug("Error (%s) executing SQL: %s", "msPostGISLayerGetItems()\n", PQerrorMessage(layerinfo->pgconn), sql);
+      msDebug("msPostGISLayerGetItems(): Error (%s) executing SQL: %s\n", PQerrorMessage(layerinfo->pgconn), sql);
     }
     msSetError(MS_QUERYERR, "Error executing SQL: %s", "msPostGISLayerGetItems()", PQerrorMessage(layerinfo->pgconn));
     if (pgresult) {
diff --git a/mappostgresql.c b/mappostgresql.c
index d6b2e84..da3fcca 100644
--- a/mappostgresql.c
+++ b/mappostgresql.c
@@ -366,7 +366,7 @@ int msPOSTGRESQLJoinNext(joinObj *join)
     return(MS_DONE);
   }
   if(joininfo->layer_debug) {
-    msDebug("msPOSTGRESQLJoinNext(): fetching row %d.\n",
+    msDebug("msPOSTGRESQLJoinNext(): fetching row %ld.\n",
             joininfo->row_num);
   }
 
diff --git a/mapprimitive.c b/mapprimitive.c
index e5deb27..b329fa9 100644
--- a/mapprimitive.c
+++ b/mapprimitive.c
@@ -1748,12 +1748,34 @@ labelPathObj** msPolylineLabelPath(mapObj *map, imageObj *img,shapeObj *p, int m
   segment_index = max_line_index = 0;
   total_length = max_line_length = 0.0;
 
-  if(!string) return NULL;
 
+  if(!string) return NULL;
 
   labelpaths = (labelPathObj **) msSmallMalloc(sizeof(labelPathObj *) * labelpaths_size);
   (*regular_lines) = (int *) msSmallMalloc(sizeof(int) * regular_lines_size);
 
+  if(label->offsetx != 0 && (label->offsety == -99 || label->offsety == 99)) {
+    double offset;
+    if(label->offsetx > 0) {
+      offset = label->offsetx + label->size/2;
+    } else {
+      offset = label->offsetx - label->size/2;
+    }
+    if(label->offsety == 99 && p->numlines>0 && p->line[0].numpoints > 0) {
+      /* is the line mostly left-to-right or right-to-left ?
+       * FIXME this should be done line by line, by stepping through shape->lines, however
+       * the OffsetPolyline function works on shapeObjs, not lineObjs
+       * we only check the first line
+       */
+      if(p->line[0].point[0].x < p->line[0].point[p->line[0].numpoints-1].x) {
+        /* line is left to right */
+          offset = -offset;
+      }
+    }
+    p = msOffsetPolyline(p,offset, -99);
+    if(!p) return NULL;
+  }
+
   msPolylineComputeLineSegments(p, &segment_lengths, &line_lengths, &max_line_index, &max_line_length, &segment_index, &total_length);
 
   if(label->repeatdistance > 0)
@@ -1777,6 +1799,10 @@ labelPathObj** msPolylineLabelPath(mapObj *map, imageObj *img,shapeObj *p, int m
   /* set the number of paths in the array */
   *numpaths = labelpaths_index;
   *num_regular_lines = regular_lines_index;
+  if(label->offsety == -99 && label->offsetx != 0) {
+     msFreeShape(p);
+     msFree(p);
+  }
   return labelpaths;
 }
 
@@ -1810,7 +1836,7 @@ void msPolylineLabelPathLineString(mapObj *map, imageObj *img, shapeObj *p, int
   labelPathObj *labelpath = NULL;
 
   /* Line smoothing kernel */
-  double kernel[] = {0.1, 0.2, 2, 0.2, 0.1}; /* {1.5, 2, 15, 2, 1.5}; */
+  double kernel[] = {0.1,0.2,2,0.2,0.1}; /* {1.5, 2, 15, 2, 1.5}; */
   double kernel_normal = 2.6; /* Must be sum of kernel elements */
   int kernel_size = 5;
 
diff --git a/mapquery.c b/mapquery.c
index 3679e43..9693ed6 100644
--- a/mapquery.c
+++ b/mapquery.c
@@ -257,7 +257,7 @@ static int loadQueryResults(mapObj *map, FILE *stream)
     GET_LAYER(map, j)->resultcache->results = (resultObj *) malloc(sizeof(resultObj)*GET_LAYER(map, j)->resultcache->numresults);
     if (GET_LAYER(map, j)->resultcache->results == NULL) {
       msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "loadQueryResults()",
-                 __FILE__, __LINE__, sizeof(resultObj)*GET_LAYER(map, j)->resultcache->numresults);
+                 __FILE__, __LINE__, (unsigned int)(sizeof(resultObj)*GET_LAYER(map, j)->resultcache->numresults));
       free(GET_LAYER(map, j)->resultcache);
       GET_LAYER(map, j)->resultcache = NULL;
       return MS_FAILURE;
@@ -720,7 +720,7 @@ int msQueryByAttributes(mapObj *map)
     if ( (shape.type == MS_SHAPE_LINE || shape.type == MS_SHAPE_POLYGON) && (minfeaturesize > 0) ) {
       if (msShapeCheckSize(&shape, minfeaturesize) == MS_FALSE) {
         if( lp->debug >= MS_DEBUGLEVEL_V )
-          msDebug("msQueryByAttributes(): Skipping shape (%d) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
+          msDebug("msQueryByAttributes(): Skipping shape (%ld) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
         msFreeShape(&shape);
         continue;
       }
@@ -920,7 +920,7 @@ int msQueryByFilter(mapObj *map)
       if ( (shape.type == MS_SHAPE_LINE || shape.type == MS_SHAPE_POLYGON) && (minfeaturesize > 0) ) {
         if (msShapeCheckSize(&shape, minfeaturesize) == MS_FALSE) {
           if( lp->debug >= MS_DEBUGLEVEL_V )
-            msDebug("msQueryByFilter(): Skipping shape (%d) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
+            msDebug("msQueryByFilter(): Skipping shape (%ld) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
           msFreeShape(&shape);
           continue;
         }
@@ -1122,7 +1122,7 @@ int msQueryByRect(mapObj *map)
       if ( (shape.type == MS_SHAPE_LINE || shape.type == MS_SHAPE_POLYGON) && (minfeaturesize > 0) ) {
         if (msShapeCheckSize(&shape, minfeaturesize) == MS_FALSE) {
           if( lp->debug >= MS_DEBUGLEVEL_V )
-            msDebug("msQueryByRect(): Skipping shape (%d) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
+            msDebug("msQueryByRect(): Skipping shape (%ld) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
           msFreeShape(&shape);
           continue;
         }
@@ -1393,7 +1393,7 @@ int msQueryByFeatures(mapObj *map)
         if ( (shape.type == MS_SHAPE_LINE || shape.type == MS_SHAPE_POLYGON) && (minfeaturesize > 0) ) {
           if (msShapeCheckSize(&shape, minfeaturesize) == MS_FALSE) {
             if( lp->debug >= MS_DEBUGLEVEL_V )
-              msDebug("msQueryByFeature(): Skipping shape (%d) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
+              msDebug("msQueryByFeature(): Skipping shape (%ld) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
             msFreeShape(&shape);
             continue;
           }
@@ -1679,7 +1679,7 @@ int msQueryByPoint(mapObj *map)
       if ( (shape.type == MS_SHAPE_LINE || shape.type == MS_SHAPE_POLYGON) && (minfeaturesize > 0) ) {
         if (msShapeCheckSize(&shape, minfeaturesize) == MS_FALSE) {
           if( lp->debug >= MS_DEBUGLEVEL_V )
-            msDebug("msQueryByPoint(): Skipping shape (%d) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
+            msDebug("msQueryByPoint(): Skipping shape (%ld) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
           msFreeShape(&shape);
           continue;
         }
@@ -1902,7 +1902,7 @@ int msQueryByShape(mapObj *map)
       if ( (shape.type == MS_SHAPE_LINE || shape.type == MS_SHAPE_POLYGON) && (minfeaturesize > 0) ) {
         if (msShapeCheckSize(&shape, minfeaturesize) == MS_FALSE) {
           if( lp->debug >= MS_DEBUGLEVEL_V )
-            msDebug("msQueryByShape(): Skipping shape (%d) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
+            msDebug("msQueryByShape(): Skipping shape (%ld) because LAYER::MINFEATURESIZE is bigger than shape size\n", shape.index);
           msFreeShape(&shape);
           continue;
         }
diff --git a/mapraster.c b/mapraster.c
index 6ba9049..eb32597 100644
--- a/mapraster.c
+++ b/mapraster.c
@@ -46,6 +46,7 @@ extern parseResultObj yypresult; /* result of parsing, true/false */
 #include "gdal.h"
 #include "cpl_string.h"
 #endif
+#include "mapraster.h"
 
 #define MAXCOLORS 256
 #define BUFLEN 1024
@@ -311,6 +312,346 @@ int msAddColorGD(mapObj *map, gdImagePtr img, int cmt, int r, int g, int b)
 
 #endif
 
+
+#if defined(USE_GDAL)
+
+/************************************************************************/
+/*                      msRasterSetupTileLayer()                        */
+/*                                                                      */
+/*      Setup the tile layer.                                           */
+/************************************************************************/
+
+int msDrawRasterSetupTileLayer(mapObj *map, layerObj *layer,
+                               rectObj* psearchrect,
+                               int is_query,
+                               int* ptilelayerindex, /* output */
+                               int* ptileitemindex, /* output */
+                               int* ptilesrsindex, /* output */
+                               layerObj **ptlp  /* output */ )
+{
+    int i;
+    char* requested_fields;
+    int status;
+    layerObj* tlp = NULL;
+
+    *ptilelayerindex = msGetLayerIndex(layer->map, layer->tileindex);
+    if(*ptilelayerindex == -1) { /* the tileindex references a file, not a layer */
+
+      /* so we create a temporary layer */
+      tlp = (layerObj *) malloc(sizeof(layerObj));
+      MS_CHECK_ALLOC(tlp, sizeof(layerObj), MS_FAILURE);
+
+      initLayer(tlp, map);
+      *ptlp = tlp;
+
+      /* set a few parameters for a very basic shapefile-based layer */
+      tlp->name = msStrdup("TILE");
+      tlp->type = MS_LAYER_TILEINDEX;
+      tlp->data = msStrdup(layer->tileindex);
+
+      if( is_query )
+      {
+        tlp->map = map;  /*needed when scaletokens are applied, to extract current map scale */
+        for(i = 0; i < layer->numscaletokens; i++) {
+          if(msGrowLayerScaletokens(tlp) == NULL) {
+            return MS_FAILURE;
+          }
+          initScaleToken(&tlp->scaletokens[i]);
+          msCopyScaleToken(&layer->scaletokens[i],&tlp->scaletokens[i]);
+          tlp->numscaletokens++;
+        }
+      }
+
+      if (layer->projection.numargs > 0 &&
+        EQUAL(layer->projection.args[0], "auto"))
+      {
+          tlp->projection.numargs = 1;
+          tlp->projection.args[0] = msStrdup("auto");
+      }
+
+      if (layer->filteritem)
+        tlp->filteritem = msStrdup(layer->filteritem);
+      if (layer->filter.string) {
+        if (layer->filter.type == MS_EXPRESSION) {
+          char* pszTmp =
+            (char *)msSmallMalloc(sizeof(char)*(strlen(layer->filter.string)+3));
+          sprintf(pszTmp,"(%s)",layer->filter.string);
+          msLoadExpressionString(&tlp->filter, pszTmp);
+          free(pszTmp);
+        } else if (layer->filter.type == MS_REGEX ||
+                   layer->filter.type == MS_IREGEX) {
+          char* pszTmp =
+            (char *)msSmallMalloc(sizeof(char)*(strlen(layer->filter.string)+3));
+          sprintf(pszTmp,"/%s/",layer->filter.string);
+          msLoadExpressionString(&tlp->filter, pszTmp);
+          free(pszTmp);
+        } else
+          msLoadExpressionString(&tlp->filter, layer->filter.string);
+
+        tlp->filter.type = layer->filter.type;
+      }
+
+    } else {
+      if ( msCheckParentPointer(layer->map,"map")==MS_FAILURE )
+        return MS_FAILURE;
+      tlp = (GET_LAYER(layer->map, *ptilelayerindex));
+      *ptlp = tlp;
+    }
+    status = msLayerOpen(tlp);
+    if(status != MS_SUCCESS) {
+      return status;
+    }
+
+    /* fetch tileitem and tilesrs fields */
+    requested_fields = (char*) msSmallMalloc(sizeof(char)*(strlen(layer->tileitem)+1+
+                                    (layer->tilesrs ? strlen(layer->tilesrs) : 0) + 1));
+    if( layer->tilesrs != NULL )
+        sprintf(requested_fields, "%s,%s", layer->tileitem, layer->tilesrs);
+    else
+        strcpy(requested_fields, layer->tileitem);
+    status = msLayerWhichItems(tlp, MS_FALSE, requested_fields);
+    msFree(requested_fields);
+    if(status != MS_SUCCESS) {
+      return status;
+    }
+
+    /* get the tileitem and tilesrs index */
+    for(i=0; i<tlp->numitems; i++) {
+      if(strcasecmp(tlp->items[i], layer->tileitem) == 0) {
+        *ptileitemindex = i;
+      }
+      if(layer->tilesrs != NULL &&
+         strcasecmp(tlp->items[i], layer->tilesrs) == 0) {
+        *ptilesrsindex = i;
+      }
+    }
+    if(*ptileitemindex < 0) { /* didn't find it */
+      msSetError(MS_MEMERR,
+                 "Could not find attribute %s in tileindex.",
+                 "msDrawRasterLayerLow()",
+                 layer->tileitem);
+      return MS_FAILURE;
+    }
+    if(layer->tilesrs != NULL && *ptilesrsindex < 0) { /* didn't find it */
+      msSetError(MS_MEMERR,
+                 "Could not find attribute %s in tileindex.",
+                 "msDrawRasterLayerLow()",
+                 layer->tilesrs);
+      return MS_FAILURE;
+    }
+
+#ifdef USE_PROJ
+    /* if necessary, project the searchrect to source coords */
+    if((map->projection.numargs > 0) && (layer->projection.numargs > 0) &&
+        !EQUAL(layer->projection.args[0], "auto")) {
+      if( msProjectRect(&map->projection, &layer->projection, psearchrect)
+          != MS_SUCCESS ) {
+        msDebug( "msDrawRasterLayerLow(%s): unable to reproject map request rectangle into layer projection, canceling.\n", layer->name );
+        return MS_FAILURE;
+      }
+    }
+    else if((map->projection.numargs > 0) && (tlp->projection.numargs > 0) &&
+        !EQUAL(tlp->projection.args[0], "auto")) {
+      if( msProjectRect(&map->projection, &tlp->projection, psearchrect)
+          != MS_SUCCESS ) {
+        msDebug( "msDrawRasterLayerLow(%s): unable to reproject map request rectangle into layer projection, canceling.\n", layer->name );
+        return MS_FAILURE;
+      }
+    }
+#endif
+    return msLayerWhichShapes(tlp, *psearchrect, MS_FALSE);
+}
+
+/************************************************************************/
+/*                msDrawRasterCleanupTileLayer()                        */
+/*                                                                      */
+/*      Cleanup the tile layer.                                         */
+/************************************************************************/
+
+void msDrawRasterCleanupTileLayer(layerObj* tlp,
+                                  int tilelayerindex)
+{
+    msLayerClose(tlp);
+    if(tilelayerindex == -1) {
+      freeLayer(tlp);
+      free(tlp);
+    }
+}
+
+/************************************************************************/
+/*                   msDrawRasterIterateTileIndex()                     */
+/*                                                                      */
+/*      Iterate over the tile layer.                                    */
+/************************************************************************/
+
+int msDrawRasterIterateTileIndex(layerObj *layer,
+                                 layerObj* tlp,
+                                 shapeObj* ptshp, /* input-output */
+                                 int tileitemindex,
+                                 int tilesrsindex,
+                                 char* tilename, /* output */
+                                 size_t sizeof_tilename,
+                                 char* tilesrsname, /* output */
+                                 size_t sizeof_tilesrsname)
+{
+      int status;
+
+      status = msLayerNextShape(tlp, ptshp);
+      if( status == MS_FAILURE || status == MS_DONE ) {
+        return status;
+      }
+
+      if(layer->data == NULL || strlen(layer->data) == 0 ) { /* assume whole filename is in attribute field */
+        strlcpy( tilename, ptshp->values[tileitemindex], sizeof_tilename);
+      } else
+        snprintf(tilename, sizeof_tilename, "%s/%s", ptshp->values[tileitemindex], layer->data);
+
+      tilesrsname[0] = '\0';
+
+      if( tilesrsindex >= 0 )
+      {
+        if(ptshp->values[tilesrsindex] != NULL )
+          strlcpy( tilesrsname, ptshp->values[tilesrsindex], sizeof_tilesrsname );
+      }
+
+      msFreeShape(ptshp); /* done with the shape */
+
+      return status;
+}
+
+/************************************************************************/
+/*                   msDrawRasterBuildRasterPath()                      */
+/*                                                                      */
+/*      Build the path of the raster to open.                           */
+/************************************************************************/
+
+int msDrawRasterBuildRasterPath(mapObj *map, layerObj *layer,
+                                const char* filename,
+                                char szPath[MS_MAXPATHLEN] /* output */)
+{
+    /*
+    ** If using a tileindex then build the path relative to that file if SHAPEPATH is not set.
+    */
+    if(layer->tileindex && !map->shapepath) {
+      char tiAbsFilePath[MS_MAXPATHLEN];
+      char *tiAbsDirPath = NULL;
+
+      msTryBuildPath(tiAbsFilePath, map->mappath, layer->tileindex); /* absolute path to tileindex file */
+      tiAbsDirPath = msGetPath(tiAbsFilePath); /* tileindex file's directory */
+      msBuildPath(szPath, tiAbsDirPath, filename);
+      free(tiAbsDirPath);
+    } else {
+      msTryBuildPath3(szPath, map->mappath, map->shapepath, filename);
+    }
+
+    return MS_SUCCESS;
+}
+
+/************************************************************************/
+/*                   msDrawRasterGetCPLErrorMsg()                       */
+/*                                                                      */
+/*      Return the CPL error message, and filter out sensitive info.    */
+/************************************************************************/
+
+const char* msDrawRasterGetCPLErrorMsg(const char* decrypted_path,
+                                       const char* szPath)
+{
+      const char *cpl_error_msg = CPLGetLastErrorMsg();
+
+      /* we wish to avoid reporting decrypted paths */
+      if( cpl_error_msg != NULL
+          && strstr(cpl_error_msg,decrypted_path) != NULL
+          && strcmp(decrypted_path,szPath) != 0 )
+        cpl_error_msg = NULL;
+
+      /* we wish to avoid reporting the stock GDALOpen error messages */
+      if( cpl_error_msg != NULL
+          && (strstr(cpl_error_msg,"not recognised as a supported") != NULL
+              || strstr(cpl_error_msg,"does not exist") != NULL) )
+        cpl_error_msg = NULL;
+
+      if( cpl_error_msg == NULL )
+        cpl_error_msg = "";
+
+      return cpl_error_msg;
+}
+
+/************************************************************************/
+/*                   msDrawRasterLoadProjection()                       */
+/*                                                                      */
+/*      Handle TILESRS or PROJECTION AUTO for each tile.                */
+/************************************************************************/
+
+int msDrawRasterLoadProjection(layerObj *layer,
+                               GDALDatasetH hDS,
+                               const char* filename,
+                               int tilesrsindex,
+                               const char* tilesrsname)
+{
+    /*
+    ** Generate the projection information if using TILESRS.
+    */
+    if( tilesrsindex >= 0 )
+    {
+        const char *pszWKT;
+        if( tilesrsname[0] != '\0' )
+            pszWKT = tilesrsname;
+        else
+            pszWKT = GDALGetProjectionRef( hDS );
+        if( pszWKT != NULL && strlen(pszWKT) > 0 ) {
+          if( msOGCWKT2ProjectionObj(pszWKT, &(layer->projection),
+                                    layer->debug ) != MS_SUCCESS ) {
+          char  szLongMsg[MESSAGELENGTH*2];
+          errorObj *ms_error = msGetErrorObj();
+
+          snprintf( szLongMsg, sizeof(szLongMsg),
+                    "%s\n"
+                    "PROJECTION '%s' cannot be used for this "
+                    "GDAL raster (`%s').",
+                    ms_error->message, pszWKT, filename);
+          szLongMsg[MESSAGELENGTH-1] = '\0';
+
+          msSetError(MS_OGRERR, "%s","msDrawRasterLayer()",
+                     szLongMsg);
+
+          return MS_FAILURE;
+        }
+      }
+    }
+    /*
+    ** Generate the projection information if using AUTO.
+    */
+    else if (layer->projection.numargs > 0 &&
+        EQUAL(layer->projection.args[0], "auto")) {
+      const char *pszWKT;
+
+      pszWKT = GDALGetProjectionRef( hDS );
+
+      if( pszWKT != NULL && strlen(pszWKT) > 0 ) {
+        if( msOGCWKT2ProjectionObj(pszWKT, &(layer->projection),
+                                   layer->debug ) != MS_SUCCESS ) {
+          char  szLongMsg[MESSAGELENGTH*2];
+          errorObj *ms_error = msGetErrorObj();
+
+          snprintf( szLongMsg, sizeof(szLongMsg),
+                    "%s\n"
+                    "PROJECTION AUTO cannot be used for this "
+                    "GDAL raster (`%s').",
+                    ms_error->message, filename);
+          szLongMsg[MESSAGELENGTH-1] = '\0';
+
+          msSetError(MS_OGRERR, "%s","msDrawRasterLayer()",
+                     szLongMsg);
+
+          return MS_FAILURE;
+        }
+      }
+    }
+
+    return MS_SUCCESS;
+}
+#endif // defined(USE_GDAL)
+
 /************************************************************************/
 /*                        msDrawRasterLayerLow()                        */
 /*                                                                      */
@@ -334,10 +675,10 @@ int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image,
 
 #else /* defined(USE_GDAL) */
   int status, i, done;
-  char *filename=NULL, tilename[MS_MAXPATHLEN];
+  char *filename=NULL, tilename[MS_MAXPATHLEN], tilesrsname[1024];
 
   layerObj *tlp=NULL; /* pointer to the tile layer either real or temporary */
-  int tileitemindex=-1, tilelayerindex=-1;
+  int tileitemindex=-1, tilelayerindex=-1, tilesrsindex=-1;
   shapeObj tshp;
 
   char szPath[MS_MAXPATHLEN];
@@ -345,9 +686,6 @@ int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image,
   int final_status = MS_SUCCESS;
 
   rectObj searchrect;
-  char *pszTmp = NULL;
-  char tiAbsFilePath[MS_MAXPATHLEN];
-  char *tiAbsDirPath = NULL;
   GDALDatasetH  hDS;
   double  adfGeoTransform[6];
   const char *close_connection;
@@ -400,117 +738,38 @@ int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image,
   }
 
   if(layer->tileindex) { /* we have an index file */
-
     msInitShape(&tshp);
+    searchrect = map->extent;
 
-    tilelayerindex = msGetLayerIndex(layer->map, layer->tileindex);
-    if(tilelayerindex == -1) { /* the tileindex references a file, not a layer */
-
-      /* so we create a temporary layer */
-      tlp = (layerObj *) malloc(sizeof(layerObj));
-      MS_CHECK_ALLOC(tlp, sizeof(layerObj), MS_FAILURE);
-
-      initLayer(tlp, map);
-
-      /* set a few parameters for a very basic shapefile-based layer */
-      tlp->name = msStrdup("TILE");
-      tlp->type = MS_LAYER_TILEINDEX;
-      tlp->data = msStrdup(layer->tileindex);
-      if (layer->filteritem)
-        tlp->filteritem = msStrdup(layer->filteritem);
-      if (layer->filter.string) {
-        if (layer->filter.type == MS_EXPRESSION) {
-          pszTmp =
-            (char *)msSmallMalloc(sizeof(char)*(strlen(layer->filter.string)+3));
-          sprintf(pszTmp,"(%s)",layer->filter.string);
-          msLoadExpressionString(&tlp->filter, pszTmp);
-          free(pszTmp);
-        } else if (layer->filter.type == MS_REGEX ||
-                   layer->filter.type == MS_IREGEX) {
-          pszTmp =
-            (char *)msSmallMalloc(sizeof(char)*(strlen(layer->filter.string)+3));
-          sprintf(pszTmp,"/%s/",layer->filter.string);
-          msLoadExpressionString(&tlp->filter, pszTmp);
-          free(pszTmp);
-        } else
-          msLoadExpressionString(&tlp->filter, layer->filter.string);
-
-        tlp->filter.type = layer->filter.type;
-      }
-
-    } else {
-      if ( msCheckParentPointer(layer->map,"map")==MS_FAILURE )
-        return MS_FAILURE;
-      tlp = (GET_LAYER(layer->map, tilelayerindex));
-    }
-    status = msLayerOpen(tlp);
-    if(status != MS_SUCCESS) {
-      final_status = status;
-      goto cleanup;
-    }
-
-    status = msLayerWhichItems(tlp, MS_FALSE, layer->tileitem);
+    status = msDrawRasterSetupTileLayer(map, layer,
+                           &searchrect,
+                           MS_FALSE,
+                           &tilelayerindex,
+                           &tileitemindex,
+                           &tilesrsindex,
+                           &tlp);
     if(status != MS_SUCCESS) {
-      final_status = status;
-      goto cleanup;
-    }
-
-    /* get the tileitem index */
-    for(i=0; i<tlp->numitems; i++) {
-      if(strcasecmp(tlp->items[i], layer->tileitem) == 0) {
-        tileitemindex = i;
-        break;
-      }
-    }
-    if(i == tlp->numitems) { /* didn't find it */
-      msSetError(MS_MEMERR,
-                 "Could not find attribute %s in tileindex.",
-                 "msDrawRasterLayerLow()",
-                 layer->tileitem);
-      final_status = MS_FAILURE;
-      goto cleanup;
-    }
-
-    searchrect = map->extent;
-#ifdef USE_PROJ
-    /* if necessary, project the searchrect to source coords */
-    if((map->projection.numargs > 0) && (layer->projection.numargs > 0)) {
-      if( msProjectRect(&map->projection, &layer->projection, &searchrect)
-          != MS_SUCCESS ) {
-        msDebug( "msDrawRasterLayerLow(%s): unable to reproject map request rectangle into layer projection, canceling.\n", layer->name );
-        final_status = MS_FAILURE;
-        goto cleanup;
-      }
-    }
-#endif
-    status = msLayerWhichShapes(tlp, searchrect, MS_FALSE);
-    if (status != MS_SUCCESS) {
-      /* Can be either MS_DONE or MS_FAILURE */
       if (status != MS_DONE)
         final_status = status;
-
       goto cleanup;
     }
   }
 
   done = MS_FALSE;
   while(done != MS_TRUE) {
+
     if(layer->tileindex) {
-      status = msLayerNextShape(tlp, &tshp);
+      status = msDrawRasterIterateTileIndex(layer, tlp, &tshp,
+                                            tileitemindex, tilesrsindex,
+                                            tilename, sizeof(tilename),
+                                            tilesrsname, sizeof(tilesrsname));
       if( status == MS_FAILURE) {
         final_status = MS_FAILURE;
         break;
       }
 
       if(status == MS_DONE) break; /* no more tiles/images */
-
-      if(layer->data == NULL || strlen(layer->data) == 0 ) { /* assume whole filename is in attribute field */
-        strlcpy( tilename, tshp.values[tileitemindex], sizeof(tilename));
-      } else
-        snprintf(tilename, sizeof(tilename), "%s/%s", tshp.values[tileitemindex], layer->data);
       filename = tilename;
-
-      msFreeShape(&tshp); /* done with the shape */
     } else {
       filename = layer->data;
       done = MS_TRUE; /* only one image so we're done after this */
@@ -521,17 +780,7 @@ int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image,
     if(layer->debug == MS_TRUE)
       msDebug( "msDrawRasterLayerLow(%s): Filename is: %s\n", layer->name, filename);
 
-    /*
-    ** If using a tileindex then build the path relative to that file if SHAPEPATH is not set.
-    */
-    if(layer->tileindex && !map->shapepath) {
-      msTryBuildPath(tiAbsFilePath, map->mappath, layer->tileindex); /* absolute path to tileindex file */
-      tiAbsDirPath = msGetPath(tiAbsFilePath); /* tileindex file's directory */
-      msBuildPath(szPath, tiAbsDirPath, filename);
-      free(tiAbsDirPath);
-    } else {
-      msTryBuildPath3(szPath, map->mappath, map->shapepath, filename);
-    }
+    msDrawRasterBuildRasterPath(map, layer, filename, szPath);
     if(layer->debug == MS_TRUE)
       msDebug("msDrawRasterLayerLow(%s): Path is: %s\n", layer->name, szPath);
 
@@ -555,22 +804,7 @@ int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image,
     */
     if(hDS == NULL) {
       int ignore_missing = msMapIgnoreMissingData(map);
-      const char *cpl_error_msg = CPLGetLastErrorMsg();
-
-      /* we wish to avoid reporting decrypted paths */
-      if( cpl_error_msg != NULL
-          && strstr(cpl_error_msg,decrypted_path) != NULL
-          && strcmp(decrypted_path,szPath) != 0 )
-        cpl_error_msg = NULL;
-
-      /* we wish to avoid reporting the stock GDALOpen error messages */
-      if( cpl_error_msg != NULL
-          && (strstr(cpl_error_msg,"not recognised as a supported") != NULL
-              || strstr(cpl_error_msg,"does not exist") != NULL) )
-        cpl_error_msg = NULL;
-
-      if( cpl_error_msg == NULL )
-        cpl_error_msg = "";
+      const char *cpl_error_msg = msDrawRasterGetCPLErrorMsg(decrypted_path, szPath);
 
       msFree( decrypted_path );
       decrypted_path = NULL;
@@ -597,36 +831,11 @@ int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image,
     msFree( decrypted_path );
     decrypted_path = NULL;
 
-    /*
-    ** Generate the projection information if using AUTO.
-    */
-    if (layer->projection.numargs > 0 &&
-        EQUAL(layer->projection.args[0], "auto")) {
-      const char *pszWKT;
-
-      pszWKT = GDALGetProjectionRef( hDS );
-
-      if( pszWKT != NULL && strlen(pszWKT) > 0 ) {
-        if( msOGCWKT2ProjectionObj(pszWKT, &(layer->projection),
-                                   layer->debug ) != MS_SUCCESS ) {
-          char  szLongMsg[MESSAGELENGTH*2];
-          errorObj *ms_error = msGetErrorObj();
-
-          snprintf( szLongMsg, sizeof(szLongMsg),
-                    "%s\n"
-                    "PROJECTION AUTO cannot be used for this "
-                    "GDAL raster (`%s').",
-                    ms_error->message, filename);
-          szLongMsg[MESSAGELENGTH-1] = '\0';
-
-          msSetError(MS_OGRERR, "%s","msDrawRasterLayer()",
-                     szLongMsg);
-
-          msReleaseLock( TLOCK_GDAL );
-          final_status = MS_FAILURE;
-          break;
-        }
-      }
+    if( msDrawRasterLoadProjection(layer, hDS, filename, tilesrsindex, tilesrsname) != MS_SUCCESS )
+    {
+        msReleaseLock( TLOCK_GDAL );
+        final_status = MS_FAILURE;
+        break;
     }
 
     msGetGDALGeoTransform( hDS, map, layer, adfGeoTransform );
@@ -689,11 +898,7 @@ int msDrawRasterLayerLow(mapObj *map, layerObj *layer, imageObj *image,
 
 cleanup:
   if(layer->tileindex) { /* tiling clean-up */
-    msLayerClose(tlp);
-    if(tilelayerindex == -1) {
-      freeLayer(tlp);
-      free(tlp);
-    }
+    msDrawRasterCleanupTileLayer(tlp, tilelayerindex);
   }
 
   return final_status;
diff --git a/mapraster.h b/mapraster.h
new file mode 100644
index 0000000..59dad80
--- /dev/null
+++ b/mapraster.h
@@ -0,0 +1,69 @@
+/******************************************************************************
+ * $Id$
+ *
+ * Project:  MapServer
+ * Purpose:  Private include file used by mapraster.c and maprasterquery.c
+ * Author:   Even Rouault
+ *
+ ******************************************************************************
+ * Copyright (c) 2013 Regents of the University of Minnesota.
+ *
+ * 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 of this Software or works derived from this 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 OR COPYRIGHT HOLDERS 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.
+ *****************************************************************************/
+
+#ifndef MAPRASTER_H
+#define MAPRASTER_H
+
+#if defined(USE_GDAL)
+
+  int msDrawRasterSetupTileLayer(mapObj *map, layerObj *layer,
+                                 rectObj* psearchrect,
+                                 int is_query,
+                                 int* ptilelayerindex, /* output */
+                                 int* ptileitemindex, /* output */
+                                 int* ptilesrsindex, /* output */
+                                 layerObj **ptlp  /* output */ );
+
+  void msDrawRasterCleanupTileLayer(layerObj* tlp,
+                                    int tilelayerindex);
+
+  int msDrawRasterIterateTileIndex(layerObj *layer,
+                                   layerObj* tlp,
+                                   shapeObj* ptshp, /* input-output */
+                                   int tileitemindex,
+                                   int tilesrsindex,
+                                   char* tilename, /* output */
+                                   size_t sizeof_tilename,
+                                   char* tilesrsname, /* output */
+                                   size_t sizeof_tilesrsname);
+
+  int msDrawRasterBuildRasterPath(mapObj *map, layerObj *layer,
+                                  const char* filename,
+                                  char szPath[MS_MAXPATHLEN]);
+
+  const char* msDrawRasterGetCPLErrorMsg(const char* decrypted_path,
+                                         const char* szPath);
+
+  int msDrawRasterLoadProjection(layerObj *layer,
+                                 GDALDatasetH hDS,
+                                 const char* filename,
+                                 int tilesrsindex,
+                                 const char* tilesrsname);
+#endif
+
+#endif /* MAPRASTER_H */
diff --git a/maprasterquery.c b/maprasterquery.c
index 0e4a7a7..4075c08 100644
--- a/maprasterquery.c
+++ b/maprasterquery.c
@@ -31,7 +31,7 @@
 #include "mapserver.h"
 #include "mapresample.h"
 #include "mapthread.h"
-
+#include "mapraster.h"
 
 
 int msRASTERLayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record);
@@ -663,16 +663,14 @@ int msRasterQueryByRect(mapObj *map, layerObj *layer, rectObj queryRect)
   char *filename=NULL;
 
   layerObj *tlp=NULL; /* pointer to the tile layer either real or temporary */
-  int tileitemindex=-1, tilelayerindex=-1;
+  int tileitemindex=-1, tilelayerindex=-1, tilesrsindex=-1;
   shapeObj tshp;
-  char tilename[MS_PATH_LENGTH];
+  char tilename[MS_PATH_LENGTH], tilesrsname[1024];
   int  done;
 
   char szPath[MS_MAXPATHLEN];
   rectObj searchrect;
   rasterLayerInfo *rlinfo = NULL;
-  char tiAbsFilePath[MS_MAXPATHLEN];
-  char *tiAbsDirPath = NULL;
 
   /* -------------------------------------------------------------------- */
   /*      Get the layer info.                                             */
@@ -723,83 +721,22 @@ int msRasterQueryByRect(mapObj *map, layerObj *layer, rectObj queryRect)
   /*      Handle setting up tileindex layer.                              */
   /* ==================================================================== */
   if(layer->tileindex) { /* we have an index file */
-    int i;
-
     msInitShape(&tshp);
+    searchrect = queryRect;
 
-    tilelayerindex = msGetLayerIndex(layer->map, layer->tileindex);
-    if(tilelayerindex == -1) { /* the tileindex references a file, not a layer */
-
-      /* so we create a temporary layer */
-      tlp = (layerObj *) malloc(sizeof(layerObj));
-      MS_CHECK_ALLOC(tlp, sizeof(layerObj), MS_FAILURE);
-
-      initLayer(tlp, map);
-
-      /* set a few parameters for a very basic shapefile-based layer */
-      tlp->name = msStrdup("TILE");
-      tlp->type = MS_LAYER_TILEINDEX;
-      tlp->data = msStrdup(layer->tileindex);
-      if (layer->filteritem)
-        tlp->filteritem = msStrdup(layer->filteritem);
-      if (layer->filter.string) {
-        char *pszTmp;
-        if (layer->filter.type == MS_EXPRESSION) {
-          pszTmp =
-            (char *)msSmallMalloc(sizeof(char)*(strlen(layer->filter.string)+3));
-          sprintf(pszTmp,"(%s)",layer->filter.string);
-          msLoadExpressionString(&tlp->filter, pszTmp);
-          free(pszTmp);
-        } else if (layer->filter.type == MS_REGEX ||
-                   layer->filter.type == MS_IREGEX) {
-          pszTmp =
-            (char *)msSmallMalloc(sizeof(char)*(strlen(layer->filter.string)+3));
-          sprintf(pszTmp,"/%s/",layer->filter.string);
-          msLoadExpressionString(&tlp->filter, pszTmp);
-          free(pszTmp);
-        } else
-          msLoadExpressionString(&tlp->filter, layer->filter.string);
-
-        tlp->filter.type = layer->filter.type;
-      }
-
-    } else {
-      if ( msCheckParentPointer(layer->map,"map")==MS_FAILURE )
-        return MS_FAILURE;
-      tlp = (GET_LAYER(layer->map, tilelayerindex));
-    }
-    status = msLayerOpen(tlp);
-    if(status != MS_SUCCESS) {
-      goto cleanup;
-    }
-
-    status = msLayerWhichItems(tlp, MS_FALSE, layer->tileitem);
-    if(status != MS_SUCCESS) {
-      goto cleanup;
-    }
-
-    /* get the tileitem index */
-    for(i=0; i<tlp->numitems; i++) {
-      if(strcasecmp(tlp->items[i], layer->tileitem) == 0) {
-        tileitemindex = i;
-        break;
-      }
-    }
-    if(i == tlp->numitems) { /* didn't find it */
-      msSetError(MS_MEMERR,
-                 "Could not find attribute %s in tileindex.",
-                 "msDrawRasterLayerLow()",
-                 layer->tileitem);
-      status = MS_FAILURE;
+    status = msDrawRasterSetupTileLayer(map, layer,
+                           &searchrect,
+                           MS_TRUE,
+                           &tilelayerindex,
+                           &tileitemindex,
+                           &tilesrsindex,
+                           &tlp);
+    if (status != MS_SUCCESS) {
       goto cleanup;
     }
-
-    searchrect = queryRect;
-#ifdef USE_PROJ
-    /* if necessary, project the searchrect to source coords */
-    if((map->projection.numargs > 0) && (layer->projection.numargs > 0)) msProjectRect(&map->projection, &layer->projection, &searchrect);
-#endif
-    status = msLayerWhichShapes(tlp, searchrect, MS_TRUE);
+  } else {
+    /* we have to manually apply to scaletoken logic as we're not going through msLayerOpen() */
+    status = msLayerApplyScaletokens(layer,map->scaledenom);
     if (status != MS_SUCCESS) {
       goto cleanup;
     }
@@ -818,19 +755,16 @@ int msRasterQueryByRect(mapObj *map, layerObj *layer, rectObj queryRect)
     /*      Get filename.                                                   */
     /* -------------------------------------------------------------------- */
     if(layer->tileindex) {
-      status = msLayerNextShape(tlp, &tshp);
-      if( status == MS_FAILURE)
+      status = msDrawRasterIterateTileIndex(layer, tlp, &tshp,
+                                            tileitemindex, tilesrsindex,
+                                            tilename, sizeof(tilename),
+                                            tilesrsname, sizeof(tilesrsname));
+      if( status == MS_FAILURE) {
         break;
+      }
 
       if(status == MS_DONE) break; /* no more tiles/images */
-
-      if(layer->data == NULL || strlen(layer->data) == 0 ) { /* assume whole filename is in attribute field */
-        strlcpy( tilename, tshp.values[tileitemindex], sizeof(tilename));
-      } else
-        snprintf(tilename, sizeof(tilename), "%s/%s", tshp.values[tileitemindex], layer->data);
       filename = tilename;
-
-      msFreeShape(&tshp); /* done with the shape */
     } else {
       filename = layer->data;
       done = MS_TRUE; /* only one image so we're done after this */
@@ -843,36 +777,20 @@ int msRasterQueryByRect(mapObj *map, layerObj *layer, rectObj queryRect)
     /* -------------------------------------------------------------------- */
     msGDALInitialize();
 
-    /*
-    ** If using a tileindex then build the path relative to that file if SHAPEPATH is not set.
-    */
-    if(layer->tileindex && !map->shapepath) {
-      msBuildPath(tiAbsFilePath, map->mappath, layer->tileindex); /* absolute path to tileindex file */
-      tiAbsDirPath = msGetPath(tiAbsFilePath); /* tileindex file's directory */
-      msBuildPath(szPath, tiAbsDirPath, filename);
-      free(tiAbsDirPath);
-    } else {
-      msTryBuildPath3(szPath, map->mappath, map->shapepath, filename);
-    }
+    msDrawRasterBuildRasterPath(map, layer, filename, szPath);
 
     decrypted_path = msDecryptStringTokens( map, szPath );
-    if( !decrypted_path )
-      return MS_FAILURE;
+    if( !decrypted_path ) {
+      status = MS_FAILURE;
+      goto cleanup;
+    }
 
     msAcquireLock( TLOCK_GDAL );
     hDS = GDALOpen(decrypted_path, GA_ReadOnly );
 
     if( hDS == NULL ) {
       int ignore_missing = msMapIgnoreMissingData( map );
-      const char *cpl_error_msg = CPLGetLastErrorMsg();
-
-      /* we wish to avoid reporting decrypted paths */
-      if( cpl_error_msg != NULL
-          && strstr(cpl_error_msg,decrypted_path) != NULL
-          && strcmp(decrypted_path,szPath) != 0 )
-        cpl_error_msg = NULL;
-      if( cpl_error_msg == NULL )
-        cpl_error_msg = "";
+      const char *cpl_error_msg = msDrawRasterGetCPLErrorMsg(decrypted_path, szPath);
 
       msFree( decrypted_path );
       decrypted_path = NULL;
@@ -885,7 +803,8 @@ int msRasterQueryByRect(mapObj *map, layerObj *layer, rectObj queryRect)
                       "Unable to open file %s for layer %s ... fatal error.\n%s",
                       "msRasterQueryByRect()",
                       szPath, layer->name, cpl_error_msg);
-        return(MS_FAILURE);
+        status = MS_FAILURE;
+        goto cleanup;
       }
       if( ignore_missing == MS_MISSING_DATA_LOG ) {
         if( layer->debug || map->debug )
@@ -898,35 +817,11 @@ int msRasterQueryByRect(mapObj *map, layerObj *layer, rectObj queryRect)
     msFree( decrypted_path );
     decrypted_path = NULL;
 
-    /* -------------------------------------------------------------------- */
-    /*      Update projectionObj if AUTO.                                   */
-    /* -------------------------------------------------------------------- */
-    if (layer->projection.numargs > 0 &&
-        EQUAL(layer->projection.args[0], "auto")) {
-      const char *pszWKT;
-
-      pszWKT = GDALGetProjectionRef( hDS );
-
-      if( pszWKT != NULL && strlen(pszWKT) > 0 ) {
-        if( msOGCWKT2ProjectionObj(pszWKT, &(layer->projection),
-                                   layer->debug ) != MS_SUCCESS ) {
-          char  szLongMsg[MESSAGELENGTH*2];
-          errorObj *ms_error = msGetErrorObj();
-
-          snprintf( szLongMsg, sizeof(szLongMsg),
-                    "%s\n"
-                    "PROJECTION AUTO cannot be used for this "
-                    "GDAL raster (`%s').",
-                    ms_error->message, filename);
-          szLongMsg[MESSAGELENGTH-1] = '\0';
-
-          msSetError(MS_OGRERR, "%s","msDrawRasterLayer()",
-                     szLongMsg);
-
-          msReleaseLock( TLOCK_GDAL );
-          return(MS_FAILURE);
-        }
-      }
+    if( msDrawRasterLoadProjection(layer, hDS, filename, tilesrsindex, tilesrsname) != MS_SUCCESS )
+    {
+        msReleaseLock( TLOCK_GDAL );
+        status = MS_FAILURE;
+        goto cleanup;
     }
 
     /* -------------------------------------------------------------------- */
@@ -945,11 +840,9 @@ int msRasterQueryByRect(mapObj *map, layerObj *layer, rectObj queryRect)
   /* -------------------------------------------------------------------- */
 cleanup:
   if(layer->tileindex) { /* tiling clean-up */
-    msLayerClose(tlp);
-    if(tilelayerindex == -1) {
-      freeLayer(tlp);
-      free(tlp);
-    }
+    msDrawRasterCleanupTileLayer(tlp, tilelayerindex);
+  } else {
+    msLayerRestoreFromScaletokens(layer);
   }
 
   /* -------------------------------------------------------------------- */
@@ -1288,7 +1181,7 @@ int msRASTERLayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
   /* -------------------------------------------------------------------- */
   if( shapeindex < 0 || shapeindex >= rlinfo->query_results ) {
     msSetError(MS_MISCERR,
-               "Out of range shape index requested.  Requested %d\n"
+               "Out of range shape index requested.  Requested %ld\n"
                "but only %d shapes available.",
                "msRASTERLayerGetShape()",
                shapeindex, rlinfo->query_results );
diff --git a/maprendering.c b/maprendering.c
index 64f2a5b..5d2fc2f 100644
--- a/maprendering.c
+++ b/maprendering.c
@@ -136,6 +136,44 @@ tileCacheObj *searchTileCache(imageObj *img, symbolObj *symbol, symbolStyleObj *
   return NULL;
 }
 
+int preloadSymbol(symbolSetObj *symbolset, symbolObj *symbol, rendererVTableObj *renderer) {
+  switch(symbol->type) {
+  case MS_SYMBOL_VECTOR:
+  case MS_SYMBOL_ELLIPSE:
+  case MS_SYMBOL_SIMPLE:
+    break;
+  case (MS_SYMBOL_SVG):
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
+      return msPreloadSVGSymbol(symbol);
+#else
+      msSetError(MS_SYMERR, "SVG symbol support is not enabled.", "preloadSymbol()");
+      return MS_FAILURE;
+#endif
+      break;
+  case (MS_SYMBOL_TRUETYPE): {
+    if(!symbol->full_font_path)
+      symbol->full_font_path =  msStrdup(msLookupHashTable(&(symbolset->fontset->fonts),
+          symbol->font));
+    if(!symbol->full_font_path) {
+      msSetError(MS_MEMERR,"allocation error", "preloadSymbol()");
+      return MS_FAILURE;
+    }
+  }
+  break;
+  case (MS_SYMBOL_PIXMAP): {
+    if(!symbol->pixmap_buffer) {
+      if(MS_SUCCESS != msPreloadImageSymbol(renderer,symbol))
+        return MS_FAILURE;
+    }
+  }
+  break;
+  default:
+    msSetError(MS_MISCERR,"unsupported symbol type %d", "preloadSymbol()", symbol->type);
+    return MS_FAILURE;
+  }
+  return MS_SUCCESS;
+}
+
 /* add a cached tile to the current image's cache */
 tileCacheObj *addTileCache(imageObj *img,
                            imageObj *tile, symbolObj *symbol, symbolStyleObj *style, int width, int height)
@@ -192,6 +230,7 @@ imageObj *getTile(imageObj *img, symbolObj *symbol,  symbolStyleObj *s, int widt
     width=height=MS_MAX(symbol->sizex,symbol->sizey);
   }
   tile = searchTileCache(img,symbol,s,width,height);
+
   if(tile==NULL) {
     imageObj *tileimg;
     double p_x,p_y;
@@ -204,9 +243,6 @@ imageObj *getTile(imageObj *img, symbolObj *symbol,  symbolStyleObj *s, int widt
           renderer->renderTruetypeSymbol(tileimg, p_x, p_y, symbol, s);
           break;
         case (MS_SYMBOL_PIXMAP):
-          if(msPreloadImageSymbol(renderer,symbol) != MS_SUCCESS) {
-            return NULL; /* failed to load image, renderer should have set the error message */
-          }
           renderer->renderPixmapSymbol(tileimg, p_x, p_y, symbol, s);
           break;
         case (MS_SYMBOL_ELLIPSE):
@@ -217,10 +253,7 @@ imageObj *getTile(imageObj *img, symbolObj *symbol,  symbolStyleObj *s, int widt
           break;
 
         case (MS_SYMBOL_SVG):
-#ifdef USE_SVG_CAIRO
-          if(msPreloadSVGSymbol(symbol) != MS_SUCCESS) {
-            return NULL; //failed to load image, renderer should have set the error message
-          }
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
           if (renderer->supports_svg) {
             if(renderer->renderSVGSymbol(tileimg, p_x, p_y, symbol, s) != MS_SUCCESS) {
               return NULL;
@@ -252,40 +285,12 @@ imageObj *getTile(imageObj *img, symbolObj *symbol,  symbolStyleObj *s, int widt
         for(j=1; j<=3; j++) {
           p_y = (j+0.5) * height;
           switch(symbol->type) {
-            case (MS_SYMBOL_TRUETYPE):
-              renderer->renderTruetypeSymbol(tile3img, p_x, p_y, symbol, s);
-              break;
-            case (MS_SYMBOL_PIXMAP):
-              if(msPreloadImageSymbol(renderer,symbol) != MS_SUCCESS) {
-                return NULL; /* failed to load image, renderer should have set the error message */
-              }
-              renderer->renderPixmapSymbol(tile3img, p_x, p_y, symbol, s);
-              break;
-            case (MS_SYMBOL_ELLIPSE):
-              renderer->renderEllipseSymbol(tile3img, p_x, p_y,symbol, s);
-              break;
             case (MS_SYMBOL_VECTOR):
               renderer->renderVectorSymbol(tile3img, p_x, p_y, symbol, s);
               break;
-              /*we should never get into these cases since the seamlessmode mode seems to
-                only be for vector symbols. But if that changes ...*/
-            case (MS_SYMBOL_SVG):
-#ifdef USE_SVG_CAIRO
-              if(msPreloadSVGSymbol(symbol) != MS_SUCCESS) {
-                return NULL; //failed to load image, renderer should have set the error message
-              }
-              if (renderer->supports_svg) {
-                renderer->renderSVGSymbol(tile3img, p_x, p_y, symbol, s);
-              } else {
-                msRenderRasterizedSVGSymbol(tile3img,p_x,p_y,symbol, s);
-              }
-#else
-              msSetError(MS_SYMERR, "SVG symbol support is not enabled.", "getTile()");
-              return NULL;
-#endif
-              break;
             default:
-              break;
+              msSetError(MS_SYMERR, "BUG: Seamless mode is only for vector symbols", "getTile()");
+              return NULL;
           }
         }
       }
@@ -391,6 +396,18 @@ int msImagePolylineMarkers(imageObj *image, shapeObj *p, symbolObj *symbol,
           case MS_SYMBOL_TRUETYPE:
             ret = renderer->renderTruetypeSymbol(image, point.x, point.y, symbol, style);
             break;
+          case (MS_SYMBOL_SVG):
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
+              if (renderer->supports_svg) {
+                ret = renderer->renderSVGSymbol(image, point.x, point.y, symbol, style);
+              } else {
+                ret = msRenderRasterizedSVGSymbol(image,point.x,point.y,symbol, style);
+              }
+#else
+              msSetError(MS_SYMERR, "SVG symbol support is not enabled.", "msImagePolylineMarkers()()");
+              ret = MS_FAILURE;
+#endif
+              break;
         }
         if( ret != MS_SUCCESS)
           return ret;
@@ -449,6 +466,18 @@ int msImagePolylineMarkers(imageObj *image, shapeObj *p, symbolObj *symbol,
             case MS_SYMBOL_TRUETYPE:
               ret = renderer->renderTruetypeSymbol(image, point.x, point.y, symbol, style);
               break;
+            case (MS_SYMBOL_SVG):
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
+              if (renderer->supports_svg) {
+                ret = renderer->renderSVGSymbol(image, point.x, point.y, symbol, style);
+              } else {
+                ret = msRenderRasterizedSVGSymbol(image,point.x,point.y,symbol, style);
+              }
+#else
+              msSetError(MS_SYMERR, "SVG symbol support is not enabled.", "msImagePolylineMarkers()()");
+              ret = MS_FAILURE;
+#endif
+              break;
           }
           break; /* we have rendered the single marker for this line */
         }
@@ -493,6 +522,8 @@ int msDrawLineSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p,
 
       if(style->offsety==-99) {
         offsetLine = msOffsetPolyline(p,style->offsetx * finalscalefactor ,-99);
+      } else if(style->offsety==-999) {
+        offsetLine = msOffsetPolyline(p,style->offsetx * finalscalefactor ,-999);
       } else if(style->offsetx!=0 || style->offsety!=0) {
         offsetLine = msOffsetPolyline(p, style->offsetx * finalscalefactor,
                                       style->offsety * finalscalefactor);
@@ -520,35 +551,13 @@ int msDrawLineSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p,
         renderer->renderLine(image,offsetLine,&s);
       } else {
         symbolStyleObj s;
-        switch (symbol->type) {
-          case (MS_SYMBOL_TRUETYPE): {
-            if(!symbol->full_font_path)
-              symbol->full_font_path =  msStrdup(msLookupHashTable(&(symbolset->fontset->fonts),
-                                                 symbol->font));
-            if(!symbol->full_font_path) {
-              msSetError(MS_MEMERR,"allocation error", "msDrawMArkerSymbol()");
-              return MS_FAILURE;
-            }
-          }
-          break;
-          case (MS_SYMBOL_PIXMAP): {
-            if(!symbol->pixmap_buffer) {
-              if(MS_SUCCESS != msPreloadImageSymbol(renderer,symbol))
-                return MS_FAILURE;
-            }
-          }
-          break;
+        if(preloadSymbol(symbolset, symbol, renderer) != MS_SUCCESS) {
+          return MS_FAILURE;
         }
 
         INIT_SYMBOL_STYLE(s);
         computeSymbolStyle(&s,style,symbol,scalefactor,image->resolutionfactor);
         s.style = style;
-        if(symbol->type == MS_SYMBOL_TRUETYPE) {
-          if(!symbol->full_font_path)
-            symbol->full_font_path =  msStrdup(msLookupHashTable(&(symbolset->fontset->fonts),
-                                               symbol->font));
-          assert(symbol->full_font_path);
-        }
 
         /* compute a markerStyle and use it on the line */
         if(style->gap<0) {
@@ -634,10 +643,13 @@ int msDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p, sty
         symbol->renderer = renderer;
 
       if (style->offsetx != 0 || style->offsety != 0) {
-        if(style->offsety==-99)
+        if(style->offsety==-99) {
           offsetPolygon = msOffsetPolyline(p, style->offsetx*scalefactor, -99);
-        else
+        } else if(style->offsety==-999) {
+          offsetPolygon = msOffsetPolyline(p,style->offsetx * scalefactor ,-999);
+        } else {
           offsetPolygon = msOffsetPolyline(p, style->offsetx*scalefactor,style->offsety*scalefactor);
+        }
       } else {
         offsetPolygon=p;
       }
@@ -686,42 +698,8 @@ int msDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p, sty
         imageObj *tile;
         int seamless = 0;
 
-
-        switch(symbol->type) {
-          case MS_SYMBOL_PIXMAP:
-            if(MS_SUCCESS != msPreloadImageSymbol(renderer,symbol)) {
-              ret = MS_FAILURE;
-              goto cleanup;
-            }
-            break;
-          case MS_SYMBOL_TRUETYPE:
-            if(!symbol->full_font_path)
-              symbol->full_font_path =  msStrdup(msLookupHashTable(&(symbolset->fontset->fonts),
-                                                 symbol->font));
-            if(!symbol->full_font_path) {
-              msSetError(MS_MEMERR,"allocation error", "msDrawMarkerSymbol()");
-              ret = MS_FAILURE;
-              goto cleanup;
-            }
-            break;
-          case MS_SYMBOL_SVG:
-#ifdef USE_SVG_CAIRO
-            if(MS_SUCCESS != msPreloadSVGSymbol(symbol)) {
-              ret = MS_FAILURE;
-              goto cleanup;
-            }
-#else
-            msSetError(MS_SYMERR, "SVG symbol support is not enabled.", "msDrawMarkerSymbol()");
-            return MS_FAILURE;
-#endif
-            break;
-          case MS_SYMBOL_VECTOR:
-          case MS_SYMBOL_ELLIPSE:
-            break;
-          default:
-            msSetError(MS_MISCERR,"unsupported symbol type %d", "msDrawShadeSymbol()", symbol->type);
-            ret = MS_FAILURE;
-            goto cleanup;
+        if(preloadSymbol(symbolset,symbol,renderer) != MS_SUCCESS) {
+          return MS_FAILURE;
         }
 
         INIT_SYMBOL_STYLE(s);
@@ -800,46 +778,19 @@ int msDrawMarkerSymbol(symbolSetObj *symbolset,imageObj *image, pointObj *p, sty
       symbolObj *symbol = symbolset->symbol[style->symbol];
       /* store a reference to the renderer to be used for freeing */
       symbol->renderer = renderer;
-      switch (symbol->type) {
-        case (MS_SYMBOL_TRUETYPE): {
-          if (!symbol->full_font_path)
-            symbol->full_font_path = msStrdup(msLookupHashTable(&(symbolset->fontset->fonts),
-                                              symbol->font));
-          if (!symbol->full_font_path) {
-            msSetError(MS_MEMERR, "allocation error", "msDrawMarkerSymbol()");
-            return MS_FAILURE;
-          }
-        }
-        break;
-        case (MS_SYMBOL_PIXMAP): {
-          if (!symbol->pixmap_buffer) {
-            if (MS_SUCCESS != msPreloadImageSymbol(renderer, symbol))
-              return MS_FAILURE;
-          }
-        }
-        break;
-
-        case (MS_SYMBOL_SVG): {
-#ifdef USE_SVG_CAIRO
-          if (!symbol->renderer_cache) {
-            if (MS_SUCCESS != msPreloadSVGSymbol(symbol))
-              return MS_FAILURE;
-          }
-#else
-          msSetError(MS_SYMERR, "SVG symbol support is not enabled.", "msDrawMarkerSymbol()");
-          return MS_FAILURE;
-#endif
-        }
-        break;
+      if(preloadSymbol(symbolset,symbol,renderer) != MS_SUCCESS) {
+        return MS_FAILURE;
       }
 
-      s.style = style;
       computeSymbolStyle(&s,style,symbol,scalefactor,image->resolutionfactor);
       s.style = style;
       if (!s.color && !s.outlinecolor && symbol->type != MS_SYMBOL_PIXMAP &&
           symbol->type != MS_SYMBOL_SVG) {
         return MS_SUCCESS; // nothing to do if no color, except for pixmap symbols
       }
+      if(s.scale == 0) {
+        return MS_SUCCESS;
+      }
 
 
 
@@ -915,7 +866,7 @@ int msDrawMarkerSymbol(symbolSetObj *symbolset,imageObj *image, pointObj *p, sty
           if (renderer->supports_svg) {
             ret = renderer->renderSVGSymbol(image, p_x, p_y, symbol, &s);
           } else {
-#ifdef USE_SVG_CAIRO
+#if defined(USE_SVG_CAIRO) || defined(USE_RSVG)
             ret = msRenderRasterizedSVGSymbol(image, p_x,p_y, symbol, &s);
 #else
             msSetError(MS_SYMERR, "SVG symbol support is not enabled.", "msDrawMarkerSymbol()");
@@ -1072,23 +1023,6 @@ int msDrawTextLine(imageObj *image, char *string, labelObj *label, labelPathObj
   return nReturnVal;
 }
 
-
-/************************************************************************/
-/*                          msCircleDrawLineSymbol                      */
-/*                                                                      */
-/************************************************************************/
-int msCircleDrawLineSymbol(symbolSetObj *symbolset, imageObj *image, pointObj *p, double r, styleObj *style, double scalefactor)
-{
-  shapeObj *circle;
-  if (!image) return MS_FAILURE;
-  circle = msRasterizeArc(p->x, p->y, r, 0, 360, 0);
-  if (!circle) return MS_FAILURE;
-  msDrawLineSymbol(symbolset, image, circle, style, scalefactor);
-  msFreeShape(circle);
-  msFree(circle);
-  return MS_SUCCESS;
-}
-
 int msCircleDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, pointObj *p, double r, styleObj *style, double scalefactor)
 {
   shapeObj *circle;
diff --git a/mapresample.c b/mapresample.c
index 087bec7..1a47feb 100644
--- a/mapresample.c
+++ b/mapresample.c
@@ -38,6 +38,8 @@
 #  define MAX(a,b)      ((a>b) ? a : b)
 #endif
 
+#define SKIP_MASK(x,y) (mask_rb && !*(mask_rb->data.rgba.a+(y)*mask_rb->data.rgba.row_step+(x)*mask_rb->data.rgba.pixel_step))
+
 /************************************************************************/
 /*                          InvGeoTransform()                           */
 /*                                                                      */
@@ -86,7 +88,7 @@ msNearestRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
                           imageObj *psDstImage, rasterBufferObj *dst_rb,
                           int *panCMap,
                           SimpleTransformer pfnTransform, void *pCBData,
-                          int debug )
+                          int debug, rasterBufferObj *mask_rb )
 
 {
   double  *x, *y;
@@ -116,6 +118,8 @@ msNearestRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
 
     for( nDstX = 0; nDstX < nDstXSize; nDstX++ ) {
       int   nSrcX, nSrcY;
+      if(SKIP_MASK(nDstX,nDstY))
+        continue;
 
       if( !panSuccess[nDstX] ) {
         nFailedPoints++;
@@ -229,18 +233,15 @@ msNearestRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
   free( panSuccess );
   free( x );
   free( y );
+  msFree(mask_rb);
 
   /* -------------------------------------------------------------------- */
   /*      Some debugging output.                                          */
   /* -------------------------------------------------------------------- */
   if( nFailedPoints > 0 && debug ) {
-    char  szMsg[256];
-
-    sprintf( szMsg,
-             "msNearestRasterResampler: "
+    msDebug( "msNearestRasterResampler: "
              "%d failed to transform, %d actually set.\n",
              nFailedPoints, nSetPoints );
-    msDebug( szMsg );
   }
 
   return 0;
@@ -330,7 +331,7 @@ msBilinearRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
                            imageObj *psDstImage, rasterBufferObj *dst_rb,
                            int *panCMap,
                            SimpleTransformer pfnTransform, void *pCBData,
-                           int debug )
+                           int debug, rasterBufferObj *mask_rb )
 
 {
   double  *x, *y;
@@ -363,6 +364,7 @@ msBilinearRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
     for( nDstX = 0; nDstX < nDstXSize; nDstX++ ) {
       int   nSrcX, nSrcY, nSrcX2, nSrcY2;
       double      dfRatioX2, dfRatioY2, dfWeightSum = 0.0;
+      if(SKIP_MASK(nDstX,nDstY)) continue;
 
       if( !panSuccess[nDstX] ) {
         nFailedPoints++;
@@ -489,19 +491,16 @@ msBilinearRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
   free( panSuccess );
   free( x );
   free( y );
+  msFree(mask_rb);
 
   /* -------------------------------------------------------------------- */
   /*      Some debugging output.                                          */
   /* -------------------------------------------------------------------- */
   if( nFailedPoints > 0 && debug )
   {
-    char  szMsg[256];
-
-    sprintf( szMsg,
-             "msBilinearRasterResampler: "
+    msDebug( "msBilinearRasterResampler: "
              "%d failed to transform, %d actually set.\n",
              nFailedPoints, nSetPoints );
-    msDebug( szMsg );
   }
 
   return 0;
@@ -569,7 +568,7 @@ msAverageRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
                           imageObj *psDstImage, rasterBufferObj *dst_rb,
                           int *panCMap,
                           SimpleTransformer pfnTransform, void *pCBData,
-                          int debug )
+                          int debug, rasterBufferObj *mask_rb )
 
 {
   double  *x1, *y1, *x2, *y2;
@@ -607,6 +606,7 @@ msAverageRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
     for( nDstX = 0; nDstX < nDstXSize; nDstX++ ) {
       double  dfXMin, dfYMin, dfXMax, dfYMax;
       double  dfAlpha01;
+      if(SKIP_MASK(nDstX,nDstY)) continue;
 
       /* Do not generate a pixel unless all four corners transformed */
       if( !panSuccess1[nDstX] || !panSuccess1[nDstX+1]
@@ -708,19 +708,16 @@ msAverageRasterResampler( imageObj *psSrcImage, rasterBufferObj *src_rb,
   free( panSuccess2 );
   free( x2 );
   free( y2 );
+  msFree(mask_rb);
 
   /* -------------------------------------------------------------------- */
   /*      Some debugging output.                                          */
   /* -------------------------------------------------------------------- */
   if( nFailedPoints > 0 && debug )
   {
-    char  szMsg[256];
-
-    sprintf( szMsg,
-             "msAverageRasterResampler: "
+    msDebug( "msAverageRasterResampler: "
              "%d failed to transform, %d actually set.\n",
              nFailedPoints, nSetPoints );
-    msDebug( szMsg );
   }
 
   return 0;
@@ -1246,7 +1243,7 @@ int msResampleGDALToMap( mapObj *map, layerObj *layer, imageObj *image,
   char       **papszAlteredProcessing = NULL;
   int         nLoadImgXSize, nLoadImgYSize;
   double      dfOversampleRatio;
-  rasterBufferObj src_rb, *psrc_rb = NULL;
+  rasterBufferObj src_rb, *psrc_rb = NULL, *mask_rb = NULL;
 
 
   const char *resampleMode = CSLFetchNameValue( layer->processing,
@@ -1254,6 +1251,15 @@ int msResampleGDALToMap( mapObj *map, layerObj *layer, imageObj *image,
 
   if( resampleMode == NULL )
     resampleMode = "NEAREST";
+  
+  if(layer->mask) {
+    int ret;
+    layerObj *maskLayer = GET_LAYER(map, msGetLayerIndex(map,layer->mask));
+    mask_rb = msSmallCalloc(1,sizeof(rasterBufferObj)); 
+    ret = MS_IMAGE_RENDERER(maskLayer->maskimage)->getRasterBufferHandle(maskLayer->maskimage,mask_rb);
+    if(ret != MS_SUCCESS)
+      return -1;
+  }
 
   /* -------------------------------------------------------------------- */
   /*      We will require source and destination to have a valid          */
@@ -1490,13 +1496,15 @@ int msResampleGDALToMap( mapObj *map, layerObj *layer, imageObj *image,
   /* -------------------------------------------------------------------- */
   {
     char **papszSavedProcessing = layer->processing;
-
+    char* origMask = layer->mask;
+    layer->mask = NULL;
     layer->processing = papszAlteredProcessing;
 
     result = msDrawRasterLayerGDAL( &sDummyMap, layer, srcImage,
                                     psrc_rb, hDS );
 
     layer->processing = papszSavedProcessing;
+    layer->mask = origMask;
     CSLDestroy( papszAlteredProcessing );
 
     if( result ) {
@@ -1563,17 +1571,17 @@ int msResampleGDALToMap( mapObj *map, layerObj *layer, imageObj *image,
     result =
       msAverageRasterResampler( srcImage, psrc_rb, image, rb,
                                 anCMap, msApproxTransformer, pACBData,
-                                layer->debug );
+                                layer->debug, mask_rb );
   else if( EQUAL(resampleMode,"BILINEAR") )
     result =
       msBilinearRasterResampler( srcImage, psrc_rb, image, rb,
                                  anCMap, msApproxTransformer, pACBData,
-                                 layer->debug );
+                                 layer->debug, mask_rb );
   else
     result =
       msNearestRasterResampler( srcImage, psrc_rb, image, rb,
                                 anCMap, msApproxTransformer, pACBData,
-                                layer->debug );
+                                layer->debug, mask_rb );
 
   /* -------------------------------------------------------------------- */
   /*      cleanup                                                         */
diff --git a/mapscale.c b/mapscale.c
index 2770ce1..2e1d705 100644
--- a/mapscale.c
+++ b/mapscale.c
@@ -339,13 +339,10 @@ int msEmbedScalebar(mapObj *map, imageObj *img)
   int l,index,s;
   pointObj point;
   imageObj *image = NULL;
-  rendererVTableObj *renderer = MS_MAP_RENDERER(map);
+  rendererVTableObj *renderer;
   symbolObj *embededSymbol;
+  char* imageType = NULL;
 
-  if( ! renderer ) {
-    msSetError(MS_MISCERR,"unsupported outputformat","msEmbedScalebar()");
-    return MS_FAILURE;
-  }
   index = msGetSymbolIndex(&(map->symbolset), "scalebar", MS_FALSE);
   if(index != -1)
     msRemoveSymbol(&(map->symbolset), index); /* remove cached symbol in case the function is called multiple
@@ -353,10 +350,28 @@ int msEmbedScalebar(mapObj *map, imageObj *img)
 
   if((embededSymbol=msGrowSymbolSet(&map->symbolset)) == NULL)
     return MS_FAILURE;
+
   s = map->symbolset.numsymbols;
   map->symbolset.numsymbols++;
 
+  if(!MS_RENDERER_PLUGIN(map->outputformat) || !MS_MAP_RENDERER(map)->supports_pixel_buffer) {
+    imageType = msStrdup(map->imagetype); /* save format */
+    if MS_DRIVER_CAIRO(map->outputformat)
+      map->outputformat = msSelectOutputFormat( map, "cairopng" );
+    else
+      map->outputformat = msSelectOutputFormat( map, "png" );
+    
+    msInitializeRendererVTable(map->outputformat);
+  }
+  renderer = MS_MAP_RENDERER(map);
+
   image = msDrawScalebar(map);
+
+  if (imageType) {
+    map->outputformat = msSelectOutputFormat( map, imageType ); /* restore format */
+    msFree(imageType);
+  }
+
   if(!image) {
     return MS_FAILURE;
   }
diff --git a/mapscript/csharp/CMakeLists.txt b/mapscript/csharp/CMakeLists.txt
new file mode 100644
index 0000000..079a0c1
--- /dev/null
+++ b/mapscript/csharp/CMakeLists.txt
@@ -0,0 +1,56 @@
+FIND_PACKAGE(SWIG REQUIRED)
+INCLUDE(${SWIG_USE_FILE})
+
+FIND_PROGRAM (CSHARP_COMPILER NAMES csc gmcs gmcs2)
+
+IF (CSHARP_COMPILER)
+	MESSAGE(STATUS "Found CSharp compiler: ${CSHARP_COMPILER}")
+ELSE (CSHARP_COMPILER)
+	MESSAGE(FATAL_ERROR "Could not find csharp compiler")
+ENDIF (CSHARP_COMPILER)
+
+if (WIN32)
+  if (NOT MSVC71)
+    if (CMAKE_CL_64)
+      set(PLATFORM_TARGET /platform:anycpu)
+    else(CMAKE_CL_64)
+      set(PLATFORM_TARGET /platform:x86)
+    endif(CMAKE_CL_64)
+  endif (NOT MSVC71)
+  if (MSVC10)
+      set(PLATFORM_TARGET ${PLATFORM_TARGET} /define:CLR4)
+  endif (MSVC10)
+endif(WIN32)
+
+MARK_AS_ADVANCED(CSHARP_COMPILER)
+
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/swiginc)
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/)
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/csharp)
+SET (CMAKE_SWIG_OUTDIR "${CMAKE_CURRENT_BINARY_DIR}")
+SET( CMAKE_SWIG_FLAGS -namespace OSGeo.MapServer ${MAPSERVER_COMPILE_DEFINITIONS} -DWIN32)
+SWIG_ADD_MODULE(csharpmapscript csharp ../mapscript.i)
+
+set_target_properties(csharpmapscript PROPERTIES OUTPUT_NAME "mapscript")
+
+SWIG_LINK_LIBRARIES(csharpmapscript ${MAPSERVER_LIBMAPSERVER})
+
+ADD_CUSTOM_COMMAND(TARGET csharpmapscript
+                      WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+                      POST_BUILD
+                      COMMAND ${CSHARP_COMPILER} ${PLATFORM_TARGET} /t:library /out:mapscript_csharp.dll *.cs config\\AssemblyInfo.cs
+					  COMMAND ${CSHARP_COMPILER} ${PLATFORM_TARGET} /r:mapscript_csharp.dll /out:shpdump.exe examples\\shpdump.cs
+					  COMMAND ${CSHARP_COMPILER} ${PLATFORM_TARGET} /r:mapscript_csharp.dll /out:drawmap.exe examples\\drawmap.cs
+					  COMMAND ${CSHARP_COMPILER} ${PLATFORM_TARGET} /r:mapscript_csharp.dll /out:shapeinfo.exe examples\\shapeinfo.cs
+					  COMMAND ${CSHARP_COMPILER} ${PLATFORM_TARGET} /r:mapscript_csharp.dll /out:drawquery.exe examples\\drawquery.cs
+					  COMMAND ${CSHARP_COMPILER} ${PLATFORM_TARGET} /r:mapscript_csharp.dll /r:System.Drawing.dll /out:getbytes.exe examples\\getbytes.cs
+					  COMMAND ${CSHARP_COMPILER} ${PLATFORM_TARGET} /r:mapscript_csharp.dll /out:HTMLtemplate.exe examples\\HTMLtemplate.cs
+					  COMMAND ${CSHARP_COMPILER} ${PLATFORM_TARGET} /r:mapscript_csharp.dll /out:RFC24.exe examples\\RFC24.cs
+					  COMMAND ${CSHARP_COMPILER} ${PLATFORM_TARGET} /r:mapscript_csharp.dll /r:System.Drawing.dll /out:drawmapDirect.exe examples\\drawmapDirect.cs
+					  COMMAND ${CSHARP_COMPILER} ${PLATFORM_TARGET} /r:mapscript_csharp.dll /r:System.Drawing.dll /out:drawmapDirectPrint.exe examples\\drawmapDirectPrint.cs	
+                      COMMENT "Compiling c# source files"
+                      )
+
+#get_target_property(LOC_MAPSCRIPT_LIB ${SWIG_MODULE_csharpmapscript_REAL_NAME} LOCATION)
+#install(FILES ${LOC_MAPSCRIPT_LIB} DESTINATION lib)
+
diff --git a/mapscript/csharp/DBFFieldType.cs b/mapscript/csharp/DBFFieldType.cs
index 43f50eb..4109888 100644
--- a/mapscript/csharp/DBFFieldType.cs
+++ b/mapscript/csharp/DBFFieldType.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/DBFInfo.cs b/mapscript/csharp/DBFInfo.cs
index d514900..64e7b56 100644
--- a/mapscript/csharp/DBFInfo.cs
+++ b/mapscript/csharp/DBFInfo.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class DBFInfo : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class DBFInfo : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~DBFInfo() {
     Dispose();
   }
@@ -112,6 +114,7 @@ public class DBFInfo : IDisposable {
   }
 
   public SWIGTYPE_p_int panFieldOffset {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.DBFInfo_panFieldOffset_get(swigCPtr);
       SWIGTYPE_p_int ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_int(cPtr, false, ThisOwn_false());
@@ -121,6 +124,7 @@ public class DBFInfo : IDisposable {
   }
 
   public SWIGTYPE_p_int panFieldSize {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.DBFInfo_panFieldSize_get(swigCPtr);
       SWIGTYPE_p_int ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_int(cPtr, false, ThisOwn_false());
@@ -130,6 +134,7 @@ public class DBFInfo : IDisposable {
   }
 
   public SWIGTYPE_p_int panFieldDecimals {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.DBFInfo_panFieldDecimals_get(swigCPtr);
       SWIGTYPE_p_int ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_int(cPtr, false, ThisOwn_false());
diff --git a/mapscript/csharp/MS_ALIGN_VALUE.cs b/mapscript/csharp/MS_ALIGN_VALUE.cs
index 421fa0f..9ae292f 100644
--- a/mapscript/csharp/MS_ALIGN_VALUE.cs
+++ b/mapscript/csharp/MS_ALIGN_VALUE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_BITMAP_FONT_SIZES.cs b/mapscript/csharp/MS_BITMAP_FONT_SIZES.cs
index 125ed8d..c77823c 100644
--- a/mapscript/csharp/MS_BITMAP_FONT_SIZES.cs
+++ b/mapscript/csharp/MS_BITMAP_FONT_SIZES.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_CAPS_JOINS_AND_CORNERS.cs b/mapscript/csharp/MS_CAPS_JOINS_AND_CORNERS.cs
index bf31dfc..b69a530 100644
--- a/mapscript/csharp/MS_CAPS_JOINS_AND_CORNERS.cs
+++ b/mapscript/csharp/MS_CAPS_JOINS_AND_CORNERS.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_CONNECTION_TYPE.cs b/mapscript/csharp/MS_CONNECTION_TYPE.cs
index 75bd289..412692a 100644
--- a/mapscript/csharp/MS_CONNECTION_TYPE.cs
+++ b/mapscript/csharp/MS_CONNECTION_TYPE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -23,5 +23,6 @@ public enum MS_CONNECTION_TYPE {
   MS_RASTER,
   MS_PLUGIN,
   MS_UNION,
-  MS_UVRASTER
+  MS_UVRASTER,
+  MS_CONTOUR
 }
diff --git a/mapscript/csharp/MS_FILE_TYPE.cs b/mapscript/csharp/MS_FILE_TYPE.cs
index 4d62085..688dd2d 100644
--- a/mapscript/csharp/MS_FILE_TYPE.cs
+++ b/mapscript/csharp/MS_FILE_TYPE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_FONT_TYPE.cs b/mapscript/csharp/MS_FONT_TYPE.cs
index 82cc4bc..e9a9acd 100644
--- a/mapscript/csharp/MS_FONT_TYPE.cs
+++ b/mapscript/csharp/MS_FONT_TYPE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_GEOS_OPERATOR.cs b/mapscript/csharp/MS_GEOS_OPERATOR.cs
index 102e80b..04b5909 100644
--- a/mapscript/csharp/MS_GEOS_OPERATOR.cs
+++ b/mapscript/csharp/MS_GEOS_OPERATOR.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_IMAGEMODE.cs b/mapscript/csharp/MS_IMAGEMODE.cs
index 2609ac7..3871ebd 100644
--- a/mapscript/csharp/MS_IMAGEMODE.cs
+++ b/mapscript/csharp/MS_IMAGEMODE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_JOIN_CONNECTION_TYPE.cs b/mapscript/csharp/MS_JOIN_CONNECTION_TYPE.cs
index fec65c2..4010942 100644
--- a/mapscript/csharp/MS_JOIN_CONNECTION_TYPE.cs
+++ b/mapscript/csharp/MS_JOIN_CONNECTION_TYPE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_JOIN_TYPE.cs b/mapscript/csharp/MS_JOIN_TYPE.cs
index 828677c..1705acc 100644
--- a/mapscript/csharp/MS_JOIN_TYPE.cs
+++ b/mapscript/csharp/MS_JOIN_TYPE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_LABEL_BINDING_ENUM.cs b/mapscript/csharp/MS_LABEL_BINDING_ENUM.cs
index b0cc5fa..9e7061c 100644
--- a/mapscript/csharp/MS_LABEL_BINDING_ENUM.cs
+++ b/mapscript/csharp/MS_LABEL_BINDING_ENUM.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_LAYER_TYPE.cs b/mapscript/csharp/MS_LAYER_TYPE.cs
index 52fc717..13b4f66 100644
--- a/mapscript/csharp/MS_LAYER_TYPE.cs
+++ b/mapscript/csharp/MS_LAYER_TYPE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_PARSE_TYPE_ENUM.cs b/mapscript/csharp/MS_PARSE_TYPE_ENUM.cs
index 2dd5c03..68fc3df 100644
--- a/mapscript/csharp/MS_PARSE_TYPE_ENUM.cs
+++ b/mapscript/csharp/MS_PARSE_TYPE_ENUM.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_POSITIONS_ENUM.cs b/mapscript/csharp/MS_POSITIONS_ENUM.cs
index 6d508db..8cd48d7 100644
--- a/mapscript/csharp/MS_POSITIONS_ENUM.cs
+++ b/mapscript/csharp/MS_POSITIONS_ENUM.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_QUERYMAP_STYLES.cs b/mapscript/csharp/MS_QUERYMAP_STYLES.cs
index 85e315e..f3bfd8a 100644
--- a/mapscript/csharp/MS_QUERYMAP_STYLES.cs
+++ b/mapscript/csharp/MS_QUERYMAP_STYLES.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_QUERY_MODE.cs b/mapscript/csharp/MS_QUERY_MODE.cs
index 6176c81..beadeb8 100644
--- a/mapscript/csharp/MS_QUERY_MODE.cs
+++ b/mapscript/csharp/MS_QUERY_MODE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_QUERY_TYPE.cs b/mapscript/csharp/MS_QUERY_TYPE.cs
index b1e036f..ff11551 100644
--- a/mapscript/csharp/MS_QUERY_TYPE.cs
+++ b/mapscript/csharp/MS_QUERY_TYPE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_REQUEST_TYPE.cs b/mapscript/csharp/MS_REQUEST_TYPE.cs
index 47472d9..34a0fcf 100644
--- a/mapscript/csharp/MS_REQUEST_TYPE.cs
+++ b/mapscript/csharp/MS_REQUEST_TYPE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_RETURN_VALUE.cs b/mapscript/csharp/MS_RETURN_VALUE.cs
index de706f4..15399b8 100644
--- a/mapscript/csharp/MS_RETURN_VALUE.cs
+++ b/mapscript/csharp/MS_RETURN_VALUE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_SHAPE_TYPE.cs b/mapscript/csharp/MS_SHAPE_TYPE.cs
index f9b9bf7..593fc92 100644
--- a/mapscript/csharp/MS_SHAPE_TYPE.cs
+++ b/mapscript/csharp/MS_SHAPE_TYPE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_STYLE_BINDING_ENUM.cs b/mapscript/csharp/MS_STYLE_BINDING_ENUM.cs
index 665304d..8611b48 100644
--- a/mapscript/csharp/MS_STYLE_BINDING_ENUM.cs
+++ b/mapscript/csharp/MS_STYLE_BINDING_ENUM.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_SYMBOL_TYPE.cs b/mapscript/csharp/MS_SYMBOL_TYPE.cs
index 421b7f3..2ed08bb 100644
--- a/mapscript/csharp/MS_SYMBOL_TYPE.cs
+++ b/mapscript/csharp/MS_SYMBOL_TYPE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_TOKEN_BINDING_ENUM.cs b/mapscript/csharp/MS_TOKEN_BINDING_ENUM.cs
index 25bf6f0..b6b84b8 100644
--- a/mapscript/csharp/MS_TOKEN_BINDING_ENUM.cs
+++ b/mapscript/csharp/MS_TOKEN_BINDING_ENUM.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -8,9 +8,11 @@
 
 
 public enum MS_TOKEN_BINDING_ENUM {
-  MS_TOKEN_BINDING_DOUBLE = 350,
+  MS_TOKEN_BINDING_DOUBLE = 360,
   MS_TOKEN_BINDING_INTEGER,
   MS_TOKEN_BINDING_STRING,
   MS_TOKEN_BINDING_TIME,
-  MS_TOKEN_BINDING_SHAPE
+  MS_TOKEN_BINDING_SHAPE,
+  MS_TOKEN_BINDING_MAP_CELLSIZE,
+  MS_TOKEN_BINDING_DATA_CELLSIZE
 }
diff --git a/mapscript/csharp/MS_TOKEN_COMPARISON_ENUM.cs b/mapscript/csharp/MS_TOKEN_COMPARISON_ENUM.cs
index d5ef96f..bf3d13a 100644
--- a/mapscript/csharp/MS_TOKEN_COMPARISON_ENUM.cs
+++ b/mapscript/csharp/MS_TOKEN_COMPARISON_ENUM.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_TOKEN_FUNCTION_ENUM.cs b/mapscript/csharp/MS_TOKEN_FUNCTION_ENUM.cs
index d24a8ac..afa3fcb 100644
--- a/mapscript/csharp/MS_TOKEN_FUNCTION_ENUM.cs
+++ b/mapscript/csharp/MS_TOKEN_FUNCTION_ENUM.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -15,5 +15,9 @@ public enum MS_TOKEN_FUNCTION_ENUM {
   MS_TOKEN_FUNCTION_ROUND,
   MS_TOKEN_FUNCTION_FROMTEXT,
   MS_TOKEN_FUNCTION_BUFFER,
-  MS_TOKEN_FUNCTION_DIFFERENCE
+  MS_TOKEN_FUNCTION_DIFFERENCE,
+  MS_TOKEN_FUNCTION_SIMPLIFY,
+  MS_TOKEN_FUNCTION_SIMPLIFYPT,
+  MS_TOKEN_FUNCTION_GENERALIZE,
+  MS_TOKEN_FUNCTION_SMOOTHSIA
 }
diff --git a/mapscript/csharp/MS_TOKEN_LITERAL_ENUM.cs b/mapscript/csharp/MS_TOKEN_LITERAL_ENUM.cs
index 812f0f3..0591c7c 100644
--- a/mapscript/csharp/MS_TOKEN_LITERAL_ENUM.cs
+++ b/mapscript/csharp/MS_TOKEN_LITERAL_ENUM.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_TOKEN_LOGICAL_ENUM.cs b/mapscript/csharp/MS_TOKEN_LOGICAL_ENUM.cs
index 0473f91..831fc05 100644
--- a/mapscript/csharp/MS_TOKEN_LOGICAL_ENUM.cs
+++ b/mapscript/csharp/MS_TOKEN_LOGICAL_ENUM.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_TRANSFORM_MODE.cs b/mapscript/csharp/MS_TRANSFORM_MODE.cs
index 9bd48c3..4a66508 100644
--- a/mapscript/csharp/MS_TRANSFORM_MODE.cs
+++ b/mapscript/csharp/MS_TRANSFORM_MODE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/MS_UNITS.cs b/mapscript/csharp/MS_UNITS.cs
index 83be2fe..cde7210 100644
--- a/mapscript/csharp/MS_UNITS.cs
+++ b/mapscript/csharp/MS_UNITS.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/OWSRequest.cs b/mapscript/csharp/OWSRequest.cs
index 1586eff..0631709 100644
--- a/mapscript/csharp/OWSRequest.cs
+++ b/mapscript/csharp/OWSRequest.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class OWSRequest : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class OWSRequest : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~OWSRequest() {
     Dispose();
   }
diff --git a/mapscript/csharp/SWIGTYPE_p_double.cs b/mapscript/csharp/SWIGTYPE_p_double.cs
index 4e5fe05..848fb57 100644
--- a/mapscript/csharp/SWIGTYPE_p_double.cs
+++ b/mapscript/csharp/SWIGTYPE_p_double.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class SWIGTYPE_p_double {
+  /* %typemap(csbody) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) */
   private HandleRef swigCPtr;
 
   internal SWIGTYPE_p_double(IntPtr cPtr, bool futureUse, object parent) {
diff --git a/mapscript/csharp/SWIGTYPE_p_int.cs b/mapscript/csharp/SWIGTYPE_p_int.cs
index cb49b54..339fb3d 100644
--- a/mapscript/csharp/SWIGTYPE_p_int.cs
+++ b/mapscript/csharp/SWIGTYPE_p_int.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class SWIGTYPE_p_int {
+  /* %typemap(csbody) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) */
   private HandleRef swigCPtr;
 
   internal SWIGTYPE_p_int(IntPtr cPtr, bool futureUse, object parent) {
diff --git a/mapscript/csharp/SWIGTYPE_p_p_char.cs b/mapscript/csharp/SWIGTYPE_p_p_char.cs
index 8453c7d..63415d4 100644
--- a/mapscript/csharp/SWIGTYPE_p_p_char.cs
+++ b/mapscript/csharp/SWIGTYPE_p_p_char.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class SWIGTYPE_p_p_char {
+  /* %typemap(csbody) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) */
   private HandleRef swigCPtr;
 
   internal SWIGTYPE_p_p_char(IntPtr cPtr, bool futureUse, object parent) {
diff --git a/mapscript/csharp/SWIGTYPE_p_tileCacheObj.cs b/mapscript/csharp/SWIGTYPE_p_tileCacheObj.cs
index dd68bff..53f43ce 100644
--- a/mapscript/csharp/SWIGTYPE_p_tileCacheObj.cs
+++ b/mapscript/csharp/SWIGTYPE_p_tileCacheObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class SWIGTYPE_p_tileCacheObj {
+  /* %typemap(csbody) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) */
   private HandleRef swigCPtr;
 
   internal SWIGTYPE_p_tileCacheObj(IntPtr cPtr, bool futureUse, object parent) {
diff --git a/mapscript/csharp/SWIGTYPE_p_uint32_t.cs b/mapscript/csharp/SWIGTYPE_p_uint32_t.cs
index a864742..a7ac84d 100644
--- a/mapscript/csharp/SWIGTYPE_p_uint32_t.cs
+++ b/mapscript/csharp/SWIGTYPE_p_uint32_t.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class SWIGTYPE_p_uint32_t {
+  /* %typemap(csbody) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) */
   private HandleRef swigCPtr;
 
   internal SWIGTYPE_p_uint32_t(IntPtr cPtr, bool futureUse, object parent) {
diff --git a/mapscript/csharp/classObj.cs b/mapscript/csharp/classObj.cs
index 2e60556..3bc65aa 100644
--- a/mapscript/csharp/classObj.cs
+++ b/mapscript/csharp/classObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class classObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class classObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~classObj() {
     Dispose();
   }
@@ -160,6 +162,7 @@ public class classObj : IDisposable {
   }
 
   public hashTableObj metadata {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.classObj_metadata_get(swigCPtr);
       hashTableObj ret = (cPtr == IntPtr.Zero) ? null : new hashTableObj(cPtr, false, ThisOwn_false());
@@ -169,6 +172,7 @@ public class classObj : IDisposable {
   }
 
   public hashTableObj validation {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.classObj_validation_get(swigCPtr);
       hashTableObj ret = (cPtr == IntPtr.Zero) ? null : new hashTableObj(cPtr, false, ThisOwn_false());
@@ -222,6 +226,7 @@ public class classObj : IDisposable {
   }
 
   public layerObj layer {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.classObj_layer_get(swigCPtr);
       layerObj ret = (cPtr == IntPtr.Zero) ? null : new layerObj(cPtr, false, ThisOwn_false());
@@ -271,6 +276,7 @@ public class classObj : IDisposable {
       mapscriptPINVOKE.classObj_leader_set(swigCPtr, labelLeaderObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.classObj_leader_get(swigCPtr);
       labelLeaderObj ret = (cPtr == IntPtr.Zero) ? null : new labelLeaderObj(cPtr, false, ThisOwn_false());
@@ -290,7 +296,14 @@ public class classObj : IDisposable {
     return ret;
   }
 
+  public string convertToString() {
+    string ret = mapscriptPINVOKE.classObj_convertToString(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public classObj clone() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.classObj_clone(swigCPtr);
     classObj ret = (cPtr == IntPtr.Zero) ? null : new classObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -352,6 +365,7 @@ public class classObj : IDisposable {
   }
 
   public imageObj createLegendIcon(mapObj map, layerObj layer, int width, int height) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.classObj_createLegendIcon(swigCPtr, mapObj.getCPtr(map), layerObj.getCPtr(layer), width, height);
     imageObj ret = (cPtr == IntPtr.Zero) ? null : new imageObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -359,6 +373,7 @@ public class classObj : IDisposable {
   }
 
   public labelObj getLabel(int i) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.classObj_getLabel(swigCPtr, i);
     labelObj ret = (cPtr == IntPtr.Zero) ? null : new labelObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -372,6 +387,7 @@ public class classObj : IDisposable {
   }
 
   public labelObj removeLabel(int index) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.classObj_removeLabel(swigCPtr, index);
     labelObj ret = (cPtr == IntPtr.Zero) ? null : new labelObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -392,6 +408,7 @@ public class classObj : IDisposable {
   }
 
   public styleObj removeStyle(int index) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.classObj_removeStyle(swigCPtr, index);
     styleObj ret = (cPtr == IntPtr.Zero) ? null : new styleObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/clusterObj.cs b/mapscript/csharp/clusterObj.cs
index f9d28a6..232b2cb 100644
--- a/mapscript/csharp/clusterObj.cs
+++ b/mapscript/csharp/clusterObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class clusterObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class clusterObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~clusterObj() {
     Dispose();
   }
@@ -121,6 +123,12 @@ public class clusterObj : IDisposable {
     return ret;
   }
 
+  public string convertToString() {
+    string ret = mapscriptPINVOKE.clusterObj_convertToString(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public int setGroup(string group) {
     int ret = mapscriptPINVOKE.clusterObj_setGroup(swigCPtr, group);
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/colorObj.cs b/mapscript/csharp/colorObj.cs
index f6b04a8..f9af9ec 100644
--- a/mapscript/csharp/colorObj.cs
+++ b/mapscript/csharp/colorObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class colorObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class colorObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~colorObj() {
     Dispose();
   }
diff --git a/mapscript/csharp/csmodule.i b/mapscript/csharp/csmodule.i
index 92a4161..3bf2650 100644
--- a/mapscript/csharp/csmodule.i
+++ b/mapscript/csharp/csmodule.i
@@ -264,7 +264,7 @@ static SWIG_CSharpByteArrayHelperCallback SWIG_csharp_bytearray_callback = NULL;
 
 %ignore imageObj::write;
 
-%typemap(cscode) imageObj %{
+%typemap(cscode) imageObj, struct imageObj %{
   private byte[] gdbuffer;
   private void CreateByteArray(IntPtr data, int size)
   {
@@ -290,7 +290,7 @@ static SWIG_CSharpByteArrayHelperCallback SWIG_csharp_bytearray_callback = NULL;
 %csmethodmodifiers processLegendTemplate "private";
 %csmethodmodifiers processQueryTemplate "private";
 
-%typemap(cscode) mapObj %{
+%typemap(cscode) mapObj, struct mapObj %{
   public string processTemplate(int bGenerateImages, string[] names, string[] values)
   {
 	if (names.Length != values.Length)
diff --git a/mapscript/csharp/debugLevel.cs b/mapscript/csharp/debugLevel.cs
index ff88d4d..69103d6 100644
--- a/mapscript/csharp/debugLevel.cs
+++ b/mapscript/csharp/debugLevel.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
diff --git a/mapscript/csharp/errorObj.cs b/mapscript/csharp/errorObj.cs
index b00c025..e07686b 100644
--- a/mapscript/csharp/errorObj.cs
+++ b/mapscript/csharp/errorObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class errorObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class errorObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~errorObj() {
     Dispose();
   }
@@ -132,6 +134,7 @@ public class errorObj : IDisposable {
   }
 
   public errorObj next() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.errorObj_next(swigCPtr);
     errorObj ret = (cPtr == IntPtr.Zero) ? null : new errorObj(cPtr, false, ThisOwn_false());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/fontSetObj.cs b/mapscript/csharp/fontSetObj.cs
index d9e34ce..d967183 100644
--- a/mapscript/csharp/fontSetObj.cs
+++ b/mapscript/csharp/fontSetObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class fontSetObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class fontSetObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~fontSetObj() {
     Dispose();
   }
@@ -96,6 +98,7 @@ public class fontSetObj : IDisposable {
   }
 
   public hashTableObj fonts {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.fontSetObj_fonts_get(swigCPtr);
       hashTableObj ret = (cPtr == IntPtr.Zero) ? null : new hashTableObj(cPtr, false, ThisOwn_false());
diff --git a/mapscript/csharp/hashTableObj.cs b/mapscript/csharp/hashTableObj.cs
index c43470e..8f84c86 100644
--- a/mapscript/csharp/hashTableObj.cs
+++ b/mapscript/csharp/hashTableObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class hashTableObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class hashTableObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~hashTableObj() {
     Dispose();
   }
diff --git a/mapscript/csharp/imageObj.cs b/mapscript/csharp/imageObj.cs
index 7a97aae..e2d0e88 100644
--- a/mapscript/csharp/imageObj.cs
+++ b/mapscript/csharp/imageObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class imageObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class imageObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~imageObj() {
     Dispose();
   }
@@ -86,11 +88,6 @@ public class imageObj : IDisposable {
 	stream.Write(gdbuffer, 0, gdbuffer.Length);
   }
 
-  private void getBytes(mapscriptPINVOKE.SWIGByteArrayDelegate callback) {
-    mapscriptPINVOKE.imageObj_getBytes(swigCPtr, callback);
-    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
-  }
-
   public int width {
     get {
       int ret = mapscriptPINVOKE.imageObj_width_get(swigCPtr);
@@ -140,6 +137,7 @@ public class imageObj : IDisposable {
   }
 
   public outputFormatObj format {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.imageObj_format_get(swigCPtr);
       outputFormatObj ret = (cPtr == IntPtr.Zero) ? null : new outputFormatObj(cPtr, false, ThisOwn_false());
@@ -148,6 +146,11 @@ public class imageObj : IDisposable {
     } 
   }
 
+  private void getBytes(mapscriptPINVOKE.SWIGByteArrayDelegate callback) {
+    mapscriptPINVOKE.imageObj_getBytes(swigCPtr, callback);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+  }
+
   public imageObj(int width, int height, outputFormatObj input_format, string file, double resolution, double defresolution) : this(mapscriptPINVOKE.new_imageObj(width, height, outputFormatObj.getCPtr(input_format), file, resolution, defresolution), true, null) {
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
   }
diff --git a/mapscript/csharp/intarray.cs b/mapscript/csharp/intarray.cs
index 2356cf9..e902d83 100644
--- a/mapscript/csharp/intarray.cs
+++ b/mapscript/csharp/intarray.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class intarray : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class intarray : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~intarray() {
     Dispose();
   }
@@ -80,6 +82,7 @@ public class intarray : IDisposable {
   }
 
   public SWIGTYPE_p_int cast() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.intarray_cast(swigCPtr);
     SWIGTYPE_p_int ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_int(cPtr, false, ThisOwn_false());
     return ret;
diff --git a/mapscript/csharp/labelCacheMemberObj.cs b/mapscript/csharp/labelCacheMemberObj.cs
index 69694c3..740196a 100644
--- a/mapscript/csharp/labelCacheMemberObj.cs
+++ b/mapscript/csharp/labelCacheMemberObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class labelCacheMemberObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class labelCacheMemberObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~labelCacheMemberObj() {
     Dispose();
   }
@@ -88,6 +90,7 @@ public class labelCacheMemberObj : IDisposable {
   }
 
   public styleObj styles {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelCacheMemberObj_styles_get(swigCPtr);
       styleObj ret = (cPtr == IntPtr.Zero) ? null : new styleObj(cPtr, false, ThisOwn_false());
@@ -105,6 +108,7 @@ public class labelCacheMemberObj : IDisposable {
   }
 
   public labelObj labels {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelCacheMemberObj_labels_get(swigCPtr);
       labelObj ret = (cPtr == IntPtr.Zero) ? null : new labelObj(cPtr, false, ThisOwn_false());
@@ -146,6 +150,7 @@ public class labelCacheMemberObj : IDisposable {
   }
 
   public pointObj point {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelCacheMemberObj_point_get(swigCPtr);
       pointObj ret = (cPtr == IntPtr.Zero) ? null : new pointObj(cPtr, false, ThisOwn_false());
@@ -155,6 +160,7 @@ public class labelCacheMemberObj : IDisposable {
   }
 
   public shapeObj poly {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelCacheMemberObj_poly_get(swigCPtr);
       shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, false, ThisOwn_false());
@@ -180,6 +186,7 @@ public class labelCacheMemberObj : IDisposable {
   }
 
   public lineObj leaderline {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelCacheMemberObj_leaderline_get(swigCPtr);
       lineObj ret = (cPtr == IntPtr.Zero) ? null : new lineObj(cPtr, false, ThisOwn_false());
@@ -189,6 +196,7 @@ public class labelCacheMemberObj : IDisposable {
   }
 
   public rectObj leaderbbox {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelCacheMemberObj_leaderbbox_get(swigCPtr);
       rectObj ret = (cPtr == IntPtr.Zero) ? null : new rectObj(cPtr, false, ThisOwn_false());
diff --git a/mapscript/csharp/labelCacheObj.cs b/mapscript/csharp/labelCacheObj.cs
index a748c0b..5fb60a0 100644
--- a/mapscript/csharp/labelCacheObj.cs
+++ b/mapscript/csharp/labelCacheObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class labelCacheObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class labelCacheObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~labelCacheObj() {
     Dispose();
   }
@@ -80,6 +82,7 @@ public class labelCacheObj : IDisposable {
   }
 
   public labelCacheSlotObj slots {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelCacheObj_slots_get(swigCPtr);
       labelCacheSlotObj ret = (cPtr == IntPtr.Zero) ? null : new labelCacheSlotObj(cPtr, false, ThisOwn_false());
diff --git a/mapscript/csharp/labelCacheSlotObj.cs b/mapscript/csharp/labelCacheSlotObj.cs
index f977c4c..25b1285 100644
--- a/mapscript/csharp/labelCacheSlotObj.cs
+++ b/mapscript/csharp/labelCacheSlotObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class labelCacheSlotObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class labelCacheSlotObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~labelCacheSlotObj() {
     Dispose();
   }
@@ -80,6 +82,7 @@ public class labelCacheSlotObj : IDisposable {
   }
 
   public labelCacheMemberObj labels {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelCacheSlotObj_labels_get(swigCPtr);
       labelCacheMemberObj ret = (cPtr == IntPtr.Zero) ? null : new labelCacheMemberObj(cPtr, false, ThisOwn_false());
@@ -105,6 +108,7 @@ public class labelCacheSlotObj : IDisposable {
   }
 
   public markerCacheMemberObj markers {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelCacheSlotObj_markers_get(swigCPtr);
       markerCacheMemberObj ret = (cPtr == IntPtr.Zero) ? null : new markerCacheMemberObj(cPtr, false, ThisOwn_false());
diff --git a/mapscript/csharp/labelLeaderObj.cs b/mapscript/csharp/labelLeaderObj.cs
index 034c7b6..f3b9ce7 100644
--- a/mapscript/csharp/labelLeaderObj.cs
+++ b/mapscript/csharp/labelLeaderObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class labelLeaderObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class labelLeaderObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~labelLeaderObj() {
     Dispose();
   }
diff --git a/mapscript/csharp/labelObj.cs b/mapscript/csharp/labelObj.cs
index 5ff727e..0452cd0 100644
--- a/mapscript/csharp/labelObj.cs
+++ b/mapscript/csharp/labelObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class labelObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class labelObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~labelObj() {
     Dispose();
   }
@@ -116,6 +118,7 @@ public class labelObj : IDisposable {
       mapscriptPINVOKE.labelObj_color_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelObj_color_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -129,6 +132,7 @@ public class labelObj : IDisposable {
       mapscriptPINVOKE.labelObj_outlinecolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelObj_outlinecolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -154,6 +158,7 @@ public class labelObj : IDisposable {
       mapscriptPINVOKE.labelObj_shadowcolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelObj_shadowcolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -539,6 +544,7 @@ public class labelObj : IDisposable {
       mapscriptPINVOKE.labelObj_annopoint_set(swigCPtr, pointObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelObj_annopoint_get(swigCPtr);
       pointObj ret = (cPtr == IntPtr.Zero) ? null : new pointObj(cPtr, false, ThisOwn_false());
@@ -552,6 +558,7 @@ public class labelObj : IDisposable {
       mapscriptPINVOKE.labelObj_annopoly_set(swigCPtr, shapeObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelObj_annopoly_get(swigCPtr);
       shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, false, ThisOwn_false());
@@ -565,6 +572,7 @@ public class labelObj : IDisposable {
       mapscriptPINVOKE.labelObj_leader_set(swigCPtr, labelLeaderObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelObj_leader_get(swigCPtr);
       labelLeaderObj ret = (cPtr == IntPtr.Zero) ? null : new labelLeaderObj(cPtr, false, ThisOwn_false());
@@ -583,6 +591,12 @@ public class labelObj : IDisposable {
     return ret;
   }
 
+  public string convertToString() {
+    string ret = mapscriptPINVOKE.labelObj_convertToString(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public int removeBinding(int binding) {
     int ret = mapscriptPINVOKE.labelObj_removeBinding(swigCPtr, binding);
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -639,6 +653,7 @@ public class labelObj : IDisposable {
   }
 
   public styleObj removeStyle(int index) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.labelObj_removeStyle(swigCPtr, index);
     styleObj ret = (cPtr == IntPtr.Zero) ? null : new styleObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/labelStyleObj.cs b/mapscript/csharp/labelStyleObj.cs
index 366c62a..f89c6b2 100644
--- a/mapscript/csharp/labelStyleObj.cs
+++ b/mapscript/csharp/labelStyleObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class labelStyleObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class labelStyleObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~labelStyleObj() {
     Dispose();
   }
@@ -84,6 +86,7 @@ public class labelStyleObj : IDisposable {
       mapscriptPINVOKE.labelStyleObj_fonts_set(swigCPtr, SWIGTYPE_p_p_char.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelStyleObj_fonts_get(swigCPtr);
       SWIGTYPE_p_p_char ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_p_char(cPtr, false, ThisOwn_false());
@@ -133,6 +136,7 @@ public class labelStyleObj : IDisposable {
       mapscriptPINVOKE.labelStyleObj_color_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelStyleObj_color_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -158,6 +162,7 @@ public class labelStyleObj : IDisposable {
       mapscriptPINVOKE.labelStyleObj_outlinecolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.labelStyleObj_outlinecolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
diff --git a/mapscript/csharp/layerObj.cs b/mapscript/csharp/layerObj.cs
index e08d7ff..f0e1161 100644
--- a/mapscript/csharp/layerObj.cs
+++ b/mapscript/csharp/layerObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class layerObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class layerObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~layerObj() {
     Dispose();
   }
@@ -124,6 +126,7 @@ public class layerObj : IDisposable {
   }
 
   public mapObj map {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.layerObj_map_get(swigCPtr);
       mapObj ret = (cPtr == IntPtr.Zero) ? null : new mapObj(cPtr, false, ThisOwn_false());
@@ -389,6 +392,7 @@ public class layerObj : IDisposable {
       mapscriptPINVOKE.layerObj_offsite_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.layerObj_offsite_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -469,6 +473,18 @@ public class layerObj : IDisposable {
     } 
   }
 
+  public string tilesrs {
+    set {
+      mapscriptPINVOKE.layerObj_tilesrs_set(swigCPtr, value);
+      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    } 
+    get {
+      string ret = mapscriptPINVOKE.layerObj_tilesrs_get(swigCPtr);
+      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+      return ret;
+    } 
+  }
+
   public int units {
     set {
       mapscriptPINVOKE.layerObj_units_set(swigCPtr, value);
@@ -598,6 +614,7 @@ public class layerObj : IDisposable {
   }
 
   public hashTableObj metadata {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.layerObj_metadata_get(swigCPtr);
       hashTableObj ret = (cPtr == IntPtr.Zero) ? null : new hashTableObj(cPtr, false, ThisOwn_false());
@@ -607,6 +624,7 @@ public class layerObj : IDisposable {
   }
 
   public hashTableObj validation {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.layerObj_validation_get(swigCPtr);
       hashTableObj ret = (cPtr == IntPtr.Zero) ? null : new hashTableObj(cPtr, false, ThisOwn_false());
@@ -616,6 +634,7 @@ public class layerObj : IDisposable {
   }
 
   public hashTableObj bindvals {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.layerObj_bindvals_get(swigCPtr);
       hashTableObj ret = (cPtr == IntPtr.Zero) ? null : new hashTableObj(cPtr, false, ThisOwn_false());
@@ -625,6 +644,7 @@ public class layerObj : IDisposable {
   }
 
   public clusterObj cluster {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.layerObj_cluster_get(swigCPtr);
       clusterObj ret = (cPtr == IntPtr.Zero) ? null : new clusterObj(cPtr, false, ThisOwn_false());
@@ -670,6 +690,7 @@ public class layerObj : IDisposable {
   }
 
   public rectObj extent {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.layerObj_extent_get(swigCPtr);
       rectObj ret = (cPtr == IntPtr.Zero) ? null : new rectObj(cPtr, false, ThisOwn_false());
@@ -724,6 +745,7 @@ public class layerObj : IDisposable {
 }
 
   public layerObj clone() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.layerObj_clone(swigCPtr);
     layerObj ret = (cPtr == IntPtr.Zero) ? null : new layerObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -736,6 +758,12 @@ public class layerObj : IDisposable {
     return ret;
   }
 
+  public string convertToString() {
+    string ret = mapscriptPINVOKE.layerObj_convertToString(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public int insertClass(classObj classobj, int index) {
     int ret = mapscriptPINVOKE.layerObj_insertClass(swigCPtr, classObj.getCPtrAndSetReference(classobj, ThisOwn_false()), index);
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -743,6 +771,7 @@ public class layerObj : IDisposable {
   }
 
   public classObj removeClass(int index) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.layerObj_removeClass(swigCPtr, index);
     classObj ret = (cPtr == IntPtr.Zero) ? null : new classObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -762,6 +791,7 @@ public class layerObj : IDisposable {
   }
 
   public shapeObj nextShape() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.layerObj_nextShape(swigCPtr);
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -774,6 +804,7 @@ public class layerObj : IDisposable {
   }
 
   public shapeObj getShape(resultObj record) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.layerObj_getShape(swigCPtr, resultObj.getCPtr(record));
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -787,6 +818,7 @@ public class layerObj : IDisposable {
   }
 
   public rectObj getResultsBounds() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.layerObj_getResultsBounds(swigCPtr);
     rectObj ret = (cPtr == IntPtr.Zero) ? null : new rectObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -794,6 +826,7 @@ public class layerObj : IDisposable {
   }
 
   public resultObj getResult(int i) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.layerObj_getResult(swigCPtr, i);
     resultObj ret = (cPtr == IntPtr.Zero) ? null : new resultObj(cPtr, false, ThisOwn_false());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -874,6 +907,7 @@ public class layerObj : IDisposable {
   }
 
   public resultCacheObj getResults() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.layerObj_getResults(swigCPtr);
     resultCacheObj ret = (cPtr == IntPtr.Zero) ? null : new resultCacheObj(cPtr, false, ThisOwn_false());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -923,6 +957,7 @@ public class layerObj : IDisposable {
   }
 
   public rectObj getExtent() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.layerObj_getExtent(swigCPtr);
     rectObj ret = (cPtr == IntPtr.Zero) ? null : new rectObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -1058,4 +1093,15 @@ public class layerObj : IDisposable {
     return ret;
   }
 
+  public string getGeomTransform() {
+    string ret = mapscriptPINVOKE.layerObj_getGeomTransform(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
+  public void setGeomTransform(string transform) {
+    mapscriptPINVOKE.layerObj_setGeomTransform(swigCPtr, transform);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+  }
+
 }
diff --git a/mapscript/csharp/legendObj.cs b/mapscript/csharp/legendObj.cs
index 4351a40..e2d49d4 100644
--- a/mapscript/csharp/legendObj.cs
+++ b/mapscript/csharp/legendObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class legendObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class legendObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~legendObj() {
     Dispose();
   }
@@ -84,6 +86,7 @@ public class legendObj : IDisposable {
       mapscriptPINVOKE.legendObj_imagecolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.legendObj_imagecolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -93,9 +96,9 @@ public class legendObj : IDisposable {
   }
 
   public labelObj label {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE */
     get {
-      IntPtr cPtr = mapscriptPINVOKE.legendObj_label_get(swigCPtr);
-      labelObj ret = (cPtr == IntPtr.Zero) ? null : new labelObj(cPtr, false, ThisOwn_false());
+      labelObj ret = new labelObj(mapscriptPINVOKE.legendObj_label_get(swigCPtr), false, ThisOwn_false());
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
       return ret;
     } 
@@ -154,6 +157,7 @@ public class legendObj : IDisposable {
       mapscriptPINVOKE.legendObj_outlinecolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.legendObj_outlinecolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -235,6 +239,7 @@ public class legendObj : IDisposable {
   }
 
   public mapObj map {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.legendObj_map_get(swigCPtr);
       mapObj ret = (cPtr == IntPtr.Zero) ? null : new mapObj(cPtr, false, ThisOwn_false());
@@ -249,6 +254,12 @@ public class legendObj : IDisposable {
     return ret;
   }
 
+  public string convertToString() {
+    string ret = mapscriptPINVOKE.legendObj_convertToString(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public legendObj() : this(mapscriptPINVOKE.new_legendObj(), true, null) {
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
   }
diff --git a/mapscript/csharp/lineObj.cs b/mapscript/csharp/lineObj.cs
index 02fb64c..6e90a04 100644
--- a/mapscript/csharp/lineObj.cs
+++ b/mapscript/csharp/lineObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class lineObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class lineObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~lineObj() {
     Dispose();
   }
@@ -98,6 +100,7 @@ public class lineObj : IDisposable {
   }
 
   public pointObj get(int i) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.lineObj_get(swigCPtr, i);
     pointObj ret = (cPtr == IntPtr.Zero) ? null : new pointObj(cPtr, false, ThisOwn_false());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/mapObj.cs b/mapscript/csharp/mapObj.cs
index 3755602..e84ce21 100644
--- a/mapscript/csharp/mapObj.cs
+++ b/mapscript/csharp/mapObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class mapObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class mapObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~mapObj() {
     Dispose();
   }
@@ -173,6 +175,7 @@ public class mapObj : IDisposable {
   }
 
   public symbolSetObj symbolset {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_symbolset_get(swigCPtr);
       symbolSetObj ret = (cPtr == IntPtr.Zero) ? null : new symbolSetObj(cPtr, false, ThisOwn_false());
@@ -182,6 +185,7 @@ public class mapObj : IDisposable {
   }
 
   public fontSetObj fontset {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_fontset_get(swigCPtr);
       fontSetObj ret = (cPtr == IntPtr.Zero) ? null : new fontSetObj(cPtr, false, ThisOwn_false());
@@ -191,6 +195,7 @@ public class mapObj : IDisposable {
   }
 
   public labelCacheObj labelcache {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_labelcache_get(swigCPtr);
       labelCacheObj ret = (cPtr == IntPtr.Zero) ? null : new labelCacheObj(cPtr, false, ThisOwn_false());
@@ -240,6 +245,7 @@ public class mapObj : IDisposable {
       mapscriptPINVOKE.mapObj_extent_set(swigCPtr, rectObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_extent_get(swigCPtr);
       rectObj ret = (cPtr == IntPtr.Zero) ? null : new rectObj(cPtr, false, ThisOwn_false());
@@ -337,6 +343,7 @@ public class mapObj : IDisposable {
       mapscriptPINVOKE.mapObj_imagecolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_imagecolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -353,23 +360,8 @@ public class mapObj : IDisposable {
     } 
   }
 
-  public outputFormatObj[] outputformatlist {
-    get {
-	  IntPtr cPtr = mapscriptPINVOKE.mapObj_outputformatlist_get(swigCPtr);
-	  IntPtr objPtr;
-      outputFormatObj[] ret = new outputFormatObj[this.numoutputformats];
-      for(int cx = 0; cx < this.numoutputformats; cx++) {
-          objPtr = System.Runtime.InteropServices.Marshal.ReadIntPtr(cPtr, cx * System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr)));
-          ret[cx] = (objPtr == IntPtr.Zero) ? null : new outputFormatObj(objPtr, false, ThisOwn_false());
-      }
-      
-      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
-      return ret;
-    }
-
-  }
-
   public outputFormatObj outputformat {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_outputformat_get(swigCPtr);
       outputFormatObj ret = (cPtr == IntPtr.Zero) ? null : new outputFormatObj(cPtr, false, ThisOwn_false());
@@ -387,6 +379,7 @@ public class mapObj : IDisposable {
   }
 
   public referenceMapObj reference {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_reference_get(swigCPtr);
       referenceMapObj ret = (cPtr == IntPtr.Zero) ? null : new referenceMapObj(cPtr, false, ThisOwn_false());
@@ -396,6 +389,7 @@ public class mapObj : IDisposable {
   }
 
   public scalebarObj scalebar {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_scalebar_get(swigCPtr);
       scalebarObj ret = (cPtr == IntPtr.Zero) ? null : new scalebarObj(cPtr, false, ThisOwn_false());
@@ -405,6 +399,7 @@ public class mapObj : IDisposable {
   }
 
   public legendObj legend {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_legend_get(swigCPtr);
       legendObj ret = (cPtr == IntPtr.Zero) ? null : new legendObj(cPtr, false, ThisOwn_false());
@@ -414,6 +409,7 @@ public class mapObj : IDisposable {
   }
 
   public queryMapObj querymap {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_querymap_get(swigCPtr);
       queryMapObj ret = (cPtr == IntPtr.Zero) ? null : new queryMapObj(cPtr, false, ThisOwn_false());
@@ -423,6 +419,7 @@ public class mapObj : IDisposable {
   }
 
   public webObj web {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_web_get(swigCPtr);
       webObj ret = (cPtr == IntPtr.Zero) ? null : new webObj(cPtr, false, ThisOwn_false());
@@ -436,6 +433,7 @@ public class mapObj : IDisposable {
       mapscriptPINVOKE.mapObj_layerorder_set(swigCPtr, SWIGTYPE_p_int.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_layerorder_get(swigCPtr);
       SWIGTYPE_p_int ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_int(cPtr, false, ThisOwn_false());
@@ -481,6 +479,7 @@ public class mapObj : IDisposable {
   }
 
   public hashTableObj configoptions {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.mapObj_configoptions_get(swigCPtr);
       hashTableObj ret = (cPtr == IntPtr.Zero) ? null : new hashTableObj(cPtr, false, ThisOwn_false());
@@ -494,6 +493,7 @@ public class mapObj : IDisposable {
   }
 
   public mapObj clone() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_clone(swigCPtr);
     mapObj ret = (cPtr == IntPtr.Zero) ? null : new mapObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -507,6 +507,7 @@ public class mapObj : IDisposable {
   }
 
   public layerObj removeLayer(int index) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_removeLayer(swigCPtr, index);
     layerObj ret = (cPtr == IntPtr.Zero) ? null : new layerObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -575,6 +576,7 @@ public class mapObj : IDisposable {
   }
 
   public imageObj prepareImage() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_prepareImage(swigCPtr);
     imageObj ret = (cPtr == IntPtr.Zero) ? null : new imageObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -591,12 +593,21 @@ public class mapObj : IDisposable {
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
   }
 
+  public outputFormatObj getOutputFormat(int i) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
+    IntPtr cPtr = mapscriptPINVOKE.mapObj_getOutputFormat(swigCPtr, i);
+    outputFormatObj ret = (cPtr == IntPtr.Zero) ? null : new outputFormatObj(cPtr, true, ThisOwn_true());
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public void setOutputFormat(outputFormatObj format) {
     mapscriptPINVOKE.mapObj_setOutputFormat(swigCPtr, outputFormatObj.getCPtr(format));
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
   }
 
   public imageObj draw() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_draw(swigCPtr);
     imageObj ret = (cPtr == IntPtr.Zero) ? null : new imageObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -604,6 +615,7 @@ public class mapObj : IDisposable {
   }
 
   public imageObj drawQuery() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_drawQuery(swigCPtr);
     imageObj ret = (cPtr == IntPtr.Zero) ? null : new imageObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -611,6 +623,7 @@ public class mapObj : IDisposable {
   }
 
   public imageObj drawLegend() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_drawLegend(swigCPtr);
     imageObj ret = (cPtr == IntPtr.Zero) ? null : new imageObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -618,6 +631,7 @@ public class mapObj : IDisposable {
   }
 
   public imageObj drawScalebar() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_drawScalebar(swigCPtr);
     imageObj ret = (cPtr == IntPtr.Zero) ? null : new imageObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -625,6 +639,7 @@ public class mapObj : IDisposable {
   }
 
   public imageObj drawReferenceMap() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_drawReferenceMap(swigCPtr);
     imageObj ret = (cPtr == IntPtr.Zero) ? null : new imageObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -650,6 +665,7 @@ public class mapObj : IDisposable {
   }
 
   public labelCacheMemberObj getLabel(int i) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_getLabel(swigCPtr, i);
     labelCacheMemberObj ret = (cPtr == IntPtr.Zero) ? null : new labelCacheMemberObj(cPtr, false, ThisOwn_false());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -657,6 +673,7 @@ public class mapObj : IDisposable {
   }
 
   public labelCacheMemberObj nextLabel() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_nextLabel(swigCPtr);
     labelCacheMemberObj ret = (cPtr == IntPtr.Zero) ? null : new labelCacheMemberObj(cPtr, false, ThisOwn_false());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -813,6 +830,7 @@ public class mapObj : IDisposable {
   }
 
   public intarray getLayersDrawingOrder() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_getLayersDrawingOrder(swigCPtr);
     intarray ret = (cPtr == IntPtr.Zero) ? null : new intarray(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -878,6 +896,7 @@ public class mapObj : IDisposable {
   }
 
   public outputFormatObj getOutputFormatByName(string name) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.mapObj_getOutputFormatByName(swigCPtr, name);
     outputFormatObj ret = (cPtr == IntPtr.Zero) ? null : new outputFormatObj(cPtr, false, ThisOwn_false());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -908,6 +927,12 @@ public class mapObj : IDisposable {
     return ret;
   }
 
+  public string convertToString() {
+    string ret = mapscriptPINVOKE.mapObj_convertToString(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public int zoomPoint(int zoomfactor, pointObj poPixPos, int width, int height, rectObj poGeorefExt, rectObj poMaxGeorefExt) {
     int ret = mapscriptPINVOKE.mapObj_zoomPoint(swigCPtr, zoomfactor, pointObj.getCPtr(poPixPos), width, height, rectObj.getCPtr(poGeorefExt), rectObj.getCPtr(poMaxGeorefExt));
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/mapscript.cs b/mapscript/csharp/mapscript.cs
index 14e1781..9314be9 100644
--- a/mapscript/csharp/mapscript.cs
+++ b/mapscript/csharp/mapscript.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -12,6 +12,7 @@ using System.Runtime.InteropServices;
 
 public class mapscript {
 
+  /* %pragma(csharp) modulecode */
   internal class mapscriptObject : IDisposable {
 	public virtual void Dispose() {
       
@@ -47,6 +48,7 @@ public class mapscript {
   }
 
   public static mapObj msLoadMapFromString(string buffer, string new_mappath) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.msLoadMapFromString(buffer, new_mappath);
     mapObj ret = (cPtr == IntPtr.Zero) ? null : new mapObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -54,6 +56,7 @@ public class mapscript {
   }
 
   public static errorObj msGetErrorObj() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.msGetErrorObj();
     errorObj ret = (cPtr == IntPtr.Zero) ? null : new errorObj(cPtr, false, ThisOwn_false());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -127,11 +130,6 @@ public class mapscript {
 }
 
   public static readonly int MAX_ERROR_LEN = mapscriptPINVOKE.MAX_ERROR_LEN_get();
-  public static readonly string MS_VERSION = mapscriptPINVOKE.MS_VERSION_get();
-  public static readonly int MS_VERSION_MAJOR = mapscriptPINVOKE.MS_VERSION_MAJOR_get();
-  public static readonly int MS_VERSION_MINOR = mapscriptPINVOKE.MS_VERSION_MINOR_get();
-  public static readonly int MS_VERSION_REV = mapscriptPINVOKE.MS_VERSION_REV_get();
-  public static readonly int MS_VERSION_NUM = mapscriptPINVOKE.MS_VERSION_NUM_get();
   public static readonly int MS_TRUE = mapscriptPINVOKE.MS_TRUE_get();
   public static readonly int MS_FALSE = mapscriptPINVOKE.MS_FALSE_get();
   public static readonly int MS_UNKNOWN = mapscriptPINVOKE.MS_UNKNOWN_get();
diff --git a/mapscript/csharp/mapscriptPINVOKE.cs b/mapscript/csharp/mapscriptPINVOKE.cs
index 70f44c4..00fd5c6 100644
--- a/mapscript/csharp/mapscriptPINVOKE.cs
+++ b/mapscript/csharp/mapscriptPINVOKE.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -188,6 +188,10 @@ class mapscriptPINVOKE {
   }
 
 
+  static mapscriptPINVOKE() {
+  }
+
+
   [DllImport("mapscript", EntryPoint="CSharp_new_intarray")]
   public static extern IntPtr new_intarray(int jarg1);
 
@@ -269,21 +273,6 @@ class mapscriptPINVOKE {
 	}
 
 
-  [DllImport("mapscript", EntryPoint="CSharp_MS_VERSION_get")]
-  public static extern string MS_VERSION_get();
-
-  [DllImport("mapscript", EntryPoint="CSharp_MS_VERSION_MAJOR_get")]
-  public static extern int MS_VERSION_MAJOR_get();
-
-  [DllImport("mapscript", EntryPoint="CSharp_MS_VERSION_MINOR_get")]
-  public static extern int MS_VERSION_MINOR_get();
-
-  [DllImport("mapscript", EntryPoint="CSharp_MS_VERSION_REV_get")]
-  public static extern int MS_VERSION_REV_get();
-
-  [DllImport("mapscript", EntryPoint="CSharp_MS_VERSION_NUM_get")]
-  public static extern int MS_VERSION_NUM_get();
-
   [DllImport("mapscript", EntryPoint="CSharp_MS_TRUE_get")]
   public static extern int MS_TRUE_get();
 
@@ -434,6 +423,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_clusterObj_updateFromString")]
   public static extern int clusterObj_updateFromString(HandleRef jarg1, string jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_clusterObj_convertToString")]
+  public static extern string clusterObj_convertToString(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_clusterObj_setGroup")]
   public static extern int clusterObj_setGroup(HandleRef jarg1, string jarg2);
 
@@ -452,6 +444,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_delete_clusterObj")]
   public static extern void delete_clusterObj(HandleRef jarg1);
 
+  [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_numformatoptions_get")]
+  public static extern int outputFormatObj_numformatoptions_get(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_name_set")]
   public static extern void outputFormatObj_name_set(HandleRef jarg1, string jarg2);
 
@@ -500,24 +495,6 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_bands_get")]
   public static extern int outputFormatObj_bands_get(HandleRef jarg1);
 
-  [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_numformatoptions_set")]
-  public static extern void outputFormatObj_numformatoptions_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_numformatoptions_get")]
-  public static extern int outputFormatObj_numformatoptions_get(HandleRef jarg1);
-
-  [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_formatoptions_set")]
-  public static extern void outputFormatObj_formatoptions_set(HandleRef jarg1, IntPtr[] jarg2);
-
-  [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_formatoptions_get")]
-  public static extern IntPtr outputFormatObj_formatoptions_get(HandleRef jarg1);
-
-  [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_refcount_set")]
-  public static extern void outputFormatObj_refcount_set(HandleRef jarg1, int jarg2);
-
-  [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_refcount_get")]
-  public static extern int outputFormatObj_refcount_get(HandleRef jarg1);
-
   [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_inmapfile_set")]
   public static extern void outputFormatObj_inmapfile_set(HandleRef jarg1, int jarg2);
 
@@ -545,6 +522,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_getOption")]
   public static extern string outputFormatObj_getOption(HandleRef jarg1, string jarg2, string jarg3);
 
+  [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_getOptionAt")]
+  public static extern string outputFormatObj_getOptionAt(HandleRef jarg1, int jarg2);
+
   [DllImport("mapscript", EntryPoint="CSharp_outputFormatObj_attachDevice")]
   public static extern void outputFormatObj_attachDevice(HandleRef jarg1, IntPtr jarg2);
 
@@ -584,6 +564,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_queryMapObj_updateFromString")]
   public static extern int queryMapObj_updateFromString(HandleRef jarg1, string jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_queryMapObj_convertToString")]
+  public static extern string queryMapObj_convertToString(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_new_queryMapObj")]
   public static extern IntPtr new_queryMapObj();
 
@@ -710,6 +693,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_webObj_updateFromString")]
   public static extern int webObj_updateFromString(HandleRef jarg1, string jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_webObj_convertToString")]
+  public static extern string webObj_convertToString(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_styleObj_refcount_get")]
   public static extern int styleObj_refcount_get(HandleRef jarg1);
 
@@ -938,6 +924,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_styleObj_updateFromString")]
   public static extern int styleObj_updateFromString(HandleRef jarg1, string jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_styleObj_convertToString")]
+  public static extern string styleObj_convertToString(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_styleObj_clone")]
   public static extern IntPtr styleObj_clone(HandleRef jarg1);
 
@@ -1232,6 +1221,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_labelObj_updateFromString")]
   public static extern int labelObj_updateFromString(HandleRef jarg1, string jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_labelObj_convertToString")]
+  public static extern string labelObj_convertToString(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_labelObj_removeBinding")]
   public static extern int labelObj_removeBinding(HandleRef jarg1, int jarg2);
 
@@ -1370,6 +1362,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_classObj_updateFromString")]
   public static extern int classObj_updateFromString(HandleRef jarg1, string jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_classObj_convertToString")]
+  public static extern string classObj_convertToString(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_classObj_clone")]
   public static extern IntPtr classObj_clone(HandleRef jarg1);
 
@@ -1688,6 +1683,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_referenceMapObj_updateFromString")]
   public static extern int referenceMapObj_updateFromString(HandleRef jarg1, string jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_referenceMapObj_convertToString")]
+  public static extern string referenceMapObj_convertToString(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_new_referenceMapObj")]
   public static extern IntPtr new_referenceMapObj();
 
@@ -1781,6 +1779,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_scalebarObj_updateFromString")]
   public static extern int scalebarObj_updateFromString(HandleRef jarg1, string jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_scalebarObj_convertToString")]
+  public static extern string scalebarObj_convertToString(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_new_scalebarObj")]
   public static extern IntPtr new_scalebarObj();
 
@@ -1868,15 +1869,15 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_legendObj_updateFromString")]
   public static extern int legendObj_updateFromString(HandleRef jarg1, string jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_legendObj_convertToString")]
+  public static extern string legendObj_convertToString(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_new_legendObj")]
   public static extern IntPtr new_legendObj();
 
   [DllImport("mapscript", EntryPoint="CSharp_delete_legendObj")]
   public static extern void delete_legendObj(HandleRef jarg1);
 
-  [DllImport("mapscript", EntryPoint="CSharp_imageObj_getBytes")]
-  public static extern void imageObj_getBytes(HandleRef jarg1, SWIGByteArrayDelegate jarg2);
-
   [DllImport("mapscript", EntryPoint="CSharp_imageObj_width_get")]
   public static extern int imageObj_width_get(HandleRef jarg1);
 
@@ -1898,6 +1899,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_imageObj_format_get")]
   public static extern IntPtr imageObj_format_get(HandleRef jarg1);
 
+  [DllImport("mapscript", EntryPoint="CSharp_imageObj_getBytes")]
+  public static extern void imageObj_getBytes(HandleRef jarg1, SWIGByteArrayDelegate jarg2);
+
   [DllImport("mapscript", EntryPoint="CSharp_new_imageObj")]
   public static extern IntPtr new_imageObj(int jarg1, int jarg2, HandleRef jarg3, string jarg4, double jarg5, double jarg6);
 
@@ -1910,6 +1914,54 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_imageObj_getSize")]
   public static extern int imageObj_getSize(HandleRef jarg1);
 
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenEntryObj_minscale_set")]
+  public static extern void scaleTokenEntryObj_minscale_set(HandleRef jarg1, double jarg2);
+
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenEntryObj_minscale_get")]
+  public static extern double scaleTokenEntryObj_minscale_get(HandleRef jarg1);
+
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenEntryObj_maxscale_set")]
+  public static extern void scaleTokenEntryObj_maxscale_set(HandleRef jarg1, double jarg2);
+
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenEntryObj_maxscale_get")]
+  public static extern double scaleTokenEntryObj_maxscale_get(HandleRef jarg1);
+
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenEntryObj_value_set")]
+  public static extern void scaleTokenEntryObj_value_set(HandleRef jarg1, string jarg2);
+
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenEntryObj_value_get")]
+  public static extern string scaleTokenEntryObj_value_get(HandleRef jarg1);
+
+  [DllImport("mapscript", EntryPoint="CSharp_new_scaleTokenEntryObj")]
+  public static extern IntPtr new_scaleTokenEntryObj();
+
+  [DllImport("mapscript", EntryPoint="CSharp_delete_scaleTokenEntryObj")]
+  public static extern void delete_scaleTokenEntryObj(HandleRef jarg1);
+
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenObj_name_set")]
+  public static extern void scaleTokenObj_name_set(HandleRef jarg1, string jarg2);
+
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenObj_name_get")]
+  public static extern string scaleTokenObj_name_get(HandleRef jarg1);
+
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenObj_n_entries_set")]
+  public static extern void scaleTokenObj_n_entries_set(HandleRef jarg1, int jarg2);
+
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenObj_n_entries_get")]
+  public static extern int scaleTokenObj_n_entries_get(HandleRef jarg1);
+
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenObj_tokens_set")]
+  public static extern void scaleTokenObj_tokens_set(HandleRef jarg1, HandleRef jarg2);
+
+  [DllImport("mapscript", EntryPoint="CSharp_scaleTokenObj_tokens_get")]
+  public static extern IntPtr scaleTokenObj_tokens_get(HandleRef jarg1);
+
+  [DllImport("mapscript", EntryPoint="CSharp_new_scaleTokenObj")]
+  public static extern IntPtr new_scaleTokenObj();
+
+  [DllImport("mapscript", EntryPoint="CSharp_delete_scaleTokenObj")]
+  public static extern void delete_scaleTokenObj(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_layerObj_classitem_set")]
   public static extern void layerObj_classitem_set(HandleRef jarg1, string jarg2);
 
@@ -2099,6 +2151,12 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_layerObj_tileindex_get")]
   public static extern string layerObj_tileindex_get(HandleRef jarg1);
 
+  [DllImport("mapscript", EntryPoint="CSharp_layerObj_tilesrs_set")]
+  public static extern void layerObj_tilesrs_set(HandleRef jarg1, string jarg2);
+
+  [DllImport("mapscript", EntryPoint="CSharp_layerObj_tilesrs_get")]
+  public static extern string layerObj_tilesrs_get(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_layerObj_units_set")]
   public static extern void layerObj_units_set(HandleRef jarg1, int jarg2);
 
@@ -2225,6 +2283,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_layerObj_updateFromString")]
   public static extern int layerObj_updateFromString(HandleRef jarg1, string jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_layerObj_convertToString")]
+  public static extern string layerObj_convertToString(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_layerObj_insertClass")]
   public static extern int layerObj_insertClass(HandleRef jarg1, HandleRef jarg2, int jarg3);
 
@@ -2384,6 +2445,12 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_layerObj_getClassIndex")]
   public static extern int layerObj_getClassIndex(HandleRef jarg1, HandleRef jarg2, HandleRef jarg3, HandleRef jarg4, int jarg5);
 
+  [DllImport("mapscript", EntryPoint="CSharp_layerObj_getGeomTransform")]
+  public static extern string layerObj_getGeomTransform(HandleRef jarg1);
+
+  [DllImport("mapscript", EntryPoint="CSharp_layerObj_setGeomTransform")]
+  public static extern void layerObj_setGeomTransform(HandleRef jarg1, string jarg2);
+
   [DllImport("mapscript", EntryPoint="CSharp_mapObj_name_set")]
   public static extern void mapObj_name_set(HandleRef jarg1, string jarg2);
 
@@ -2507,9 +2574,6 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_mapObj_numoutputformats_get")]
   public static extern int mapObj_numoutputformats_get(HandleRef jarg1);
 
-  [DllImport("mapscript", EntryPoint="CSharp_mapObj_outputformatlist_get")]
-  public static extern IntPtr mapObj_outputformatlist_get(HandleRef jarg1);
-
   [DllImport("mapscript", EntryPoint="CSharp_mapObj_outputformat_get")]
   public static extern IntPtr mapObj_outputformat_get(HandleRef jarg1);
 
@@ -2612,6 +2676,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_mapObj_selectOutputFormat")]
   public static extern void mapObj_selectOutputFormat(HandleRef jarg1, string jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_mapObj_getOutputFormat")]
+  public static extern IntPtr mapObj_getOutputFormat(HandleRef jarg1, int jarg2);
+
   [DllImport("mapscript", EntryPoint="CSharp_mapObj_setOutputFormat")]
   public static extern void mapObj_setOutputFormat(HandleRef jarg1, HandleRef jarg2);
 
@@ -2768,6 +2835,9 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_mapObj_OWSDispatch")]
   public static extern int mapObj_OWSDispatch(HandleRef jarg1, HandleRef jarg2);
 
+  [DllImport("mapscript", EntryPoint="CSharp_mapObj_convertToString")]
+  public static extern string mapObj_convertToString(HandleRef jarg1);
+
   [DllImport("mapscript", EntryPoint="CSharp_mapObj_zoomPoint")]
   public static extern int mapObj_zoomPoint(HandleRef jarg1, int jarg2, HandleRef jarg3, int jarg4, int jarg5, HandleRef jarg6, HandleRef jarg7);
 
@@ -3665,12 +3735,6 @@ class mapscriptPINVOKE {
   [DllImport("mapscript", EntryPoint="CSharp_symbolObj_font_get")]
   public static extern string symbolObj_font_get(HandleRef jarg1);
 
-  [DllImport("mapscript", EntryPoint="CSharp_symbolObj_svg_text_set")]
-  public static extern void symbolObj_svg_text_set(HandleRef jarg1, string jarg2);
-
-  [DllImport("mapscript", EntryPoint="CSharp_symbolObj_svg_text_get")]
-  public static extern string symbolObj_svg_text_get(HandleRef jarg1);
-
   [DllImport("mapscript", EntryPoint="CSharp_new_symbolObj")]
   public static extern IntPtr new_symbolObj(string jarg1, string jarg2);
 
diff --git a/mapscript/csharp/mapscript_wrap.c b/mapscript/csharp/mapscript_wrap.c
index 3f674e1..681c58d 100644
--- a/mapscript/csharp/mapscript_wrap.c
+++ b/mapscript/csharp/mapscript_wrap.c
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -394,6 +394,9 @@ typedef struct {
 SWIGINTERN int clusterObj_updateFromString(clusterObj *self,char *snippet){
     return msUpdateClusterFromString(self, snippet);
   }
+SWIGINTERN char *clusterObj_convertToString(clusterObj *self){
+    return msWriteClusterToString(self);
+  }
 SWIGINTERN int clusterObj_setGroup(clusterObj *self,char *group){
     if (!group || strlen(group) == 0) {
        freeExpression(&self->group);
@@ -430,15 +433,13 @@ SWIGINTERN outputFormatObj *new_outputFormatObj(char const *driver,char *name){
         
         msInitializeRendererVTable(format);
 
-        /* Else, continue */
-        format->refcount++;
+        MS_REFCNT_INIT(format);
 	format->inmapfile = 1;
 
         return format;
     }
 SWIGINTERN void delete_outputFormatObj(outputFormatObj *self){
-        if ( --self->refcount < 1 )
-            msFreeOutputFormat( self );
+        msFreeOutputFormat( self );
     }
 SWIGINTERN void outputFormatObj_setExtension(outputFormatObj *self,char const *extension){
         msFree( self->extension );
@@ -455,9 +456,13 @@ SWIGINTERN int outputFormatObj_validate(outputFormatObj *self){
        	return msOutputFormatValidate( self, 0 );
     }
 SWIGINTERN char *outputFormatObj_getOption(outputFormatObj *self,char const *key,char const *value){
-        const char *retval;
-        retval = msGetOutputFormatOption(self, key, value);
-        return strdup(retval);
+        return strdup(msGetOutputFormatOption(self, key, value));
+    }
+SWIGINTERN char *outputFormatObj_getOptionAt(outputFormatObj *self,int i){
+       if( i >= 0 && i < self->numformatoptions ) {
+          return strdup(self->formatoptions[i]);
+       }
+       return NULL;
     }
 SWIGINTERN void outputFormatObj_attachDevice(outputFormatObj *self,void *device){
         self->device = device;
@@ -465,6 +470,9 @@ SWIGINTERN void outputFormatObj_attachDevice(outputFormatObj *self,void *device)
 SWIGINTERN int queryMapObj_updateFromString(queryMapObj *self,char *snippet){
     return msUpdateQueryMapFromString(self, snippet, 0);
   }
+SWIGINTERN char *queryMapObj_convertToString(queryMapObj *self){
+    return msWriteQueryMapToString(self);
+  }
 SWIGINTERN webObj *new_webObj(){
         webObj *web;
         web = (webObj *) malloc(sizeof(webObj));
@@ -479,7 +487,10 @@ SWIGINTERN void delete_webObj(webObj *self){
 SWIGINTERN int webObj_updateFromString(webObj *self,char *snippet){
         return msUpdateWebFromString(self, snippet, 0);
     }
-SWIGINTERN styleObj *new_styleObj(classObj *parent_class){
+SWIGINTERN char *webObj_convertToString(webObj *self){
+        return msWriteWebToString(self);
+    }
+SWIGINTERN struct styleObj *new_styleObj(classObj *parent_class){
     
         styleObj *style = NULL;
         
@@ -510,7 +521,7 @@ SWIGINTERN styleObj *new_styleObj(classObj *parent_class){
         }
         return style;
     }
-SWIGINTERN void delete_styleObj(styleObj *self){
+SWIGINTERN void delete_styleObj(struct styleObj *self){
         if (self) { 
 		if ( freeStyle(self) == MS_SUCCESS ) {
             		free(self);
@@ -518,10 +529,13 @@ SWIGINTERN void delete_styleObj(styleObj *self){
 		}
 	}
     }
-SWIGINTERN int styleObj_updateFromString(styleObj *self,char *snippet){
+SWIGINTERN int styleObj_updateFromString(struct styleObj *self,char *snippet){
         return msUpdateStyleFromString(self, snippet, 0);
     }
-SWIGINTERN styleObj *styleObj_clone(styleObj *self){
+SWIGINTERN char *styleObj_convertToString(struct styleObj *self){
+        return msWriteStyleToString(self);
+    }
+SWIGINTERN styleObj *styleObj_clone(struct styleObj *self){
         styleObj *style;
 
         style = (styleObj *) malloc(sizeof(styleObj));
@@ -547,14 +561,14 @@ SWIGINTERN styleObj *styleObj_clone(styleObj *self){
         
         return style;
     }
-SWIGINTERN int styleObj_setSymbolByName(styleObj *self,mapObj *map,char *symbolname){
+SWIGINTERN int styleObj_setSymbolByName(struct styleObj *self,mapObj *map,char *symbolname){
         self->symbol = msGetSymbolIndex(&map->symbolset, symbolname, 1);
         if (self->symbolname) free((char*)self->symbolname);
         if (symbolname) self->symbolname = strdup(symbolname);
         else self->symbolname = 0;
         return self->symbol;
     }
-SWIGINTERN int styleObj_removeBinding(styleObj *self,int binding){
+SWIGINTERN int styleObj_removeBinding(struct styleObj *self,int binding){
     if(binding < 0 || binding >= 12) return MS_FAILURE;
 
     if(self->bindings[binding].item) {
@@ -566,7 +580,7 @@ SWIGINTERN int styleObj_removeBinding(styleObj *self,int binding){
 
     return MS_SUCCESS;
   }
-SWIGINTERN int styleObj_setBinding(styleObj *self,int binding,char *item){
+SWIGINTERN int styleObj_setBinding(struct styleObj *self,int binding,char *item){
     if(!item) return MS_FAILURE;
     if(binding < 0 || binding >= 12) return MS_FAILURE;
 
@@ -582,18 +596,18 @@ SWIGINTERN int styleObj_setBinding(styleObj *self,int binding,char *item){
 
     return MS_SUCCESS;
   }
-SWIGINTERN char *styleObj_getBinding(styleObj *self,int binding){
+SWIGINTERN char *styleObj_getBinding(struct styleObj *self,int binding){
     if(binding < 0 || binding >= 12) return NULL;
 
     return self->bindings[binding].item;
   }
-SWIGINTERN char *styleObj_getGeomTransform(styleObj *self){
+SWIGINTERN char *styleObj_getGeomTransform(struct styleObj *self){
     return self->_geomtransform.string;
   }
-SWIGINTERN void styleObj_setGeomTransform(styleObj *self,char *transform){
+SWIGINTERN void styleObj_setGeomTransform(struct styleObj *self,char *transform){
     msStyleSetGeomTransform(self, transform);
   }
-SWIGINTERN labelObj *new_labelObj(){
+SWIGINTERN struct labelObj *new_labelObj(){
       labelObj *label;
         
       label = (labelObj *)calloc(1, sizeof(labelObj));
@@ -604,13 +618,16 @@ SWIGINTERN labelObj *new_labelObj(){
       
       return(label);    	
     }
-SWIGINTERN void delete_labelObj(labelObj *self){
+SWIGINTERN void delete_labelObj(struct labelObj *self){
       freeLabel(self);
     }
-SWIGINTERN int labelObj_updateFromString(labelObj *self,char *snippet){
+SWIGINTERN int labelObj_updateFromString(struct labelObj *self,char *snippet){
     return msUpdateLabelFromString(self, snippet,0);
   }
-SWIGINTERN int labelObj_removeBinding(labelObj *self,int binding){
+SWIGINTERN char *labelObj_convertToString(struct labelObj *self){
+    return msWriteLabelToString(self);
+  }
+SWIGINTERN int labelObj_removeBinding(struct labelObj *self,int binding){
     if(binding < 0 || binding >= 9) return MS_FAILURE;
 
     if(self->bindings[binding].item) {
@@ -622,12 +639,12 @@ SWIGINTERN int labelObj_removeBinding(labelObj *self,int binding){
 
     return MS_SUCCESS;
   }
-SWIGINTERN char *labelObj_getBinding(labelObj *self,int binding){
+SWIGINTERN char *labelObj_getBinding(struct labelObj *self,int binding){
     if(binding < 0 || binding >= 9) return NULL;
 
     return self->bindings[binding].item;
   }
-SWIGINTERN int labelObj_setBinding(labelObj *self,int binding,char *item){
+SWIGINTERN int labelObj_setBinding(struct labelObj *self,int binding,char *item){
     if(!item) return MS_FAILURE;
     if(binding < 0 || binding >= 9) return MS_FAILURE;
 
@@ -643,27 +660,27 @@ SWIGINTERN int labelObj_setBinding(labelObj *self,int binding,char *item){
 
     return MS_SUCCESS;
   }
-SWIGINTERN int labelObj_setExpression(labelObj *self,char *expression){
+SWIGINTERN int labelObj_setExpression(struct labelObj *self,char *expression){
     if (!expression || strlen(expression) == 0) {
        freeExpression(&self->expression);
        return MS_SUCCESS;
     }
     else return msLoadExpressionString(&self->expression, expression);
   }
-SWIGINTERN char *labelObj_getExpressionString(labelObj *self){
+SWIGINTERN char *labelObj_getExpressionString(struct labelObj *self){
     return msGetExpressionString(&(self->expression));
   }
-SWIGINTERN int labelObj_setText(labelObj *self,char *text){
+SWIGINTERN int labelObj_setText(struct labelObj *self,char *text){
     if (!text || strlen(text) == 0) {
       freeExpression(&self->text);
       return MS_SUCCESS;
     }	
     else return msLoadExpressionString(&self->text, text);
   }
-SWIGINTERN char *labelObj_getTextString(labelObj *self){
+SWIGINTERN char *labelObj_getTextString(struct labelObj *self){
     return msGetExpressionString(&(self->text));
   }
-SWIGINTERN styleObj *labelObj_getStyle(labelObj *self,int i){
+SWIGINTERN styleObj *labelObj_getStyle(struct labelObj *self,int i){
       if (i >= 0 && i < self->numstyles) {
           MS_REFCNT_INCR(self->styles[i]);
           return self->styles[i];
@@ -672,22 +689,22 @@ SWIGINTERN styleObj *labelObj_getStyle(labelObj *self,int i){
           return NULL;
       }
   }
-SWIGINTERN int labelObj_insertStyle(labelObj *self,styleObj *style,int index){
+SWIGINTERN int labelObj_insertStyle(struct labelObj *self,styleObj *style,int index){
         return msInsertLabelStyle(self, style, index);
     }
-SWIGINTERN styleObj *labelObj_removeStyle(labelObj *self,int index){
+SWIGINTERN styleObj *labelObj_removeStyle(struct labelObj *self,int index){
 	styleObj* style = (styleObj *) msRemoveLabelStyle(self, index);
 	if (style)
 		MS_REFCNT_INCR(style);
         return style;
     }
-SWIGINTERN int labelObj_moveStyleUp(labelObj *self,int index){
+SWIGINTERN int labelObj_moveStyleUp(struct labelObj *self,int index){
         return msMoveLabelStyleUp(self, index);
     }
-SWIGINTERN int labelObj_moveStyleDown(labelObj *self,int index){
+SWIGINTERN int labelObj_moveStyleDown(struct labelObj *self,int index){
        return msMoveLabelStyleDown(self, index);
     }
-SWIGINTERN classObj *new_classObj(layerObj *layer){
+SWIGINTERN struct classObj *new_classObj(layerObj *layer){
         classObj *new_class=NULL;
         
         if (!layer)
@@ -719,7 +736,7 @@ SWIGINTERN classObj *new_classObj(layerObj *layer){
 
         return NULL;
     }
-SWIGINTERN void delete_classObj(classObj *self){
+SWIGINTERN void delete_classObj(struct classObj *self){
         if (self)
         {
             if (freeClass(self)==MS_SUCCESS) {
@@ -728,10 +745,13 @@ SWIGINTERN void delete_classObj(classObj *self){
 	    }
         }
     }
-SWIGINTERN int classObj_updateFromString(classObj *self,char *snippet){
+SWIGINTERN int classObj_updateFromString(struct classObj *self,char *snippet){
         return msUpdateClassFromString(self, snippet, 0);
     }
-SWIGINTERN classObj *classObj_clone(classObj *self){
+SWIGINTERN char *classObj_convertToString(struct classObj *self){
+        return msWriteClassToString(self);
+    }
+SWIGINTERN classObj *classObj_clone(struct classObj *self){
         classObj *new_class;
 
         new_class = (classObj *) malloc(sizeof(classObj));
@@ -758,27 +778,27 @@ SWIGINTERN classObj *classObj_clone(classObj *self){
         
         return new_class;
     }
-SWIGINTERN int classObj_setExpression(classObj *self,char *expression){
+SWIGINTERN int classObj_setExpression(struct classObj *self,char *expression){
     if (!expression || strlen(expression) == 0) {
        freeExpression(&self->expression);
        return MS_SUCCESS;
     }
     else return msLoadExpressionString(&self->expression, expression);
   }
-SWIGINTERN char *classObj_getExpressionString(classObj *self){
+SWIGINTERN char *classObj_getExpressionString(struct classObj *self){
     return msGetExpressionString(&(self->expression));
   }
-SWIGINTERN int classObj_setText(classObj *self,char *text){
+SWIGINTERN int classObj_setText(struct classObj *self,char *text){
     if (!text || strlen(text) == 0) {
       freeExpression(&self->text);
       return MS_SUCCESS;
     }	
     else return msLoadExpressionString(&self->text, text);
   }
-SWIGINTERN char *classObj_getTextString(classObj *self){
+SWIGINTERN char *classObj_getTextString(struct classObj *self){
     return msGetExpressionString(&(self->text));
   }
-SWIGINTERN char *classObj_getMetaData(classObj *self,char *name){
+SWIGINTERN char *classObj_getMetaData(struct classObj *self,char *name){
     char *value = NULL;
     if (!name) {
       msSetError(16, "NULL key", "getMetaData");
@@ -791,24 +811,24 @@ SWIGINTERN char *classObj_getMetaData(classObj *self,char *name){
     }
     return value;
   }
-SWIGINTERN int classObj_setMetaData(classObj *self,char *name,char *value){
+SWIGINTERN int classObj_setMetaData(struct classObj *self,char *name,char *value){
     if (msInsertHashTable(&(self->metadata), name, value) == NULL)
         return MS_FAILURE;
     return MS_SUCCESS;
   }
-SWIGINTERN char *classObj_getFirstMetaDataKey(classObj *self){
+SWIGINTERN char *classObj_getFirstMetaDataKey(struct classObj *self){
     return (char *) msFirstKeyFromHashTable(&(self->metadata));
   }
-SWIGINTERN char *classObj_getNextMetaDataKey(classObj *self,char *lastkey){
+SWIGINTERN char *classObj_getNextMetaDataKey(struct classObj *self,char *lastkey){
     return (char *) msNextKeyFromHashTable(&(self->metadata), lastkey);
   }
-SWIGINTERN int classObj_drawLegendIcon(classObj *self,mapObj *map,layerObj *layer,int width,int height,imageObj *dstImage,int dstX,int dstY){
-    return msDrawLegendIcon(map, layer, self, width, height, dstImage, dstX, dstY);
+SWIGINTERN int classObj_drawLegendIcon(struct classObj *self,mapObj *map,layerObj *layer,int width,int height,imageObj *dstImage,int dstX,int dstY){
+    return msDrawLegendIcon(map, layer, self, width, height, dstImage, dstX, dstY, 1, NULL);
   }
-SWIGINTERN imageObj *classObj_createLegendIcon(classObj *self,mapObj *map,layerObj *layer,int width,int height){
-    return msCreateLegendIcon(map, layer, self, width, height);
+SWIGINTERN imageObj *classObj_createLegendIcon(struct classObj *self,mapObj *map,layerObj *layer,int width,int height){
+    return msCreateLegendIcon(map, layer, self, width, height, 1);
   }
-SWIGINTERN labelObj *classObj_getLabel(classObj *self,int i){
+SWIGINTERN labelObj *classObj_getLabel(struct classObj *self,int i){
     if (i >= 0 && i < self->numlabels) {
       MS_REFCNT_INCR(self->labels[i]);
       return self->labels[i];
@@ -817,15 +837,15 @@ SWIGINTERN labelObj *classObj_getLabel(classObj *self,int i){
       return NULL;
     }
   }
-SWIGINTERN int classObj_addLabel(classObj *self,labelObj *label){
+SWIGINTERN int classObj_addLabel(struct classObj *self,labelObj *label){
     return msAddLabelToClass(self, label);
   }
-SWIGINTERN labelObj *classObj_removeLabel(classObj *self,int index){
+SWIGINTERN labelObj *classObj_removeLabel(struct classObj *self,int index){
     labelObj* label = (labelObj *) msRemoveLabelFromClass(self, index);
     if (label) MS_REFCNT_INCR(label);
     return label;
   }
-SWIGINTERN styleObj *classObj_getStyle(classObj *self,int i){
+SWIGINTERN styleObj *classObj_getStyle(struct classObj *self,int i){
     if (i >= 0 && i < self->numstyles) {
       MS_REFCNT_INCR(self->styles[i]);
       return self->styles[i];
@@ -834,18 +854,18 @@ SWIGINTERN styleObj *classObj_getStyle(classObj *self,int i){
       return NULL;
     }
   }
-SWIGINTERN int classObj_insertStyle(classObj *self,styleObj *style,int index){
+SWIGINTERN int classObj_insertStyle(struct classObj *self,styleObj *style,int index){
     return msInsertStyle(self, style, index);
   }
-SWIGINTERN styleObj *classObj_removeStyle(classObj *self,int index){
+SWIGINTERN styleObj *classObj_removeStyle(struct classObj *self,int index){
     styleObj* style = (styleObj *) msRemoveStyle(self, index);
     if (style) MS_REFCNT_INCR(style);
     return style;
   }
-SWIGINTERN int classObj_moveStyleUp(classObj *self,int index){
+SWIGINTERN int classObj_moveStyleUp(struct classObj *self,int index){
     return msMoveStyleUp(self, index);
   }
-SWIGINTERN int classObj_moveStyleDown(classObj *self,int index){
+SWIGINTERN int classObj_moveStyleDown(struct classObj *self,int index){
     return msMoveStyleDown(self, index);
   }
 SWIGINTERN void labelCacheObj_freeCache(labelCacheObj *self){
@@ -928,13 +948,22 @@ SWIGINTERN int symbolSetObj_save(symbolSetObj *self,char const *filename){
 SWIGINTERN int referenceMapObj_updateFromString(referenceMapObj *self,char *snippet){
     return msUpdateReferenceMapFromString(self, snippet, 0);
   }
+SWIGINTERN char *referenceMapObj_convertToString(referenceMapObj *self){
+    return msWriteReferenceMapToString(self);
+  }
 SWIGINTERN int scalebarObj_updateFromString(scalebarObj *self,char *snippet){
     return msUpdateScalebarFromString(self, snippet, 0);
   }
+SWIGINTERN char *scalebarObj_convertToString(scalebarObj *self){
+    return msWriteScalebarToString(self);
+  }
 SWIGINTERN int legendObj_updateFromString(legendObj *self,char *snippet){
     return msUpdateLegendFromString(self, snippet, 0);
   }
-SWIGINTERN void imageObj_getBytes(imageObj *self,SWIG_CSharpByteArrayHelperCallback callback){
+SWIGINTERN char *legendObj_convertToString(legendObj *self){
+    return msWriteLegendToString(self);
+  }
+SWIGINTERN void imageObj_getBytes(struct imageObj *self,SWIG_CSharpByteArrayHelperCallback callback){
         gdBuffer buffer;
         
         buffer.owns_data = MS_TRUE;
@@ -949,7 +978,7 @@ SWIGINTERN void imageObj_getBytes(imageObj *self,SWIG_CSharpByteArrayHelperCallb
         callback(buffer.data, buffer.size);
         msFree(buffer.data);
 	}
-SWIGINTERN imageObj *new_imageObj(int width,int height,outputFormatObj *input_format,char const *file,double resolution,double defresolution){
+SWIGINTERN struct imageObj *new_imageObj(int width,int height,outputFormatObj *input_format,char const *file,double resolution,double defresolution){
         imageObj *image=NULL;
         outputFormatObj *format;
         rendererVTableObj *renderer = NULL;
@@ -997,13 +1026,13 @@ SWIGINTERN imageObj *new_imageObj(int width,int height,outputFormatObj *input_fo
         image = msImageCreate(width, height, format, NULL, NULL, resolution, defresolution, NULL);
         return image;
     }
-SWIGINTERN void delete_imageObj(imageObj *self){
+SWIGINTERN void delete_imageObj(struct imageObj *self){
         msFreeImage(self);    
     }
-SWIGINTERN void imageObj_save(imageObj *self,char *filename,mapObj *map){
+SWIGINTERN void imageObj_save(struct imageObj *self,char *filename,mapObj *map){
         msSaveImage(map, self, filename );
     }
-SWIGINTERN int imageObj_getSize(imageObj *self){
+SWIGINTERN int imageObj_getSize(struct imageObj *self){
         gdBuffer buffer;
 	int size=0;
         
@@ -1017,7 +1046,7 @@ SWIGINTERN int imageObj_getSize(imageObj *self){
 	free(buffer.data);
         return size;
     }
-SWIGINTERN layerObj *new_layerObj(mapObj *map){
+SWIGINTERN struct layerObj *new_layerObj(mapObj *map){
         layerObj *layer;
         int result;
         
@@ -1054,7 +1083,7 @@ SWIGINTERN layerObj *new_layerObj(mapObj *map){
             return (map->layers[map->numlayers-1]);
         }
     }
-SWIGINTERN void delete_layerObj(layerObj *self){
+SWIGINTERN void delete_layerObj(struct layerObj *self){
         /*if (!self->map) {*/
         if (self) {
             if(freeLayer(self)==MS_SUCCESS) {
@@ -1062,7 +1091,7 @@ SWIGINTERN void delete_layerObj(layerObj *self){
 	    }
         }
     }
-SWIGINTERN layerObj *layerObj_clone(layerObj *self){
+SWIGINTERN layerObj *layerObj_clone(struct layerObj *self){
         layerObj *layer;
         int result;
 
@@ -1089,20 +1118,23 @@ SWIGINTERN layerObj *layerObj_clone(layerObj *self){
         
         return layer;
     }
-SWIGINTERN int layerObj_updateFromString(layerObj *self,char *snippet){
+SWIGINTERN int layerObj_updateFromString(struct layerObj *self,char *snippet){
         return msUpdateLayerFromString(self, snippet, 0);
     }
-SWIGINTERN int layerObj_insertClass(layerObj *self,classObj *classobj,int index){
+SWIGINTERN char *layerObj_convertToString(struct layerObj *self){
+        return msWriteLayerToString(self);
+    }
+SWIGINTERN int layerObj_insertClass(struct layerObj *self,classObj *classobj,int index){
         return msInsertClass(self, classobj, index);
     }
-SWIGINTERN classObj *layerObj_removeClass(layerObj *self,int index){
+SWIGINTERN classObj *layerObj_removeClass(struct layerObj *self,int index){
         classObj* c = msRemoveClass(self, index);
 	if (c != NULL) {
 		MS_REFCNT_INCR(c);
 	}
 	return c;
     }
-SWIGINTERN int layerObj_open(layerObj *self){
+SWIGINTERN int layerObj_open(struct layerObj *self){
         int status;
         status =  msLayerOpen(self);
         if (status == MS_SUCCESS) {
@@ -1110,7 +1142,7 @@ SWIGINTERN int layerObj_open(layerObj *self){
         }
         return status;
     }
-SWIGINTERN int layerObj_whichShapes(layerObj *self,rectObj rect){
+SWIGINTERN int layerObj_whichShapes(struct layerObj *self,rectObj rect){
         int oldconnectiontype = self->connectiontype;
         self->connectiontype = MS_INLINE;
 
@@ -1122,7 +1154,7 @@ SWIGINTERN int layerObj_whichShapes(layerObj *self,rectObj rect){
 
         return msLayerWhichShapes(self, rect, 0);
     }
-SWIGINTERN shapeObj *layerObj_nextShape(layerObj *self){
+SWIGINTERN shapeObj *layerObj_nextShape(struct layerObj *self){
        int status;
        shapeObj *shape;
 
@@ -1138,10 +1170,10 @@ SWIGINTERN shapeObj *layerObj_nextShape(layerObj *self){
        } else
          return shape;
     }
-SWIGINTERN void layerObj_close(layerObj *self){
+SWIGINTERN void layerObj_close(struct layerObj *self){
         msLayerClose(self);
     }
-SWIGINTERN shapeObj *layerObj_getShape(layerObj *self,resultObj *record){
+SWIGINTERN shapeObj *layerObj_getShape(struct layerObj *self,resultObj *record){
         int retval;
         shapeObj *shape;
 
@@ -1156,25 +1188,25 @@ SWIGINTERN shapeObj *layerObj_getShape(layerObj *self,resultObj *record){
         retval = msLayerGetShape(self, shape, record);
         return shape;
     }
-SWIGINTERN int layerObj_getNumResults(layerObj *self){
+SWIGINTERN int layerObj_getNumResults(struct layerObj *self){
         if (!self->resultcache) return 0;
         return self->resultcache->numresults;
     }
-SWIGINTERN rectObj *layerObj_getResultsBounds(layerObj *self){
+SWIGINTERN rectObj *layerObj_getResultsBounds(struct layerObj *self){
         rectObj *bounds;
         if (!self->resultcache) return NULL;
         bounds = (rectObj *) malloc(sizeof(rectObj));
         MS_COPYRECT(bounds, &self->resultcache->bounds);
         return bounds;
     }
-SWIGINTERN resultObj *layerObj_getResult(layerObj *self,int i){
+SWIGINTERN resultObj *layerObj_getResult(struct layerObj *self,int i){
         if (!self->resultcache) return NULL;
         if (i >= 0 && i < self->resultcache->numresults)
             return &self->resultcache->results[i]; 
         else
             return NULL;
     }
-SWIGINTERN classObj *layerObj_getClass(layerObj *self,int i){
+SWIGINTERN classObj *layerObj_getClass(struct layerObj *self,int i){
 	classObj *result=NULL;
         if (i >= 0 && i < self->numclasses) {
             result=self->class[i]; 
@@ -1182,23 +1214,23 @@ SWIGINTERN classObj *layerObj_getClass(layerObj *self,int i){
 	}
 	return result;
     }
-SWIGINTERN char *layerObj_getItem(layerObj *self,int i){
+SWIGINTERN char *layerObj_getItem(struct layerObj *self,int i){
   
         if (i >= 0 && i < self->numitems)
             return (char *) (self->items[i]);
         else
             return NULL;
     }
-SWIGINTERN int layerObj_setItems(layerObj *self,char **items,int numitems){
+SWIGINTERN int layerObj_setItems(struct layerObj *self,char **items,int numitems){
         return msLayerSetItems(self, items, numitems);
     }
-SWIGINTERN int layerObj_draw(layerObj *self,mapObj *map,imageObj *image){
+SWIGINTERN int layerObj_draw(struct layerObj *self,mapObj *map,imageObj *image){
         return msDrawLayer(map, self, image);    
     }
-SWIGINTERN int layerObj_drawQuery(layerObj *self,mapObj *map,imageObj *image){
+SWIGINTERN int layerObj_drawQuery(struct layerObj *self,mapObj *map,imageObj *image){
         return msDrawQueryLayer(map, self, image);    
     }
-SWIGINTERN int layerObj_queryByFilter(layerObj *self,mapObj *map,char *string){
+SWIGINTERN int layerObj_queryByFilter(struct layerObj *self,mapObj *map,char *string){
         int status;
         int retval;
 
@@ -1222,7 +1254,7 @@ SWIGINTERN int layerObj_queryByFilter(layerObj *self,mapObj *map,char *string){
         self->status = status;
 	return retval;
     }
-SWIGINTERN int layerObj_queryByAttributes(layerObj *self,mapObj *map,char *qitem,char *qstring,int mode){
+SWIGINTERN int layerObj_queryByAttributes(struct layerObj *self,mapObj *map,char *qitem,char *qstring,int mode){
         int status;
         int retval;
 
@@ -1242,7 +1274,7 @@ SWIGINTERN int layerObj_queryByAttributes(layerObj *self,mapObj *map,char *qitem
 
         return retval;
     }
-SWIGINTERN int layerObj_queryByPoint(layerObj *self,mapObj *map,pointObj *point,int mode,double buffer){
+SWIGINTERN int layerObj_queryByPoint(struct layerObj *self,mapObj *map,pointObj *point,int mode,double buffer){
         int status;
         int retval;
 
@@ -1261,7 +1293,7 @@ SWIGINTERN int layerObj_queryByPoint(layerObj *self,mapObj *map,pointObj *point,
 
         return retval;
     }
-SWIGINTERN int layerObj_queryByRect(layerObj *self,mapObj *map,rectObj rect){
+SWIGINTERN int layerObj_queryByRect(struct layerObj *self,mapObj *map,rectObj rect){
         int status;
         int retval;
 
@@ -1279,7 +1311,7 @@ SWIGINTERN int layerObj_queryByRect(layerObj *self,mapObj *map,rectObj rect){
 
         return retval;
     }
-SWIGINTERN int layerObj_queryByFeatures(layerObj *self,mapObj *map,int slayer){
+SWIGINTERN int layerObj_queryByFeatures(struct layerObj *self,mapObj *map,int slayer){
         int status;
         int retval;
 
@@ -1292,7 +1324,7 @@ SWIGINTERN int layerObj_queryByFeatures(layerObj *self,mapObj *map,int slayer){
         self->status = status;
         return retval;
     }
-SWIGINTERN int layerObj_queryByShape(layerObj *self,mapObj *map,shapeObj *shape){
+SWIGINTERN int layerObj_queryByShape(struct layerObj *self,mapObj *map,shapeObj *shape){
         int status;
         int retval;
         
@@ -1311,7 +1343,7 @@ SWIGINTERN int layerObj_queryByShape(layerObj *self,mapObj *map,shapeObj *shape)
         self->status = status;
         return retval;
     }
-SWIGINTERN int layerObj_queryByIndex(layerObj *self,mapObj *map,int tileindex,int shapeindex,int bAddToQuery){
+SWIGINTERN int layerObj_queryByIndex(struct layerObj *self,mapObj *map,int tileindex,int shapeindex,int bAddToQuery){
         int status;
         int retval;
         
@@ -1330,31 +1362,31 @@ SWIGINTERN int layerObj_queryByIndex(layerObj *self,mapObj *map,int tileindex,in
         self->status = status;
         return retval;
     }
-SWIGINTERN resultCacheObj *layerObj_getResults(layerObj *self){
+SWIGINTERN resultCacheObj *layerObj_getResults(struct layerObj *self){
         return self->resultcache;
     }
-SWIGINTERN int layerObj_setFilter(layerObj *self,char *filter){
+SWIGINTERN int layerObj_setFilter(struct layerObj *self,char *filter){
         if (!filter || strlen(filter) == 0) {
             freeExpression(&self->filter);
             return MS_SUCCESS;
         }
         else return msLoadExpressionString(&self->filter, filter);
     }
-SWIGINTERN char *layerObj_getFilterString(layerObj *self){
+SWIGINTERN char *layerObj_getFilterString(struct layerObj *self){
         return msGetExpressionString(&(self->filter));
     }
-SWIGINTERN int layerObj_setWKTProjection(layerObj *self,char *wkt){
+SWIGINTERN int layerObj_setWKTProjection(struct layerObj *self,char *wkt){
         self->project = 1;
         return msOGCWKT2ProjectionObj(wkt, &(self->projection), self->debug);
     }
-SWIGINTERN char *layerObj_getProjection(layerObj *self){    
+SWIGINTERN char *layerObj_getProjection(struct layerObj *self){    
         return (char *) msGetProjectionString(&(self->projection));
     }
-SWIGINTERN int layerObj_setProjection(layerObj *self,char *proj4){
+SWIGINTERN int layerObj_setProjection(struct layerObj *self,char *proj4){
         self->project = 1;
         return msLoadProjectionString(&(self->projection), proj4);
     }
-SWIGINTERN int layerObj_addFeature(layerObj *self,shapeObj *shape){    
+SWIGINTERN int layerObj_addFeature(struct layerObj *self,shapeObj *shape){    
         self->connectiontype = MS_INLINE;
         if(self->features != NULL && self->features->tailifhead != NULL) 
             shape->index = self->features->tailifhead->shape.index + 1;
@@ -1364,16 +1396,16 @@ SWIGINTERN int layerObj_addFeature(layerObj *self,shapeObj *shape){
         return MS_FAILURE;
         return MS_SUCCESS;
     }
-SWIGINTERN int layerObj_getNumFeatures(layerObj *self){
+SWIGINTERN int layerObj_getNumFeatures(struct layerObj *self){
         return msLayerGetNumFeatures(self);
     }
-SWIGINTERN rectObj *layerObj_getExtent(layerObj *self){
+SWIGINTERN rectObj *layerObj_getExtent(struct layerObj *self){
         rectObj *extent;
         extent = (rectObj *) malloc(sizeof(rectObj));
         msLayerGetExtent(self, extent);
         return extent;
     }
-SWIGINTERN int layerObj_setExtent(layerObj *self,double minx,double miny,double maxx,double maxy){
+SWIGINTERN int layerObj_setExtent(struct layerObj *self,double minx,double miny,double maxx,double maxy){
         if (minx > maxx || miny > maxy) {
             msSetError(34,
                 "{ 'minx': %f , 'miny': %f , 'maxx': %f , 'maxy': %f }",
@@ -1383,7 +1415,7 @@ SWIGINTERN int layerObj_setExtent(layerObj *self,double minx,double miny,double
 
         return msLayerSetExtent(self, minx, miny, maxx, maxy);
     }
-SWIGINTERN char *layerObj_getMetaData(layerObj *self,char *name){
+SWIGINTERN char *layerObj_getMetaData(struct layerObj *self,char *name){
         char *value = NULL;
         if (!name) {
             msSetError(16, "NULL key", "getMetaData");
@@ -1404,37 +1436,37 @@ SWIGINTERN char *layerObj_getMetaData(layerObj *self,char *name){
 
         return value;
     }
-SWIGINTERN int layerObj_setMetaData(layerObj *self,char *name,char *value){
+SWIGINTERN int layerObj_setMetaData(struct layerObj *self,char *name,char *value){
         if (msInsertHashTable(&(self->metadata), name, value) == NULL)
         return MS_FAILURE;
         return MS_SUCCESS;
     }
-SWIGINTERN int layerObj_removeMetaData(layerObj *self,char *name){
+SWIGINTERN int layerObj_removeMetaData(struct layerObj *self,char *name){
         return(msRemoveHashTable(&(self->metadata), name));
     }
-SWIGINTERN char *layerObj_getFirstMetaDataKey(layerObj *self){
+SWIGINTERN char *layerObj_getFirstMetaDataKey(struct layerObj *self){
         return (char *) msFirstKeyFromHashTable(&(self->metadata));
     }
-SWIGINTERN char *layerObj_getNextMetaDataKey(layerObj *self,char *lastkey){
+SWIGINTERN char *layerObj_getNextMetaDataKey(struct layerObj *self,char *lastkey){
         return (char *) msNextKeyFromHashTable(&(self->metadata), lastkey);
     }
-SWIGINTERN char *layerObj_getWMSFeatureInfoURL(layerObj *self,mapObj *map,int click_x,int click_y,int feature_count,char *info_format){
+SWIGINTERN char *layerObj_getWMSFeatureInfoURL(struct layerObj *self,mapObj *map,int click_x,int click_y,int feature_count,char *info_format){
         return (char *) msWMSGetFeatureInfoURL(map, self, click_x, click_y,
                feature_count, info_format);
     }
-SWIGINTERN char *layerObj_executeWFSGetFeature(layerObj *self,layerObj *layer){
+SWIGINTERN char *layerObj_executeWFSGetFeature(struct layerObj *self,layerObj *layer){
         return (char *) msWFSExecuteGetFeature(layer);
     }
-SWIGINTERN int layerObj_applySLD(layerObj *self,char *sld,char *stylelayer){
+SWIGINTERN int layerObj_applySLD(struct layerObj *self,char *sld,char *stylelayer){
       return msSLDApplySLD(self->map, sld, self->index, stylelayer, NULL);
     }
-SWIGINTERN int layerObj_applySLDURL(layerObj *self,char *sld,char *stylelayer){
+SWIGINTERN int layerObj_applySLDURL(struct layerObj *self,char *sld,char *stylelayer){
       return msSLDApplySLDURL(self->map, sld, self->index, stylelayer, NULL);
     }
-SWIGINTERN char *layerObj_generateSLD(layerObj *self){
+SWIGINTERN char *layerObj_generateSLD(struct layerObj *self){
         return (char *) msSLDGenerateSLD(self->map, self->index, NULL);
     }
-SWIGINTERN int layerObj_isVisible(layerObj *self){
+SWIGINTERN int layerObj_isVisible(struct layerObj *self){
         if (!self->map)
         {
             msSetError(12,
@@ -1444,31 +1476,31 @@ SWIGINTERN int layerObj_isVisible(layerObj *self){
         }
         return msLayerIsVisible(self->map, self);
     }
-SWIGINTERN int layerObj_moveClassUp(layerObj *self,int index){
+SWIGINTERN int layerObj_moveClassUp(struct layerObj *self,int index){
         return msMoveClassUp(self, index);
     }
-SWIGINTERN int layerObj_moveClassDown(layerObj *self,int index){
+SWIGINTERN int layerObj_moveClassDown(struct layerObj *self,int index){
         return msMoveClassDown(self, index);
     }
-SWIGINTERN void layerObj_setProcessingKey(layerObj *self,char const *key,char const *value){
+SWIGINTERN void layerObj_setProcessingKey(struct layerObj *self,char const *key,char const *value){
 	   msLayerSetProcessingKey( self, key, value );
     }
-SWIGINTERN void layerObj_setProcessing(layerObj *self,char const *directive){
+SWIGINTERN void layerObj_setProcessing(struct layerObj *self,char const *directive){
         msLayerAddProcessing( self, directive );
     }
-SWIGINTERN void layerObj_addProcessing(layerObj *self,char const *directive){
+SWIGINTERN void layerObj_addProcessing(struct layerObj *self,char const *directive){
         msLayerAddProcessing( self, directive );
     }
-SWIGINTERN char *layerObj_getProcessing(layerObj *self,int index){
+SWIGINTERN char *layerObj_getProcessing(struct layerObj *self,int index){
         return (char *) msLayerGetProcessing(self, index);
     }
-SWIGINTERN char *layerObj_getProcessingKey(layerObj *self,char const *key){
+SWIGINTERN char *layerObj_getProcessingKey(struct layerObj *self,char const *key){
       return (char *) msLayerGetProcessingKey(self, key);
     }
-SWIGINTERN int layerObj_clearProcessing(layerObj *self){
+SWIGINTERN int layerObj_clearProcessing(struct layerObj *self){
         return msLayerClearProcessing(self);
     }
-SWIGINTERN int layerObj_setConnectionType(layerObj *self,int connectiontype,char const *library_str){    
+SWIGINTERN int layerObj_setConnectionType(struct layerObj *self,int connectiontype,char const *library_str){    
         /* Caller is responsible to close previous layer correctly before
          * calling msConnectLayer() 
          */
@@ -1476,20 +1508,34 @@ SWIGINTERN int layerObj_setConnectionType(layerObj *self,int connectiontype,char
           msLayerClose(self);
         return msConnectLayer(self, connectiontype, library_str);
     }
-SWIGINTERN int layerObj_getClassIndex(layerObj *self,mapObj *map,shapeObj *shape,int *classgroup,int numclasses){
+SWIGINTERN int layerObj_getClassIndex(struct layerObj *self,mapObj *map,shapeObj *shape,int *classgroup,int numclasses){
         return msShapeGetClass(self, map, shape, classgroup, numclasses);
     }
-SWIGINTERN mapObj *new_mapObj(char *filename){
+SWIGINTERN char *layerObj_getGeomTransform(struct layerObj *self){
+      return self->_geomtransform.string;
+    }
+SWIGINTERN void layerObj_setGeomTransform(struct layerObj *self,char *transform){
+      msFree(self->_geomtransform.string);
+      if (!transform || strlen(transform) > 0) {
+        self->_geomtransform.string = msStrdup(transform);
+        self->_geomtransform.type = MS_GEOMTRANSFORM_EXPRESSION;
+      }
+      else {
+        self->_geomtransform.type = MS_GEOMTRANSFORM_NONE;
+        self->_geomtransform.string = NULL;
+      }
+    }
+SWIGINTERN struct mapObj *new_mapObj(char *filename){
         if (filename && strlen(filename))
             return msLoadMap(filename, NULL);
         else { /* create an empty map, no layers etc... */
             return msNewMapObj();
         }      
     }
-SWIGINTERN void delete_mapObj(mapObj *self){
+SWIGINTERN void delete_mapObj(struct mapObj *self){
         msFreeMap(self);
     }
-SWIGINTERN mapObj *mapObj_clone(mapObj *self){
+SWIGINTERN mapObj *mapObj_clone(struct mapObj *self){
         mapObj *dstMap;
         dstMap = msNewMapObj();
         if (msCopyMap(dstMap, self) != MS_SUCCESS) {
@@ -1498,33 +1544,33 @@ SWIGINTERN mapObj *mapObj_clone(mapObj *self){
         }
         return dstMap;
     }
-SWIGINTERN int mapObj_insertLayer(mapObj *self,layerObj *layer,int index){
+SWIGINTERN int mapObj_insertLayer(struct mapObj *self,layerObj *layer,int index){
         return msInsertLayer(self, layer, index);  
     }
-SWIGINTERN layerObj *mapObj_removeLayer(mapObj *self,int index){
+SWIGINTERN layerObj *mapObj_removeLayer(struct mapObj *self,int index){
     	layerObj *layer=msRemoveLayer(self, index);
 	MS_REFCNT_INCR(layer);
         return layer;
     }
-SWIGINTERN int mapObj_setExtent(mapObj *self,double minx,double miny,double maxx,double maxy){	
+SWIGINTERN int mapObj_setExtent(struct mapObj *self,double minx,double miny,double maxx,double maxy){	
 	return msMapSetExtent( self, minx, miny, maxx, maxy );
     }
-SWIGINTERN int mapObj_offsetExtent(mapObj *self,double x,double y){	
+SWIGINTERN int mapObj_offsetExtent(struct mapObj *self,double x,double y){	
 	return msMapOffsetExtent( self, x, y );
     }
-SWIGINTERN int mapObj_scaleExtent(mapObj *self,double zoomfactor,double minscaledenom,double maxscaledenom){	
+SWIGINTERN int mapObj_scaleExtent(struct mapObj *self,double zoomfactor,double minscaledenom,double maxscaledenom){	
 	return msMapScaleExtent( self, zoomfactor, minscaledenom, maxscaledenom );
     }
-SWIGINTERN int mapObj_setCenter(mapObj *self,pointObj *center){	
+SWIGINTERN int mapObj_setCenter(struct mapObj *self,pointObj *center){	
 	return msMapSetCenter( self, center );
     }
-SWIGINTERN int mapObj_setSize(mapObj *self,int width,int height){
+SWIGINTERN int mapObj_setSize(struct mapObj *self,int width,int height){
         return msMapSetSize(self, width, height);
     }
-SWIGINTERN int mapObj_setRotation(mapObj *self,double rotation_angle){
+SWIGINTERN int mapObj_setRotation(struct mapObj *self,double rotation_angle){
         return msMapSetRotation( self, rotation_angle );
     }
-SWIGINTERN layerObj *mapObj_getLayer(mapObj *self,int i){
+SWIGINTERN layerObj *mapObj_getLayer(struct mapObj *self,int i){
     if(i >= 0 && i < self->numlayers) {
     	MS_REFCNT_INCR(self->layers[i]);
       	return (self->layers[i]); /* returns an EXISTING layer */
@@ -1532,7 +1578,7 @@ SWIGINTERN layerObj *mapObj_getLayer(mapObj *self,int i){
       return NULL;
     }
   }
-SWIGINTERN layerObj *mapObj_getLayerByName(mapObj *self,char *name){
+SWIGINTERN layerObj *mapObj_getLayerByName(struct mapObj *self,char *name){
     int i;
 
     i = msGetLayerIndex(self, name);
@@ -1544,19 +1590,19 @@ SWIGINTERN layerObj *mapObj_getLayerByName(mapObj *self,char *name){
     else
       return NULL;
   }
-SWIGINTERN int mapObj_getSymbolByName(mapObj *self,char *name){
+SWIGINTERN int mapObj_getSymbolByName(struct mapObj *self,char *name){
     return msGetSymbolIndex(&self->symbolset, name, 1);
   }
-SWIGINTERN void mapObj_prepareQuery(mapObj *self){
+SWIGINTERN void mapObj_prepareQuery(struct mapObj *self){
     int status;
 
     status = msCalculateScale(self->extent, self->units, self->width, self->height, self->resolution, &self->scaledenom);
     if(status != MS_SUCCESS) self->scaledenom = -1;
   }
-SWIGINTERN imageObj *mapObj_prepareImage(mapObj *self){
+SWIGINTERN imageObj *mapObj_prepareImage(struct mapObj *self){
     return msPrepareImage(self, 0);
   }
-SWIGINTERN void mapObj_setImageType(mapObj *self,char *imagetype){
+SWIGINTERN void mapObj_setImageType(struct mapObj *self,char *imagetype){
       outputFormatObj *format;
 
       format = msSelectOutputFormat( self, imagetype );
@@ -1571,7 +1617,7 @@ SWIGINTERN void mapObj_setImageType(mapObj *self,char *imagetype){
                                -1111, -1111 );
       }
   }
-SWIGINTERN void mapObj_selectOutputFormat(mapObj *self,char *imagetype){
+SWIGINTERN void mapObj_selectOutputFormat(struct mapObj *self,char *imagetype){
         outputFormatObj *format;
 
         format = msSelectOutputFormat( self, imagetype );
@@ -1586,38 +1632,46 @@ SWIGINTERN void mapObj_selectOutputFormat(mapObj *self,char *imagetype){
                                  -1111, -1111 );
         }
     }
-SWIGINTERN void mapObj_setOutputFormat(mapObj *self,outputFormatObj *format){
+SWIGINTERN outputFormatObj *mapObj_getOutputFormat(struct mapObj *self,int i){
+    if(i >= 0 && i < self->numoutputformats) {
+    	MS_REFCNT_INCR(self->outputformatlist[i]);
+        return (self->outputformatlist[i]); 
+    } else {
+      return NULL;
+    }
+  }
+SWIGINTERN void mapObj_setOutputFormat(struct mapObj *self,outputFormatObj *format){
       msApplyOutputFormat( &(self->outputformat), format, -1111, 
                            -1111, -1111 );
   }
-SWIGINTERN imageObj *mapObj_draw(mapObj *self){
+SWIGINTERN imageObj *mapObj_draw(struct mapObj *self){
     return msDrawMap(self, 0);
   }
-SWIGINTERN imageObj *mapObj_drawQuery(mapObj *self){
+SWIGINTERN imageObj *mapObj_drawQuery(struct mapObj *self){
     return msDrawMap(self, 1);
   }
-SWIGINTERN imageObj *mapObj_drawLegend(mapObj *self){
-    return msDrawLegend(self, 0);
+SWIGINTERN imageObj *mapObj_drawLegend(struct mapObj *self){
+    return msDrawLegend(self, 0, NULL);
   }
-SWIGINTERN imageObj *mapObj_drawScalebar(mapObj *self){
+SWIGINTERN imageObj *mapObj_drawScalebar(struct mapObj *self){
     return msDrawScalebar(self);
   }
-SWIGINTERN imageObj *mapObj_drawReferenceMap(mapObj *self){
+SWIGINTERN imageObj *mapObj_drawReferenceMap(struct mapObj *self){
     return msDrawReferenceMap(self);
   }
-SWIGINTERN int mapObj_embedScalebar(mapObj *self,imageObj *image){	
+SWIGINTERN int mapObj_embedScalebar(struct mapObj *self,imageObj *image){	
     return msEmbedScalebar(self, image);
   }
-SWIGINTERN int mapObj_embedLegend(mapObj *self,imageObj *image){	
+SWIGINTERN int mapObj_embedLegend(struct mapObj *self,imageObj *image){	
     return msEmbedLegend(self, image);
   }
-SWIGINTERN int mapObj_drawLabelCache(mapObj *self,imageObj *image){
+SWIGINTERN int mapObj_drawLabelCache(struct mapObj *self,imageObj *image){
     return msDrawLabelCache(image, self);
   }
-SWIGINTERN labelCacheMemberObj *mapObj_getLabel(mapObj *self,int i){
+SWIGINTERN labelCacheMemberObj *mapObj_getLabel(struct mapObj *self,int i){
     return msGetLabelCacheMember(&(self->labelcache), i);
   }
-SWIGINTERN labelCacheMemberObj *mapObj_nextLabel(mapObj *self){
+SWIGINTERN labelCacheMemberObj *mapObj_nextLabel(struct mapObj *self){
     static int i=0;
 
     if(i<self->labelcache.numlabels)
@@ -1625,7 +1679,7 @@ SWIGINTERN labelCacheMemberObj *mapObj_nextLabel(mapObj *self){
     else
       return NULL;	
   }
-SWIGINTERN int mapObj_queryByFilter(mapObj *self,char *string){
+SWIGINTERN int mapObj_queryByFilter(struct mapObj *self,char *string){
     msInitQuery(&(self->query));
 
     self->query.type = MS_QUERY_BY_FILTER;
@@ -1641,7 +1695,7 @@ SWIGINTERN int mapObj_queryByFilter(mapObj *self,char *string){
 
     return msQueryByFilter(self);
   }
-SWIGINTERN int mapObj_queryByPoint(mapObj *self,pointObj *point,int mode,double buffer){
+SWIGINTERN int mapObj_queryByPoint(struct mapObj *self,pointObj *point,int mode,double buffer){
     msInitQuery(&(self->query));
 
     self->query.type = MS_QUERY_BY_POINT;
@@ -1651,7 +1705,7 @@ SWIGINTERN int mapObj_queryByPoint(mapObj *self,pointObj *point,int mode,double
 
     return msQueryByPoint(self);
   }
-SWIGINTERN int mapObj_queryByRect(mapObj *self,rectObj rect){
+SWIGINTERN int mapObj_queryByRect(struct mapObj *self,rectObj rect){
     msInitQuery(&(self->query));
 
     self->query.type = MS_QUERY_BY_RECT;
@@ -1660,11 +1714,11 @@ SWIGINTERN int mapObj_queryByRect(mapObj *self,rectObj rect){
 
     return msQueryByRect(self);
   }
-SWIGINTERN int mapObj_queryByFeatures(mapObj *self,int slayer){
+SWIGINTERN int mapObj_queryByFeatures(struct mapObj *self,int slayer){
     self->query.slayer = slayer;
     return msQueryByFeatures(self);
   }
-SWIGINTERN int mapObj_queryByShape(mapObj *self,shapeObj *shape){
+SWIGINTERN int mapObj_queryByShape(struct mapObj *self,shapeObj *shape){
     msInitQuery(&(self->query));
     
     self->query.type = MS_QUERY_BY_SHAPE;
@@ -1675,31 +1729,31 @@ SWIGINTERN int mapObj_queryByShape(mapObj *self,shapeObj *shape){
 
     return msQueryByShape(self);
   }
-SWIGINTERN int mapObj_setWKTProjection(mapObj *self,char *wkt){
+SWIGINTERN int mapObj_setWKTProjection(struct mapObj *self,char *wkt){
     return msOGCWKT2ProjectionObj(wkt, &(self->projection), self->debug);
   }
-SWIGINTERN char *mapObj_getProjection(mapObj *self){
+SWIGINTERN char *mapObj_getProjection(struct mapObj *self){
     return msGetProjectionString(&(self->projection));
   }
-SWIGINTERN int mapObj_setProjection(mapObj *self,char *proj4){
+SWIGINTERN int mapObj_setProjection(struct mapObj *self,char *proj4){
     return msLoadProjectionString(&(self->projection), proj4);
   }
-SWIGINTERN int mapObj_save(mapObj *self,char *filename){
+SWIGINTERN int mapObj_save(struct mapObj *self,char *filename){
     return msSaveMap(self, filename);
   }
-SWIGINTERN int mapObj_saveQuery(mapObj *self,char *filename,int results){
+SWIGINTERN int mapObj_saveQuery(struct mapObj *self,char *filename,int results){
     return msSaveQuery(self, filename, results);
   }
-SWIGINTERN int mapObj_loadQuery(mapObj *self,char *filename){
+SWIGINTERN int mapObj_loadQuery(struct mapObj *self,char *filename){
     return msLoadQuery(self, filename);
   }
-SWIGINTERN void mapObj_freeQuery(mapObj *self,int qlayer){
+SWIGINTERN void mapObj_freeQuery(struct mapObj *self,int qlayer){
     msQueryFree(self, qlayer);
   }
-SWIGINTERN int mapObj_saveQueryAsGML(mapObj *self,char *filename,char const *ns){
+SWIGINTERN int mapObj_saveQueryAsGML(struct mapObj *self,char *filename,char const *ns){
     return msGMLWriteQuery(self, filename, ns);
   }
-SWIGINTERN char *mapObj_getMetaData(mapObj *self,char *name){
+SWIGINTERN char *mapObj_getMetaData(struct mapObj *self,char *name){
     char *value = NULL;
     if (!name) {
       msSetError(16, "NULL key", "getMetaData");
@@ -1712,21 +1766,21 @@ SWIGINTERN char *mapObj_getMetaData(mapObj *self,char *name){
     }
     return value;
   }
-SWIGINTERN int mapObj_setMetaData(mapObj *self,char *name,char *value){
+SWIGINTERN int mapObj_setMetaData(struct mapObj *self,char *name,char *value){
     if (msInsertHashTable(&(self->web.metadata), name, value) == NULL)
 	return MS_FAILURE;
     return MS_SUCCESS;
   }
-SWIGINTERN int mapObj_removeMetaData(mapObj *self,char *name){
+SWIGINTERN int mapObj_removeMetaData(struct mapObj *self,char *name){
     return(msRemoveHashTable(&(self->web.metadata), name));
   }
-SWIGINTERN char *mapObj_getFirstMetaDataKey(mapObj *self){
+SWIGINTERN char *mapObj_getFirstMetaDataKey(struct mapObj *self){
     return (char *) msFirstKeyFromHashTable(&(self->web.metadata));
   }
-SWIGINTERN char *mapObj_getNextMetaDataKey(mapObj *self,char *lastkey){
+SWIGINTERN char *mapObj_getNextMetaDataKey(struct mapObj *self,char *lastkey){
     return (char *) msNextKeyFromHashTable(&(self->web.metadata), lastkey);
   }
-SWIGINTERN int mapObj_setSymbolSet(mapObj *self,char *szFileName){
+SWIGINTERN int mapObj_setSymbolSet(struct mapObj *self,char *szFileName){
     msFreeSymbolSet(&self->symbolset);
     msInitSymbolSet(&self->symbolset);
    
@@ -1737,10 +1791,10 @@ SWIGINTERN int mapObj_setSymbolSet(mapObj *self,char *szFileName){
 
     return msLoadSymbolSet(&self->symbolset, self);
   }
-SWIGINTERN int mapObj_getNumSymbols(mapObj *self){
+SWIGINTERN int mapObj_getNumSymbols(struct mapObj *self){
     return self->symbolset.numsymbols;
   }
-SWIGINTERN int mapObj_setFontSet(mapObj *self,char *filename){
+SWIGINTERN int mapObj_setFontSet(struct mapObj *self,char *filename){
     msFreeFontSet(&(self->fontset));
     msInitFontSet(&(self->fontset));
    
@@ -1748,19 +1802,19 @@ SWIGINTERN int mapObj_setFontSet(mapObj *self,char *filename){
 
     return msLoadFontSet(&(self->fontset), self);
   }
-SWIGINTERN int mapObj_saveMapContext(mapObj *self,char *szFileName){
+SWIGINTERN int mapObj_saveMapContext(struct mapObj *self,char *szFileName){
     return msSaveMapContext(self, szFileName);
   }
-SWIGINTERN int mapObj_loadMapContext(mapObj *self,char *szFileName,int useUniqueNames){
+SWIGINTERN int mapObj_loadMapContext(struct mapObj *self,char *szFileName,int useUniqueNames){
     return msLoadMapContext(self, szFileName, useUniqueNames);
   }
-SWIGINTERN int mapObj_moveLayerUp(mapObj *self,int layerindex){
+SWIGINTERN int mapObj_moveLayerUp(struct mapObj *self,int layerindex){
     return msMoveLayerUp(self, layerindex);
   }
-SWIGINTERN int mapObj_moveLayerDown(mapObj *self,int layerindex){
+SWIGINTERN int mapObj_moveLayerDown(struct mapObj *self,int layerindex){
     return msMoveLayerDown(self, layerindex);
   }
-SWIGINTERN intarray *mapObj_getLayersDrawingOrder(mapObj *self){
+SWIGINTERN intarray *mapObj_getLayersDrawingOrder(struct mapObj *self){
     int i;
     intarray *order;
     order = new_intarray(self->numlayers);
@@ -1772,53 +1826,56 @@ SWIGINTERN intarray *mapObj_getLayersDrawingOrder(mapObj *self){
         
     return order;
   }
-SWIGINTERN int mapObj_setLayersDrawingOrder(mapObj *self,int *panIndexes){
+SWIGINTERN int mapObj_setLayersDrawingOrder(struct mapObj *self,int *panIndexes){
     return  msSetLayersdrawingOrder(self, panIndexes); 
   }
-SWIGINTERN void mapObj_setConfigOption(mapObj *self,char *key,char *value){
+SWIGINTERN void mapObj_setConfigOption(struct mapObj *self,char *key,char *value){
     msSetConfigOption(self,key,value);
   }
-SWIGINTERN char *mapObj_getConfigOption(mapObj *self,char *key){
+SWIGINTERN char *mapObj_getConfigOption(struct mapObj *self,char *key){
     return (char *) msGetConfigOption(self,key);
   }
-SWIGINTERN void mapObj_applyConfigOptions(mapObj *self){
+SWIGINTERN void mapObj_applyConfigOptions(struct mapObj *self){
     msApplyMapConfigOptions( self );
   }
-SWIGINTERN int mapObj_applySLD(mapObj *self,char *sld){
+SWIGINTERN int mapObj_applySLD(struct mapObj *self,char *sld){
       return msSLDApplySLD(self, sld, -1, NULL, NULL);
     }
-SWIGINTERN int mapObj_applySLDURL(mapObj *self,char *sld){
+SWIGINTERN int mapObj_applySLDURL(struct mapObj *self,char *sld){
       return msSLDApplySLDURL(self, sld, -1, NULL, NULL);
     }
-SWIGINTERN char *mapObj_generateSLD(mapObj *self){
+SWIGINTERN char *mapObj_generateSLD(struct mapObj *self){
         return (char *) msSLDGenerateSLD(self, -1, NULL);
     }
-SWIGINTERN char *mapObj_processTemplate(mapObj *self,int bGenerateImages,char **names,char **values,int numentries){
+SWIGINTERN char *mapObj_processTemplate(struct mapObj *self,int bGenerateImages,char **names,char **values,int numentries){
         return msProcessTemplate(self, bGenerateImages, names, values,
                                  numentries);
     }
-SWIGINTERN char *mapObj_processLegendTemplate(mapObj *self,char **names,char **values,int numentries){
+SWIGINTERN char *mapObj_processLegendTemplate(struct mapObj *self,char **names,char **values,int numentries){
         return msProcessLegendTemplate(self, names, values, numentries);
     }
-SWIGINTERN char *mapObj_processQueryTemplate(mapObj *self,char **names,char **values,int numentries){
+SWIGINTERN char *mapObj_processQueryTemplate(struct mapObj *self,char **names,char **values,int numentries){
         return msProcessQueryTemplate(self, 1, names, values, numentries);
     }
-SWIGINTERN outputFormatObj *mapObj_getOutputFormatByName(mapObj *self,char *name){
+SWIGINTERN outputFormatObj *mapObj_getOutputFormatByName(struct mapObj *self,char *name){
         return msSelectOutputFormat(self, name); 
     }
-SWIGINTERN int mapObj_appendOutputFormat(mapObj *self,outputFormatObj *format){
+SWIGINTERN int mapObj_appendOutputFormat(struct mapObj *self,outputFormatObj *format){
         return msAppendOutputFormat(self, format);
     }
-SWIGINTERN int mapObj_removeOutputFormat(mapObj *self,char *name){
+SWIGINTERN int mapObj_removeOutputFormat(struct mapObj *self,char *name){
         return msRemoveOutputFormat(self, name);
     }
-SWIGINTERN int mapObj_loadOWSParameters(mapObj *self,cgiRequestObj *request,char *wmtver_string){
+SWIGINTERN int mapObj_loadOWSParameters(struct mapObj *self,cgiRequestObj *request,char *wmtver_string){
         return msMapLoadOWSParameters(self, request, wmtver_string);
     }
-SWIGINTERN int mapObj_OWSDispatch(mapObj *self,cgiRequestObj *req){
+SWIGINTERN int mapObj_OWSDispatch(struct mapObj *self,cgiRequestObj *req){
 	return msOWSDispatch( self, req, 1 );
     }
-SWIGINTERN int mapObj_zoomPoint(mapObj *self,int zoomfactor,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
+SWIGINTERN char *mapObj_convertToString(struct mapObj *self){
+        return msWriteMapToString(self);
+    }
+SWIGINTERN int mapObj_zoomPoint(struct mapObj *self,int zoomfactor,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
         double      dfGeoPosX, dfGeoPosY;
         double      dfDeltaX, dfDeltaY;
         rectObj     oNewGeorefExt;    
@@ -1994,7 +2051,7 @@ SWIGINTERN int mapObj_zoomPoint(mapObj *self,int zoomfactor,pointObj *poPixPos,i
 
         return MS_SUCCESS;
     }
-SWIGINTERN int mapObj_zoomRectangle(mapObj *self,rectObj *poPixRect,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
+SWIGINTERN int mapObj_zoomRectangle(struct mapObj *self,rectObj *poPixRect,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
         double      dfDeltaX, dfDeltaY;
         rectObj     oNewGeorefExt;    
         double      dfNewScale;
@@ -2159,7 +2216,7 @@ SWIGINTERN int mapObj_zoomRectangle(mapObj *self,rectObj *poPixRect,int width,in
 
         return MS_SUCCESS;
     }
-SWIGINTERN int mapObj_zoomScale(mapObj *self,double scale,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
+SWIGINTERN int mapObj_zoomScale(struct mapObj *self,double scale,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
         double      dfGeoPosX, dfGeoPosY;
         double      dfDeltaX, dfDeltaY;
         rectObj     oNewGeorefExt;    
@@ -2963,7 +3020,7 @@ SWIGINTERN char *colorObj_toHex(colorObj *self){
                  self->red, self->green, self->blue);
         return strdup(hexcolor);
     }
-SWIGINTERN symbolObj *new_symbolObj(char *symbolname,char const *imagefile){
+SWIGINTERN struct symbolObj *new_symbolObj(char *symbolname,char const *imagefile){
         symbolObj *symbol;
         symbol = (symbolObj *) malloc(sizeof(symbolObj));
         initSymbol(symbol);
@@ -2973,7 +3030,7 @@ SWIGINTERN symbolObj *new_symbolObj(char *symbolname,char const *imagefile){
         }
         return symbol;
     }
-SWIGINTERN void delete_symbolObj(symbolObj *self){
+SWIGINTERN void delete_symbolObj(struct symbolObj *self){
 		if (self) {
             if (msFreeSymbol(self)==MS_SUCCESS) {
             	free(self);
@@ -2981,10 +3038,10 @@ SWIGINTERN void delete_symbolObj(symbolObj *self){
 			}
         }
     }
-SWIGINTERN int symbolObj_setImagepath(symbolObj *self,char const *imagefile){
+SWIGINTERN int symbolObj_setImagepath(struct symbolObj *self,char const *imagefile){
 	return msLoadImageSymbol(self, imagefile);
     }
-SWIGINTERN int symbolObj_setPoints(symbolObj *self,lineObj *line){
+SWIGINTERN int symbolObj_setPoints(struct symbolObj *self,lineObj *line){
         int i;
 	self->sizex = 0;
 	self->sizey = 0;
@@ -2996,7 +3053,7 @@ SWIGINTERN int symbolObj_setPoints(symbolObj *self,lineObj *line){
         self->numpoints = line->numpoints;
         return self->numpoints;
     }
-SWIGINTERN lineObj *symbolObj_getPoints(symbolObj *self){
+SWIGINTERN lineObj *symbolObj_getPoints(struct symbolObj *self){
         int i;
         lineObj *line;
         line = (lineObj *) malloc(sizeof(lineObj));
@@ -3008,7 +3065,7 @@ SWIGINTERN lineObj *symbolObj_getPoints(symbolObj *self){
         line->numpoints = self->numpoints;
         return line;
     }
-SWIGINTERN imageObj *symbolObj_getImage(symbolObj *self,outputFormatObj *input_format){
+SWIGINTERN imageObj *symbolObj_getImage(struct symbolObj *self,outputFormatObj *input_format){
         imageObj *image = NULL;
         outputFormatObj *format = NULL;
         rendererVTableObj *renderer = NULL;
@@ -3053,7 +3110,7 @@ SWIGINTERN imageObj *symbolObj_getImage(symbolObj *self,outputFormatObj *input_f
 
         return image;
     }
-SWIGINTERN int symbolObj_setImage(symbolObj *self,imageObj *image){
+SWIGINTERN int symbolObj_setImage(struct symbolObj *self,imageObj *image){
         rendererVTableObj *renderer = NULL;
         
         renderer = image->format->vtable;
@@ -3073,11 +3130,11 @@ SWIGINTERN int symbolObj_setImage(symbolObj *self,imageObj *image){
 
         return MS_SUCCESS;
     }
-SWIGINTERN errorObj *new_errorObj(){    
+SWIGINTERN struct errorObj *new_errorObj(){    
         return msGetErrorObj();
     }
-SWIGINTERN void delete_errorObj(errorObj *self){}
-SWIGINTERN errorObj *errorObj_next(errorObj *self){
+SWIGINTERN void delete_errorObj(struct errorObj *self){}
+SWIGINTERN errorObj *errorObj_next(struct errorObj *self){
         errorObj *ep;	
 
         if (self == NULL || self->next == NULL) return NULL;
@@ -3343,57 +3400,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MAX_ERROR_LEN_get() {
   int jresult ;
   int result;
   
-  result = (int) 8192;
-  jresult = result; 
-  return jresult;
-}
-
-
-SWIGEXPORT char * SWIGSTDCALL CSharp_MS_VERSION_get() {
-  char * jresult ;
-  char *result = 0 ;
-  
-  result = (char *) "6.2.1";
-  jresult = SWIG_csharp_string_callback((const char *)result); 
-  return jresult;
-}
-
-
-SWIGEXPORT int SWIGSTDCALL CSharp_MS_VERSION_MAJOR_get() {
-  int jresult ;
-  int result;
-  
-  result = (int) 6;
-  jresult = result; 
-  return jresult;
-}
-
-
-SWIGEXPORT int SWIGSTDCALL CSharp_MS_VERSION_MINOR_get() {
-  int jresult ;
-  int result;
-  
-  result = (int) 2;
-  jresult = result; 
-  return jresult;
-}
-
-
-SWIGEXPORT int SWIGSTDCALL CSharp_MS_VERSION_REV_get() {
-  int jresult ;
-  int result;
-  
-  result = (int) 1;
-  jresult = result; 
-  return jresult;
-}
-
-
-SWIGEXPORT int SWIGSTDCALL CSharp_MS_VERSION_NUM_get() {
-  int jresult ;
-  int result;
-  
-  result = (int) (6*10000+2*100+1);
+  result = (int)(8192);
   jresult = result; 
   return jresult;
 }
@@ -3403,7 +3410,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_TRUE_get() {
   int jresult ;
   int result;
   
-  result = (int) 1;
+  result = (int)(1);
   jresult = result; 
   return jresult;
 }
@@ -3413,7 +3420,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_FALSE_get() {
   int jresult ;
   int result;
   
-  result = (int) 0;
+  result = (int)(0);
   jresult = result; 
   return jresult;
 }
@@ -3423,7 +3430,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_UNKNOWN_get() {
   int jresult ;
   int result;
   
-  result = (int) -1;
+  result = (int)(-1);
   jresult = result; 
   return jresult;
 }
@@ -3433,7 +3440,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_ON_get() {
   int jresult ;
   int result;
   
-  result = (int) 1;
+  result = (int)(1);
   jresult = result; 
   return jresult;
 }
@@ -3443,7 +3450,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_OFF_get() {
   int jresult ;
   int result;
   
-  result = (int) 0;
+  result = (int)(0);
   jresult = result; 
   return jresult;
 }
@@ -3453,7 +3460,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_DEFAULT_get() {
   int jresult ;
   int result;
   
-  result = (int) 2;
+  result = (int)(2);
   jresult = result; 
   return jresult;
 }
@@ -3463,7 +3470,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_EMBED_get() {
   int jresult ;
   int result;
   
-  result = (int) 3;
+  result = (int)(3);
   jresult = result; 
   return jresult;
 }
@@ -3473,7 +3480,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_DELETE_get() {
   int jresult ;
   int result;
   
-  result = (int) 4;
+  result = (int)(4);
   jresult = result; 
   return jresult;
 }
@@ -3483,7 +3490,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_YES_get() {
   int jresult ;
   int result;
   
-  result = (int) 1;
+  result = (int)(1);
   jresult = result; 
   return jresult;
 }
@@ -3493,7 +3500,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_NO_get() {
   int jresult ;
   int result;
   
-  result = (int) 0;
+  result = (int)(0);
   jresult = result; 
   return jresult;
 }
@@ -3503,7 +3510,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_GD_ALPHA_get() {
   int jresult ;
   int result;
   
-  result = (int) 1000;
+  result = (int)(1000);
   jresult = result; 
   return jresult;
 }
@@ -3513,7 +3520,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_LAYER_ALLOCSIZE_get() {
   int jresult ;
   int result;
   
-  result = (int) 64;
+  result = (int)(64);
   jresult = result; 
   return jresult;
 }
@@ -3523,7 +3530,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_CLASS_ALLOCSIZE_get() {
   int jresult ;
   int result;
   
-  result = (int) 8;
+  result = (int)(8);
   jresult = result; 
   return jresult;
 }
@@ -3533,7 +3540,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_STYLE_ALLOCSIZE_get() {
   int jresult ;
   int result;
   
-  result = (int) 4;
+  result = (int)(4);
   jresult = result; 
   return jresult;
 }
@@ -3543,7 +3550,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_LABEL_ALLOCSIZE_get() {
   int jresult ;
   int result;
   
-  result = (int) 2;
+  result = (int)(2);
   jresult = result; 
   return jresult;
 }
@@ -3553,7 +3560,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_MAX_LABEL_PRIORITY_get() {
   int jresult ;
   int result;
   
-  result = (int) 10;
+  result = (int)(10);
   jresult = result; 
   return jresult;
 }
@@ -3563,7 +3570,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_MAX_LABEL_FONTS_get() {
   int jresult ;
   int result;
   
-  result = (int) 5;
+  result = (int)(5);
   jresult = result; 
   return jresult;
 }
@@ -3573,7 +3580,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_DEFAULT_LABEL_PRIORITY_get() {
   int jresult ;
   int result;
   
-  result = (int) 1;
+  result = (int)(1);
   jresult = result; 
   return jresult;
 }
@@ -3583,7 +3590,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_LABEL_FORCE_GROUP_get() {
   int jresult ;
   int result;
   
-  result = (int) 2;
+  result = (int)(2);
   jresult = result; 
   return jresult;
 }
@@ -3593,7 +3600,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_SWF_get() {
   int jresult ;
   int result;
   
-  result = (int) 2;
+  result = (int)(2);
   jresult = result; 
   return jresult;
 }
@@ -3603,7 +3610,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_RAWDATA_get() {
   int jresult ;
   int result;
   
-  result = (int) 3;
+  result = (int)(3);
   jresult = result; 
   return jresult;
 }
@@ -3613,7 +3620,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_IMAGEMAP_get() {
   int jresult ;
   int result;
   
-  result = (int) 5;
+  result = (int)(5);
   jresult = result; 
   return jresult;
 }
@@ -3623,7 +3630,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_TEMPLATE_get() {
   int jresult ;
   int result;
   
-  result = (int) 8;
+  result = (int)(8);
   jresult = result; 
   return jresult;
 }
@@ -3633,7 +3640,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_OGR_get() {
   int jresult ;
   int result;
   
-  result = (int) 16;
+  result = (int)(16);
   jresult = result; 
   return jresult;
 }
@@ -3643,7 +3650,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_PLUGIN_get() {
   int jresult ;
   int result;
   
-  result = (int) 100;
+  result = (int)(100);
   jresult = result; 
   return jresult;
 }
@@ -3653,7 +3660,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_CAIRO_RASTER_get() {
   int jresult ;
   int result;
   
-  result = (int) 101;
+  result = (int)(101);
   jresult = result; 
   return jresult;
 }
@@ -3663,7 +3670,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_CAIRO_PDF_get() {
   int jresult ;
   int result;
   
-  result = (int) 102;
+  result = (int)(102);
   jresult = result; 
   return jresult;
 }
@@ -3673,7 +3680,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_CAIRO_SVG_get() {
   int jresult ;
   int result;
   
-  result = (int) 103;
+  result = (int)(103);
   jresult = result; 
   return jresult;
 }
@@ -3683,7 +3690,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_OGL_get() {
   int jresult ;
   int result;
   
-  result = (int) 104;
+  result = (int)(104);
   jresult = result; 
   return jresult;
 }
@@ -3693,7 +3700,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_AGG_get() {
   int jresult ;
   int result;
   
-  result = (int) 105;
+  result = (int)(105);
   jresult = result; 
   return jresult;
 }
@@ -3703,7 +3710,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_GD_get() {
   int jresult ;
   int result;
   
-  result = (int) 106;
+  result = (int)(106);
   jresult = result; 
   return jresult;
 }
@@ -3713,7 +3720,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDER_WITH_KML_get() {
   int jresult ;
   int result;
   
-  result = (int) 107;
+  result = (int)(107);
   jresult = result; 
   return jresult;
 }
@@ -3723,7 +3730,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_POSITIONS_LENGTH_get() {
   int jresult ;
   int result;
   
-  result = (int) 14;
+  result = (int)(14);
   jresult = result; 
   return jresult;
 }
@@ -3733,7 +3740,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SINGLE_get() {
   int jresult ;
   int result;
   
-  result = (int) 0;
+  result = (int)(0);
   jresult = result; 
   return jresult;
 }
@@ -3743,7 +3750,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_MULTIPLE_get() {
   int jresult ;
   int result;
   
-  result = (int) 1;
+  result = (int)(1);
   jresult = result; 
   return jresult;
 }
@@ -3753,7 +3760,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_CJC_DEFAULT_JOIN_MAXSIZE_get() {
   int jresult ;
   int result;
   
-  result = (int) 3;
+  result = (int)(3);
   jresult = result; 
   return jresult;
 }
@@ -3763,7 +3770,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_STYLE_BINDING_LENGTH_get() {
   int jresult ;
   int result;
   
-  result = (int) 12;
+  result = (int)(12);
   jresult = result; 
   return jresult;
 }
@@ -3773,7 +3780,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_LABEL_BINDING_LENGTH_get() {
   int jresult ;
   int result;
   
-  result = (int) 9;
+  result = (int)(9);
   jresult = result; 
   return jresult;
 }
@@ -3972,6 +3979,36 @@ SWIGEXPORT int SWIGSTDCALL CSharp_clusterObj_updateFromString(void * jarg1, char
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_clusterObj_convertToString(void * jarg1) {
+  char * jresult ;
+  clusterObj *arg1 = (clusterObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (clusterObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    result = (char *)clusterObj_convertToString(arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
+  return jresult;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_clusterObj_setGroup(void * jarg1, char * jarg2) {
   int jresult ;
   clusterObj *arg1 = (clusterObj *) 0 ;
@@ -4146,6 +4183,18 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_clusterObj(void * jarg1) {
 }
 
 
+SWIGEXPORT int SWIGSTDCALL CSharp_outputFormatObj_numformatoptions_get(void * jarg1) {
+  int jresult ;
+  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
+  int result;
+  
+  arg1 = (outputFormatObj *)jarg1; 
+  result = (int) ((arg1)->numformatoptions);
+  jresult = result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void SWIGSTDCALL CSharp_outputFormatObj_name_set(void * jarg1, char * jarg2) {
   outputFormatObj *arg1 = (outputFormatObj *) 0 ;
   char *arg2 = (char *) 0 ;
@@ -4354,72 +4403,6 @@ SWIGEXPORT int SWIGSTDCALL CSharp_outputFormatObj_bands_get(void * jarg1) {
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_outputFormatObj_numformatoptions_set(void * jarg1, int jarg2) {
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  int arg2 ;
-  
-  arg1 = (outputFormatObj *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->numformatoptions = arg2;
-}
-
-
-SWIGEXPORT int SWIGSTDCALL CSharp_outputFormatObj_numformatoptions_get(void * jarg1) {
-  int jresult ;
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  int result;
-  
-  arg1 = (outputFormatObj *)jarg1; 
-  result = (int) ((arg1)->numformatoptions);
-  jresult = result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_outputFormatObj_formatoptions_set(void * jarg1, void * jarg2) {
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  char **arg2 = (char **) 0 ;
-  
-  arg1 = (outputFormatObj *)jarg1; 
-  arg2 = (char **)jarg2; 
-  if (arg1) (arg1)->formatoptions = arg2;
-}
-
-
-SWIGEXPORT void * SWIGSTDCALL CSharp_outputFormatObj_formatoptions_get(void * jarg1) {
-  void * jresult ;
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  char **result = 0 ;
-  
-  arg1 = (outputFormatObj *)jarg1; 
-  result = (char **) ((arg1)->formatoptions);
-  jresult = result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void SWIGSTDCALL CSharp_outputFormatObj_refcount_set(void * jarg1, int jarg2) {
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  int arg2 ;
-  
-  arg1 = (outputFormatObj *)jarg1; 
-  arg2 = (int)jarg2; 
-  if (arg1) (arg1)->refcount = arg2;
-}
-
-
-SWIGEXPORT int SWIGSTDCALL CSharp_outputFormatObj_refcount_get(void * jarg1) {
-  int jresult ;
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  int result;
-  
-  arg1 = (outputFormatObj *)jarg1; 
-  result = (int) ((arg1)->refcount);
-  jresult = result; 
-  return jresult;
-}
-
-
 SWIGEXPORT void SWIGSTDCALL CSharp_outputFormatObj_inmapfile_set(void * jarg1, int jarg2) {
   outputFormatObj *arg1 = (outputFormatObj *) 0 ;
   int arg2 ;
@@ -4644,6 +4627,38 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_outputFormatObj_getOption(void * jarg1, cha
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_outputFormatObj_getOptionAt(void * jarg1, int jarg2) {
+  char * jresult ;
+  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
+  int arg2 ;
+  char *result = 0 ;
+  
+  arg1 = (outputFormatObj *)jarg1; 
+  arg2 = (int)jarg2; 
+  {
+    errorObj *ms_error;
+    result = (char *)outputFormatObj_getOptionAt(arg1,arg2);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
+  return jresult;
+}
+
+
 SWIGEXPORT void SWIGSTDCALL CSharp_outputFormatObj_attachDevice(void * jarg1, void * jarg2) {
   outputFormatObj *arg1 = (outputFormatObj *) 0 ;
   void *arg2 = (void *) 0 ;
@@ -4675,7 +4690,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_NOOVERRIDE_get() {
   int jresult ;
   int result;
   
-  result = (int) -1111;
+  result = (int)(-1111);
   jresult = result; 
   return jresult;
 }
@@ -4822,6 +4837,36 @@ SWIGEXPORT int SWIGSTDCALL CSharp_queryMapObj_updateFromString(void * jarg1, cha
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_queryMapObj_convertToString(void * jarg1) {
+  char * jresult ;
+  queryMapObj *arg1 = (queryMapObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (queryMapObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    result = (char *)queryMapObj_convertToString(arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_queryMapObj() {
   void * jresult ;
   queryMapObj *result = 0 ;
@@ -5479,12 +5524,42 @@ SWIGEXPORT int SWIGSTDCALL CSharp_webObj_updateFromString(void * jarg1, char * j
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_webObj_convertToString(void * jarg1) {
+  char * jresult ;
+  webObj *arg1 = (webObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (webObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    result = (char *)webObj_convertToString(arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
+  return jresult;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_refcount_get(void * jarg1) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (int) ((arg1)->refcount);
   jresult = result; 
   return jresult;
@@ -5492,10 +5567,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_refcount_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_autoangle_set(void * jarg1, int jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->autoangle = arg2;
 }
@@ -5503,10 +5578,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_autoangle_set(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_autoangle_get(void * jarg1) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (int) ((arg1)->autoangle);
   jresult = result; 
   return jresult;
@@ -5514,10 +5589,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_autoangle_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_color_set(void * jarg1, void * jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (colorObj *)jarg2; 
   if (arg1) (arg1)->color = *arg2;
 }
@@ -5525,10 +5600,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_color_set(void * jarg1, void * jarg2
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_color_get(void * jarg1) {
   void * jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *result = 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (colorObj *)& ((arg1)->color);
   jresult = (void *)result; 
   return jresult;
@@ -5536,10 +5611,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_color_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_backgroundcolor_set(void * jarg1, void * jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (colorObj *)jarg2; 
   if (arg1) (arg1)->backgroundcolor = *arg2;
 }
@@ -5547,10 +5622,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_backgroundcolor_set(void * jarg1, vo
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_backgroundcolor_get(void * jarg1) {
   void * jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *result = 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (colorObj *)& ((arg1)->backgroundcolor);
   jresult = (void *)result; 
   return jresult;
@@ -5558,10 +5633,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_backgroundcolor_get(void * jarg1)
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_outlinecolor_set(void * jarg1, void * jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (colorObj *)jarg2; 
   if (arg1) (arg1)->outlinecolor = *arg2;
 }
@@ -5569,10 +5644,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_outlinecolor_set(void * jarg1, void
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_outlinecolor_get(void * jarg1) {
   void * jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *result = 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (colorObj *)& ((arg1)->outlinecolor);
   jresult = (void *)result; 
   return jresult;
@@ -5580,10 +5655,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_outlinecolor_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_opacity_set(void * jarg1, int jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->opacity = arg2;
 }
@@ -5591,10 +5666,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_opacity_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_opacity_get(void * jarg1) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (int) ((arg1)->opacity);
   jresult = result; 
   return jresult;
@@ -5602,10 +5677,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_opacity_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_mincolor_set(void * jarg1, void * jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (colorObj *)jarg2; 
   if (arg1) (arg1)->mincolor = *arg2;
 }
@@ -5613,10 +5688,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_mincolor_set(void * jarg1, void * ja
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_mincolor_get(void * jarg1) {
   void * jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *result = 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (colorObj *)& ((arg1)->mincolor);
   jresult = (void *)result; 
   return jresult;
@@ -5624,10 +5699,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_mincolor_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_maxcolor_set(void * jarg1, void * jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (colorObj *)jarg2; 
   if (arg1) (arg1)->maxcolor = *arg2;
 }
@@ -5635,10 +5710,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_maxcolor_set(void * jarg1, void * ja
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_maxcolor_get(void * jarg1) {
   void * jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *result = 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (colorObj *)& ((arg1)->maxcolor);
   jresult = (void *)result; 
   return jresult;
@@ -5646,10 +5721,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_maxcolor_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_minvalue_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->minvalue = arg2;
 }
@@ -5657,10 +5732,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_minvalue_set(void * jarg1, double ja
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_minvalue_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->minvalue);
   jresult = result; 
   return jresult;
@@ -5668,10 +5743,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_minvalue_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_maxvalue_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxvalue = arg2;
 }
@@ -5679,10 +5754,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_maxvalue_set(void * jarg1, double ja
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_maxvalue_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->maxvalue);
   jresult = result; 
   return jresult;
@@ -5690,10 +5765,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_maxvalue_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_rangeitem_set(void * jarg1, char * jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->rangeitem) free((char*)arg1->rangeitem);
@@ -5709,10 +5784,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_rangeitem_set(void * jarg1, char * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_styleObj_rangeitem_get(void * jarg1) {
   char * jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (char *) ((arg1)->rangeitem);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -5720,10 +5795,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_styleObj_rangeitem_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_rangeitemindex_set(void * jarg1, int jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->rangeitemindex = arg2;
 }
@@ -5731,10 +5806,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_rangeitemindex_set(void * jarg1, int
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_rangeitemindex_get(void * jarg1) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (int) ((arg1)->rangeitemindex);
   jresult = result; 
   return jresult;
@@ -5742,10 +5817,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_rangeitemindex_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_symbol_set(void * jarg1, int jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->symbol = arg2;
 }
@@ -5753,10 +5828,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_symbol_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_symbol_get(void * jarg1) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (int) ((arg1)->symbol);
   jresult = result; 
   return jresult;
@@ -5764,10 +5839,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_symbol_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_symbolname_set(void * jarg1, char * jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->symbolname) free((char*)arg1->symbolname);
@@ -5783,10 +5858,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_symbolname_set(void * jarg1, char *
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_styleObj_symbolname_get(void * jarg1) {
   char * jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (char *) ((arg1)->symbolname);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -5794,10 +5869,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_styleObj_symbolname_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_size_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->size = arg2;
 }
@@ -5805,10 +5880,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_size_set(void * jarg1, double jarg2)
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_size_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->size);
   jresult = result; 
   return jresult;
@@ -5816,10 +5891,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_size_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_minsize_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->minsize = arg2;
 }
@@ -5827,10 +5902,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_minsize_set(void * jarg1, double jar
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_minsize_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->minsize);
   jresult = result; 
   return jresult;
@@ -5838,10 +5913,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_minsize_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_maxsize_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxsize = arg2;
 }
@@ -5849,10 +5924,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_maxsize_set(void * jarg1, double jar
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_maxsize_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->maxsize);
   jresult = result; 
   return jresult;
@@ -5860,10 +5935,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_maxsize_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_patternlength_set(void * jarg1, int jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->patternlength = arg2;
 }
@@ -5871,10 +5946,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_patternlength_set(void * jarg1, int
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_patternlength_get(void * jarg1) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (int) ((arg1)->patternlength);
   jresult = result; 
   return jresult;
@@ -5882,10 +5957,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_patternlength_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_pattern_set(void * jarg1, void * jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double *arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double *)jarg2; 
   {
     size_t ii;
@@ -5897,10 +5972,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_pattern_set(void * jarg1, void * jar
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_pattern_get(void * jarg1) {
   void * jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double *result = 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double *)(double *) ((arg1)->pattern);
   jresult = result; 
   return jresult;
@@ -5908,10 +5983,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_pattern_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_gap_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->gap = arg2;
 }
@@ -5919,10 +5994,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_gap_set(void * jarg1, double jarg2)
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_gap_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->gap);
   jresult = result; 
   return jresult;
@@ -5930,10 +6005,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_gap_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_initialgap_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->initialgap = arg2;
 }
@@ -5941,10 +6016,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_initialgap_set(void * jarg1, double
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_initialgap_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->initialgap);
   jresult = result; 
   return jresult;
@@ -5952,10 +6027,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_initialgap_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_position_set(void * jarg1, int jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->position = arg2;
 }
@@ -5963,10 +6038,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_position_set(void * jarg1, int jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_position_get(void * jarg1) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (int) ((arg1)->position);
   jresult = result; 
   return jresult;
@@ -5974,10 +6049,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_position_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_linecap_set(void * jarg1, int jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->linecap = arg2;
 }
@@ -5985,10 +6060,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_linecap_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_linecap_get(void * jarg1) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (int) ((arg1)->linecap);
   jresult = result; 
   return jresult;
@@ -5996,10 +6071,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_linecap_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_linejoin_set(void * jarg1, int jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->linejoin = arg2;
 }
@@ -6007,10 +6082,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_linejoin_set(void * jarg1, int jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_linejoin_get(void * jarg1) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (int) ((arg1)->linejoin);
   jresult = result; 
   return jresult;
@@ -6018,10 +6093,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_linejoin_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_linejoinmaxsize_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->linejoinmaxsize = arg2;
 }
@@ -6029,10 +6104,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_linejoinmaxsize_set(void * jarg1, do
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_linejoinmaxsize_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->linejoinmaxsize);
   jresult = result; 
   return jresult;
@@ -6040,10 +6115,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_linejoinmaxsize_get(void * jarg1)
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_width_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->width = arg2;
 }
@@ -6051,10 +6126,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_width_set(void * jarg1, double jarg2
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_width_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->width);
   jresult = result; 
   return jresult;
@@ -6062,10 +6137,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_width_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_outlinewidth_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->outlinewidth = arg2;
 }
@@ -6073,10 +6148,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_outlinewidth_set(void * jarg1, doubl
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_outlinewidth_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->outlinewidth);
   jresult = result; 
   return jresult;
@@ -6084,10 +6159,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_outlinewidth_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_minwidth_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->minwidth = arg2;
 }
@@ -6095,10 +6170,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_minwidth_set(void * jarg1, double ja
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_minwidth_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->minwidth);
   jresult = result; 
   return jresult;
@@ -6106,10 +6181,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_minwidth_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_maxwidth_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxwidth = arg2;
 }
@@ -6117,10 +6192,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_maxwidth_set(void * jarg1, double ja
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_maxwidth_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->maxwidth);
   jresult = result; 
   return jresult;
@@ -6128,10 +6203,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_maxwidth_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_offsetx_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->offsetx = arg2;
 }
@@ -6139,10 +6214,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_offsetx_set(void * jarg1, double jar
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_offsetx_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->offsetx);
   jresult = result; 
   return jresult;
@@ -6150,10 +6225,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_offsetx_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_offsety_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->offsety = arg2;
 }
@@ -6161,10 +6236,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_offsety_set(void * jarg1, double jar
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_offsety_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->offsety);
   jresult = result; 
   return jresult;
@@ -6172,10 +6247,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_offsety_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_polaroffsetpixel_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->polaroffsetpixel = arg2;
 }
@@ -6183,10 +6258,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_polaroffsetpixel_set(void * jarg1, d
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_polaroffsetpixel_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->polaroffsetpixel);
   jresult = result; 
   return jresult;
@@ -6194,10 +6269,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_polaroffsetpixel_get(void * jarg1)
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_polaroffsetangle_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->polaroffsetangle = arg2;
 }
@@ -6205,10 +6280,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_polaroffsetangle_set(void * jarg1, d
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_polaroffsetangle_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->polaroffsetangle);
   jresult = result; 
   return jresult;
@@ -6216,10 +6291,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_polaroffsetangle_get(void * jarg1)
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_angle_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->angle = arg2;
 }
@@ -6227,10 +6302,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_angle_set(void * jarg1, double jarg2
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_angle_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->angle);
   jresult = result; 
   return jresult;
@@ -6238,10 +6313,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_angle_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_antialias_set(void * jarg1, int jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->antialias = arg2;
 }
@@ -6249,10 +6324,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_antialias_set(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_antialias_get(void * jarg1) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (int) ((arg1)->antialias);
   jresult = result; 
   return jresult;
@@ -6260,10 +6335,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_antialias_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_minscaledenom_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->minscaledenom = arg2;
 }
@@ -6271,10 +6346,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_minscaledenom_set(void * jarg1, doub
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_minscaledenom_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->minscaledenom);
   jresult = result; 
   return jresult;
@@ -6282,10 +6357,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_minscaledenom_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_maxscaledenom_set(void * jarg1, double jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxscaledenom = arg2;
 }
@@ -6293,10 +6368,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_maxscaledenom_set(void * jarg1, doub
 
 SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_maxscaledenom_get(void * jarg1) {
   double jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   result = (double) ((arg1)->maxscaledenom);
   jresult = result; 
   return jresult;
@@ -6306,12 +6381,12 @@ SWIGEXPORT double SWIGSTDCALL CSharp_styleObj_maxscaledenom_get(void * jarg1) {
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_styleObj(void * jarg1) {
   void * jresult ;
   classObj *arg1 = (classObj *) NULL ;
-  styleObj *result = 0 ;
+  struct styleObj *result = 0 ;
   
   arg1 = (classObj *)jarg1; 
   {
     errorObj *ms_error;
-    result = (styleObj *)new_styleObj(arg1);
+    result = (struct styleObj *)new_styleObj(arg1);
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -6333,9 +6408,9 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_styleObj(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_delete_styleObj(void * jarg1) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   {
     errorObj *ms_error;
     delete_styleObj(arg1);
@@ -6359,11 +6434,11 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_styleObj(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_updateFromString(void * jarg1, char * jarg2) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -6388,15 +6463,15 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_updateFromString(void * jarg1, char *
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_clone(void * jarg1) {
-  void * jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
-  styleObj *result = 0 ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_styleObj_convertToString(void * jarg1) {
+  char * jresult ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
+  char *result = 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   {
     errorObj *ms_error;
-    result = (styleObj *)styleObj_clone(arg1);
+    result = (char *)styleObj_convertToString(arg1);
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -6412,19 +6487,49 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_clone(void * jarg1) {
       msResetErrorList();
     }
   }
-  jresult = (void *)result; 
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
   return jresult;
 }
 
 
-SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_setSymbolByName(void * jarg1, void * jarg2, char * jarg3) {
-  int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
-  mapObj *arg2 = (mapObj *) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_styleObj_clone(void * jarg1) {
+  void * jresult ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
+  styleObj *result = 0 ;
+  
+  arg1 = (struct styleObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    result = (styleObj *)styleObj_clone(arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_setSymbolByName(void * jarg1, void * jarg2, char * jarg3) {
+  int jresult ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
+  mapObj *arg2 = (mapObj *) 0 ;
   char *arg3 = (char *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -6452,11 +6557,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_setSymbolByName(void * jarg1, void *
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_removeBinding(void * jarg1, int jarg2) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -6483,12 +6588,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_removeBinding(void * jarg1, int jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_setBinding(void * jarg1, int jarg2, char * jarg3) {
   int jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   char *arg3 = (char *) 0 ;
   int result;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -6516,11 +6621,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_styleObj_setBinding(void * jarg1, int jarg2, c
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_styleObj_getBinding(void * jarg1, int jarg2) {
   char * jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   char *result = 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -6547,10 +6652,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_styleObj_getBinding(void * jarg1, int jarg2
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_styleObj_getGeomTransform(void * jarg1) {
   char * jresult ;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)styleObj_getGeomTransform(arg1);
@@ -6575,10 +6680,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_styleObj_getGeomTransform(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_styleObj_setGeomTransform(void * jarg1, char * jarg2) {
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (styleObj *)jarg1; 
+  arg1 = (struct styleObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -6711,10 +6816,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_labelLeaderObj(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_refcount_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->refcount);
   jresult = result; 
   return jresult;
@@ -6722,10 +6827,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_refcount_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_font_set(void * jarg1, char * jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->font) free((char*)arg1->font);
@@ -6741,10 +6846,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_font_set(void * jarg1, char * jarg2)
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_font_get(void * jarg1) {
   char * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (char *) ((arg1)->font);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -6752,10 +6857,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_font_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_type_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   enum MS_FONT_TYPE arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (enum MS_FONT_TYPE)jarg2; 
   if (arg1) (arg1)->type = arg2;
 }
@@ -6763,10 +6868,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_type_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_type_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   enum MS_FONT_TYPE result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (enum MS_FONT_TYPE) ((arg1)->type);
   jresult = result; 
   return jresult;
@@ -6774,10 +6879,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_type_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_color_set(void * jarg1, void * jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (colorObj *)jarg2; 
   if (arg1) (arg1)->color = *arg2;
 }
@@ -6785,10 +6890,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_color_set(void * jarg1, void * jarg2
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_color_get(void * jarg1) {
   void * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   colorObj *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (colorObj *)& ((arg1)->color);
   jresult = (void *)result; 
   return jresult;
@@ -6796,10 +6901,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_color_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_outlinecolor_set(void * jarg1, void * jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (colorObj *)jarg2; 
   if (arg1) (arg1)->outlinecolor = *arg2;
 }
@@ -6807,10 +6912,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_outlinecolor_set(void * jarg1, void
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_outlinecolor_get(void * jarg1) {
   void * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   colorObj *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (colorObj *)& ((arg1)->outlinecolor);
   jresult = (void *)result; 
   return jresult;
@@ -6818,10 +6923,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_outlinecolor_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_outlinewidth_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->outlinewidth = arg2;
 }
@@ -6829,10 +6934,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_outlinewidth_set(void * jarg1, int j
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_outlinewidth_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->outlinewidth);
   jresult = result; 
   return jresult;
@@ -6840,10 +6945,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_outlinewidth_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_shadowcolor_set(void * jarg1, void * jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (colorObj *)jarg2; 
   if (arg1) (arg1)->shadowcolor = *arg2;
 }
@@ -6851,10 +6956,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_shadowcolor_set(void * jarg1, void *
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_shadowcolor_get(void * jarg1) {
   void * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   colorObj *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (colorObj *)& ((arg1)->shadowcolor);
   jresult = (void *)result; 
   return jresult;
@@ -6862,10 +6967,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_shadowcolor_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_shadowsizex_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->shadowsizex = arg2;
 }
@@ -6873,10 +6978,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_shadowsizex_set(void * jarg1, int ja
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_shadowsizex_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->shadowsizex);
   jresult = result; 
   return jresult;
@@ -6884,10 +6989,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_shadowsizex_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_shadowsizey_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->shadowsizey = arg2;
 }
@@ -6895,10 +7000,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_shadowsizey_set(void * jarg1, int ja
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_shadowsizey_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->shadowsizey);
   jresult = result; 
   return jresult;
@@ -6906,10 +7011,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_shadowsizey_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_size_set(void * jarg1, double jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->size = arg2;
 }
@@ -6917,10 +7022,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_size_set(void * jarg1, double jarg2)
 
 SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_size_get(void * jarg1) {
   double jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (double) ((arg1)->size);
   jresult = result; 
   return jresult;
@@ -6928,10 +7033,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_size_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_minsize_set(void * jarg1, double jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->minsize = arg2;
 }
@@ -6939,10 +7044,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_minsize_set(void * jarg1, double jar
 
 SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_minsize_get(void * jarg1) {
   double jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (double) ((arg1)->minsize);
   jresult = result; 
   return jresult;
@@ -6950,10 +7055,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_minsize_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_maxsize_set(void * jarg1, double jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxsize = arg2;
 }
@@ -6961,10 +7066,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_maxsize_set(void * jarg1, double jar
 
 SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_maxsize_get(void * jarg1) {
   double jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (double) ((arg1)->maxsize);
   jresult = result; 
   return jresult;
@@ -6972,10 +7077,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_maxsize_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_position_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->position = arg2;
 }
@@ -6983,10 +7088,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_position_set(void * jarg1, int jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_position_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->position);
   jresult = result; 
   return jresult;
@@ -6994,10 +7099,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_position_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_offsetx_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->offsetx = arg2;
 }
@@ -7005,10 +7110,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_offsetx_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_offsetx_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->offsetx);
   jresult = result; 
   return jresult;
@@ -7016,10 +7121,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_offsetx_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_offsety_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->offsety = arg2;
 }
@@ -7027,10 +7132,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_offsety_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_offsety_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->offsety);
   jresult = result; 
   return jresult;
@@ -7038,10 +7143,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_offsety_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_angle_set(void * jarg1, double jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->angle = arg2;
 }
@@ -7049,10 +7154,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_angle_set(void * jarg1, double jarg2
 
 SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_angle_get(void * jarg1) {
   double jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (double) ((arg1)->angle);
   jresult = result; 
   return jresult;
@@ -7060,10 +7165,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_angle_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_anglemode_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->anglemode = arg2;
 }
@@ -7071,10 +7176,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_anglemode_set(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_anglemode_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->anglemode);
   jresult = result; 
   return jresult;
@@ -7082,10 +7187,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_anglemode_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_buffer_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->buffer = arg2;
 }
@@ -7093,10 +7198,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_buffer_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_buffer_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->buffer);
   jresult = result; 
   return jresult;
@@ -7104,10 +7209,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_buffer_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_antialias_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->antialias = arg2;
 }
@@ -7115,10 +7220,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_antialias_set(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_antialias_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->antialias);
   jresult = result; 
   return jresult;
@@ -7126,10 +7231,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_antialias_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_align_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->align = arg2;
 }
@@ -7137,10 +7242,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_align_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_align_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->align);
   jresult = result; 
   return jresult;
@@ -7148,10 +7253,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_align_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_wrap_set(void * jarg1, char jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (char)jarg2; 
   if (arg1) (arg1)->wrap = arg2;
 }
@@ -7159,10 +7264,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_wrap_set(void * jarg1, char jarg2) {
 
 SWIGEXPORT char SWIGSTDCALL CSharp_labelObj_wrap_get(void * jarg1) {
   char jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (char) ((arg1)->wrap);
   jresult = result; 
   return jresult;
@@ -7170,10 +7275,10 @@ SWIGEXPORT char SWIGSTDCALL CSharp_labelObj_wrap_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_maxlength_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->maxlength = arg2;
 }
@@ -7181,10 +7286,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_maxlength_set(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_maxlength_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->maxlength);
   jresult = result; 
   return jresult;
@@ -7192,10 +7297,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_maxlength_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_minlength_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->minlength = arg2;
 }
@@ -7203,10 +7308,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_minlength_set(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_minlength_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->minlength);
   jresult = result; 
   return jresult;
@@ -7214,10 +7319,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_minlength_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_space_size_10_set(void * jarg1, double jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->space_size_10 = arg2;
 }
@@ -7225,10 +7330,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_space_size_10_set(void * jarg1, doub
 
 SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_space_size_10_get(void * jarg1) {
   double jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (double) ((arg1)->space_size_10);
   jresult = result; 
   return jresult;
@@ -7236,10 +7341,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_space_size_10_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_minfeaturesize_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->minfeaturesize = arg2;
 }
@@ -7247,10 +7352,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_minfeaturesize_set(void * jarg1, int
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_minfeaturesize_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->minfeaturesize);
   jresult = result; 
   return jresult;
@@ -7258,10 +7363,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_minfeaturesize_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_autominfeaturesize_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->autominfeaturesize = arg2;
 }
@@ -7269,10 +7374,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_autominfeaturesize_set(void * jarg1,
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_autominfeaturesize_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->autominfeaturesize);
   jresult = result; 
   return jresult;
@@ -7280,10 +7385,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_autominfeaturesize_get(void * jarg1)
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_minscaledenom_set(void * jarg1, double jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->minscaledenom = arg2;
 }
@@ -7291,10 +7396,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_minscaledenom_set(void * jarg1, doub
 
 SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_minscaledenom_get(void * jarg1) {
   double jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (double) ((arg1)->minscaledenom);
   jresult = result; 
   return jresult;
@@ -7302,10 +7407,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_minscaledenom_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_maxscaledenom_set(void * jarg1, double jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxscaledenom = arg2;
 }
@@ -7313,10 +7418,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_maxscaledenom_set(void * jarg1, doub
 
 SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_maxscaledenom_get(void * jarg1) {
   double jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (double) ((arg1)->maxscaledenom);
   jresult = result; 
   return jresult;
@@ -7324,10 +7429,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_maxscaledenom_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_mindistance_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->mindistance = arg2;
 }
@@ -7335,10 +7440,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_mindistance_set(void * jarg1, int ja
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_mindistance_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->mindistance);
   jresult = result; 
   return jresult;
@@ -7346,10 +7451,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_mindistance_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_repeatdistance_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->repeatdistance = arg2;
 }
@@ -7357,10 +7462,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_repeatdistance_set(void * jarg1, int
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_repeatdistance_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->repeatdistance);
   jresult = result; 
   return jresult;
@@ -7368,10 +7473,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_repeatdistance_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_maxoverlapangle_set(void * jarg1, double jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxoverlapangle = arg2;
 }
@@ -7379,10 +7484,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_maxoverlapangle_set(void * jarg1, do
 
 SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_maxoverlapangle_get(void * jarg1) {
   double jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (double) ((arg1)->maxoverlapangle);
   jresult = result; 
   return jresult;
@@ -7390,10 +7495,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_labelObj_maxoverlapangle_get(void * jarg1)
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_partials_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->partials = arg2;
 }
@@ -7401,10 +7506,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_partials_set(void * jarg1, int jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_partials_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->partials);
   jresult = result; 
   return jresult;
@@ -7412,10 +7517,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_partials_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_force_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->force = arg2;
 }
@@ -7423,10 +7528,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_force_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_force_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->force);
   jresult = result; 
   return jresult;
@@ -7434,10 +7539,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_force_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_encoding_set(void * jarg1, char * jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->encoding) free((char*)arg1->encoding);
@@ -7453,10 +7558,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_encoding_set(void * jarg1, char * ja
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_encoding_get(void * jarg1) {
   char * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (char *) ((arg1)->encoding);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -7464,10 +7569,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_encoding_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_priority_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->priority = arg2;
 }
@@ -7475,10 +7580,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_priority_set(void * jarg1, int jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_priority_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->priority);
   jresult = result; 
   return jresult;
@@ -7486,10 +7591,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_priority_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_status_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->status = arg2;
 }
@@ -7497,10 +7602,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_status_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_status_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->status);
   jresult = result; 
   return jresult;
@@ -7508,10 +7613,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_status_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_numstyles_set(void * jarg1, int jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->numstyles = arg2;
 }
@@ -7519,10 +7624,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_numstyles_set(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_numstyles_get(void * jarg1) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (int) ((arg1)->numstyles);
   jresult = result; 
   return jresult;
@@ -7530,10 +7635,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_numstyles_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_annotext_set(void * jarg1, char * jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->annotext) free((char*)arg1->annotext);
@@ -7549,10 +7654,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_annotext_set(void * jarg1, char * ja
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_annotext_get(void * jarg1) {
   char * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (char *) ((arg1)->annotext);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -7560,10 +7665,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_annotext_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_annopoint_set(void * jarg1, void * jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   pointObj *arg2 = (pointObj *) 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (pointObj *)jarg2; 
   if (arg1) (arg1)->annopoint = *arg2;
 }
@@ -7571,10 +7676,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_annopoint_set(void * jarg1, void * j
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_annopoint_get(void * jarg1) {
   void * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   pointObj *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (pointObj *)& ((arg1)->annopoint);
   jresult = (void *)result; 
   return jresult;
@@ -7582,10 +7687,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_annopoint_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_annopoly_set(void * jarg1, void * jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   shapeObj *arg2 = (shapeObj *) 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (shapeObj *)jarg2; 
   if (arg1) (arg1)->annopoly = arg2;
 }
@@ -7593,10 +7698,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_annopoly_set(void * jarg1, void * ja
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_annopoly_get(void * jarg1) {
   void * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   shapeObj *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (shapeObj *) ((arg1)->annopoly);
   jresult = (void *)result; 
   return jresult;
@@ -7604,10 +7709,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_annopoly_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_leader_set(void * jarg1, void * jarg2) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   labelLeaderObj *arg2 = (labelLeaderObj *) 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (labelLeaderObj *)jarg2; 
   if (arg1) (arg1)->leader = *arg2;
 }
@@ -7615,10 +7720,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_labelObj_leader_set(void * jarg1, void * jarg
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_leader_get(void * jarg1) {
   void * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   labelLeaderObj *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   result = (labelLeaderObj *)& ((arg1)->leader);
   jresult = (void *)result; 
   return jresult;
@@ -7627,11 +7732,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_leader_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_labelObj() {
   void * jresult ;
-  labelObj *result = 0 ;
+  struct labelObj *result = 0 ;
   
   {
     errorObj *ms_error;
-    result = (labelObj *)new_labelObj();
+    result = (struct labelObj *)new_labelObj();
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -7653,9 +7758,9 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_labelObj() {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_delete_labelObj(void * jarg1) {
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   {
     errorObj *ms_error;
     delete_labelObj(arg1);
@@ -7679,11 +7784,11 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_labelObj(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_updateFromString(void * jarg1, char * jarg2) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -7708,13 +7813,43 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_updateFromString(void * jarg1, char *
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_convertToString(void * jarg1) {
+  char * jresult ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (struct labelObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    result = (char *)labelObj_convertToString(arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
+  return jresult;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_removeBinding(void * jarg1, int jarg2) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -7741,11 +7876,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_removeBinding(void * jarg1, int jarg2
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_getBinding(void * jarg1, int jarg2) {
   char * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   char *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -7772,12 +7907,12 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_getBinding(void * jarg1, int jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_setBinding(void * jarg1, int jarg2, char * jarg3) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   char *arg3 = (char *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -7805,11 +7940,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_setBinding(void * jarg1, int jarg2, c
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_setExpression(void * jarg1, char * jarg2) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -7836,10 +7971,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_setExpression(void * jarg1, char * ja
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_getExpressionString(void * jarg1) {
   char * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)labelObj_getExpressionString(arg1);
@@ -7866,11 +8001,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_getExpressionString(void * jarg1)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_setText(void * jarg1, char * jarg2) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -7897,10 +8032,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_setText(void * jarg1, char * jarg2) {
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_getTextString(void * jarg1) {
   char * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)labelObj_getTextString(arg1);
@@ -7927,11 +8062,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_labelObj_getTextString(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_getStyle(void * jarg1, int jarg2) {
   void * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   styleObj *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -7958,12 +8093,12 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_getStyle(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_insertStyle(void * jarg1, void * jarg2, int jarg3) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   styleObj *arg2 = (styleObj *) 0 ;
   int arg3 = (int) -1 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (styleObj *)jarg2; 
   arg3 = (int)jarg3; 
   {
@@ -7991,11 +8126,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_insertStyle(void * jarg1, void * jarg
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_removeStyle(void * jarg1, int jarg2) {
   void * jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   styleObj *result = 0 ;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -8022,11 +8157,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_labelObj_removeStyle(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_moveStyleUp(void * jarg1, int jarg2) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -8053,11 +8188,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_moveStyleUp(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_moveStyleDown(void * jarg1, int jarg2) {
   int jresult ;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   int result;
   
-  arg1 = (labelObj *)jarg1; 
+  arg1 = (struct labelObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -8083,10 +8218,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_labelObj_moveStyleDown(void * jarg1, int jarg2
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_status_set(void * jarg1, int jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->status = arg2;
 }
@@ -8094,10 +8229,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_status_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_status_get(void * jarg1) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (int) ((arg1)->status);
   jresult = result; 
   return jresult;
@@ -8106,10 +8241,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_status_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_numstyles_get(void * jarg1) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (int) ((arg1)->numstyles);
   jresult = result; 
   return jresult;
@@ -8117,10 +8252,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_numstyles_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_numlabels_set(void * jarg1, int jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->numlabels = arg2;
 }
@@ -8128,10 +8263,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_numlabels_set(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_numlabels_get(void * jarg1) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (int) ((arg1)->numlabels);
   jresult = result; 
   return jresult;
@@ -8139,10 +8274,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_numlabels_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_name_set(void * jarg1, char * jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->name) free((char*)arg1->name);
@@ -8158,10 +8293,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_name_set(void * jarg1, char * jarg2)
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_name_get(void * jarg1) {
   char * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (char *) ((arg1)->name);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -8169,10 +8304,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_name_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_title_set(void * jarg1, char * jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->title) free((char*)arg1->title);
@@ -8188,10 +8323,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_title_set(void * jarg1, char * jarg2
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_title_get(void * jarg1) {
   char * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (char *) ((arg1)->title);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -8199,10 +8334,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_title_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_template_set(void * jarg1, char * jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->template) free((char*)arg1->template);
@@ -8218,10 +8353,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_template_set(void * jarg1, char * ja
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_template_get(void * jarg1) {
   char * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (char *) ((arg1)->template);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -8229,10 +8364,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_template_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_type_set(void * jarg1, int jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->type = arg2;
 }
@@ -8240,10 +8375,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_type_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_type_get(void * jarg1) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (int) ((arg1)->type);
   jresult = result; 
   return jresult;
@@ -8252,10 +8387,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_type_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_metadata_get(void * jarg1) {
   void * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   hashTableObj *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (hashTableObj *)& ((arg1)->metadata);
   jresult = (void *)result; 
   return jresult;
@@ -8264,10 +8399,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_metadata_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_validation_get(void * jarg1) {
   void * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   hashTableObj *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (hashTableObj *)& ((arg1)->validation);
   jresult = (void *)result; 
   return jresult;
@@ -8275,10 +8410,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_validation_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_minscaledenom_set(void * jarg1, double jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   double arg2 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->minscaledenom = arg2;
 }
@@ -8286,10 +8421,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_minscaledenom_set(void * jarg1, doub
 
 SWIGEXPORT double SWIGSTDCALL CSharp_classObj_minscaledenom_get(void * jarg1) {
   double jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   double result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (double) ((arg1)->minscaledenom);
   jresult = result; 
   return jresult;
@@ -8297,10 +8432,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_classObj_minscaledenom_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_maxscaledenom_set(void * jarg1, double jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   double arg2 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxscaledenom = arg2;
 }
@@ -8308,10 +8443,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_maxscaledenom_set(void * jarg1, doub
 
 SWIGEXPORT double SWIGSTDCALL CSharp_classObj_maxscaledenom_get(void * jarg1) {
   double jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   double result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (double) ((arg1)->maxscaledenom);
   jresult = result; 
   return jresult;
@@ -8319,10 +8454,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_classObj_maxscaledenom_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_minfeaturesize_set(void * jarg1, int jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->minfeaturesize = arg2;
 }
@@ -8330,10 +8465,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_minfeaturesize_set(void * jarg1, int
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_minfeaturesize_get(void * jarg1) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (int) ((arg1)->minfeaturesize);
   jresult = result; 
   return jresult;
@@ -8342,10 +8477,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_minfeaturesize_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_refcount_get(void * jarg1) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (int) ((arg1)->refcount);
   jresult = result; 
   return jresult;
@@ -8354,10 +8489,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_refcount_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_layer_get(void * jarg1) {
   void * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   struct layerObj *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (struct layerObj *) ((arg1)->layer);
   jresult = (void *)result; 
   return jresult;
@@ -8365,10 +8500,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_layer_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_debug_set(void * jarg1, int jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->debug = arg2;
 }
@@ -8376,10 +8511,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_debug_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_debug_get(void * jarg1) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (int) ((arg1)->debug);
   jresult = result; 
   return jresult;
@@ -8387,10 +8522,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_debug_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_keyimage_set(void * jarg1, char * jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->keyimage) free((char*)arg1->keyimage);
@@ -8406,10 +8541,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_keyimage_set(void * jarg1, char * ja
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_keyimage_get(void * jarg1) {
   char * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (char *) ((arg1)->keyimage);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -8417,10 +8552,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_keyimage_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_group_set(void * jarg1, char * jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->group) free((char*)arg1->group);
@@ -8436,10 +8571,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_group_set(void * jarg1, char * jarg2
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_group_get(void * jarg1) {
   char * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (char *) ((arg1)->group);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -8447,10 +8582,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_group_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_classObj_leader_set(void * jarg1, void * jarg2) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   labelLeaderObj *arg2 = (labelLeaderObj *) 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (labelLeaderObj *)jarg2; 
   if (arg1) (arg1)->leader = *arg2;
 }
@@ -8458,10 +8593,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_classObj_leader_set(void * jarg1, void * jarg
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_leader_get(void * jarg1) {
   void * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   labelLeaderObj *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   result = (labelLeaderObj *)& ((arg1)->leader);
   jresult = (void *)result; 
   return jresult;
@@ -8471,12 +8606,12 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_leader_get(void * jarg1) {
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_classObj(void * jarg1) {
   void * jresult ;
   layerObj *arg1 = (layerObj *) NULL ;
-  classObj *result = 0 ;
+  struct classObj *result = 0 ;
   
   arg1 = (layerObj *)jarg1; 
   {
     errorObj *ms_error;
-    result = (classObj *)new_classObj(arg1);
+    result = (struct classObj *)new_classObj(arg1);
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -8498,9 +8633,9 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_classObj(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_delete_classObj(void * jarg1) {
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   {
     errorObj *ms_error;
     delete_classObj(arg1);
@@ -8524,11 +8659,11 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_classObj(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_updateFromString(void * jarg1, char * jarg2) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -8553,12 +8688,42 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_updateFromString(void * jarg1, char *
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_convertToString(void * jarg1) {
+  char * jresult ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (struct classObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    result = (char *)classObj_convertToString(arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_clone(void * jarg1) {
   void * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   classObj *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (classObj *)classObj_clone(arg1);
@@ -8584,11 +8749,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_clone(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_setExpression(void * jarg1, char * jarg2) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -8615,10 +8780,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_setExpression(void * jarg1, char * ja
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_getExpressionString(void * jarg1) {
   char * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)classObj_getExpressionString(arg1);
@@ -8645,11 +8810,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_getExpressionString(void * jarg1)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_setText(void * jarg1, char * jarg2) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -8676,10 +8841,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_setText(void * jarg1, char * jarg2) {
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_getTextString(void * jarg1) {
   char * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)classObj_getTextString(arg1);
@@ -8706,11 +8871,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_getTextString(void * jarg1) {
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_getMetaData(void * jarg1, char * jarg2) {
   char * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -8737,12 +8902,12 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_getMetaData(void * jarg1, char * j
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_setMetaData(void * jarg1, char * jarg2, char * jarg3) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (char *)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -8770,10 +8935,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_setMetaData(void * jarg1, char * jarg
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_getFirstMetaDataKey(void * jarg1) {
   char * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)classObj_getFirstMetaDataKey(arg1);
@@ -8799,11 +8964,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_getFirstMetaDataKey(void * jarg1)
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_getNextMetaDataKey(void * jarg1, char * jarg2) {
   char * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -8830,7 +8995,7 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_classObj_getNextMetaDataKey(void * jarg1, c
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_drawLegendIcon(void * jarg1, void * jarg2, void * jarg3, int jarg4, int jarg5, void * jarg6, int jarg7, int jarg8) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   layerObj *arg3 = (layerObj *) 0 ;
   int arg4 ;
@@ -8840,7 +9005,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_drawLegendIcon(void * jarg1, void * j
   int arg8 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (layerObj *)jarg3; 
   arg4 = (int)jarg4; 
@@ -8873,14 +9038,14 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_drawLegendIcon(void * jarg1, void * j
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_createLegendIcon(void * jarg1, void * jarg2, void * jarg3, int jarg4, int jarg5) {
   void * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   layerObj *arg3 = (layerObj *) 0 ;
   int arg4 ;
   int arg5 ;
   imageObj *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (layerObj *)jarg3; 
   arg4 = (int)jarg4; 
@@ -8910,11 +9075,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_createLegendIcon(void * jarg1, voi
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_getLabel(void * jarg1, int jarg2) {
   void * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   labelObj *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -8941,11 +9106,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_getLabel(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_addLabel(void * jarg1, void * jarg2) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   labelObj *arg2 = (labelObj *) 0 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (labelObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -8972,11 +9137,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_addLabel(void * jarg1, void * jarg2)
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_removeLabel(void * jarg1, int jarg2) {
   void * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   labelObj *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -9003,11 +9168,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_removeLabel(void * jarg1, int jarg
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_getStyle(void * jarg1, int jarg2) {
   void * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   styleObj *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -9034,12 +9199,12 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_getStyle(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_insertStyle(void * jarg1, void * jarg2, int jarg3) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   styleObj *arg2 = (styleObj *) 0 ;
   int arg3 = (int) -1 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (styleObj *)jarg2; 
   arg3 = (int)jarg3; 
   {
@@ -9067,11 +9232,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_insertStyle(void * jarg1, void * jarg
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_removeStyle(void * jarg1, int jarg2) {
   void * jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   styleObj *result = 0 ;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -9098,11 +9263,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_classObj_removeStyle(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_moveStyleUp(void * jarg1, int jarg2) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -9129,11 +9294,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_classObj_moveStyleUp(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_classObj_moveStyleDown(void * jarg1, int jarg2) {
   int jresult ;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   int result;
   
-  arg1 = (classObj *)jarg1; 
+  arg1 = (struct classObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -10561,6 +10726,36 @@ SWIGEXPORT int SWIGSTDCALL CSharp_referenceMapObj_updateFromString(void * jarg1,
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_referenceMapObj_convertToString(void * jarg1) {
+  char * jresult ;
+  referenceMapObj *arg1 = (referenceMapObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (referenceMapObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    result = (char *)referenceMapObj_convertToString(arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_referenceMapObj() {
   void * jresult ;
   referenceMapObj *result = 0 ;
@@ -10725,22 +10920,32 @@ SWIGEXPORT int SWIGSTDCALL CSharp_scalebarObj_intervals_get(void * jarg1) {
 
 SWIGEXPORT void SWIGSTDCALL CSharp_scalebarObj_label_set(void * jarg1, void * jarg2) {
   scalebarObj *arg1 = (scalebarObj *) 0 ;
-  labelObj *arg2 = (labelObj *) 0 ;
+  labelObj arg2 ;
+  labelObj *argp2 ;
   
   arg1 = (scalebarObj *)jarg1; 
-  arg2 = (labelObj *)jarg2; 
-  if (arg1) (arg1)->label = *arg2;
+  argp2 = (labelObj *)jarg2; 
+  if (!argp2) {
+    SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null labelObj", 0);
+    return ;
+  }
+  arg2 = *argp2; 
+  if (arg1) (arg1)->label = arg2;
 }
 
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_scalebarObj_label_get(void * jarg1) {
   void * jresult ;
   scalebarObj *arg1 = (scalebarObj *) 0 ;
-  labelObj *result = 0 ;
+  labelObj result;
   
   arg1 = (scalebarObj *)jarg1; 
-  result = (labelObj *)& ((arg1)->label);
-  jresult = (void *)result; 
+  result =  ((arg1)->label);
+  {
+    labelObj * resultptr = (labelObj *) malloc(sizeof(labelObj));
+    memmove(resultptr, &result, sizeof(labelObj));
+    jresult = resultptr;
+  }
   return jresult;
 }
 
@@ -10952,6 +11157,36 @@ SWIGEXPORT int SWIGSTDCALL CSharp_scalebarObj_updateFromString(void * jarg1, cha
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_scalebarObj_convertToString(void * jarg1) {
+  char * jresult ;
+  scalebarObj *arg1 = (scalebarObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (scalebarObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    result = (char *)scalebarObj_convertToString(arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
+  return jresult;
+}
+
+
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_scalebarObj() {
   void * jresult ;
   scalebarObj *result = 0 ;
@@ -11029,11 +11264,15 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_legendObj_imagecolor_get(void * jarg1) {
 SWIGEXPORT void * SWIGSTDCALL CSharp_legendObj_label_get(void * jarg1) {
   void * jresult ;
   legendObj *arg1 = (legendObj *) 0 ;
-  labelObj *result = 0 ;
+  labelObj result;
   
   arg1 = (legendObj *)jarg1; 
-  result = (labelObj *)& ((arg1)->label);
-  jresult = (void *)result; 
+  result =  ((arg1)->label);
+  {
+    labelObj * resultptr = (labelObj *) malloc(sizeof(labelObj));
+    memmove(resultptr, &result, sizeof(labelObj));
+    jresult = resultptr;
+  }
   return jresult;
 }
 
@@ -11331,13 +11570,15 @@ SWIGEXPORT int SWIGSTDCALL CSharp_legendObj_updateFromString(void * jarg1, char
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_legendObj() {
-  void * jresult ;
-  legendObj *result = 0 ;
+SWIGEXPORT char * SWIGSTDCALL CSharp_legendObj_convertToString(void * jarg1) {
+  char * jresult ;
+  legendObj *arg1 = (legendObj *) 0 ;
+  char *result = 0 ;
   
+  arg1 = (legendObj *)jarg1; 
   {
     errorObj *ms_error;
-    result = (legendObj *)calloc(1, sizeof(legendObj));
+    result = (char *)legendObj_convertToString(arg1);
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -11353,18 +11594,19 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_legendObj() {
       msResetErrorList();
     }
   }
-  jresult = (void *)result; 
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_delete_legendObj(void * jarg1) {
-  legendObj *arg1 = (legendObj *) 0 ;
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_legendObj() {
+  void * jresult ;
+  legendObj *result = 0 ;
   
-  arg1 = (legendObj *)jarg1; 
   {
     errorObj *ms_error;
-    free((char *) arg1);
+    result = (legendObj *)calloc(1, sizeof(legendObj));
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -11375,23 +11617,23 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_legendObj(void * jarg1) {
         }
         else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
         msResetErrorList();
-        return ;
+        return 0;
       }
       msResetErrorList();
     }
   }
+  jresult = (void *)result; 
+  return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_imageObj_getBytes(void * jarg1, SWIG_CSharpByteArrayHelperCallback jarg2) {
-  imageObj *arg1 = (imageObj *) 0 ;
-  SWIG_CSharpByteArrayHelperCallback arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_legendObj(void * jarg1) {
+  legendObj *arg1 = (legendObj *) 0 ;
   
-  arg1 = (imageObj *)jarg1; 
-  arg2 = (SWIG_CSharpByteArrayHelperCallback)jarg2; 
+  arg1 = (legendObj *)jarg1; 
   {
     errorObj *ms_error;
-    imageObj_getBytes(arg1,arg2);
+    free((char *) arg1);
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -11412,10 +11654,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_imageObj_getBytes(void * jarg1, SWIG_CSharpBy
 
 SWIGEXPORT int SWIGSTDCALL CSharp_imageObj_width_get(void * jarg1) {
   int jresult ;
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   int result;
   
-  arg1 = (imageObj *)jarg1; 
+  arg1 = (struct imageObj *)jarg1; 
   result = (int) ((arg1)->width);
   jresult = result; 
   return jresult;
@@ -11424,10 +11666,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_imageObj_width_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_imageObj_height_get(void * jarg1) {
   int jresult ;
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   int result;
   
-  arg1 = (imageObj *)jarg1; 
+  arg1 = (struct imageObj *)jarg1; 
   result = (int) ((arg1)->height);
   jresult = result; 
   return jresult;
@@ -11436,10 +11678,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_imageObj_height_get(void * jarg1) {
 
 SWIGEXPORT double SWIGSTDCALL CSharp_imageObj_resolution_get(void * jarg1) {
   double jresult ;
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   double result;
   
-  arg1 = (imageObj *)jarg1; 
+  arg1 = (struct imageObj *)jarg1; 
   result = (double) ((arg1)->resolution);
   jresult = result; 
   return jresult;
@@ -11448,10 +11690,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_imageObj_resolution_get(void * jarg1) {
 
 SWIGEXPORT double SWIGSTDCALL CSharp_imageObj_resolutionfactor_get(void * jarg1) {
   double jresult ;
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   double result;
   
-  arg1 = (imageObj *)jarg1; 
+  arg1 = (struct imageObj *)jarg1; 
   result = (double) ((arg1)->resolutionfactor);
   jresult = result; 
   return jresult;
@@ -11460,10 +11702,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_imageObj_resolutionfactor_get(void * jarg1)
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_imageObj_imagepath_get(void * jarg1) {
   char * jresult ;
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (imageObj *)jarg1; 
+  arg1 = (struct imageObj *)jarg1; 
   result = (char *) ((arg1)->imagepath);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -11472,10 +11714,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_imageObj_imagepath_get(void * jarg1) {
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_imageObj_imageurl_get(void * jarg1) {
   char * jresult ;
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (imageObj *)jarg1; 
+  arg1 = (struct imageObj *)jarg1; 
   result = (char *) ((arg1)->imageurl);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -11484,25 +11726,52 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_imageObj_imageurl_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_imageObj_format_get(void * jarg1) {
   void * jresult ;
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   outputFormatObj *result = 0 ;
   
-  arg1 = (imageObj *)jarg1; 
+  arg1 = (struct imageObj *)jarg1; 
   result = (outputFormatObj *) ((arg1)->format);
   jresult = (void *)result; 
   return jresult;
 }
 
 
-SWIGEXPORT void * SWIGSTDCALL CSharp_new_imageObj(int jarg1, int jarg2, void * jarg3, char * jarg4, double jarg5, double jarg6) {
-  void * jresult ;
-  int arg1 ;
-  int arg2 ;
+SWIGEXPORT void SWIGSTDCALL CSharp_imageObj_getBytes(void * jarg1, SWIG_CSharpByteArrayHelperCallback jarg2) {
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
+  SWIG_CSharpByteArrayHelperCallback arg2 ;
+  
+  arg1 = (struct imageObj *)jarg1; 
+  arg2 = (SWIG_CSharpByteArrayHelperCallback)jarg2; 
+  {
+    errorObj *ms_error;
+    imageObj_getBytes(arg1,arg2);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return ;
+      }
+      msResetErrorList();
+    }
+  }
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_imageObj(int jarg1, int jarg2, void * jarg3, char * jarg4, double jarg5, double jarg6) {
+  void * jresult ;
+  int arg1 ;
+  int arg2 ;
   outputFormatObj *arg3 = (outputFormatObj *) NULL ;
   char *arg4 = (char *) NULL ;
   double arg5 = (double) MS_DEFAULT_RESOLUTION ;
   double arg6 = (double) MS_DEFAULT_RESOLUTION ;
-  imageObj *result = 0 ;
+  struct imageObj *result = 0 ;
   
   arg1 = (int)jarg1; 
   arg2 = (int)jarg2; 
@@ -11512,7 +11781,7 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_imageObj(int jarg1, int jarg2, void * j
   arg6 = (double)jarg6; 
   {
     errorObj *ms_error;
-    result = (imageObj *)new_imageObj(arg1,arg2,arg3,(char const *)arg4,arg5,arg6);
+    result = (struct imageObj *)new_imageObj(arg1,arg2,arg3,(char const *)arg4,arg5,arg6);
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -11534,9 +11803,9 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_imageObj(int jarg1, int jarg2, void * j
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_delete_imageObj(void * jarg1) {
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   
-  arg1 = (imageObj *)jarg1; 
+  arg1 = (struct imageObj *)jarg1; 
   {
     errorObj *ms_error;
     delete_imageObj(arg1);
@@ -11559,11 +11828,11 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_imageObj(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_imageObj_save(void * jarg1, char * jarg2, void * jarg3) {
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   char *arg2 = (char *) 0 ;
   mapObj *arg3 = (mapObj *) NULL ;
   
-  arg1 = (imageObj *)jarg1; 
+  arg1 = (struct imageObj *)jarg1; 
   arg2 = (char *)jarg2; 
   arg3 = (mapObj *)jarg3; 
   {
@@ -11589,10 +11858,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_imageObj_save(void * jarg1, char * jarg2, voi
 
 SWIGEXPORT int SWIGSTDCALL CSharp_imageObj_getSize(void * jarg1) {
   int jresult ;
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   int result;
   
-  arg1 = (imageObj *)jarg1; 
+  arg1 = (struct imageObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (int)imageObj_getSize(arg1);
@@ -11616,11 +11885,263 @@ SWIGEXPORT int SWIGSTDCALL CSharp_imageObj_getSize(void * jarg1) {
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_scaleTokenEntryObj_minscale_set(void * jarg1, double jarg2) {
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  double arg2 ;
+  
+  arg1 = (scaleTokenEntryObj *)jarg1; 
+  arg2 = (double)jarg2; 
+  if (arg1) (arg1)->minscale = arg2;
+}
+
+
+SWIGEXPORT double SWIGSTDCALL CSharp_scaleTokenEntryObj_minscale_get(void * jarg1) {
+  double jresult ;
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  double result;
+  
+  arg1 = (scaleTokenEntryObj *)jarg1; 
+  result = (double) ((arg1)->minscale);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_scaleTokenEntryObj_maxscale_set(void * jarg1, double jarg2) {
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  double arg2 ;
+  
+  arg1 = (scaleTokenEntryObj *)jarg1; 
+  arg2 = (double)jarg2; 
+  if (arg1) (arg1)->maxscale = arg2;
+}
+
+
+SWIGEXPORT double SWIGSTDCALL CSharp_scaleTokenEntryObj_maxscale_get(void * jarg1) {
+  double jresult ;
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  double result;
+  
+  arg1 = (scaleTokenEntryObj *)jarg1; 
+  result = (double) ((arg1)->maxscale);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_scaleTokenEntryObj_value_set(void * jarg1, char * jarg2) {
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (scaleTokenEntryObj *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    if (arg1->value) free((char*)arg1->value);
+    if (arg2) {
+      arg1->value = (char *) malloc(strlen(arg2)+1);
+      strcpy((char*)arg1->value,arg2);
+    } else {
+      arg1->value = 0;
+    }
+  }
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_scaleTokenEntryObj_value_get(void * jarg1) {
+  char * jresult ;
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (scaleTokenEntryObj *)jarg1; 
+  result = (char *) ((arg1)->value);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_scaleTokenEntryObj() {
+  void * jresult ;
+  scaleTokenEntryObj *result = 0 ;
+  
+  {
+    errorObj *ms_error;
+    result = (scaleTokenEntryObj *)calloc(1, sizeof(scaleTokenEntryObj));
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_scaleTokenEntryObj(void * jarg1) {
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  
+  arg1 = (scaleTokenEntryObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    free((char *) arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return ;
+      }
+      msResetErrorList();
+    }
+  }
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_scaleTokenObj_name_set(void * jarg1, char * jarg2) {
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (scaleTokenObj *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    if (arg1->name) free((char*)arg1->name);
+    if (arg2) {
+      arg1->name = (char *) malloc(strlen(arg2)+1);
+      strcpy((char*)arg1->name,arg2);
+    } else {
+      arg1->name = 0;
+    }
+  }
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_scaleTokenObj_name_get(void * jarg1) {
+  char * jresult ;
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (scaleTokenObj *)jarg1; 
+  result = (char *) ((arg1)->name);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_scaleTokenObj_n_entries_set(void * jarg1, int jarg2) {
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  int arg2 ;
+  
+  arg1 = (scaleTokenObj *)jarg1; 
+  arg2 = (int)jarg2; 
+  if (arg1) (arg1)->n_entries = arg2;
+}
+
+
+SWIGEXPORT int SWIGSTDCALL CSharp_scaleTokenObj_n_entries_get(void * jarg1) {
+  int jresult ;
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  int result;
+  
+  arg1 = (scaleTokenObj *)jarg1; 
+  result = (int) ((arg1)->n_entries);
+  jresult = result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_scaleTokenObj_tokens_set(void * jarg1, void * jarg2) {
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  scaleTokenEntryObj *arg2 = (scaleTokenEntryObj *) 0 ;
+  
+  arg1 = (scaleTokenObj *)jarg1; 
+  arg2 = (scaleTokenEntryObj *)jarg2; 
+  if (arg1) (arg1)->tokens = arg2;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_scaleTokenObj_tokens_get(void * jarg1) {
+  void * jresult ;
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  scaleTokenEntryObj *result = 0 ;
+  
+  arg1 = (scaleTokenObj *)jarg1; 
+  result = (scaleTokenEntryObj *) ((arg1)->tokens);
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void * SWIGSTDCALL CSharp_new_scaleTokenObj() {
+  void * jresult ;
+  scaleTokenObj *result = 0 ;
+  
+  {
+    errorObj *ms_error;
+    result = (scaleTokenObj *)calloc(1, sizeof(scaleTokenObj));
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_delete_scaleTokenObj(void * jarg1) {
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  
+  arg1 = (scaleTokenObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    free((char *) arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return ;
+      }
+      msResetErrorList();
+    }
+  }
+}
+
+
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_classitem_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->classitem) free((char*)arg1->classitem);
@@ -11636,10 +12157,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_classitem_set(void * jarg1, char * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_classitem_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->classitem);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -11648,10 +12169,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_classitem_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_refcount_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->refcount);
   jresult = result; 
   return jresult;
@@ -11660,10 +12181,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_refcount_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_numclasses_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->numclasses);
   jresult = result; 
   return jresult;
@@ -11672,10 +12193,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_numclasses_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_maxclasses_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->maxclasses);
   jresult = result; 
   return jresult;
@@ -11684,10 +12205,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_maxclasses_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_index_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->index);
   jresult = result; 
   return jresult;
@@ -11696,10 +12217,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_index_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_map_get(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   struct mapObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (struct mapObj *) ((arg1)->map);
   jresult = (void *)result; 
   return jresult;
@@ -11707,10 +12228,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_map_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_header_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->header) free((char*)arg1->header);
@@ -11726,10 +12247,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_header_set(void * jarg1, char * jarg
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_header_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->header);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -11737,10 +12258,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_header_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_footer_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->footer) free((char*)arg1->footer);
@@ -11756,10 +12277,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_footer_set(void * jarg1, char * jarg
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_footer_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->footer);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -11767,10 +12288,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_footer_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_template_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->template) free((char*)arg1->template);
@@ -11786,10 +12307,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_template_set(void * jarg1, char * ja
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_template_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->template);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -11797,10 +12318,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_template_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_name_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->name) free((char*)arg1->name);
@@ -11816,10 +12337,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_name_set(void * jarg1, char * jarg2)
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_name_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->name);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -11827,10 +12348,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_name_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_group_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->group) free((char*)arg1->group);
@@ -11846,10 +12367,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_group_set(void * jarg1, char * jarg2
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_group_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->group);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -11857,10 +12378,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_group_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_status_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->status = arg2;
 }
@@ -11868,10 +12389,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_status_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_status_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->status);
   jresult = result; 
   return jresult;
@@ -11879,10 +12400,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_status_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_data_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->data) free((char*)arg1->data);
@@ -11898,10 +12419,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_data_set(void * jarg1, char * jarg2)
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_data_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->data);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -11909,10 +12430,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_data_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_type_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   enum MS_LAYER_TYPE arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (enum MS_LAYER_TYPE)jarg2; 
   if (arg1) (arg1)->type = arg2;
 }
@@ -11920,10 +12441,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_type_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_type_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   enum MS_LAYER_TYPE result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (enum MS_LAYER_TYPE) ((arg1)->type);
   jresult = result; 
   return jresult;
@@ -11931,10 +12452,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_type_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_tolerance_set(void * jarg1, double jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->tolerance = arg2;
 }
@@ -11942,10 +12463,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_tolerance_set(void * jarg1, double j
 
 SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_tolerance_get(void * jarg1) {
   double jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (double) ((arg1)->tolerance);
   jresult = result; 
   return jresult;
@@ -11953,10 +12474,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_tolerance_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_toleranceunits_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->toleranceunits = arg2;
 }
@@ -11964,10 +12485,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_toleranceunits_set(void * jarg1, int
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_toleranceunits_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->toleranceunits);
   jresult = result; 
   return jresult;
@@ -11975,10 +12496,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_toleranceunits_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_symbolscaledenom_set(void * jarg1, double jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->symbolscaledenom = arg2;
 }
@@ -11986,10 +12507,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_symbolscaledenom_set(void * jarg1, d
 
 SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_symbolscaledenom_get(void * jarg1) {
   double jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (double) ((arg1)->symbolscaledenom);
   jresult = result; 
   return jresult;
@@ -11997,10 +12518,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_symbolscaledenom_get(void * jarg1)
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_minscaledenom_set(void * jarg1, double jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->minscaledenom = arg2;
 }
@@ -12008,10 +12529,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_minscaledenom_set(void * jarg1, doub
 
 SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_minscaledenom_get(void * jarg1) {
   double jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (double) ((arg1)->minscaledenom);
   jresult = result; 
   return jresult;
@@ -12019,10 +12540,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_minscaledenom_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_maxscaledenom_set(void * jarg1, double jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxscaledenom = arg2;
 }
@@ -12030,10 +12551,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_maxscaledenom_set(void * jarg1, doub
 
 SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_maxscaledenom_get(void * jarg1) {
   double jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (double) ((arg1)->maxscaledenom);
   jresult = result; 
   return jresult;
@@ -12041,10 +12562,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_maxscaledenom_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_minfeaturesize_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->minfeaturesize = arg2;
 }
@@ -12052,10 +12573,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_minfeaturesize_set(void * jarg1, int
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_minfeaturesize_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->minfeaturesize);
   jresult = result; 
   return jresult;
@@ -12063,10 +12584,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_minfeaturesize_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_labelminscaledenom_set(void * jarg1, double jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->labelminscaledenom = arg2;
 }
@@ -12074,10 +12595,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_labelminscaledenom_set(void * jarg1,
 
 SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_labelminscaledenom_get(void * jarg1) {
   double jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (double) ((arg1)->labelminscaledenom);
   jresult = result; 
   return jresult;
@@ -12085,10 +12606,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_labelminscaledenom_get(void * jarg
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_labelmaxscaledenom_set(void * jarg1, double jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->labelmaxscaledenom = arg2;
 }
@@ -12096,10 +12617,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_labelmaxscaledenom_set(void * jarg1,
 
 SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_labelmaxscaledenom_get(void * jarg1) {
   double jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (double) ((arg1)->labelmaxscaledenom);
   jresult = result; 
   return jresult;
@@ -12107,10 +12628,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_labelmaxscaledenom_get(void * jarg
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_mingeowidth_set(void * jarg1, double jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->mingeowidth = arg2;
 }
@@ -12118,10 +12639,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_mingeowidth_set(void * jarg1, double
 
 SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_mingeowidth_get(void * jarg1) {
   double jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (double) ((arg1)->mingeowidth);
   jresult = result; 
   return jresult;
@@ -12129,10 +12650,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_mingeowidth_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_maxgeowidth_set(void * jarg1, double jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxgeowidth = arg2;
 }
@@ -12140,10 +12661,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_maxgeowidth_set(void * jarg1, double
 
 SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_maxgeowidth_get(void * jarg1) {
   double jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (double) ((arg1)->maxgeowidth);
   jresult = result; 
   return jresult;
@@ -12151,10 +12672,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_layerObj_maxgeowidth_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_sizeunits_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->sizeunits = arg2;
 }
@@ -12162,10 +12683,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_sizeunits_set(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_sizeunits_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->sizeunits);
   jresult = result; 
   return jresult;
@@ -12173,10 +12694,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_sizeunits_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_maxfeatures_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->maxfeatures = arg2;
 }
@@ -12184,10 +12705,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_maxfeatures_set(void * jarg1, int ja
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_maxfeatures_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->maxfeatures);
   jresult = result; 
   return jresult;
@@ -12195,10 +12716,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_maxfeatures_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_startindex_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->startindex = arg2;
 }
@@ -12206,10 +12727,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_startindex_set(void * jarg1, int jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_startindex_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->startindex);
   jresult = result; 
   return jresult;
@@ -12217,10 +12738,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_startindex_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_offsite_set(void * jarg1, void * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (colorObj *)jarg2; 
   if (arg1) (arg1)->offsite = *arg2;
 }
@@ -12228,10 +12749,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_offsite_set(void * jarg1, void * jar
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_offsite_get(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   colorObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (colorObj *)& ((arg1)->offsite);
   jresult = (void *)result; 
   return jresult;
@@ -12239,10 +12760,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_offsite_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_transform_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->transform = arg2;
 }
@@ -12250,10 +12771,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_transform_set(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_transform_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->transform);
   jresult = result; 
   return jresult;
@@ -12261,10 +12782,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_transform_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_labelcache_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->labelcache = arg2;
 }
@@ -12272,10 +12793,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_labelcache_set(void * jarg1, int jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_labelcache_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->labelcache);
   jresult = result; 
   return jresult;
@@ -12283,10 +12804,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_labelcache_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_postlabelcache_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->postlabelcache = arg2;
 }
@@ -12294,10 +12815,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_postlabelcache_set(void * jarg1, int
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_postlabelcache_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->postlabelcache);
   jresult = result; 
   return jresult;
@@ -12305,10 +12826,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_postlabelcache_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_labelitem_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->labelitem) free((char*)arg1->labelitem);
@@ -12324,10 +12845,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_labelitem_set(void * jarg1, char * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_labelitem_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->labelitem);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12335,10 +12856,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_labelitem_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_tileitem_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->tileitem) free((char*)arg1->tileitem);
@@ -12354,10 +12875,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_tileitem_set(void * jarg1, char * ja
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_tileitem_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->tileitem);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12365,10 +12886,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_tileitem_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_tileindex_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->tileindex) free((char*)arg1->tileindex);
@@ -12384,21 +12905,51 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_tileindex_set(void * jarg1, char * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_tileindex_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->tileindex);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
+SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_tilesrs_set(void * jarg1, char * jarg2) {
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (struct layerObj *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    if (arg1->tilesrs) free((char*)arg1->tilesrs);
+    if (arg2) {
+      arg1->tilesrs = (char *) malloc(strlen(arg2)+1);
+      strcpy((char*)arg1->tilesrs,arg2);
+    } else {
+      arg1->tilesrs = 0;
+    }
+  }
+}
+
+
+SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_tilesrs_get(void * jarg1) {
+  char * jresult ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (struct layerObj *)jarg1; 
+  result = (char *) ((arg1)->tilesrs);
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_units_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->units = arg2;
 }
@@ -12406,10 +12957,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_units_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_units_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->units);
   jresult = result; 
   return jresult;
@@ -12417,10 +12968,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_units_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_connection_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->connection) free((char*)arg1->connection);
@@ -12436,10 +12987,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_connection_set(void * jarg1, char *
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_connection_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->connection);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12447,10 +12998,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_connection_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_plugin_library_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->plugin_library) free((char*)arg1->plugin_library);
@@ -12466,10 +13017,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_plugin_library_set(void * jarg1, cha
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_plugin_library_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->plugin_library);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12477,10 +13028,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_plugin_library_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_plugin_library_original_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->plugin_library_original) free((char*)arg1->plugin_library_original);
@@ -12496,10 +13047,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_plugin_library_original_set(void * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_plugin_library_original_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->plugin_library_original);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12507,10 +13058,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_plugin_library_original_get(void *
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_connectiontype_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   enum MS_CONNECTION_TYPE arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (enum MS_CONNECTION_TYPE)jarg2; 
   if (arg1) (arg1)->connectiontype = arg2;
 }
@@ -12518,10 +13069,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_connectiontype_set(void * jarg1, int
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_connectiontype_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   enum MS_CONNECTION_TYPE result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (enum MS_CONNECTION_TYPE) ((arg1)->connectiontype);
   jresult = result; 
   return jresult;
@@ -12530,10 +13081,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_connectiontype_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_numitems_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->numitems);
   jresult = result; 
   return jresult;
@@ -12541,10 +13092,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_numitems_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_bandsitem_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->bandsitem) free((char*)arg1->bandsitem);
@@ -12560,10 +13111,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_bandsitem_set(void * jarg1, char * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_bandsitem_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->bandsitem);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12571,10 +13122,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_bandsitem_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_filteritem_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->filteritem) free((char*)arg1->filteritem);
@@ -12590,10 +13141,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_filteritem_set(void * jarg1, char *
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_filteritem_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->filteritem);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12601,10 +13152,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_filteritem_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_styleitem_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->styleitem) free((char*)arg1->styleitem);
@@ -12620,10 +13171,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_styleitem_set(void * jarg1, char * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_styleitem_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->styleitem);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12631,10 +13182,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_styleitem_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_requires_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->requires) free((char*)arg1->requires);
@@ -12650,10 +13201,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_requires_set(void * jarg1, char * ja
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_requires_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->requires);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12661,10 +13212,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_requires_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_labelrequires_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->labelrequires) free((char*)arg1->labelrequires);
@@ -12680,10 +13231,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_labelrequires_set(void * jarg1, char
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_labelrequires_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->labelrequires);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12692,10 +13243,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_labelrequires_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_metadata_get(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   hashTableObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (hashTableObj *)& ((arg1)->metadata);
   jresult = (void *)result; 
   return jresult;
@@ -12704,10 +13255,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_metadata_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_validation_get(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   hashTableObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (hashTableObj *)& ((arg1)->validation);
   jresult = (void *)result; 
   return jresult;
@@ -12716,10 +13267,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_validation_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_bindvals_get(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   hashTableObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (hashTableObj *)& ((arg1)->bindvals);
   jresult = (void *)result; 
   return jresult;
@@ -12728,10 +13279,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_bindvals_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_cluster_get(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   clusterObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (clusterObj *)& ((arg1)->cluster);
   jresult = (void *)result; 
   return jresult;
@@ -12739,10 +13290,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_cluster_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_opacity_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->opacity = arg2;
 }
@@ -12750,10 +13301,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_opacity_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_opacity_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->opacity);
   jresult = result; 
   return jresult;
@@ -12761,10 +13312,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_opacity_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_dump_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->dump = arg2;
 }
@@ -12772,10 +13323,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_dump_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_dump_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->dump);
   jresult = result; 
   return jresult;
@@ -12783,10 +13334,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_dump_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_debug_set(void * jarg1, int jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->debug = arg2;
 }
@@ -12794,10 +13345,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_debug_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_debug_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->debug);
   jresult = result; 
   return jresult;
@@ -12806,10 +13357,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_debug_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_extent_get(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   rectObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (rectObj *)& ((arg1)->extent);
   jresult = (void *)result; 
   return jresult;
@@ -12818,10 +13369,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_extent_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_numprocessing_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->numprocessing);
   jresult = result; 
   return jresult;
@@ -12830,10 +13381,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_numprocessing_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_numjoins_get(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (int) ((arg1)->numjoins);
   jresult = result; 
   return jresult;
@@ -12841,10 +13392,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_numjoins_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_classgroup_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->classgroup) free((char*)arg1->classgroup);
@@ -12860,10 +13411,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_classgroup_set(void * jarg1, char *
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_classgroup_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->classgroup);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12871,10 +13422,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_classgroup_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_mask_set(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->mask) free((char*)arg1->mask);
@@ -12890,10 +13441,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_mask_set(void * jarg1, char * jarg2)
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_mask_get(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   result = (char *) ((arg1)->mask);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -12903,12 +13454,12 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_mask_get(void * jarg1) {
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_layerObj(void * jarg1) {
   void * jresult ;
   mapObj *arg1 = (mapObj *) NULL ;
-  layerObj *result = 0 ;
+  struct layerObj *result = 0 ;
   
   arg1 = (mapObj *)jarg1; 
   {
     errorObj *ms_error;
-    result = (layerObj *)new_layerObj(arg1);
+    result = (struct layerObj *)new_layerObj(arg1);
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -12930,9 +13481,9 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_layerObj(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_delete_layerObj(void * jarg1) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     delete_layerObj(arg1);
@@ -12956,10 +13507,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_layerObj(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_clone(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   layerObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (layerObj *)layerObj_clone(arg1);
@@ -12985,11 +13536,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_clone(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_updateFromString(void * jarg1, char * jarg2) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -13014,14 +13565,44 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_updateFromString(void * jarg1, char *
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_convertToString(void * jarg1) {
+  char * jresult ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (struct layerObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    result = (char *)layerObj_convertToString(arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
+  return jresult;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_insertClass(void * jarg1, void * jarg2, int jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   classObj *arg2 = (classObj *) 0 ;
   int arg3 = (int) -1 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (classObj *)jarg2; 
   arg3 = (int)jarg3; 
   {
@@ -13049,11 +13630,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_insertClass(void * jarg1, void * jarg
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_removeClass(void * jarg1, int jarg2) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   classObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -13080,10 +13661,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_removeClass(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_open(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (int)layerObj_open(arg1);
@@ -13109,12 +13690,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_open(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_whichShapes(void * jarg1, void * jarg2) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   rectObj arg2 ;
   rectObj *argp2 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   argp2 = (rectObj *)jarg2; 
   if (!argp2) {
     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null rectObj", 0);
@@ -13146,10 +13727,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_whichShapes(void * jarg1, void * jarg
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_nextShape(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   shapeObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (shapeObj *)layerObj_nextShape(arg1);
@@ -13174,9 +13755,9 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_nextShape(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_close(void * jarg1) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     layerObj_close(arg1);
@@ -13200,11 +13781,11 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_close(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getShape(void * jarg1, void * jarg2) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   resultObj *arg2 = (resultObj *) 0 ;
   shapeObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (resultObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -13231,10 +13812,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getShape(void * jarg1, void * jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_getNumResults(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (int)layerObj_getNumResults(arg1);
@@ -13260,10 +13841,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_getNumResults(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getResultsBounds(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   rectObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (rectObj *)layerObj_getResultsBounds(arg1);
@@ -13289,11 +13870,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getResultsBounds(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getResult(void * jarg1, int jarg2) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   resultObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -13320,11 +13901,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getResult(void * jarg1, int jarg2)
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getClass(void * jarg1, int jarg2) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   classObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -13351,11 +13932,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getClass(void * jarg1, int jarg2)
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getItem(void * jarg1, int jarg2) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -13382,12 +13963,12 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getItem(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setItems(void * jarg1, void * jarg2, int jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char **arg2 = (char **) 0 ;
   int arg3 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char **)jarg2; 
   arg3 = (int)jarg3; 
   {
@@ -13415,12 +13996,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setItems(void * jarg1, void * jarg2,
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_draw(void * jarg1, void * jarg2, void * jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   imageObj *arg3 = (imageObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (imageObj *)jarg3; 
   {
@@ -13448,12 +14029,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_draw(void * jarg1, void * jarg2, void
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_drawQuery(void * jarg1, void * jarg2, void * jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   imageObj *arg3 = (imageObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (imageObj *)jarg3; 
   {
@@ -13481,12 +14062,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_drawQuery(void * jarg1, void * jarg2,
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByFilter(void * jarg1, void * jarg2, char * jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   char *arg3 = (char *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -13514,14 +14095,14 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByFilter(void * jarg1, void * ja
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByAttributes(void * jarg1, void * jarg2, char * jarg3, char * jarg4, int jarg5) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   char *arg3 = (char *) 0 ;
   char *arg4 = (char *) 0 ;
   int arg5 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (char *)jarg3; 
   arg4 = (char *)jarg4; 
@@ -13551,14 +14132,14 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByAttributes(void * jarg1, void
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByPoint(void * jarg1, void * jarg2, void * jarg3, int jarg4, double jarg5) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   pointObj *arg3 = (pointObj *) 0 ;
   int arg4 ;
   double arg5 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (pointObj *)jarg3; 
   arg4 = (int)jarg4; 
@@ -13588,13 +14169,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByPoint(void * jarg1, void * jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByRect(void * jarg1, void * jarg2, void * jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   rectObj arg3 ;
   rectObj *argp3 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   argp3 = (rectObj *)jarg3; 
   if (!argp3) {
@@ -13627,12 +14208,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByRect(void * jarg1, void * jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByFeatures(void * jarg1, void * jarg2, int jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   int arg3 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (int)jarg3; 
   {
@@ -13660,12 +14241,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByFeatures(void * jarg1, void *
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByShape(void * jarg1, void * jarg2, void * jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   shapeObj *arg3 = (shapeObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (shapeObj *)jarg3; 
   {
@@ -13693,14 +14274,14 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByShape(void * jarg1, void * jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByIndex(void * jarg1, void * jarg2, int jarg3, int jarg4, int jarg5) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   int arg3 ;
   int arg4 ;
   int arg5 = (int) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (int)jarg3; 
   arg4 = (int)jarg4; 
@@ -13730,10 +14311,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_queryByIndex(void * jarg1, void * jar
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getResults(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   resultCacheObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (resultCacheObj *)layerObj_getResults(arg1);
@@ -13759,11 +14340,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getResults(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setFilter(void * jarg1, char * jarg2) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -13790,10 +14371,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setFilter(void * jarg1, char * jarg2)
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getFilterString(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)layerObj_getFilterString(arg1);
@@ -13820,11 +14401,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getFilterString(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setWKTProjection(void * jarg1, char * jarg2) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -13851,10 +14432,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setWKTProjection(void * jarg1, char *
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getProjection(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)layerObj_getProjection(arg1);
@@ -13881,11 +14462,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getProjection(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setProjection(void * jarg1, char * jarg2) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -13912,11 +14493,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setProjection(void * jarg1, char * ja
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_addFeature(void * jarg1, void * jarg2) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   shapeObj *arg2 = (shapeObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (shapeObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -13943,10 +14524,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_addFeature(void * jarg1, void * jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_getNumFeatures(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (int)layerObj_getNumFeatures(arg1);
@@ -13972,10 +14553,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_getNumFeatures(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getExtent(void * jarg1) {
   void * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   rectObj *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (rectObj *)layerObj_getExtent(arg1);
@@ -14001,14 +14582,14 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_layerObj_getExtent(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setExtent(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 = (double) -1.0 ;
   double arg3 = (double) -1.0 ;
   double arg4 = (double) -1.0 ;
   double arg5 = (double) -1.0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (double)jarg2; 
   arg3 = (double)jarg3; 
   arg4 = (double)jarg4; 
@@ -14038,11 +14619,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setExtent(void * jarg1, double jarg2,
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getMetaData(void * jarg1, char * jarg2) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -14069,12 +14650,12 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getMetaData(void * jarg1, char * j
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setMetaData(void * jarg1, char * jarg2, char * jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -14102,11 +14683,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setMetaData(void * jarg1, char * jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_removeMetaData(void * jarg1, char * jarg2) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -14133,10 +14714,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_removeMetaData(void * jarg1, char * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getFirstMetaDataKey(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)layerObj_getFirstMetaDataKey(arg1);
@@ -14162,11 +14743,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getFirstMetaDataKey(void * jarg1)
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getNextMetaDataKey(void * jarg1, char * jarg2) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -14193,7 +14774,7 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getNextMetaDataKey(void * jarg1, c
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getWMSFeatureInfoURL(void * jarg1, void * jarg2, int jarg3, int jarg4, int jarg5, char * jarg6) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   int arg3 ;
   int arg4 ;
@@ -14201,7 +14782,7 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getWMSFeatureInfoURL(void * jarg1,
   char *arg6 = (char *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (int)jarg3; 
   arg4 = (int)jarg4; 
@@ -14233,11 +14814,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getWMSFeatureInfoURL(void * jarg1,
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_executeWFSGetFeature(void * jarg1, void * jarg2) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   layerObj *arg2 = (layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (layerObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -14265,12 +14846,12 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_executeWFSGetFeature(void * jarg1,
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_applySLD(void * jarg1, char * jarg2, char * jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -14298,12 +14879,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_applySLD(void * jarg1, char * jarg2,
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_applySLDURL(void * jarg1, char * jarg2, char * jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -14331,10 +14912,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_applySLDURL(void * jarg1, char * jarg
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_generateSLD(void * jarg1) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)layerObj_generateSLD(arg1);
@@ -14361,10 +14942,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_generateSLD(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_isVisible(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (int)layerObj_isVisible(arg1);
@@ -14390,11 +14971,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_isVisible(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_moveClassUp(void * jarg1, int jarg2) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -14421,11 +15002,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_moveClassUp(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_moveClassDown(void * jarg1, int jarg2) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -14451,11 +15032,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_moveClassDown(void * jarg1, int jarg2
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_setProcessingKey(void * jarg1, char * jarg2, char * jarg3) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -14480,10 +15061,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_setProcessingKey(void * jarg1, char
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_setProcessing(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -14507,10 +15088,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_setProcessing(void * jarg1, char * j
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_addProcessing(void * jarg1, char * jarg2) {
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -14535,11 +15116,11 @@ SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_addProcessing(void * jarg1, char * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getProcessing(void * jarg1, int jarg2) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -14566,11 +15147,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getProcessing(void * jarg1, int ja
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getProcessingKey(void * jarg1, char * jarg2) {
   char * jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *result = 0 ;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -14597,10 +15178,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getProcessingKey(void * jarg1, cha
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_clearProcessing(void * jarg1) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (int)layerObj_clearProcessing(arg1);
@@ -14626,12 +15207,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_clearProcessing(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setConnectionType(void * jarg1, int jarg2, char * jarg3) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   char *arg3 = (char *) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (int)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -14659,14 +15240,14 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_setConnectionType(void * jarg1, int j
 
 SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_getClassIndex(void * jarg1, void * jarg2, void * jarg3, void * jarg4, int jarg5) {
   int jresult ;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   shapeObj *arg3 = (shapeObj *) 0 ;
   int *arg4 = (int *) NULL ;
   int arg5 = (int) 0 ;
   int result;
   
-  arg1 = (layerObj *)jarg1; 
+  arg1 = (struct layerObj *)jarg1; 
   arg2 = (mapObj *)jarg2; 
   arg3 = (shapeObj *)jarg3; 
   arg4 = (int *)jarg4; 
@@ -14694,11 +15275,67 @@ SWIGEXPORT int SWIGSTDCALL CSharp_layerObj_getClassIndex(void * jarg1, void * ja
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_layerObj_getGeomTransform(void * jarg1) {
+  char * jresult ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (struct layerObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    result = (char *)layerObj_getGeomTransform(arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  return jresult;
+}
+
+
+SWIGEXPORT void SWIGSTDCALL CSharp_layerObj_setGeomTransform(void * jarg1, char * jarg2) {
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
+  char *arg2 = (char *) 0 ;
+  
+  arg1 = (struct layerObj *)jarg1; 
+  arg2 = (char *)jarg2; 
+  {
+    errorObj *ms_error;
+    layerObj_setGeomTransform(arg1,arg2);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return ;
+      }
+      msResetErrorList();
+    }
+  }
+}
+
+
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_name_set(void * jarg1, char * jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->name) free((char*)arg1->name);
@@ -14714,10 +15351,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_name_set(void * jarg1, char * jarg2) {
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_name_get(void * jarg1) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (char *) ((arg1)->name);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -14725,10 +15362,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_name_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_status_set(void * jarg1, int jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->status = arg2;
 }
@@ -14736,10 +15373,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_status_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_status_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int) ((arg1)->status);
   jresult = result; 
   return jresult;
@@ -14747,10 +15384,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_status_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_height_set(void * jarg1, int jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->height = arg2;
 }
@@ -14758,10 +15395,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_height_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_height_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int) ((arg1)->height);
   jresult = result; 
   return jresult;
@@ -14769,10 +15406,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_height_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_width_set(void * jarg1, int jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->width = arg2;
 }
@@ -14780,10 +15417,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_width_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_width_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int) ((arg1)->width);
   jresult = result; 
   return jresult;
@@ -14791,10 +15428,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_width_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_maxsize_set(void * jarg1, int jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->maxsize = arg2;
 }
@@ -14802,10 +15439,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_maxsize_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_maxsize_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int) ((arg1)->maxsize);
   jresult = result; 
   return jresult;
@@ -14814,10 +15451,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_maxsize_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_refcount_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int) ((arg1)->refcount);
   jresult = result; 
   return jresult;
@@ -14826,10 +15463,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_refcount_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_numlayers_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int) ((arg1)->numlayers);
   jresult = result; 
   return jresult;
@@ -14838,10 +15475,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_numlayers_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_maxlayers_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int) ((arg1)->maxlayers);
   jresult = result; 
   return jresult;
@@ -14850,10 +15487,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_maxlayers_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_symbolset_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   symbolSetObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (symbolSetObj *)& ((arg1)->symbolset);
   jresult = (void *)result; 
   return jresult;
@@ -14862,10 +15499,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_symbolset_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_fontset_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   fontSetObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (fontSetObj *)& ((arg1)->fontset);
   jresult = (void *)result; 
   return jresult;
@@ -14874,10 +15511,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_fontset_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_labelcache_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   labelCacheObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (labelCacheObj *)& ((arg1)->labelcache);
   jresult = (void *)result; 
   return jresult;
@@ -14885,10 +15522,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_labelcache_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_transparent_set(void * jarg1, int jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->transparent = arg2;
 }
@@ -14896,10 +15533,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_transparent_set(void * jarg1, int jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_transparent_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int) ((arg1)->transparent);
   jresult = result; 
   return jresult;
@@ -14907,10 +15544,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_transparent_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_interlace_set(void * jarg1, int jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->interlace = arg2;
 }
@@ -14918,10 +15555,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_interlace_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_interlace_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int) ((arg1)->interlace);
   jresult = result; 
   return jresult;
@@ -14929,10 +15566,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_interlace_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_imagequality_set(void * jarg1, int jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->imagequality = arg2;
 }
@@ -14940,10 +15577,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_imagequality_set(void * jarg1, int jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_imagequality_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int) ((arg1)->imagequality);
   jresult = result; 
   return jresult;
@@ -14951,10 +15588,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_imagequality_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_extent_set(void * jarg1, void * jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   rectObj *arg2 = (rectObj *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (rectObj *)jarg2; 
   if (arg1) (arg1)->extent = *arg2;
 }
@@ -14962,10 +15599,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_extent_set(void * jarg1, void * jarg2)
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_extent_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   rectObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (rectObj *)& ((arg1)->extent);
   jresult = (void *)result; 
   return jresult;
@@ -14973,10 +15610,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_extent_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_cellsize_set(void * jarg1, double jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->cellsize = arg2;
 }
@@ -14984,10 +15621,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_cellsize_set(void * jarg1, double jarg
 
 SWIGEXPORT double SWIGSTDCALL CSharp_mapObj_cellsize_get(void * jarg1) {
   double jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (double) ((arg1)->cellsize);
   jresult = result; 
   return jresult;
@@ -14995,10 +15632,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_mapObj_cellsize_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_units_set(void * jarg1, int jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   enum MS_UNITS arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (enum MS_UNITS)jarg2; 
   if (arg1) (arg1)->units = arg2;
 }
@@ -15006,10 +15643,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_units_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_units_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   enum MS_UNITS result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (enum MS_UNITS) ((arg1)->units);
   jresult = result; 
   return jresult;
@@ -15017,10 +15654,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_units_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_scaledenom_set(void * jarg1, double jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->scaledenom = arg2;
 }
@@ -15028,10 +15665,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_scaledenom_set(void * jarg1, double ja
 
 SWIGEXPORT double SWIGSTDCALL CSharp_mapObj_scaledenom_get(void * jarg1) {
   double jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (double) ((arg1)->scaledenom);
   jresult = result; 
   return jresult;
@@ -15039,10 +15676,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_mapObj_scaledenom_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_resolution_set(void * jarg1, double jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->resolution = arg2;
 }
@@ -15050,10 +15687,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_resolution_set(void * jarg1, double ja
 
 SWIGEXPORT double SWIGSTDCALL CSharp_mapObj_resolution_get(void * jarg1) {
   double jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (double) ((arg1)->resolution);
   jresult = result; 
   return jresult;
@@ -15061,10 +15698,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_mapObj_resolution_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_defresolution_set(void * jarg1, double jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->defresolution = arg2;
 }
@@ -15072,10 +15709,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_defresolution_set(void * jarg1, double
 
 SWIGEXPORT double SWIGSTDCALL CSharp_mapObj_defresolution_get(void * jarg1) {
   double jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (double) ((arg1)->defresolution);
   jresult = result; 
   return jresult;
@@ -15083,10 +15720,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_mapObj_defresolution_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_shapepath_set(void * jarg1, char * jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->shapepath) free((char*)arg1->shapepath);
@@ -15102,10 +15739,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_shapepath_set(void * jarg1, char * jar
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_shapepath_get(void * jarg1) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (char *) ((arg1)->shapepath);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -15113,10 +15750,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_shapepath_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_mappath_set(void * jarg1, char * jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->mappath) free((char*)arg1->mappath);
@@ -15132,10 +15769,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_mappath_set(void * jarg1, char * jarg2
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_mappath_get(void * jarg1) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (char *) ((arg1)->mappath);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -15143,10 +15780,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_mappath_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_imagecolor_set(void * jarg1, void * jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (colorObj *)jarg2; 
   if (arg1) (arg1)->imagecolor = *arg2;
 }
@@ -15154,10 +15791,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_imagecolor_set(void * jarg1, void * ja
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_imagecolor_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   colorObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (colorObj *)& ((arg1)->imagecolor);
   jresult = (void *)result; 
   return jresult;
@@ -15165,24 +15802,12 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_imagecolor_get(void * jarg1) {
 
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_numoutputformats_get(void * jarg1) {
-  int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
-  int result;
-  
-  arg1 = (mapObj *)jarg1; 
-  result = (int) ((arg1)->numoutputformats);
-  jresult = result; 
-  return jresult;
-}
-
-
-SWIGEXPORT void* SWIGSTDCALL CSharp_mapObj_outputformatlist_get(void * jarg1) {
-  void* jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
-  outputFormatObj **result = 0 ;
+  int jresult ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
+  int result;
   
-  arg1 = (mapObj *)jarg1; 
-  result = (outputFormatObj **) ((arg1)->outputformatlist);
+  arg1 = (struct mapObj *)jarg1; 
+  result = (int) ((arg1)->numoutputformats);
   jresult = result; 
   return jresult;
 }
@@ -15190,10 +15815,10 @@ SWIGEXPORT void* SWIGSTDCALL CSharp_mapObj_outputformatlist_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_outputformat_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   outputFormatObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (outputFormatObj *) ((arg1)->outputformat);
   jresult = (void *)result; 
   return jresult;
@@ -15202,10 +15827,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_outputformat_get(void * jarg1) {
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_imagetype_get(void * jarg1) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (char *) ((arg1)->imagetype);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -15214,10 +15839,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_imagetype_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_reference_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   referenceMapObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (referenceMapObj *)& ((arg1)->reference);
   jresult = (void *)result; 
   return jresult;
@@ -15226,10 +15851,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_reference_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_scalebar_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   scalebarObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (scalebarObj *)& ((arg1)->scalebar);
   jresult = (void *)result; 
   return jresult;
@@ -15238,10 +15863,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_scalebar_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_legend_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   legendObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (legendObj *)& ((arg1)->legend);
   jresult = (void *)result; 
   return jresult;
@@ -15250,10 +15875,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_legend_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_querymap_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   queryMapObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (queryMapObj *)& ((arg1)->querymap);
   jresult = (void *)result; 
   return jresult;
@@ -15262,10 +15887,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_querymap_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_web_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   webObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (webObj *)& ((arg1)->web);
   jresult = (void *)result; 
   return jresult;
@@ -15273,10 +15898,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_web_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_layerorder_set(void * jarg1, void * jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int *arg2 = (int *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int *)jarg2; 
   if (arg1) (arg1)->layerorder = arg2;
 }
@@ -15284,10 +15909,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_layerorder_set(void * jarg1, void * ja
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_layerorder_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int *) ((arg1)->layerorder);
   jresult = (void *)result; 
   return jresult;
@@ -15295,10 +15920,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_layerorder_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_debug_set(void * jarg1, int jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->debug = arg2;
 }
@@ -15306,10 +15931,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_debug_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_debug_get(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (int) ((arg1)->debug);
   jresult = result; 
   return jresult;
@@ -15317,10 +15942,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_debug_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_datapattern_set(void * jarg1, char * jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->datapattern) free((char*)arg1->datapattern);
@@ -15336,10 +15961,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_datapattern_set(void * jarg1, char * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_datapattern_get(void * jarg1) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (char *) ((arg1)->datapattern);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -15347,10 +15972,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_datapattern_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_templatepattern_set(void * jarg1, char * jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->templatepattern) free((char*)arg1->templatepattern);
@@ -15366,10 +15991,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_templatepattern_set(void * jarg1, char
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_templatepattern_get(void * jarg1) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (char *) ((arg1)->templatepattern);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -15378,10 +16003,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_templatepattern_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_configoptions_get(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   hashTableObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   result = (hashTableObj *)& ((arg1)->configoptions);
   jresult = (void *)result; 
   return jresult;
@@ -15391,12 +16016,12 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_configoptions_get(void * jarg1) {
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_mapObj(char * jarg1) {
   void * jresult ;
   char *arg1 = (char *) "" ;
-  mapObj *result = 0 ;
+  struct mapObj *result = 0 ;
   
   arg1 = (char *)jarg1; 
   {
     errorObj *ms_error;
-    result = (mapObj *)new_mapObj(arg1);
+    result = (struct mapObj *)new_mapObj(arg1);
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -15418,9 +16043,9 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_mapObj(char * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_delete_mapObj(void * jarg1) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     delete_mapObj(arg1);
@@ -15444,10 +16069,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_mapObj(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_clone(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   mapObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (mapObj *)mapObj_clone(arg1);
@@ -15473,12 +16098,12 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_clone(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_insertLayer(void * jarg1, void * jarg2, int jarg3) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   layerObj *arg2 = (layerObj *) 0 ;
   int arg3 = (int) -1 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (layerObj *)jarg2; 
   arg3 = (int)jarg3; 
   {
@@ -15506,11 +16131,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_insertLayer(void * jarg1, void * jarg2,
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_removeLayer(void * jarg1, int jarg2) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   layerObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -15537,14 +16162,14 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_removeLayer(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setExtent(void * jarg1, double jarg2, double jarg3, double jarg4, double jarg5) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   double arg3 ;
   double arg4 ;
   double arg5 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (double)jarg2; 
   arg3 = (double)jarg3; 
   arg4 = (double)jarg4; 
@@ -15574,12 +16199,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setExtent(void * jarg1, double jarg2, d
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_offsetExtent(void * jarg1, double jarg2, double jarg3) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   double arg3 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (double)jarg2; 
   arg3 = (double)jarg3; 
   {
@@ -15607,13 +16232,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_offsetExtent(void * jarg1, double jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_scaleExtent(void * jarg1, double jarg2, double jarg3, double jarg4) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   double arg3 ;
   double arg4 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (double)jarg2; 
   arg3 = (double)jarg3; 
   arg4 = (double)jarg4; 
@@ -15642,11 +16267,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_scaleExtent(void * jarg1, double jarg2,
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setCenter(void * jarg1, void * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   pointObj *arg2 = (pointObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (pointObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -15673,12 +16298,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setCenter(void * jarg1, void * jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setSize(void * jarg1, int jarg2, int jarg3) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   int arg3 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   arg3 = (int)jarg3; 
   {
@@ -15706,11 +16331,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setSize(void * jarg1, int jarg2, int ja
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setRotation(void * jarg1, double jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (double)jarg2; 
   {
     errorObj *ms_error;
@@ -15737,11 +16362,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setRotation(void * jarg1, double jarg2)
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_getLayer(void * jarg1, int jarg2) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   layerObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -15768,11 +16393,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_getLayer(void * jarg1, int jarg2) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_getLayerByName(void * jarg1, char * jarg2) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   layerObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -15799,11 +16424,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_getLayerByName(void * jarg1, char *
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_getSymbolByName(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -15829,9 +16454,9 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_getSymbolByName(void * jarg1, char * ja
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_prepareQuery(void * jarg1) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     mapObj_prepareQuery(arg1);
@@ -15855,10 +16480,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_prepareQuery(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_prepareImage(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (imageObj *)mapObj_prepareImage(arg1);
@@ -15883,10 +16508,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_prepareImage(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_setImageType(void * jarg1, char * jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -15910,10 +16535,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_setImageType(void * jarg1, char * jarg
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_selectOutputFormat(void * jarg1, char * jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -15936,11 +16561,42 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_selectOutputFormat(void * jarg1, char
 }
 
 
+SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_getOutputFormat(void * jarg1, int jarg2) {
+  void * jresult ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
+  int arg2 ;
+  outputFormatObj *result = 0 ;
+  
+  arg1 = (struct mapObj *)jarg1; 
+  arg2 = (int)jarg2; 
+  {
+    errorObj *ms_error;
+    result = (outputFormatObj *)mapObj_getOutputFormat(arg1,arg2);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = (void *)result; 
+  return jresult;
+}
+
+
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_setOutputFormat(void * jarg1, void * jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   outputFormatObj *arg2 = (outputFormatObj *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (outputFormatObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -15965,10 +16621,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_setOutputFormat(void * jarg1, void * j
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_draw(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (imageObj *)mapObj_draw(arg1);
@@ -15994,10 +16650,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_draw(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_drawQuery(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (imageObj *)mapObj_drawQuery(arg1);
@@ -16023,10 +16679,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_drawQuery(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_drawLegend(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (imageObj *)mapObj_drawLegend(arg1);
@@ -16052,10 +16708,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_drawLegend(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_drawScalebar(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (imageObj *)mapObj_drawScalebar(arg1);
@@ -16081,10 +16737,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_drawScalebar(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_drawReferenceMap(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (imageObj *)mapObj_drawReferenceMap(arg1);
@@ -16110,11 +16766,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_drawReferenceMap(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_embedScalebar(void * jarg1, void * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *arg2 = (imageObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (imageObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -16141,11 +16797,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_embedScalebar(void * jarg1, void * jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_embedLegend(void * jarg1, void * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *arg2 = (imageObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (imageObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -16172,11 +16828,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_embedLegend(void * jarg1, void * jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_drawLabelCache(void * jarg1, void * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *arg2 = (imageObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (imageObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -16203,11 +16859,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_drawLabelCache(void * jarg1, void * jar
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_getLabel(void * jarg1, int jarg2) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   labelCacheMemberObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -16234,10 +16890,10 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_getLabel(void * jarg1, int jarg2) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_nextLabel(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   labelCacheMemberObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (labelCacheMemberObj *)mapObj_nextLabel(arg1);
@@ -16263,11 +16919,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_nextLabel(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_queryByFilter(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -16294,13 +16950,13 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_queryByFilter(void * jarg1, char * jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_queryByPoint(void * jarg1, void * jarg2, int jarg3, double jarg4) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   pointObj *arg2 = (pointObj *) 0 ;
   int arg3 ;
   double arg4 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (pointObj *)jarg2; 
   arg3 = (int)jarg3; 
   arg4 = (double)jarg4; 
@@ -16329,12 +16985,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_queryByPoint(void * jarg1, void * jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_queryByRect(void * jarg1, void * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   rectObj arg2 ;
   rectObj *argp2 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   argp2 = (rectObj *)jarg2; 
   if (!argp2) {
     SWIG_CSharpSetPendingExceptionArgument(SWIG_CSharpArgumentNullException, "Attempt to dereference null rectObj", 0);
@@ -16366,11 +17022,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_queryByRect(void * jarg1, void * jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_queryByFeatures(void * jarg1, int jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -16397,11 +17053,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_queryByFeatures(void * jarg1, int jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_queryByShape(void * jarg1, void * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   shapeObj *arg2 = (shapeObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (shapeObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -16428,11 +17084,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_queryByShape(void * jarg1, void * jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setWKTProjection(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -16459,10 +17115,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setWKTProjection(void * jarg1, char * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_getProjection(void * jarg1) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)mapObj_getProjection(arg1);
@@ -16489,11 +17145,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_getProjection(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setProjection(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -16520,11 +17176,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setProjection(void * jarg1, char * jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_save(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -16551,12 +17207,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_save(void * jarg1, char * jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_saveQuery(void * jarg1, char * jarg2, int jarg3) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int arg3 = (int) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   arg3 = (int)jarg3; 
   {
@@ -16584,11 +17240,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_saveQuery(void * jarg1, char * jarg2, i
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_loadQuery(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -16614,10 +17270,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_loadQuery(void * jarg1, char * jarg2) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_freeQuery(void * jarg1, int jarg2) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 = (int) -1 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -16642,12 +17298,12 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_freeQuery(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_saveQueryAsGML(void * jarg1, char * jarg2, char * jarg3) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) "GOMF" ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -16675,11 +17331,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_saveQueryAsGML(void * jarg1, char * jar
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_getMetaData(void * jarg1, char * jarg2) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -16706,12 +17362,12 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_getMetaData(void * jarg1, char * jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setMetaData(void * jarg1, char * jarg2, char * jarg3) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -16739,11 +17395,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setMetaData(void * jarg1, char * jarg2,
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_removeMetaData(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -16770,10 +17426,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_removeMetaData(void * jarg1, char * jar
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_getFirstMetaDataKey(void * jarg1) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)mapObj_getFirstMetaDataKey(arg1);
@@ -16799,11 +17455,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_getFirstMetaDataKey(void * jarg1) {
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_getNextMetaDataKey(void * jarg1, char * jarg2) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -16830,11 +17486,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_getNextMetaDataKey(void * jarg1, cha
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setSymbolSet(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -16861,10 +17517,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setSymbolSet(void * jarg1, char * jarg2
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_getNumSymbols(void * jarg1) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (int)mapObj_getNumSymbols(arg1);
@@ -16890,11 +17546,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_getNumSymbols(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setFontSet(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -16921,11 +17577,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setFontSet(void * jarg1, char * jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_saveMapContext(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -16952,12 +17608,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_saveMapContext(void * jarg1, char * jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_loadMapContext(void * jarg1, char * jarg2, int jarg3) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int arg3 = (int) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   arg3 = (int)jarg3; 
   {
@@ -16985,11 +17641,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_loadMapContext(void * jarg1, char * jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_moveLayerUp(void * jarg1, int jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -17016,11 +17672,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_moveLayerUp(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_moveLayerDown(void * jarg1, int jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   {
     errorObj *ms_error;
@@ -17047,10 +17703,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_moveLayerDown(void * jarg1, int jarg2)
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_getLayersDrawingOrder(void * jarg1) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   intarray *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (intarray *)mapObj_getLayersDrawingOrder(arg1);
@@ -17076,11 +17732,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_getLayersDrawingOrder(void * jarg1)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setLayersDrawingOrder(void * jarg1, void * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int *arg2 = (int *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int *)jarg2; 
   {
     errorObj *ms_error;
@@ -17106,11 +17762,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_setLayersDrawingOrder(void * jarg1, voi
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_setConfigOption(void * jarg1, char * jarg2, char * jarg3) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -17136,11 +17792,11 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_setConfigOption(void * jarg1, char * j
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_getConfigOption(void * jarg1, char * jarg2) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -17166,9 +17822,9 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_getConfigOption(void * jarg1, char *
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_applyConfigOptions(void * jarg1) {
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     mapObj_applyConfigOptions(arg1);
@@ -17192,11 +17848,11 @@ SWIGEXPORT void SWIGSTDCALL CSharp_mapObj_applyConfigOptions(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_applySLD(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -17223,11 +17879,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_applySLD(void * jarg1, char * jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_applySLDURL(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -17254,10 +17910,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_applySLDURL(void * jarg1, char * jarg2)
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_generateSLD(void * jarg1) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (char *)mapObj_generateSLD(arg1);
@@ -17284,14 +17940,14 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_generateSLD(void * jarg1) {
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_processTemplate(void * jarg1, int jarg2, void * jarg3, void * jarg4, int jarg5) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   char **arg3 = (char **) 0 ;
   char **arg4 = (char **) 0 ;
   int arg5 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   arg3 = (char **)jarg3; 
   arg4 = (char **)jarg4; 
@@ -17322,13 +17978,13 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_processTemplate(void * jarg1, int ja
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_processLegendTemplate(void * jarg1, void * jarg2, void * jarg3, int jarg4) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char **arg2 = (char **) 0 ;
   char **arg3 = (char **) 0 ;
   int arg4 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char **)jarg2; 
   arg3 = (char **)jarg3; 
   arg4 = (int)jarg4; 
@@ -17358,13 +18014,13 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_processLegendTemplate(void * jarg1,
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_processQueryTemplate(void * jarg1, void * jarg2, void * jarg3, int jarg4) {
   char * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char **arg2 = (char **) 0 ;
   char **arg3 = (char **) 0 ;
   int arg4 ;
   char *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char **)jarg2; 
   arg3 = (char **)jarg3; 
   arg4 = (int)jarg4; 
@@ -17394,11 +18050,11 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_processQueryTemplate(void * jarg1, v
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_getOutputFormatByName(void * jarg1, char * jarg2) {
   void * jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   outputFormatObj *result = 0 ;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -17425,11 +18081,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_mapObj_getOutputFormatByName(void * jarg1,
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_appendOutputFormat(void * jarg1, void * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   outputFormatObj *arg2 = (outputFormatObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (outputFormatObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -17456,11 +18112,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_appendOutputFormat(void * jarg1, void *
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_removeOutputFormat(void * jarg1, char * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -17487,12 +18143,12 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_removeOutputFormat(void * jarg1, char *
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_loadOWSParameters(void * jarg1, void * jarg2, char * jarg3) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   cgiRequestObj *arg2 = (cgiRequestObj *) 0 ;
   char *arg3 = (char *) "1.1.1" ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (cgiRequestObj *)jarg2; 
   arg3 = (char *)jarg3; 
   {
@@ -17520,11 +18176,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_loadOWSParameters(void * jarg1, void *
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_OWSDispatch(void * jarg1, void * jarg2) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   cgiRequestObj *arg2 = (cgiRequestObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (cgiRequestObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -17549,9 +18205,39 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_OWSDispatch(void * jarg1, void * jarg2)
 }
 
 
+SWIGEXPORT char * SWIGSTDCALL CSharp_mapObj_convertToString(void * jarg1) {
+  char * jresult ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
+  char *result = 0 ;
+  
+  arg1 = (struct mapObj *)jarg1; 
+  {
+    errorObj *ms_error;
+    result = (char *)mapObj_convertToString(arg1);
+    ms_error = msGetErrorObj();
+    if (ms_error != NULL && ms_error->code != MS_NOERR) {
+      if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
+        char* msg = msGetErrorString(";"); 
+        if (msg) {
+          SWIG_CSharpException(SWIG_SystemError, msg);
+          free(msg);
+        }
+        else SWIG_CSharpException(SWIG_SystemError, "MapScript unknown error");
+        msResetErrorList();
+        return 0;
+      }
+      msResetErrorList();
+    }
+  }
+  jresult = SWIG_csharp_string_callback((const char *)result); 
+  free(result);
+  return jresult;
+}
+
+
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_zoomPoint(void * jarg1, int jarg2, void * jarg3, int jarg4, int jarg5, void * jarg6, void * jarg7) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   pointObj *arg3 = (pointObj *) 0 ;
   int arg4 ;
@@ -17560,7 +18246,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_zoomPoint(void * jarg1, int jarg2, void
   rectObj *arg7 = (rectObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (int)jarg2; 
   arg3 = (pointObj *)jarg3; 
   arg4 = (int)jarg4; 
@@ -17592,7 +18278,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_zoomPoint(void * jarg1, int jarg2, void
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_zoomRectangle(void * jarg1, void * jarg2, int jarg3, int jarg4, void * jarg5, void * jarg6) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   rectObj *arg2 = (rectObj *) 0 ;
   int arg3 ;
   int arg4 ;
@@ -17600,7 +18286,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_zoomRectangle(void * jarg1, void * jarg
   rectObj *arg6 = (rectObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (rectObj *)jarg2; 
   arg3 = (int)jarg3; 
   arg4 = (int)jarg4; 
@@ -17631,7 +18317,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_zoomRectangle(void * jarg1, void * jarg
 
 SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_zoomScale(void * jarg1, double jarg2, void * jarg3, int jarg4, int jarg5, void * jarg6, void * jarg7) {
   int jresult ;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   pointObj *arg3 = (pointObj *) 0 ;
   int arg4 ;
@@ -17640,7 +18326,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_mapObj_zoomScale(void * jarg1, double jarg2, v
   rectObj *arg7 = (rectObj *) 0 ;
   int result;
   
-  arg1 = (mapObj *)jarg1; 
+  arg1 = (struct mapObj *)jarg1; 
   arg2 = (double)jarg2; 
   arg3 = (pointObj *)jarg3; 
   arg4 = (int)jarg4; 
@@ -21134,7 +21820,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_SHX_BUFFER_PAGE_get() {
   int jresult ;
   int result;
   
-  result = (int) 1024;
+  result = (int)(1024);
   jresult = result; 
   return jresult;
 }
@@ -21144,7 +21830,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHAPEFILE_POINT_get() {
   int jresult ;
   int result;
   
-  result = (int) 1;
+  result = (int)(1);
   jresult = result; 
   return jresult;
 }
@@ -21154,7 +21840,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHAPEFILE_ARC_get() {
   int jresult ;
   int result;
   
-  result = (int) 3;
+  result = (int)(3);
   jresult = result; 
   return jresult;
 }
@@ -21164,7 +21850,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHAPEFILE_POLYGON_get() {
   int jresult ;
   int result;
   
-  result = (int) 5;
+  result = (int)(5);
   jresult = result; 
   return jresult;
 }
@@ -21174,7 +21860,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHAPEFILE_MULTIPOINT_get() {
   int jresult ;
   int result;
   
-  result = (int) 8;
+  result = (int)(8);
   jresult = result; 
   return jresult;
 }
@@ -21184,7 +21870,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHP_POINTZ_get() {
   int jresult ;
   int result;
   
-  result = (int) 11;
+  result = (int)(11);
   jresult = result; 
   return jresult;
 }
@@ -21194,7 +21880,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHP_ARCZ_get() {
   int jresult ;
   int result;
   
-  result = (int) 13;
+  result = (int)(13);
   jresult = result; 
   return jresult;
 }
@@ -21204,7 +21890,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHP_POLYGONZ_get() {
   int jresult ;
   int result;
   
-  result = (int) 15;
+  result = (int)(15);
   jresult = result; 
   return jresult;
 }
@@ -21214,7 +21900,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHP_MULTIPOINTZ_get() {
   int jresult ;
   int result;
   
-  result = (int) 18;
+  result = (int)(18);
   jresult = result; 
   return jresult;
 }
@@ -21224,7 +21910,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHP_POINTM_get() {
   int jresult ;
   int result;
   
-  result = (int) 21;
+  result = (int)(21);
   jresult = result; 
   return jresult;
 }
@@ -21234,7 +21920,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHP_ARCM_get() {
   int jresult ;
   int result;
   
-  result = (int) 23;
+  result = (int)(23);
   jresult = result; 
   return jresult;
 }
@@ -21244,7 +21930,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHP_POLYGONM_get() {
   int jresult ;
   int result;
   
-  result = (int) 25;
+  result = (int)(25);
   jresult = result; 
   return jresult;
 }
@@ -21254,7 +21940,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHP_MULTIPOINTM_get() {
   int jresult ;
   int result;
   
-  result = (int) 28;
+  result = (int)(28);
   jresult = result; 
   return jresult;
 }
@@ -22036,7 +22722,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_wkp_none_get() {
   int jresult ;
   int result;
   
-  result = (int) 0;
+  result = (int)(0);
   jresult = result; 
   return jresult;
 }
@@ -22046,7 +22732,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_wkp_lonlat_get() {
   int jresult ;
   int result;
   
-  result = (int) 1;
+  result = (int)(1);
   jresult = result; 
   return jresult;
 }
@@ -22056,7 +22742,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_wkp_gmerc_get() {
   int jresult ;
   int result;
   
-  result = (int) 2;
+  result = (int)(2);
   jresult = result; 
   return jresult;
 }
@@ -22226,7 +22912,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SYMBOL_ALLOCSIZE_get() {
   int jresult ;
   int result;
   
-  result = (int) 64;
+  result = (int)(64);
   jresult = result; 
   return jresult;
 }
@@ -22236,7 +22922,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_MAXVECTORPOINTS_get() {
   int jresult ;
   int result;
   
-  result = (int) 100;
+  result = (int)(100);
   jresult = result; 
   return jresult;
 }
@@ -22246,7 +22932,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_MAXPATTERNLENGTH_get() {
   int jresult ;
   int result;
   
-  result = (int) 10;
+  result = (int)(10);
   jresult = result; 
   return jresult;
 }
@@ -22256,7 +22942,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_IMAGECACHESIZE_get() {
   int jresult ;
   int result;
   
-  result = (int) 6;
+  result = (int)(6);
   jresult = result; 
   return jresult;
 }
@@ -22507,10 +23193,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_colorObj_toHex(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_name_set(void * jarg1, char * jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->name) free((char*)arg1->name);
@@ -22526,10 +23212,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_name_set(void * jarg1, char * jarg2
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_symbolObj_name_get(void * jarg1) {
   char * jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (char *) ((arg1)->name);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -22537,10 +23223,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_symbolObj_name_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_type_set(void * jarg1, int jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->type = arg2;
 }
@@ -22548,10 +23234,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_type_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_type_get(void * jarg1) {
   int jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (int) ((arg1)->type);
   jresult = result; 
   return jresult;
@@ -22559,10 +23245,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_type_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_inmapfile_set(void * jarg1, int jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->inmapfile = arg2;
 }
@@ -22570,10 +23256,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_inmapfile_set(void * jarg1, int jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_inmapfile_get(void * jarg1) {
   int jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (int) ((arg1)->inmapfile);
   jresult = result; 
   return jresult;
@@ -22581,10 +23267,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_inmapfile_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_sizex_set(void * jarg1, double jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->sizex = arg2;
 }
@@ -22592,10 +23278,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_sizex_set(void * jarg1, double jarg
 
 SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_sizex_get(void * jarg1) {
   double jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (double) ((arg1)->sizex);
   jresult = result; 
   return jresult;
@@ -22603,10 +23289,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_sizex_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_sizey_set(void * jarg1, double jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->sizey = arg2;
 }
@@ -22614,10 +23300,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_sizey_set(void * jarg1, double jarg
 
 SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_sizey_get(void * jarg1) {
   double jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (double) ((arg1)->sizey);
   jresult = result; 
   return jresult;
@@ -22625,10 +23311,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_sizey_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_minx_set(void * jarg1, double jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->minx = arg2;
 }
@@ -22636,10 +23322,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_minx_set(void * jarg1, double jarg2
 
 SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_minx_get(void * jarg1) {
   double jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (double) ((arg1)->minx);
   jresult = result; 
   return jresult;
@@ -22647,10 +23333,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_minx_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_miny_set(void * jarg1, double jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->miny = arg2;
 }
@@ -22658,10 +23344,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_miny_set(void * jarg1, double jarg2
 
 SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_miny_get(void * jarg1) {
   double jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (double) ((arg1)->miny);
   jresult = result; 
   return jresult;
@@ -22669,10 +23355,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_miny_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_maxx_set(void * jarg1, double jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxx = arg2;
 }
@@ -22680,10 +23366,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_maxx_set(void * jarg1, double jarg2
 
 SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_maxx_get(void * jarg1) {
   double jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (double) ((arg1)->maxx);
   jresult = result; 
   return jresult;
@@ -22691,10 +23377,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_maxx_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_maxy_set(void * jarg1, double jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->maxy = arg2;
 }
@@ -22702,10 +23388,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_maxy_set(void * jarg1, double jarg2
 
 SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_maxy_get(void * jarg1) {
   double jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (double) ((arg1)->maxy);
   jresult = result; 
   return jresult;
@@ -22714,10 +23400,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_maxy_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_refcount_get(void * jarg1) {
   int jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (int) ((arg1)->refcount);
   jresult = result; 
   return jresult;
@@ -22726,10 +23412,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_refcount_get(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_numpoints_get(void * jarg1) {
   int jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (int) ((arg1)->numpoints);
   jresult = result; 
   return jresult;
@@ -22737,10 +23423,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_numpoints_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_filled_set(void * jarg1, int jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->filled = arg2;
 }
@@ -22748,10 +23434,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_filled_set(void * jarg1, int jarg2)
 
 SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_filled_get(void * jarg1) {
   int jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (int) ((arg1)->filled);
   jresult = result; 
   return jresult;
@@ -22759,10 +23445,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_filled_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_anchorpoint_x_set(void * jarg1, double jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->anchorpoint_x = arg2;
 }
@@ -22770,10 +23456,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_anchorpoint_x_set(void * jarg1, dou
 
 SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_anchorpoint_x_get(void * jarg1) {
   double jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (double) ((arg1)->anchorpoint_x);
   jresult = result; 
   return jresult;
@@ -22781,10 +23467,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_anchorpoint_x_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_anchorpoint_y_set(void * jarg1, double jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (double)jarg2; 
   if (arg1) (arg1)->anchorpoint_y = arg2;
 }
@@ -22792,10 +23478,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_anchorpoint_y_set(void * jarg1, dou
 
 SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_anchorpoint_y_get(void * jarg1) {
   double jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (double) ((arg1)->anchorpoint_y);
   jresult = result; 
   return jresult;
@@ -22804,10 +23490,10 @@ SWIGEXPORT double SWIGSTDCALL CSharp_symbolObj_anchorpoint_y_get(void * jarg1) {
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_symbolObj_imagepath_get(void * jarg1) {
   char * jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (char *) ((arg1)->imagepath);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -22815,10 +23501,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_symbolObj_imagepath_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_transparent_set(void * jarg1, int jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->transparent = arg2;
 }
@@ -22826,10 +23512,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_transparent_set(void * jarg1, int j
 
 SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_transparent_get(void * jarg1) {
   int jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (int) ((arg1)->transparent);
   jresult = result; 
   return jresult;
@@ -22837,10 +23523,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_transparent_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_transparentcolor_set(void * jarg1, int jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->transparentcolor = arg2;
 }
@@ -22848,10 +23534,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_transparentcolor_set(void * jarg1,
 
 SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_transparentcolor_get(void * jarg1) {
   int jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (int) ((arg1)->transparentcolor);
   jresult = result; 
   return jresult;
@@ -22859,10 +23545,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_transparentcolor_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_character_set(void * jarg1, char * jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->character) free((char*)arg1->character);
@@ -22878,10 +23564,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_character_set(void * jarg1, char *
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_symbolObj_character_get(void * jarg1) {
   char * jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (char *) ((arg1)->character);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -22889,10 +23575,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_symbolObj_character_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_antialias_set(void * jarg1, int jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->antialias = arg2;
 }
@@ -22900,10 +23586,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_antialias_set(void * jarg1, int jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_antialias_get(void * jarg1) {
   int jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (int) ((arg1)->antialias);
   jresult = result; 
   return jresult;
@@ -22911,10 +23597,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_antialias_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_font_set(void * jarg1, char * jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *arg2 = (char *) 0 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if (arg1->font) free((char*)arg1->font);
@@ -22930,57 +23616,27 @@ SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_font_set(void * jarg1, char * jarg2
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_symbolObj_font_get(void * jarg1) {
   char * jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   result = (char *) ((arg1)->font);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
-SWIGEXPORT void SWIGSTDCALL CSharp_symbolObj_svg_text_set(void * jarg1, char * jarg2) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
-  char *arg2 = (char *) 0 ;
-  
-  arg1 = (symbolObj *)jarg1; 
-  arg2 = (char *)jarg2; 
-  {
-    if (arg1->svg_text) free((char*)arg1->svg_text);
-    if (arg2) {
-      arg1->svg_text = (char *) malloc(strlen(arg2)+1);
-      strcpy((char*)arg1->svg_text,arg2);
-    } else {
-      arg1->svg_text = 0;
-    }
-  }
-}
-
-
-SWIGEXPORT char * SWIGSTDCALL CSharp_symbolObj_svg_text_get(void * jarg1) {
-  char * jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
-  char *result = 0 ;
-  
-  arg1 = (symbolObj *)jarg1; 
-  result = (char *) ((arg1)->svg_text);
-  jresult = SWIG_csharp_string_callback((const char *)result); 
-  return jresult;
-}
-
-
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_symbolObj(char * jarg1, char * jarg2) {
   void * jresult ;
   char *arg1 = (char *) 0 ;
   char *arg2 = (char *) NULL ;
-  symbolObj *result = 0 ;
+  struct symbolObj *result = 0 ;
   
   arg1 = (char *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
-    result = (symbolObj *)new_symbolObj(arg1,(char const *)arg2);
+    result = (struct symbolObj *)new_symbolObj(arg1,(char const *)arg2);
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -23002,9 +23658,9 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_symbolObj(char * jarg1, char * jarg2) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_delete_symbolObj(void * jarg1) {
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   {
     errorObj *ms_error;
     delete_symbolObj(arg1);
@@ -23028,11 +23684,11 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_symbolObj(void * jarg1) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_setImagepath(void * jarg1, char * jarg2) {
   int jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     errorObj *ms_error;
@@ -23059,11 +23715,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_setImagepath(void * jarg1, char * ja
 
 SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_setPoints(void * jarg1, void * jarg2) {
   int jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   lineObj *arg2 = (lineObj *) 0 ;
   int result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (lineObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -23090,10 +23746,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_setPoints(void * jarg1, void * jarg2
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_symbolObj_getPoints(void * jarg1) {
   void * jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   lineObj *result = 0 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (lineObj *)symbolObj_getPoints(arg1);
@@ -23119,11 +23775,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_symbolObj_getPoints(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_symbolObj_getImage(void * jarg1, void * jarg2) {
   void * jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   outputFormatObj *arg2 = (outputFormatObj *) 0 ;
   imageObj *result = 0 ;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (outputFormatObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -23150,11 +23806,11 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_symbolObj_getImage(void * jarg1, void * jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_symbolObj_setImage(void * jarg1, void * jarg2) {
   int jresult ;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   imageObj *arg2 = (imageObj *) 0 ;
   int result;
   
-  arg1 = (symbolObj *)jarg1; 
+  arg1 = (struct symbolObj *)jarg1; 
   arg2 = (imageObj *)jarg2; 
   {
     errorObj *ms_error;
@@ -23183,7 +23839,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_NOERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 0;
+  result = (int)(0);
   jresult = result; 
   return jresult;
 }
@@ -23193,7 +23849,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_IOERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 1;
+  result = (int)(1);
   jresult = result; 
   return jresult;
 }
@@ -23203,7 +23859,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_MEMERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 2;
+  result = (int)(2);
   jresult = result; 
   return jresult;
 }
@@ -23213,7 +23869,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_TYPEERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 3;
+  result = (int)(3);
   jresult = result; 
   return jresult;
 }
@@ -23223,7 +23879,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SYMERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 4;
+  result = (int)(4);
   jresult = result; 
   return jresult;
 }
@@ -23233,7 +23889,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_REGEXERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 5;
+  result = (int)(5);
   jresult = result; 
   return jresult;
 }
@@ -23243,7 +23899,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_TTFERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 6;
+  result = (int)(6);
   jresult = result; 
   return jresult;
 }
@@ -23253,7 +23909,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_DBFERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 7;
+  result = (int)(7);
   jresult = result; 
   return jresult;
 }
@@ -23263,7 +23919,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_GDERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 8;
+  result = (int)(8);
   jresult = result; 
   return jresult;
 }
@@ -23273,7 +23929,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_IDENTERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 9;
+  result = (int)(9);
   jresult = result; 
   return jresult;
 }
@@ -23283,7 +23939,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_EOFERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 10;
+  result = (int)(10);
   jresult = result; 
   return jresult;
 }
@@ -23293,7 +23949,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_PROJERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 11;
+  result = (int)(11);
   jresult = result; 
   return jresult;
 }
@@ -23303,7 +23959,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_MISCERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 12;
+  result = (int)(12);
   jresult = result; 
   return jresult;
 }
@@ -23313,7 +23969,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_CGIERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 13;
+  result = (int)(13);
   jresult = result; 
   return jresult;
 }
@@ -23323,7 +23979,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_WEBERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 14;
+  result = (int)(14);
   jresult = result; 
   return jresult;
 }
@@ -23333,7 +23989,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_IMGERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 15;
+  result = (int)(15);
   jresult = result; 
   return jresult;
 }
@@ -23343,7 +23999,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_HASHERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 16;
+  result = (int)(16);
   jresult = result; 
   return jresult;
 }
@@ -23353,7 +24009,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_JOINERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 17;
+  result = (int)(17);
   jresult = result; 
   return jresult;
 }
@@ -23363,7 +24019,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_NOTFOUND_get() {
   int jresult ;
   int result;
   
-  result = (int) 18;
+  result = (int)(18);
   jresult = result; 
   return jresult;
 }
@@ -23373,7 +24029,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SHPERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 19;
+  result = (int)(19);
   jresult = result; 
   return jresult;
 }
@@ -23383,7 +24039,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_PARSEERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 20;
+  result = (int)(20);
   jresult = result; 
   return jresult;
 }
@@ -23393,7 +24049,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SDEERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 21;
+  result = (int)(21);
   jresult = result; 
   return jresult;
 }
@@ -23403,7 +24059,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_OGRERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 22;
+  result = (int)(22);
   jresult = result; 
   return jresult;
 }
@@ -23413,7 +24069,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_QUERYERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 23;
+  result = (int)(23);
   jresult = result; 
   return jresult;
 }
@@ -23423,7 +24079,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_WMSERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 24;
+  result = (int)(24);
   jresult = result; 
   return jresult;
 }
@@ -23433,7 +24089,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_WMSCONNERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 25;
+  result = (int)(25);
   jresult = result; 
   return jresult;
 }
@@ -23443,7 +24099,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_ORACLESPATIALERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 26;
+  result = (int)(26);
   jresult = result; 
   return jresult;
 }
@@ -23453,7 +24109,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_WFSERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 27;
+  result = (int)(27);
   jresult = result; 
   return jresult;
 }
@@ -23463,7 +24119,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_WFSCONNERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 28;
+  result = (int)(28);
   jresult = result; 
   return jresult;
 }
@@ -23473,7 +24129,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_MAPCONTEXTERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 29;
+  result = (int)(29);
   jresult = result; 
   return jresult;
 }
@@ -23483,7 +24139,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_HTTPERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 30;
+  result = (int)(30);
   jresult = result; 
   return jresult;
 }
@@ -23493,7 +24149,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_CHILDERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 31;
+  result = (int)(31);
   jresult = result; 
   return jresult;
 }
@@ -23503,7 +24159,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_WCSERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 32;
+  result = (int)(32);
   jresult = result; 
   return jresult;
 }
@@ -23513,7 +24169,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_GEOSERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 33;
+  result = (int)(33);
   jresult = result; 
   return jresult;
 }
@@ -23523,7 +24179,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RECTERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 34;
+  result = (int)(34);
   jresult = result; 
   return jresult;
 }
@@ -23533,7 +24189,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_TIMEERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 35;
+  result = (int)(35);
   jresult = result; 
   return jresult;
 }
@@ -23543,7 +24199,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_GMLERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 36;
+  result = (int)(36);
   jresult = result; 
   return jresult;
 }
@@ -23553,7 +24209,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_SOSERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 37;
+  result = (int)(37);
   jresult = result; 
   return jresult;
 }
@@ -23563,7 +24219,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_NULLPARENTERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 38;
+  result = (int)(38);
   jresult = result; 
   return jresult;
 }
@@ -23573,7 +24229,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_AGGERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 39;
+  result = (int)(39);
   jresult = result; 
   return jresult;
 }
@@ -23583,7 +24239,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_OWSERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 40;
+  result = (int)(40);
   jresult = result; 
   return jresult;
 }
@@ -23593,7 +24249,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_OGLERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 42;
+  result = (int)(42);
   jresult = result; 
   return jresult;
 }
@@ -23603,7 +24259,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_RENDERERERR_get() {
   int jresult ;
   int result;
   
-  result = (int) 43;
+  result = (int)(43);
   jresult = result; 
   return jresult;
 }
@@ -23613,7 +24269,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_NUMERRORCODES_get() {
   int jresult ;
   int result;
   
-  result = (int) 44;
+  result = (int)(44);
   jresult = result; 
   return jresult;
 }
@@ -23623,7 +24279,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MESSAGELENGTH_get() {
   int jresult ;
   int result;
   
-  result = (int) 2048;
+  result = (int)(2048);
   jresult = result; 
   return jresult;
 }
@@ -23633,7 +24289,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_ROUTINELENGTH_get() {
   int jresult ;
   int result;
   
-  result = (int) 64;
+  result = (int)(64);
   jresult = result; 
   return jresult;
 }
@@ -23643,17 +24299,17 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_MS_ERROR_LANGUAGE_get() {
   char * jresult ;
   char *result = 0 ;
   
-  result = (char *) "en-US";
+  result = (char *)("en-US");
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
 }
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_errorObj_code_set(void * jarg1, int jarg2) {
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   int arg2 ;
   
-  arg1 = (errorObj *)jarg1; 
+  arg1 = (struct errorObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->code = arg2;
 }
@@ -23661,10 +24317,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_errorObj_code_set(void * jarg1, int jarg2) {
 
 SWIGEXPORT int SWIGSTDCALL CSharp_errorObj_code_get(void * jarg1) {
   int jresult ;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   int result;
   
-  arg1 = (errorObj *)jarg1; 
+  arg1 = (struct errorObj *)jarg1; 
   result = (int) ((arg1)->code);
   jresult = result; 
   return jresult;
@@ -23672,10 +24328,10 @@ SWIGEXPORT int SWIGSTDCALL CSharp_errorObj_code_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_errorObj_routine_set(void * jarg1, char * jarg2) {
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   char *arg2 ;
   
-  arg1 = (errorObj *)jarg1; 
+  arg1 = (struct errorObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if(arg2) {
@@ -23690,10 +24346,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_errorObj_routine_set(void * jarg1, char * jar
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_errorObj_routine_get(void * jarg1) {
   char * jresult ;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (errorObj *)jarg1; 
+  arg1 = (struct errorObj *)jarg1; 
   result = (char *)(char *) ((arg1)->routine);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -23701,10 +24357,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_errorObj_routine_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_errorObj_message_set(void * jarg1, char * jarg2) {
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   char *arg2 ;
   
-  arg1 = (errorObj *)jarg1; 
+  arg1 = (struct errorObj *)jarg1; 
   arg2 = (char *)jarg2; 
   {
     if(arg2) {
@@ -23719,10 +24375,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_errorObj_message_set(void * jarg1, char * jar
 
 SWIGEXPORT char * SWIGSTDCALL CSharp_errorObj_message_get(void * jarg1) {
   char * jresult ;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   char *result = 0 ;
   
-  arg1 = (errorObj *)jarg1; 
+  arg1 = (struct errorObj *)jarg1; 
   result = (char *)(char *) ((arg1)->message);
   jresult = SWIG_csharp_string_callback((const char *)result); 
   return jresult;
@@ -23730,10 +24386,10 @@ SWIGEXPORT char * SWIGSTDCALL CSharp_errorObj_message_get(void * jarg1) {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_errorObj_isreported_set(void * jarg1, int jarg2) {
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   int arg2 ;
   
-  arg1 = (errorObj *)jarg1; 
+  arg1 = (struct errorObj *)jarg1; 
   arg2 = (int)jarg2; 
   if (arg1) (arg1)->isreported = arg2;
 }
@@ -23741,10 +24397,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_errorObj_isreported_set(void * jarg1, int jar
 
 SWIGEXPORT int SWIGSTDCALL CSharp_errorObj_isreported_get(void * jarg1) {
   int jresult ;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   int result;
   
-  arg1 = (errorObj *)jarg1; 
+  arg1 = (struct errorObj *)jarg1; 
   result = (int) ((arg1)->isreported);
   jresult = result; 
   return jresult;
@@ -23753,11 +24409,11 @@ SWIGEXPORT int SWIGSTDCALL CSharp_errorObj_isreported_get(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_new_errorObj() {
   void * jresult ;
-  errorObj *result = 0 ;
+  struct errorObj *result = 0 ;
   
   {
     errorObj *ms_error;
-    result = (errorObj *)new_errorObj();
+    result = (struct errorObj *)new_errorObj();
     ms_error = msGetErrorObj();
     if (ms_error != NULL && ms_error->code != MS_NOERR) {
       if (ms_error->code != MS_NOTFOUND && ms_error->code != -1) {
@@ -23779,9 +24435,9 @@ SWIGEXPORT void * SWIGSTDCALL CSharp_new_errorObj() {
 
 
 SWIGEXPORT void SWIGSTDCALL CSharp_delete_errorObj(void * jarg1) {
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   
-  arg1 = (errorObj *)jarg1; 
+  arg1 = (struct errorObj *)jarg1; 
   {
     errorObj *ms_error;
     delete_errorObj(arg1);
@@ -23805,10 +24461,10 @@ SWIGEXPORT void SWIGSTDCALL CSharp_delete_errorObj(void * jarg1) {
 
 SWIGEXPORT void * SWIGSTDCALL CSharp_errorObj_next(void * jarg1) {
   void * jresult ;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   errorObj *result = 0 ;
   
-  arg1 = (errorObj *)jarg1; 
+  arg1 = (struct errorObj *)jarg1; 
   {
     errorObj *ms_error;
     result = (errorObj *)errorObj_next(arg1);
@@ -23968,7 +24624,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_HASHSIZE_get() {
   int jresult ;
   int result;
   
-  result = (int) 41;
+  result = (int)(41);
   jresult = result; 
   return jresult;
 }
@@ -24195,7 +24851,7 @@ SWIGEXPORT int SWIGSTDCALL CSharp_MS_DEFAULT_CGI_PARAMS_get() {
   int jresult ;
   int result;
   
-  result = (int) 100;
+  result = (int)(100);
   jresult = result; 
   return jresult;
 }
diff --git a/mapscript/csharp/markerCacheMemberObj.cs b/mapscript/csharp/markerCacheMemberObj.cs
index 54984f3..c5dd77b 100644
--- a/mapscript/csharp/markerCacheMemberObj.cs
+++ b/mapscript/csharp/markerCacheMemberObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class markerCacheMemberObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class markerCacheMemberObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~markerCacheMemberObj() {
     Dispose();
   }
@@ -88,6 +90,7 @@ public class markerCacheMemberObj : IDisposable {
   }
 
   public shapeObj poly {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.markerCacheMemberObj_poly_get(swigCPtr);
       shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, false, ThisOwn_false());
diff --git a/mapscript/csharp/outputFormatObj.cs b/mapscript/csharp/outputFormatObj.cs
index 7ff3107..96f26e2 100644
--- a/mapscript/csharp/outputFormatObj.cs
+++ b/mapscript/csharp/outputFormatObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class outputFormatObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class outputFormatObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~outputFormatObj() {
     Dispose();
   }
@@ -79,6 +81,14 @@ public class outputFormatObj : IDisposable {
     return swigCPtr.Handle.GetHashCode();
   }
 
+  public int numformatoptions {
+    get {
+      int ret = mapscriptPINVOKE.outputFormatObj_numformatoptions_get(swigCPtr);
+      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+      return ret;
+    } 
+  }
+
   public string name {
     set {
       mapscriptPINVOKE.outputFormatObj_name_set(swigCPtr, value);
@@ -175,52 +185,6 @@ public class outputFormatObj : IDisposable {
     } 
   }
 
-  public int numformatoptions {
-    set {
-      mapscriptPINVOKE.outputFormatObj_numformatoptions_set(swigCPtr, value);
-      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
-    } 
-    get {
-      int ret = mapscriptPINVOKE.outputFormatObj_numformatoptions_get(swigCPtr);
-      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
-      return ret;
-    } 
-  }
-
-  public string[] formatoptions {
-    set {
-      
-      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
-	  throw new System.NotSupportedException("Setting string arrays is not supported now.");
-    } 
-
-    get {
-        IntPtr cPtr = mapscriptPINVOKE.outputFormatObj_formatoptions_get(swigCPtr);
-        IntPtr objPtr;
-	    string[] ret = new string[this.numformatoptions];
-        for(int cx = 0; cx < this.numformatoptions; cx++) {
-            objPtr = System.Runtime.InteropServices.Marshal.ReadIntPtr(cPtr, cx * System.Runtime.InteropServices.Marshal.SizeOf(typeof(IntPtr)));
-            ret[cx]= (objPtr == IntPtr.Zero) ? null : System.Runtime.InteropServices.Marshal.PtrToStringAnsi(objPtr);
-        }
-        
-      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
-        return ret;
-    }
-
-  }
-
-  public int refcount {
-    set {
-      mapscriptPINVOKE.outputFormatObj_refcount_set(swigCPtr, value);
-      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
-    } 
-    get {
-      int ret = mapscriptPINVOKE.outputFormatObj_refcount_get(swigCPtr);
-      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
-      return ret;
-    } 
-  }
-
   public int inmapfile {
     set {
       mapscriptPINVOKE.outputFormatObj_inmapfile_set(swigCPtr, value);
@@ -264,6 +228,12 @@ public class outputFormatObj : IDisposable {
     return ret;
   }
 
+  public string getOptionAt(int i) {
+    string ret = mapscriptPINVOKE.outputFormatObj_getOptionAt(swigCPtr, i);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public void attachDevice(IntPtr device) {
     mapscriptPINVOKE.outputFormatObj_attachDevice(swigCPtr, device);
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/pointObj.cs b/mapscript/csharp/pointObj.cs
index 67e1937..14fea12 100644
--- a/mapscript/csharp/pointObj.cs
+++ b/mapscript/csharp/pointObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class pointObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class pointObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~pointObj() {
     Dispose();
   }
@@ -162,6 +164,7 @@ public class pointObj : IDisposable {
   }
 
   public shapeObj toShape() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.pointObj_toShape(swigCPtr);
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/projectionObj.cs b/mapscript/csharp/projectionObj.cs
index e5d3ed2..bb71765 100644
--- a/mapscript/csharp/projectionObj.cs
+++ b/mapscript/csharp/projectionObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class projectionObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class projectionObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~projectionObj() {
     Dispose();
   }
diff --git a/mapscript/csharp/queryMapObj.cs b/mapscript/csharp/queryMapObj.cs
index 327091b..1a79210 100644
--- a/mapscript/csharp/queryMapObj.cs
+++ b/mapscript/csharp/queryMapObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class queryMapObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class queryMapObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~queryMapObj() {
     Dispose();
   }
@@ -132,6 +134,7 @@ public class queryMapObj : IDisposable {
       mapscriptPINVOKE.queryMapObj_color_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.queryMapObj_color_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -146,6 +149,12 @@ public class queryMapObj : IDisposable {
     return ret;
   }
 
+  public string convertToString() {
+    string ret = mapscriptPINVOKE.queryMapObj_convertToString(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public queryMapObj() : this(mapscriptPINVOKE.new_queryMapObj(), true, null) {
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
   }
diff --git a/mapscript/csharp/rectObj.cs b/mapscript/csharp/rectObj.cs
index 70efd76..1df813e 100644
--- a/mapscript/csharp/rectObj.cs
+++ b/mapscript/csharp/rectObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class rectObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class rectObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~rectObj() {
     Dispose();
   }
@@ -150,6 +152,7 @@ public class rectObj : IDisposable {
   }
 
   public pointObj getCenter() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.rectObj_getCenter(swigCPtr);
     pointObj ret = (cPtr == IntPtr.Zero) ? null : new pointObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -157,6 +160,7 @@ public class rectObj : IDisposable {
   }
 
   public shapeObj toPolygon() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.rectObj_toPolygon(swigCPtr);
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/referenceMapObj.cs b/mapscript/csharp/referenceMapObj.cs
index 9370639..10420ce 100644
--- a/mapscript/csharp/referenceMapObj.cs
+++ b/mapscript/csharp/referenceMapObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class referenceMapObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class referenceMapObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~referenceMapObj() {
     Dispose();
   }
@@ -84,6 +86,7 @@ public class referenceMapObj : IDisposable {
       mapscriptPINVOKE.referenceMapObj_extent_set(swigCPtr, rectObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.referenceMapObj_extent_get(swigCPtr);
       rectObj ret = (cPtr == IntPtr.Zero) ? null : new rectObj(cPtr, false, ThisOwn_false());
@@ -121,6 +124,7 @@ public class referenceMapObj : IDisposable {
       mapscriptPINVOKE.referenceMapObj_color_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.referenceMapObj_color_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -134,6 +138,7 @@ public class referenceMapObj : IDisposable {
       mapscriptPINVOKE.referenceMapObj_outlinecolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.referenceMapObj_outlinecolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -227,6 +232,7 @@ public class referenceMapObj : IDisposable {
   }
 
   public mapObj map {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.referenceMapObj_map_get(swigCPtr);
       mapObj ret = (cPtr == IntPtr.Zero) ? null : new mapObj(cPtr, false, ThisOwn_false());
@@ -241,6 +247,12 @@ public class referenceMapObj : IDisposable {
     return ret;
   }
 
+  public string convertToString() {
+    string ret = mapscriptPINVOKE.referenceMapObj_convertToString(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public referenceMapObj() : this(mapscriptPINVOKE.new_referenceMapObj(), true, null) {
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
   }
diff --git a/mapscript/csharp/resultCacheObj.cs b/mapscript/csharp/resultCacheObj.cs
index bc0b88b..547393c 100644
--- a/mapscript/csharp/resultCacheObj.cs
+++ b/mapscript/csharp/resultCacheObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class resultCacheObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class resultCacheObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~resultCacheObj() {
     Dispose();
   }
@@ -88,6 +90,7 @@ public class resultCacheObj : IDisposable {
   }
 
   public rectObj bounds {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.resultCacheObj_bounds_get(swigCPtr);
       rectObj ret = (cPtr == IntPtr.Zero) ? null : new rectObj(cPtr, false, ThisOwn_false());
@@ -109,6 +112,7 @@ public class resultCacheObj : IDisposable {
   }
 
   public resultObj getResult(int i) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.resultCacheObj_getResult(swigCPtr, i);
     resultObj ret = (cPtr == IntPtr.Zero) ? null : new resultObj(cPtr, false, ThisOwn_false());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/resultObj.cs b/mapscript/csharp/resultObj.cs
index e1ebac0..4acbd86 100644
--- a/mapscript/csharp/resultObj.cs
+++ b/mapscript/csharp/resultObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class resultObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class resultObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~resultObj() {
     Dispose();
   }
diff --git a/mapscript/csharp/labelLeaderObj.cs b/mapscript/csharp/scaleTokenEntryObj.cs
similarity index 64%
copy from mapscript/csharp/labelLeaderObj.cs
copy to mapscript/csharp/scaleTokenEntryObj.cs
index 034c7b6..4b17951 100644
--- a/mapscript/csharp/labelLeaderObj.cs
+++ b/mapscript/csharp/scaleTokenEntryObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -10,7 +10,8 @@
 using System;
 using System.Runtime.InteropServices;
 
-public class labelLeaderObj : IDisposable {
+public class scaleTokenEntryObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -18,16 +19,16 @@ public class labelLeaderObj : IDisposable {
   protected static object ThisOwn_true() { return null; }
   protected object ThisOwn_false() { return this; }
 
-  internal labelLeaderObj(IntPtr cPtr, bool cMemoryOwn, object parent) {
+  internal scaleTokenEntryObj(IntPtr cPtr, bool cMemoryOwn, object parent) {
     swigCMemOwn = cMemoryOwn;
     swigParentRef = parent;
     swigCPtr = new HandleRef(this, cPtr);
   }
 
-  internal static HandleRef getCPtr(labelLeaderObj obj) {
+  internal static HandleRef getCPtr(scaleTokenEntryObj obj) {
     return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
   }
-  internal static HandleRef getCPtrAndDisown(labelLeaderObj obj, object parent) {
+  internal static HandleRef getCPtrAndDisown(scaleTokenEntryObj obj, object parent) {
     if (obj != null)
     {
       obj.swigCMemOwn = false;
@@ -39,7 +40,7 @@ public class labelLeaderObj : IDisposable {
       return new HandleRef(null, IntPtr.Zero);
     }
   }
-  internal static HandleRef getCPtrAndSetReference(labelLeaderObj obj, object parent) {
+  internal static HandleRef getCPtrAndSetReference(scaleTokenEntryObj obj, object parent) {
     if (obj != null)
     {
       obj.swigParentRef = parent;
@@ -51,7 +52,8 @@ public class labelLeaderObj : IDisposable {
     }
   }
 
-  ~labelLeaderObj() {
+  /* %typemap(csfinalize) SWIGTYPE */
+  ~scaleTokenEntryObj() {
     Dispose();
   }
 
@@ -59,7 +61,7 @@ public class labelLeaderObj : IDisposable {
   lock(this) {
       if(swigCPtr.Handle != IntPtr.Zero && swigCMemOwn) {
         swigCMemOwn = false;
-        mapscriptPINVOKE.delete_labelLeaderObj(swigCPtr);
+        mapscriptPINVOKE.delete_scaleTokenEntryObj(swigCPtr);
       }
       swigCPtr = new HandleRef(null, IntPtr.Zero);
       swigParentRef = null;
@@ -72,46 +74,50 @@ public class labelLeaderObj : IDisposable {
         return false;
     if (this.GetType() != obj.GetType())
         return false;
-    return swigCPtr.Handle.Equals(labelLeaderObj.getCPtr((labelLeaderObj)obj).Handle);
+    return swigCPtr.Handle.Equals(scaleTokenEntryObj.getCPtr((scaleTokenEntryObj)obj).Handle);
   }
 
   public override int GetHashCode() {
     return swigCPtr.Handle.GetHashCode();
   }
 
-  public int maxdistance {
+  public double minscale {
     set {
-      mapscriptPINVOKE.labelLeaderObj_maxdistance_set(swigCPtr, value);
+      mapscriptPINVOKE.scaleTokenEntryObj_minscale_set(swigCPtr, value);
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
     get {
-      int ret = mapscriptPINVOKE.labelLeaderObj_maxdistance_get(swigCPtr);
+      double ret = mapscriptPINVOKE.scaleTokenEntryObj_minscale_get(swigCPtr);
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
       return ret;
     } 
   }
 
-  public int gridstep {
+  public double maxscale {
     set {
-      mapscriptPINVOKE.labelLeaderObj_gridstep_set(swigCPtr, value);
+      mapscriptPINVOKE.scaleTokenEntryObj_maxscale_set(swigCPtr, value);
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
     get {
-      int ret = mapscriptPINVOKE.labelLeaderObj_gridstep_get(swigCPtr);
+      double ret = mapscriptPINVOKE.scaleTokenEntryObj_maxscale_get(swigCPtr);
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
       return ret;
     } 
   }
 
-  public int numstyles {
+  public string value {
+    set {
+      mapscriptPINVOKE.scaleTokenEntryObj_value_set(swigCPtr, value);
+      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    } 
     get {
-      int ret = mapscriptPINVOKE.labelLeaderObj_numstyles_get(swigCPtr);
+      string ret = mapscriptPINVOKE.scaleTokenEntryObj_value_get(swigCPtr);
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
       return ret;
     } 
   }
 
-  public labelLeaderObj() : this(mapscriptPINVOKE.new_labelLeaderObj(), true, null) {
+  public scaleTokenEntryObj() : this(mapscriptPINVOKE.new_scaleTokenEntryObj(), true, null) {
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
   }
 
diff --git a/mapscript/csharp/labelLeaderObj.cs b/mapscript/csharp/scaleTokenObj.cs
similarity index 62%
copy from mapscript/csharp/labelLeaderObj.cs
copy to mapscript/csharp/scaleTokenObj.cs
index 034c7b6..dc7ae71 100644
--- a/mapscript/csharp/labelLeaderObj.cs
+++ b/mapscript/csharp/scaleTokenObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -10,7 +10,8 @@
 using System;
 using System.Runtime.InteropServices;
 
-public class labelLeaderObj : IDisposable {
+public class scaleTokenObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -18,16 +19,16 @@ public class labelLeaderObj : IDisposable {
   protected static object ThisOwn_true() { return null; }
   protected object ThisOwn_false() { return this; }
 
-  internal labelLeaderObj(IntPtr cPtr, bool cMemoryOwn, object parent) {
+  internal scaleTokenObj(IntPtr cPtr, bool cMemoryOwn, object parent) {
     swigCMemOwn = cMemoryOwn;
     swigParentRef = parent;
     swigCPtr = new HandleRef(this, cPtr);
   }
 
-  internal static HandleRef getCPtr(labelLeaderObj obj) {
+  internal static HandleRef getCPtr(scaleTokenObj obj) {
     return (obj == null) ? new HandleRef(null, IntPtr.Zero) : obj.swigCPtr;
   }
-  internal static HandleRef getCPtrAndDisown(labelLeaderObj obj, object parent) {
+  internal static HandleRef getCPtrAndDisown(scaleTokenObj obj, object parent) {
     if (obj != null)
     {
       obj.swigCMemOwn = false;
@@ -39,7 +40,7 @@ public class labelLeaderObj : IDisposable {
       return new HandleRef(null, IntPtr.Zero);
     }
   }
-  internal static HandleRef getCPtrAndSetReference(labelLeaderObj obj, object parent) {
+  internal static HandleRef getCPtrAndSetReference(scaleTokenObj obj, object parent) {
     if (obj != null)
     {
       obj.swigParentRef = parent;
@@ -51,7 +52,8 @@ public class labelLeaderObj : IDisposable {
     }
   }
 
-  ~labelLeaderObj() {
+  /* %typemap(csfinalize) SWIGTYPE */
+  ~scaleTokenObj() {
     Dispose();
   }
 
@@ -59,7 +61,7 @@ public class labelLeaderObj : IDisposable {
   lock(this) {
       if(swigCPtr.Handle != IntPtr.Zero && swigCMemOwn) {
         swigCMemOwn = false;
-        mapscriptPINVOKE.delete_labelLeaderObj(swigCPtr);
+        mapscriptPINVOKE.delete_scaleTokenObj(swigCPtr);
       }
       swigCPtr = new HandleRef(null, IntPtr.Zero);
       swigParentRef = null;
@@ -72,46 +74,52 @@ public class labelLeaderObj : IDisposable {
         return false;
     if (this.GetType() != obj.GetType())
         return false;
-    return swigCPtr.Handle.Equals(labelLeaderObj.getCPtr((labelLeaderObj)obj).Handle);
+    return swigCPtr.Handle.Equals(scaleTokenObj.getCPtr((scaleTokenObj)obj).Handle);
   }
 
   public override int GetHashCode() {
     return swigCPtr.Handle.GetHashCode();
   }
 
-  public int maxdistance {
+  public string name {
     set {
-      mapscriptPINVOKE.labelLeaderObj_maxdistance_set(swigCPtr, value);
+      mapscriptPINVOKE.scaleTokenObj_name_set(swigCPtr, value);
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
     get {
-      int ret = mapscriptPINVOKE.labelLeaderObj_maxdistance_get(swigCPtr);
+      string ret = mapscriptPINVOKE.scaleTokenObj_name_get(swigCPtr);
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
       return ret;
     } 
   }
 
-  public int gridstep {
+  public int n_entries {
     set {
-      mapscriptPINVOKE.labelLeaderObj_gridstep_set(swigCPtr, value);
+      mapscriptPINVOKE.scaleTokenObj_n_entries_set(swigCPtr, value);
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
     get {
-      int ret = mapscriptPINVOKE.labelLeaderObj_gridstep_get(swigCPtr);
+      int ret = mapscriptPINVOKE.scaleTokenObj_n_entries_get(swigCPtr);
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
       return ret;
     } 
   }
 
-  public int numstyles {
+  public scaleTokenEntryObj tokens {
+    set {
+      mapscriptPINVOKE.scaleTokenObj_tokens_set(swigCPtr, scaleTokenEntryObj.getCPtr(value));
+      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
-      int ret = mapscriptPINVOKE.labelLeaderObj_numstyles_get(swigCPtr);
+      IntPtr cPtr = mapscriptPINVOKE.scaleTokenObj_tokens_get(swigCPtr);
+      scaleTokenEntryObj ret = (cPtr == IntPtr.Zero) ? null : new scaleTokenEntryObj(cPtr, false, ThisOwn_false());
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
       return ret;
     } 
   }
 
-  public labelLeaderObj() : this(mapscriptPINVOKE.new_labelLeaderObj(), true, null) {
+  public scaleTokenObj() : this(mapscriptPINVOKE.new_scaleTokenObj(), true, null) {
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
   }
 
diff --git a/mapscript/csharp/scalebarObj.cs b/mapscript/csharp/scalebarObj.cs
index 60bdf63..68590d5 100644
--- a/mapscript/csharp/scalebarObj.cs
+++ b/mapscript/csharp/scalebarObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class scalebarObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class scalebarObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~scalebarObj() {
     Dispose();
   }
@@ -84,6 +86,7 @@ public class scalebarObj : IDisposable {
       mapscriptPINVOKE.scalebarObj_imagecolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.scalebarObj_imagecolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -145,9 +148,9 @@ public class scalebarObj : IDisposable {
       mapscriptPINVOKE.scalebarObj_label_set(swigCPtr, labelObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE */
     get {
-      IntPtr cPtr = mapscriptPINVOKE.scalebarObj_label_get(swigCPtr);
-      labelObj ret = (cPtr == IntPtr.Zero) ? null : new labelObj(cPtr, false, ThisOwn_false());
+      labelObj ret = new labelObj(mapscriptPINVOKE.scalebarObj_label_get(swigCPtr), false, ThisOwn_false());
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
       return ret;
     } 
@@ -158,6 +161,7 @@ public class scalebarObj : IDisposable {
       mapscriptPINVOKE.scalebarObj_color_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.scalebarObj_color_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -171,6 +175,7 @@ public class scalebarObj : IDisposable {
       mapscriptPINVOKE.scalebarObj_backgroundcolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.scalebarObj_backgroundcolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -184,6 +189,7 @@ public class scalebarObj : IDisposable {
       mapscriptPINVOKE.scalebarObj_outlinecolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.scalebarObj_outlinecolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -258,6 +264,12 @@ public class scalebarObj : IDisposable {
     return ret;
   }
 
+  public string convertToString() {
+    string ret = mapscriptPINVOKE.scalebarObj_convertToString(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public scalebarObj() : this(mapscriptPINVOKE.new_scalebarObj(), true, null) {
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
   }
diff --git a/mapscript/csharp/shapeObj.cs b/mapscript/csharp/shapeObj.cs
index 37bac43..fbe57ed 100644
--- a/mapscript/csharp/shapeObj.cs
+++ b/mapscript/csharp/shapeObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class shapeObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class shapeObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~shapeObj() {
     Dispose();
   }
@@ -100,6 +102,7 @@ public class shapeObj : IDisposable {
       mapscriptPINVOKE.shapeObj_bounds_set(swigCPtr, rectObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.shapeObj_bounds_get(swigCPtr);
       rectObj ret = (cPtr == IntPtr.Zero) ? null : new rectObj(cPtr, false, ThisOwn_false());
@@ -197,6 +200,7 @@ public class shapeObj : IDisposable {
   }
 
   public static shapeObj fromWKT(string wkt) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_fromWKT(wkt);
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -210,6 +214,7 @@ public class shapeObj : IDisposable {
   }
 
   public lineObj get(int i) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_get(swigCPtr, i);
     lineObj ret = (cPtr == IntPtr.Zero) ? null : new lineObj(cPtr, false, ThisOwn_false());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -234,6 +239,7 @@ public class shapeObj : IDisposable {
   }
 
   public shapeObj clone() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_clone(swigCPtr);
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -253,6 +259,7 @@ public class shapeObj : IDisposable {
   }
 
   public shapeObj buffer(double width) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_buffer(swigCPtr, width);
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -260,6 +267,7 @@ public class shapeObj : IDisposable {
   }
 
   public shapeObj simplify(double tolerance) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_simplify(swigCPtr, tolerance);
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -267,6 +275,7 @@ public class shapeObj : IDisposable {
   }
 
   public shapeObj topologyPreservingSimplify(double tolerance) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_topologyPreservingSimplify(swigCPtr, tolerance);
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -274,6 +283,7 @@ public class shapeObj : IDisposable {
   }
 
   public shapeObj convexHull() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_convexHull(swigCPtr);
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -281,6 +291,7 @@ public class shapeObj : IDisposable {
   }
 
   public shapeObj boundary() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_boundary(swigCPtr);
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -288,6 +299,7 @@ public class shapeObj : IDisposable {
   }
 
   public pointObj getCentroid() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_getCentroid(swigCPtr);
     pointObj ret = (cPtr == IntPtr.Zero) ? null : new pointObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -295,6 +307,7 @@ public class shapeObj : IDisposable {
   }
 
   public shapeObj Union(shapeObj shape) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_Union(swigCPtr, shapeObj.getCPtr(shape));
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -302,6 +315,7 @@ public class shapeObj : IDisposable {
   }
 
   public shapeObj intersection(shapeObj shape) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_intersection(swigCPtr, shapeObj.getCPtr(shape));
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -309,6 +323,7 @@ public class shapeObj : IDisposable {
   }
 
   public shapeObj difference(shapeObj shape) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_difference(swigCPtr, shapeObj.getCPtr(shape));
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -316,6 +331,7 @@ public class shapeObj : IDisposable {
   }
 
   public shapeObj symDifference(shapeObj shape) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_symDifference(swigCPtr, shapeObj.getCPtr(shape));
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -407,6 +423,7 @@ public class shapeObj : IDisposable {
   }
 
   public pointObj getLabelPoint() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapeObj_getLabelPoint(swigCPtr);
     pointObj ret = (cPtr == IntPtr.Zero) ? null : new pointObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/shapefileObj.cs b/mapscript/csharp/shapefileObj.cs
index 56c1d1e..9f28d58 100644
--- a/mapscript/csharp/shapefileObj.cs
+++ b/mapscript/csharp/shapefileObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class shapefileObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class shapefileObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~shapefileObj() {
     Dispose();
   }
@@ -104,6 +106,7 @@ public class shapefileObj : IDisposable {
   }
 
   public rectObj bounds {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.shapefileObj_bounds_get(swigCPtr);
       rectObj ret = (cPtr == IntPtr.Zero) ? null : new rectObj(cPtr, false, ThisOwn_false());
@@ -121,6 +124,7 @@ public class shapefileObj : IDisposable {
   }
 
   public SWIGTYPE_p_uint32_t status {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.shapefileObj_status_get(swigCPtr);
       SWIGTYPE_p_uint32_t ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_uint32_t(cPtr, false, ThisOwn_false());
@@ -130,6 +134,7 @@ public class shapefileObj : IDisposable {
   }
 
   public rectObj statusbounds {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.shapefileObj_statusbounds_get(swigCPtr);
       rectObj ret = (cPtr == IntPtr.Zero) ? null : new rectObj(cPtr, false, ThisOwn_false());
@@ -157,6 +162,7 @@ public class shapefileObj : IDisposable {
   }
 
   public shapeObj getShape(int i) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapefileObj_getShape(swigCPtr, i);
     shapeObj ret = (cPtr == IntPtr.Zero) ? null : new shapeObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -193,6 +199,7 @@ public class shapefileObj : IDisposable {
   }
 
   public DBFInfo getDBF() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.shapefileObj_getDBF(swigCPtr);
     DBFInfo ret = (cPtr == IntPtr.Zero) ? null : new DBFInfo(cPtr, false, ThisOwn_false());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/strokeStyleObj.cs b/mapscript/csharp/strokeStyleObj.cs
index 92cd4c1..d41057d 100644
--- a/mapscript/csharp/strokeStyleObj.cs
+++ b/mapscript/csharp/strokeStyleObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class strokeStyleObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class strokeStyleObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~strokeStyleObj() {
     Dispose();
   }
@@ -143,6 +145,7 @@ public class strokeStyleObj : IDisposable {
       mapscriptPINVOKE.strokeStyleObj_color_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.strokeStyleObj_color_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
diff --git a/mapscript/csharp/styleObj.cs b/mapscript/csharp/styleObj.cs
index 74890cb..0311f50 100644
--- a/mapscript/csharp/styleObj.cs
+++ b/mapscript/csharp/styleObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class styleObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class styleObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~styleObj() {
     Dispose();
   }
@@ -104,6 +106,7 @@ public class styleObj : IDisposable {
       mapscriptPINVOKE.styleObj_color_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.styleObj_color_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -117,6 +120,7 @@ public class styleObj : IDisposable {
       mapscriptPINVOKE.styleObj_backgroundcolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.styleObj_backgroundcolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -130,6 +134,7 @@ public class styleObj : IDisposable {
       mapscriptPINVOKE.styleObj_outlinecolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.styleObj_outlinecolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -155,6 +160,7 @@ public class styleObj : IDisposable {
       mapscriptPINVOKE.styleObj_mincolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.styleObj_mincolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -168,6 +174,7 @@ public class styleObj : IDisposable {
       mapscriptPINVOKE.styleObj_maxcolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.styleObj_maxcolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -546,7 +553,14 @@ public class styleObj : IDisposable {
     return ret;
   }
 
+  public string convertToString() {
+    string ret = mapscriptPINVOKE.styleObj_convertToString(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
   public styleObj clone() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.styleObj_clone(swigCPtr);
     styleObj ret = (cPtr == IntPtr.Zero) ? null : new styleObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/swig_csharp_extensions.i b/mapscript/csharp/swig_csharp_extensions.i
index 452727a..07b8b8d 100644
--- a/mapscript/csharp/swig_csharp_extensions.i
+++ b/mapscript/csharp/swig_csharp_extensions.i
@@ -36,37 +36,50 @@
 %}
 
 %typemap(csout, excode=SWIGEXCODE) SWIGTYPE {
+    /* %typemap(csout, excode=SWIGEXCODE) SWIGTYPE */
     $&csclassname ret = new $&csclassname($imcall, true, null);$excode
     return ret;
   }
 
 %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE & {
+    /* typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE & */
     $csclassname ret = new $csclassname($imcall, $owner, ThisOwn_$owner());$excode
     return ret;
   }
 %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = $imcall;
     $csclassname ret = (cPtr == IntPtr.Zero) ? null : new $csclassname(cPtr, $owner, ThisOwn_$owner());$excode
     return ret;
   }
+%typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE %{
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE */
+    get {
+      $&csclassname ret = new $&csclassname($imcall, $owner, ThisOwn_$owner());$excode
+      return ret;
+    } %}
 %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE & %{
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE & */
     get {
       $csclassname ret = new $csclassname($imcall, $owner, ThisOwn_$owner());$excode
       return ret;
     } %}
-%typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) %{
+%typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, struct SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) %{
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = $imcall;
       $csclassname ret = (cPtr == IntPtr.Zero) ? null : new $csclassname(cPtr, $owner, ThisOwn_$owner());$excode
       return ret;
     } %}
 %typemap(csout, excode=SWIGEXCODE) SWIGTYPE *& {
+    /* %typemap(csout, excode=SWIGEXCODE) SWIGTYPE *& */
     IntPtr cPtr = $imcall;
     $*csclassname ret = (cPtr == IntPtr.Zero) ? null : new $*csclassname(cPtr, $owner, ThisOwn_$owner());$excode
     return ret;
   }
 // Proxy classes (base classes, ie, not derived classes)
 %typemap(csbody) SWIGTYPE %{
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -110,6 +123,7 @@
 
 // Derived proxy classes
 %typemap(csbody_derived) SWIGTYPE %{
+  /* %typemap(csbody_derived) SWIGTYPE */
   private HandleRef swigCPtr;
 
   internal $csclassname(IntPtr cPtr, bool cMemoryOwn, object parent) : base($modulePINVOKE.$csclassnameUpcast(cPtr), cMemoryOwn, parent) {
@@ -146,6 +160,7 @@
 
 // Typewrapper classes
 %typemap(csbody) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) %{
+  /* %typemap(csbody) SWIGTYPE *, SWIGTYPE &, SWIGTYPE [], SWIGTYPE (CLASS::*) */
   private HandleRef swigCPtr;
 
   internal $csclassname(IntPtr cPtr, bool futureUse, object parent) {
@@ -162,6 +177,7 @@
 %}
 
 %typemap(csfinalize) SWIGTYPE %{
+  /* %typemap(csfinalize) SWIGTYPE */
   ~$csclassname() {
     Dispose();
   }
@@ -200,6 +216,7 @@
 %typemap(csin) SWIGTYPE *SETREFERENCE "$csclassname.getCPtrAndSetReference($csinput, ThisOwn_false())"
 
 %pragma(csharp) modulecode=%{
+  /* %pragma(csharp) modulecode */
   internal class $moduleObject : IDisposable {
 	public virtual void Dispose() {
       
diff --git a/mapscript/csharp/symbolObj.cs b/mapscript/csharp/symbolObj.cs
index 995e76f..06c4fc0 100644
--- a/mapscript/csharp/symbolObj.cs
+++ b/mapscript/csharp/symbolObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class symbolObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class symbolObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~symbolObj() {
     Dispose();
   }
@@ -307,18 +309,6 @@ public class symbolObj : IDisposable {
     } 
   }
 
-  public string svg_text {
-    set {
-      mapscriptPINVOKE.symbolObj_svg_text_set(swigCPtr, value);
-      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
-    } 
-    get {
-      string ret = mapscriptPINVOKE.symbolObj_svg_text_get(swigCPtr);
-      if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
-      return ret;
-    } 
-  }
-
   public symbolObj(string symbolname, string imagefile) : this(mapscriptPINVOKE.new_symbolObj(symbolname, imagefile), true, null) {
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
   }
@@ -336,6 +326,7 @@ public class symbolObj : IDisposable {
   }
 
   public lineObj getPoints() {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.symbolObj_getPoints(swigCPtr);
     lineObj ret = (cPtr == IntPtr.Zero) ? null : new lineObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -343,6 +334,7 @@ public class symbolObj : IDisposable {
   }
 
   public imageObj getImage(outputFormatObj input_format) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.symbolObj_getImage(swigCPtr, outputFormatObj.getCPtr(input_format));
     imageObj ret = (cPtr == IntPtr.Zero) ? null : new imageObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/symbolSetObj.cs b/mapscript/csharp/symbolSetObj.cs
index 993cd35..d01a895 100644
--- a/mapscript/csharp/symbolSetObj.cs
+++ b/mapscript/csharp/symbolSetObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class symbolSetObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class symbolSetObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~symbolSetObj() {
     Dispose();
   }
@@ -124,6 +126,7 @@ public class symbolSetObj : IDisposable {
   }
 
   public symbolObj getSymbol(int i) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.symbolSetObj_getSymbol(swigCPtr, i);
     symbolObj ret = (cPtr == IntPtr.Zero) ? null : new symbolObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -131,6 +134,7 @@ public class symbolSetObj : IDisposable {
   }
 
   public symbolObj getSymbolByName(string symbolname) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.symbolSetObj_getSymbolByName(swigCPtr, symbolname);
     symbolObj ret = (cPtr == IntPtr.Zero) ? null : new symbolObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
@@ -150,6 +154,7 @@ public class symbolSetObj : IDisposable {
   }
 
   public symbolObj removeSymbol(int index) {
+    /* %typemap(csout, excode=SWIGEXCODE, new="1") SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     IntPtr cPtr = mapscriptPINVOKE.symbolSetObj_removeSymbol(swigCPtr, index);
     symbolObj ret = (cPtr == IntPtr.Zero) ? null : new symbolObj(cPtr, true, ThisOwn_true());
     if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
diff --git a/mapscript/csharp/symbolStyleObj.cs b/mapscript/csharp/symbolStyleObj.cs
index ec5e0ab..1e6899e 100644
--- a/mapscript/csharp/symbolStyleObj.cs
+++ b/mapscript/csharp/symbolStyleObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class symbolStyleObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class symbolStyleObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~symbolStyleObj() {
     Dispose();
   }
@@ -84,6 +86,7 @@ public class symbolStyleObj : IDisposable {
       mapscriptPINVOKE.symbolStyleObj_color_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.symbolStyleObj_color_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -97,6 +100,7 @@ public class symbolStyleObj : IDisposable {
       mapscriptPINVOKE.symbolStyleObj_backgroundcolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.symbolStyleObj_backgroundcolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -122,6 +126,7 @@ public class symbolStyleObj : IDisposable {
       mapscriptPINVOKE.symbolStyleObj_outlinecolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.symbolStyleObj_outlinecolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -171,6 +176,7 @@ public class symbolStyleObj : IDisposable {
       mapscriptPINVOKE.symbolStyleObj_style_set(swigCPtr, styleObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.symbolStyleObj_style_get(swigCPtr);
       styleObj ret = (cPtr == IntPtr.Zero) ? null : new styleObj(cPtr, false, ThisOwn_false());
diff --git a/mapscript/csharp/tileCacheObj.cs b/mapscript/csharp/tileCacheObj.cs
index f8deb5c..ff6420e 100644
--- a/mapscript/csharp/tileCacheObj.cs
+++ b/mapscript/csharp/tileCacheObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class tileCacheObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class tileCacheObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~tileCacheObj() {
     Dispose();
   }
@@ -84,6 +86,7 @@ public class tileCacheObj : IDisposable {
       mapscriptPINVOKE.tileCacheObj_symbol_set(swigCPtr, symbolObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.tileCacheObj_symbol_get(swigCPtr);
       symbolObj ret = (cPtr == IntPtr.Zero) ? null : new symbolObj(cPtr, false, ThisOwn_false());
@@ -121,6 +124,7 @@ public class tileCacheObj : IDisposable {
       mapscriptPINVOKE.tileCacheObj_color_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.tileCacheObj_color_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -134,6 +138,7 @@ public class tileCacheObj : IDisposable {
       mapscriptPINVOKE.tileCacheObj_outlinecolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.tileCacheObj_outlinecolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -147,6 +152,7 @@ public class tileCacheObj : IDisposable {
       mapscriptPINVOKE.tileCacheObj_backgroundcolor_set(swigCPtr, colorObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.tileCacheObj_backgroundcolor_get(swigCPtr);
       colorObj ret = (cPtr == IntPtr.Zero) ? null : new colorObj(cPtr, false, ThisOwn_false());
@@ -196,6 +202,7 @@ public class tileCacheObj : IDisposable {
       mapscriptPINVOKE.tileCacheObj_image_set(swigCPtr, imageObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.tileCacheObj_image_get(swigCPtr);
       imageObj ret = (cPtr == IntPtr.Zero) ? null : new imageObj(cPtr, false, ThisOwn_false());
@@ -209,6 +216,7 @@ public class tileCacheObj : IDisposable {
       mapscriptPINVOKE.tileCacheObj_next_set(swigCPtr, SWIGTYPE_p_tileCacheObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.tileCacheObj_next_get(swigCPtr);
       SWIGTYPE_p_tileCacheObj ret = (cPtr == IntPtr.Zero) ? null : new SWIGTYPE_p_tileCacheObj(cPtr, false, ThisOwn_false());
diff --git a/mapscript/csharp/webObj.cs b/mapscript/csharp/webObj.cs
index 6f027a5..de1e80e 100644
--- a/mapscript/csharp/webObj.cs
+++ b/mapscript/csharp/webObj.cs
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  *
  * Do not make changes to this file unless you know what you are doing--modify
  * the SWIG interface file instead.
@@ -11,6 +11,7 @@ using System;
 using System.Runtime.InteropServices;
 
 public class webObj : IDisposable {
+  /* %typemap(csbody) SWIGTYPE */
   private HandleRef swigCPtr;
   protected bool swigCMemOwn;
   protected object swigParentRef;
@@ -51,6 +52,7 @@ public class webObj : IDisposable {
     }
   }
 
+  /* %typemap(csfinalize) SWIGTYPE */
   ~webObj() {
     Dispose();
   }
@@ -128,6 +130,7 @@ public class webObj : IDisposable {
   }
 
   public mapObj map {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.webObj_map_get(swigCPtr);
       mapObj ret = (cPtr == IntPtr.Zero) ? null : new mapObj(cPtr, false, ThisOwn_false());
@@ -201,6 +204,7 @@ public class webObj : IDisposable {
       mapscriptPINVOKE.webObj_extent_set(swigCPtr, rectObj.getCPtr(value));
       if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
     } 
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.webObj_extent_get(swigCPtr);
       rectObj ret = (cPtr == IntPtr.Zero) ? null : new rectObj(cPtr, false, ThisOwn_false());
@@ -294,6 +298,7 @@ public class webObj : IDisposable {
   }
 
   public hashTableObj metadata {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.webObj_metadata_get(swigCPtr);
       hashTableObj ret = (cPtr == IntPtr.Zero) ? null : new hashTableObj(cPtr, false, ThisOwn_false());
@@ -303,6 +308,7 @@ public class webObj : IDisposable {
   }
 
   public hashTableObj validation {
+    /* %typemap(csvarout, excode=SWIGEXCODE2) SWIGTYPE *, SWIGTYPE [], SWIGTYPE (CLASS::*) */
     get {
       IntPtr cPtr = mapscriptPINVOKE.webObj_validation_get(swigCPtr);
       hashTableObj ret = (cPtr == IntPtr.Zero) ? null : new hashTableObj(cPtr, false, ThisOwn_false());
@@ -321,4 +327,10 @@ public class webObj : IDisposable {
     return ret;
   }
 
+  public string convertToString() {
+    string ret = mapscriptPINVOKE.webObj_convertToString(swigCPtr);
+    if (mapscriptPINVOKE.SWIGPendingException.Pending) throw mapscriptPINVOKE.SWIGPendingException.Retrieve();
+    return ret;
+  }
+
 }
diff --git a/mapscript/java/CMakeLists.txt b/mapscript/java/CMakeLists.txt
new file mode 100644
index 0000000..dea06c3
--- /dev/null
+++ b/mapscript/java/CMakeLists.txt
@@ -0,0 +1,30 @@
+FIND_PACKAGE(SWIG REQUIRED)
+INCLUDE(${SWIG_USE_FILE})
+
+FIND_PACKAGE(JNI)
+FIND_PACKAGE(Java)
+if(NOT JNI_INCLUDE_DIRS OR NOT Java_JAVAC_EXECUTABLE OR NOT Java_JAR_EXECUTABLE)
+   message(SEND_ERROR "Could not find required Java componenents. Try setting the JAVA_HOME environment variable (required on e.g. Ubuntu)")
+endif(NOT JNI_INCLUDE_DIRS OR NOT Java_JAVAC_EXECUTABLE OR NOT Java_JAR_EXECUTABLE)
+
+INCLUDE_DIRECTORIES(${JNI_INCLUDE_DIRS})
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/swiginc)
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/)
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/java)
+SET (CMAKE_SWIG_OUTDIR "${CMAKE_CURRENT_BINARY_DIR}/edu/umn/gis/mapscript")
+SET(CMAKE_SWIG_FLAGS -package edu.umn.gis.mapscript)
+SWIG_ADD_MODULE(javamapscript java ../mapscript.i)
+
+SWIG_LINK_LIBRARIES(javamapscript ${MAPSERVER_LIBMAPSERVER})
+
+ADD_CUSTOM_COMMAND(TARGET javamapscript
+                      WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}
+                      POST_BUILD
+                      COMMAND ${Java_JAVAC_EXECUTABLE} edu/umn/gis/mapscript/*.java
+                      COMMAND ${Java_JAR_EXECUTABLE} cf mapscript.jar edu
+                      COMMENT "Compiling java source files, creating mapscript.jar"
+                      )
+
+get_target_property(LOC_MAPSCRIPT_LIB ${SWIG_MODULE_javamapscript_REAL_NAME} LOCATION)
+install(FILES ${LOC_MAPSCRIPT_LIB} DESTINATION lib)
+
diff --git a/mapscript/java/Makefile.in b/mapscript/java/Makefile.in
deleted file mode 100644
index d958e0d..0000000
--- a/mapscript/java/Makefile.in
+++ /dev/null
@@ -1,115 +0,0 @@
-# Run ./configure in the main MapServer directory to turn this Makefile.in
-# into a proper Makefile
-
-prefix		=	@prefix@
-exec_prefix	=	@exec_prefix@
-libdir	=	@libdir@
-bindir	=	@bindir@
-top_builddir = @top_builddir@
-SHELL = @SHELL@
-CXX=	@CXX@
-CC=     @CC@
-LD=     @CXX@
-LIBTOOL=@LIBTOOL@
-INSTALL=@INSTALL@
-SWIG=swig
-
-#
-# MS_VERSION - Set by configure based in mapserver.h
-#
-MS_VERSION=	@MS_VERSION@
-
-#
-# Java Stuff
-#
-JAVADOC=javadoc
-JAVAC=javac
-JAVA=java
-JAR=jar
-JAVA_INCLUDE=@JAVA_INCLUDE@
-
-LTCC=$(LIBTOOL) --mode=compile --tag=CC
-LTCXX=$(LIBTOOL) --mode=compile --tag=CXX
-LTLD=$(LIBTOOL) --mode=link --tag=CXX
-LTINSTALL=$(LIBTOOL) --mode=install
-
-XTRALIBS= @XTRALIBS@
-
-RUNPATH= -rpath $(libdir)
-DEFINES=@ALL_ENABLED@
-CFLAGS = $(DEFINES) @CFLAGS@ -I$(PYINCDIR) @MS_INC@ @ALL_INC@
-
-LT_LDFLAGS= $(RUNPATH) -module
-OBJ_SUFFIX=lo
-LINK=$(LTLD) $(LD) $(LT_LDFLAGS)
-MS_LIB =   $(top_builddir)/libmapserver.la
-
-
-.SUFFIXES:
-.SUFFIXES: .cpp .c .$(OBJ_SUFFIX)
-
-all: javamapscript.jar
-
-libjavamapscript.la: javamapscript_wrap.lo $(MS_LIB)
-	$(LINK) -release $(MS_VERSION) -o $@ javamapscript_wrap.lo $(MS_LIB)
-
-%.lo: %.c
-	$(LTCC) $(CC) -fno-strict-aliasing -fpic -c $(CFLAGS) $(JAVA_INCLUDE) -c -o $@ $<
-
-javamapscript_wrap.c: ../mapscript.i
-	mkdir -p edu/umn/gis/mapscript 
-	$(SWIG) -java -package edu.umn.gis.mapscript $(DEFINES) -outdir edu/umn/gis/mapscript -o javamapscript_wrap.c ../mapscript.i
-
-javamapscript_java: javamapscript_wrap.c
-	$(JAVAC) edu/umn/gis/mapscript/*.java
-
-mapscript_javadoc: javamapscript_wrap.c
-	$(JAVADOC) -d doc -sourcepath edu/umn/gis/mapscript/*.java
-
-javamapscript.jar: javamapscript_java libjavamapscript.la
-	$(JAR) cf mapscript.jar edu
-
-install: mapscript.jar
-	$(LTINSTALL) $(INSTALL) libjavamapscript.la $(DESTDIR)$(libdir)
-
-clean:
-	-rm -rf .libs *.lo *.la *.so *.o pygdioctx/*.o pygdioctx/*.lo
-	rm -rf edu *.o *.c *. at SO_EXT@ *.java *.jar *.png
-	rm -rf examples/*.class
-	rm -rf tests/threadtest/*.class
-
-
-ifneq ($(findstring PROJ, $(DEFINES)),)
-ifneq ($(findstring GDAL, $(DEFINES)),)
-test:
-	$(JAVAC) -classpath ./:examples/:./mapscript.jar -d examples/ examples/RFC24.java examples/ConnPool.java examples/DrawMap.java examples/DumpShp.java examples/MakePoint.java examples/QueryByAttribute.java examples/ShapeInfo.java examples/WxSTest.java examples/Metadata.java examples/RunTimeBuiltWMSClient.java
-	$(JAVAC) -encoding utf8 -classpath ./:examples/:./mapscript.jar -d examples/ examples/QueryByAttributeUnicode.java 
-	$(JAVA) -classpath ./:examples/:./mapscript.jar -Djava.library.path=.libs/ DumpShp ../../tests/point.shp
-	$(JAVA) -classpath ./:examples/:./mapscript.jar -Djava.library.path=.libs/ ShapeInfo ../../tests/point.shp ../../tests/point.dbf
-	$(JAVA) -classpath ./:examples/:./mapscript.jar -Djava.library.path=.libs/ DrawMap ../../tests/test.map ./map.png
-	$(JAVA) -classpath ./:examples/:./mapscript.jar -Djava.library.path=.libs/ ConnPool
-	$(JAVA) -classpath ./:examples/:./mapscript.jar -Djava.library.path=.libs/ QueryByAttribute ../../tests/test.map
-ifneq ($(findstring USE_WCS_SVR, $(DEFINES)),)
-	$(JAVA) -classpath ./:examples/:./mapscript.jar -Djava.library.path=.libs/ WxSTest ../../tests/test.map
-else
-	@echo "WARN: Skipping WxSTest because OWS is not enabled"
-endif
-	$(JAVA) -classpath ./:examples/:./mapscript.jar -Djava.library.path=.libs/ RFC24 ../../tests/test.map
-	LC_ALL=en_US.UTF-8 $(JAVA) -classpath ./:examples/:./mapscript.jar -Djava.library.path=.libs/ QueryByAttributeUnicode data/subset-umlauts.map
-else
-test:
-	@echo "To run the tests GDAL and PROJ must be enabled"
-endif
-else
-test:
-	@echo "To run the tests GDAL and PROJ must be enabled"
-endif
-
-threadtests:
-	$(JAVAC) -cp ./mapscript.jar -d tests/threadtest/ tests/threadtest/*.java
-	@echo "-------------------------------------------------------------------------"
-	@echo "   You can use your own map! Copy the following command in your shell"
-	@echo "        and change the file to the map file (the last argument)"
-	@echo "-------------------------------------------------------------------------"
-	$(JAVA) -Djava.library.path=./ -Djava.library.path=.libs/ -cp tests/threadtest/:./mapscript.jar MapTest -t 10 -i 5 ../../tests/test.map
-
diff --git a/mapscript/java/examples/OutputFormatList.java b/mapscript/java/examples/OutputFormatList.java
new file mode 100644
index 0000000..f47d798
--- /dev/null
+++ b/mapscript/java/examples/OutputFormatList.java
@@ -0,0 +1,29 @@
+import edu.umn.gis.mapscript.*;
+
+/**
+ * <p>Title: Mapscript outputformat dump example.</p>
+ * @author Umberto Nicoletti 	umberto.nicoletti at gmail.com
+ * @version 1.0
+ */
+
+public class OutputFormatList {
+
+  public static void usage() {
+    System.err.println("Usage: OutputFormatList {mapfile}");
+    System.exit(-1);
+  }
+
+  public static void main(String[] args) {
+    if (args.length != 1) usage();
+   
+    mapObj map = new mapObj(args[0]);
+    for (int i=0; i<map.getNumoutputformats(); i++) {
+	outputFormatObj format = map.getOutputFormat(i);
+	System.out.println("["+i+"] Format name: "+format.getName());
+	System.out.println("\toption count: "+format.getNumformatoptions());
+	for(int j=0;j<format.getNumformatoptions();j++) {
+	    System.out.println("\t["+j+"] option: "+format.getOptionAt(j));
+	}
+    }
+  }
+}
diff --git a/mapscript/java/examples/RFC24.java b/mapscript/java/examples/RFC24.java
index 6528f2d..add3d81 100644
--- a/mapscript/java/examples/RFC24.java
+++ b/mapscript/java/examples/RFC24.java
@@ -26,6 +26,9 @@ public class RFC24 {
 		testGetLayerObj();
 		testGetLayerObjByName();
 		testGetClassObj();
+		testGetOutputformatObj();
+		testInsertOutputformatObj();
+
 		System.out.println("Finished "+getClass().getName());
 	}
 	
@@ -97,6 +100,39 @@ public class RFC24 {
 		assertNotNull(newClass.getLayer(), "testGetClassObj");
 	}
 
+        public void testGetOutputformatObj() {
+                mapObj map=new mapObj(mapfile);
+                outputFormatObj format=null;
+                for (int i=0; i<map.getNumoutputformats(); i++) {
+                    format = map.getOutputFormat(i);
+                    //System.out.println("["+i+"] Format name: "+format.getName());
+                } 
+                map=null;
+                gc();
+                assertNotNull(format.getDriver(), "testGetOutputformatObj");
+        }
+
+        public void testInsertOutputformatObj() {
+                mapObj map=new mapObj(mapfile);
+                outputFormatObj format=null;
+                for (int i=0; i<map.getNumoutputformats(); i++) {
+                    format = map.getOutputFormat(i);
+		    // uncomment to see output
+                    //System.out.println("["+i+"] Format name: "+format.getName() + " driver="+format.getDriver());
+                } 
+                outputFormatObj newFormat=new outputFormatObj("AGG/PNG","test/rfc24");
+		map.appendOutputFormat(newFormat);
+                for (int i=0; i<map.getNumoutputformats(); i++) {
+                    format = map.getOutputFormat(i);
+		    // uncomment to see output
+                    //System.out.println("["+i+"] Format name: "+format.getName());
+                } 
+		map.draw();
+                map=null; format=null;
+                gc();
+                assertNotNull(newFormat.getDriver(), "testInsertOutputformatObj");
+        }
+
 	public void gc() {
 		for (int i=0; i<10; i++)
 			System.gc();
diff --git a/mapscript/java/examples/WxSTest.java b/mapscript/java/examples/WxSTest.java
index a1ada8e..b0914cc 100644
--- a/mapscript/java/examples/WxSTest.java
+++ b/mapscript/java/examples/WxSTest.java
@@ -1,6 +1,7 @@
 import edu.umn.gis.mapscript.mapObj;
 import edu.umn.gis.mapscript.OWSRequest;
 import edu.umn.gis.mapscript.mapscript;
+import java.io.*;
 
 class WxSTest_thread extends Thread {
 
@@ -29,6 +30,7 @@ class WxSTest_thread extends Thread {
 //        System.out.println( mapscript.msIO_getStdoutBufferString() );
 
         resultBytes = mapscript.msIO_getStdoutBufferBytes();
+        mapscript.msIO_resetHandlers();
     }
 }
 
@@ -54,15 +56,20 @@ public class WxSTest {
                 if( i == 0 )
                 {
                     expectedLength = tt[i].resultBytes.length;
-                    System.out.println( "Document Length: " + expectedLength + ", expecting somewhere around 10000 or more." );
+                    System.out.println( "["+i+"] Document Length: " + expectedLength + ", expecting somewhere around 10000 or more." );
                 }
                 else if( expectedLength != tt[i].resultBytes.length )
                 {
-                    System.out.println( "Document Length:" + tt[i].resultBytes.length + " Expected:" + expectedLength );
+                    System.out.println( "["+i+"] Document Length:" + tt[i].resultBytes.length + " Expected:" + expectedLength );
                     failure++;
                 }
                 else
                     success++;
+		
+		// dump test results to fs for post-mortem inspection
+		FileOutputStream fos = new FileOutputStream("/tmp/wxs_test_"+i);
+		fos.write(tt[i].resultBytes);
+		fos.close();
             }
 
             System.out.println( "Successes: " + success );
diff --git a/mapscript/java/examples/WxSTest.java b/mapscript/java/examples/WxSTestNoThread.java
similarity index 72%
copy from mapscript/java/examples/WxSTest.java
copy to mapscript/java/examples/WxSTestNoThread.java
index a1ada8e..eb095cc 100644
--- a/mapscript/java/examples/WxSTest.java
+++ b/mapscript/java/examples/WxSTestNoThread.java
@@ -1,8 +1,9 @@
 import edu.umn.gis.mapscript.mapObj;
 import edu.umn.gis.mapscript.OWSRequest;
 import edu.umn.gis.mapscript.mapscript;
+import java.io.*;
 
-class WxSTest_thread extends Thread {
+class WxSTest_nothread {
 
     public String	mapName;
     public byte[]       resultBytes;
@@ -29,40 +30,45 @@ class WxSTest_thread extends Thread {
 //        System.out.println( mapscript.msIO_getStdoutBufferString() );
 
         resultBytes = mapscript.msIO_getStdoutBufferBytes();
+        mapscript.msIO_resetHandlers();
     }
 }
 
-public class WxSTest {
+public class WxSTestNoThread {
     public static void main(String[] args)  {
         try {
-            WxSTest_thread tt[] = new WxSTest_thread[100];
+            WxSTest_nothread tt[] = new WxSTest_nothread[1];
             int i;
             int expectedLength=0, success = 0, failure=0;
 
             for( i = 0; i < tt.length; i++ )
             {
-                tt[i] = new WxSTest_thread();
+                tt[i] = new WxSTest_nothread();
                 tt[i].mapName = args[0];
             }
             
             for( i = 0; i < tt.length; i++ )
-                tt[i].start();
+                tt[i].run();
 
             for( i = 0; i < tt.length; i++ )
             {
-                tt[i].join();
                 if( i == 0 )
                 {
                     expectedLength = tt[i].resultBytes.length;
-                    System.out.println( "Document Length: " + expectedLength + ", expecting somewhere around 10000 or more." );
+                    System.out.println( "["+i+"] Document Length: " + expectedLength + ", expecting somewhere around 10000 or more." );
                 }
                 else if( expectedLength != tt[i].resultBytes.length )
                 {
-                    System.out.println( "Document Length:" + tt[i].resultBytes.length + " Expected:" + expectedLength );
+                    System.out.println( "["+i+"] Document Length:" + tt[i].resultBytes.length + " Expected:" + expectedLength );
                     failure++;
                 }
                 else
                     success++;
+		
+		// dump test results to fs for post-mortem inspection
+		FileOutputStream fos = new FileOutputStream("/tmp/wxs_test_"+i);
+		fos.write(tt[i].resultBytes);
+		fos.close();
             }
 
             System.out.println( "Successes: " + success );
diff --git a/mapscript/java/run_test.sh b/mapscript/java/run_test.sh
new file mode 100755
index 0000000..ae33cb6
--- /dev/null
+++ b/mapscript/java/run_test.sh
@@ -0,0 +1,23 @@
+#!/bin/sh -ex
+
+JAVA=${JAVA_HOME}/bin/java
+JAVAC=${JAVA_HOME}/bin/javac
+
+${JAVAC} -classpath ./:examples/:${JAVA_MAPSCRIPT_SO}/mapscript.jar -d examples/ examples/RFC24.java examples/ConnPool.java examples/DrawMap.java examples/DumpShp.java examples/MakePoint.java examples/QueryByAttribute.java examples/ShapeInfo.java examples/WxSTest.java examples/Metadata.java examples/RunTimeBuiltWMSClient.java examples/WxSTestNoThread.java
+${JAVAC} -encoding utf8 -classpath ./:examples/:${JAVA_MAPSCRIPT_SO}/mapscript.jar -d examples/ examples/QueryByAttributeUnicode.java 
+${JAVA} -classpath ./:examples/:${JAVA_MAPSCRIPT_SO}/mapscript.jar -Djava.library.path=${JAVA_MAPSCRIPT_SO} DumpShp ../../tests/point.shp
+${JAVA} -classpath ./:examples/:${JAVA_MAPSCRIPT_SO}/mapscript.jar -Djava.library.path=${JAVA_MAPSCRIPT_SO} ShapeInfo ../../tests/point.shp ../../tests/point.dbf
+${JAVA} -classpath ./:examples/:${JAVA_MAPSCRIPT_SO}/mapscript.jar -Djava.library.path=${JAVA_MAPSCRIPT_SO} DrawMap ../../tests/test.map ./map.png
+${JAVA} -classpath ./:examples/:${JAVA_MAPSCRIPT_SO}/mapscript.jar -Djava.library.path=${JAVA_MAPSCRIPT_SO} ConnPool
+${JAVA} -classpath ./:examples/:${JAVA_MAPSCRIPT_SO}/mapscript.jar -Djava.library.path=${JAVA_MAPSCRIPT_SO} QueryByAttribute ../../tests/test.map
+${JAVA} -classpath ./:examples/:${JAVA_MAPSCRIPT_SO}/mapscript.jar -Djava.library.path=${JAVA_MAPSCRIPT_SO} WxSTest ../../tests/test.map
+${JAVA} -classpath ./:examples/:${JAVA_MAPSCRIPT_SO}/mapscript.jar -Djava.library.path=${JAVA_MAPSCRIPT_SO} WxSTestNoThread ../../tests/test.map
+${JAVA} -classpath ./:examples/:${JAVA_MAPSCRIPT_SO}/mapscript.jar -Djava.library.path=${JAVA_MAPSCRIPT_SO} RFC24 ../../tests/test.map
+LC_ALL=en_US.UTF-8 ${JAVA} -classpath ./:examples/:${JAVA_MAPSCRIPT_SO}/mapscript.jar -Djava.library.path=${JAVA_MAPSCRIPT_SO} QueryByAttributeUnicode data/subset-umlauts.map
+
+${JAVAC} -cp ${JAVA_MAPSCRIPT_SO}/mapscript.jar -d tests/threadtest/ tests/threadtest/*.java
+#-------------------------------------------------------------------------
+#  You can use your own map! Copy the following command in your shell
+#      and change the file to the map file (the last argument)
+#-------------------------------------------------------------------------
+${JAVA} -Djava.library.path=${JAVA_MAPSCRIPT_SO} -classpath tests/threadtest/:${JAVA_MAPSCRIPT_SO}/mapscript.jar MapTest -t 50 -i 5 ../../tests/test.map
diff --git a/mapscript/perl/CMakeLists.txt b/mapscript/perl/CMakeLists.txt
new file mode 100644
index 0000000..a6f6a1d
--- /dev/null
+++ b/mapscript/perl/CMakeLists.txt
@@ -0,0 +1,25 @@
+FIND_PACKAGE(SWIG REQUIRED)
+INCLUDE(${SWIG_USE_FILE})
+FIND_PACKAGE(Perl REQUIRED)
+FIND_PACKAGE(PerlLibs REQUIRED)
+set(CUSTOM_PERL_SITE_ARCH_DIR ${PERL_SITEARCH} CACHE DIR "Custom installation directory for perl binary extension")
+INCLUDE_DIRECTORIES(${PERL_INCLUDE_PATH})
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/swiginc)
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/)
+add_definitions(${PERL_EXTRA_C_FLAGS})
+SET(CMAKE_SWIG_FLAGS -shadow -w314)
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/perl)
+SWIG_ADD_MODULE(perlmapscript perl5 ../mapscript.i)
+
+SWIG_LINK_LIBRARIES(perlmapscript ${PERL_LIBRARIES} ${MAPSERVER_LIBMAPSERVER})
+set_target_properties(perlmapscript PROPERTIES OUTPUT_NAME mapscript)
+set_target_properties(perlmapscript PROPERTIES PREFIX "")
+if(APPLE)
+  set_target_properties(perlmapscript PROPERTIES SUFFIX ".bundle")
+endif(APPLE)
+
+get_target_property(LOC_MAPSCRIPT_LIB ${SWIG_MODULE_perlmapscript_REAL_NAME} LOCATION)
+set(mapscript_files ${LOC_MAPSCRIPT_LIB} ${CMAKE_CURRENT_BINARY_DIR}/mapscript.pm)
+install(FILES ${LOC_MAPSCRIPT_LIB} DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR}/auto/mapscript)
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mapscript.pm DESTINATION ${CUSTOM_PERL_SITE_ARCH_DIR})
+
diff --git a/mapscript/perl/Makefile.PL.in b/mapscript/perl/Makefile.PL.in
deleted file mode 100644
index 3a316a1..0000000
--- a/mapscript/perl/Makefile.PL.in
+++ /dev/null
@@ -1,81 +0,0 @@
-# File : Makefile.PL
-use ExtUtils::MakeMaker;
-
-open(STREAM, '../../mapscriptvars') or die('Unable to open mapscriptvars, have you built the MapServer yet?'); 
-
-$prefix="@prefix@";
-$exec_prefix="@exec_prefix@";
-$libdir="@libdir@";
-$home = <STREAM>;
-chomp $home;
-
-$define = <STREAM>;
-chomp $define;
-
-$inc = <STREAM>;
-chomp $inc;
-$inc =~ s/\-I\./\-I$home/g;
-
-$libs = <STREAM>;
-chomp $libs;
-$libs = "-L$libdir -L$home/.libs -lmapserver";
-
-$static_libs = <STREAM>;
-chomp $static_libs;
-$static_libs =~ s/\-L\./\-L$home/g;
-
-# Get MapServer version from mapscriptvars
-$ms_version_line = <STREAM>;
-if ($ms_version_line) {
-	$ms_version_line =~ /MS_VERSION "(.+)"/;
-	$ms_version = $1;
-}
-# Default is 4.3
-else { $ms_version = '4.3'; }
-
-print $inc."\n";
-print $libs."\n";
-print $static_libs."\n";
-print $ms_version."\n";
-
-my $swigInterfaceFile = "../mapscript.i";
-my $swigWrapperFile   = "mapscript_wrap.c";
-
-########################################################################
-
-sub runSwigAutogeneration{
-  print "Autogenerating wrappers from SWIG interface " . $swigInterfaceFile . "\n";
-  my $command = "swig -perl5 -shadow -outdir . $define -o $swigWrapperFile $swigInterfaceFile";
-  system($command);
-  if ($?){
-      print "An error occurred when generating the wrappers from the SWIG interface :\n$!\n";
-      print "The command that was run was:\n\n$command\n\n";
-      print "Perl mascript cannot be built.\n";
-      exit;
-  }
-}
-
-########################################################################
-
-sub existsAndUpToDate{
-  my ($sourceFile, $destFile) = @_;
-  if (!(-e $destFile)) { return 0; }
-  my $sourceMtime = (stat $sourceFile)[9];
-  my $destMtime = (stat $destFile)[9];
-  return $destMtime >= $sourceMtime;
-}
-
-########################################################################
-
-runSwigAutogeneration() unless
-  existsAndUpToDate($swigInterfaceFile, $swigWrapperFile);
-
-WriteMakefile(
-	      'NAME' 		=> 'mapscript',
-	      'DEFINE' 		=> $define,
-	      'INC' 		=> $inc,
-	      'LIBS' 		=> [$libs,$static_libs],
-	      'OBJECT' 		=> 'mapscript_wrap.o',
-		  'VERSION' 	=> $ms_version
-	      );
-
diff --git a/mapscript/perl/mapscript.pm b/mapscript/perl/mapscript.pm
index 9eb6cda..0c4f5aa 100644
--- a/mapscript/perl/mapscript.pm
+++ b/mapscript/perl/mapscript.pm
@@ -1,5 +1,5 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.40
+# Version 2.0.7
 #
 # Do not make changes to this file unless you know what you are doing--modify
 # the SWIG interface file instead.
@@ -166,6 +166,7 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 *swig_region_get = *mapscriptc::clusterObj_region_get;
 *swig_region_set = *mapscriptc::clusterObj_region_set;
 *updateFromString = *mapscriptc::clusterObj_updateFromString;
+*convertToString = *mapscriptc::clusterObj_convertToString;
 *setGroup = *mapscriptc::clusterObj_setGroup;
 *getGroupString = *mapscriptc::clusterObj_getGroupString;
 *setFilter = *mapscriptc::clusterObj_setFilter;
@@ -207,6 +208,8 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 @ISA = qw( mapscript );
 %OWNER = ();
 %ITERATORS = ();
+*swig_numformatoptions_get = *mapscriptc::outputFormatObj_numformatoptions_get;
+*swig_numformatoptions_set = *mapscriptc::outputFormatObj_numformatoptions_set;
 *swig_name_get = *mapscriptc::outputFormatObj_name_get;
 *swig_name_set = *mapscriptc::outputFormatObj_name_set;
 *swig_mimetype_get = *mapscriptc::outputFormatObj_mimetype_get;
@@ -223,12 +226,6 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 *swig_transparent_set = *mapscriptc::outputFormatObj_transparent_set;
 *swig_bands_get = *mapscriptc::outputFormatObj_bands_get;
 *swig_bands_set = *mapscriptc::outputFormatObj_bands_set;
-*swig_numformatoptions_get = *mapscriptc::outputFormatObj_numformatoptions_get;
-*swig_numformatoptions_set = *mapscriptc::outputFormatObj_numformatoptions_set;
-*swig_formatoptions_get = *mapscriptc::outputFormatObj_formatoptions_get;
-*swig_formatoptions_set = *mapscriptc::outputFormatObj_formatoptions_set;
-*swig_refcount_get = *mapscriptc::outputFormatObj_refcount_get;
-*swig_refcount_set = *mapscriptc::outputFormatObj_refcount_set;
 *swig_inmapfile_get = *mapscriptc::outputFormatObj_inmapfile_get;
 *swig_inmapfile_set = *mapscriptc::outputFormatObj_inmapfile_set;
 sub new {
@@ -253,6 +250,7 @@ sub DESTROY {
 *setOption = *mapscriptc::outputFormatObj_setOption;
 *validate = *mapscriptc::outputFormatObj_validate;
 *getOption = *mapscriptc::outputFormatObj_getOption;
+*getOptionAt = *mapscriptc::outputFormatObj_getOptionAt;
 *attachDevice = *mapscriptc::outputFormatObj_attachDevice;
 sub DISOWN {
     my $self = shift;
@@ -285,6 +283,7 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 *swig_color_get = *mapscriptc::queryMapObj_color_get;
 *swig_color_set = *mapscriptc::queryMapObj_color_set;
 *updateFromString = *mapscriptc::queryMapObj_updateFromString;
+*convertToString = *mapscriptc::queryMapObj_convertToString;
 sub new {
     my $pkg = shift;
     my $self = mapscriptc::new_queryMapObj(@_);
@@ -380,6 +379,7 @@ sub DESTROY {
 }
 
 *updateFromString = *mapscriptc::webObj_updateFromString;
+*convertToString = *mapscriptc::webObj_convertToString;
 sub DISOWN {
     my $self = shift;
     my $ptr = tied(%$self);
@@ -492,6 +492,7 @@ sub DESTROY {
 }
 
 *updateFromString = *mapscriptc::styleObj_updateFromString;
+*convertToString = *mapscriptc::styleObj_convertToString;
 *clone = *mapscriptc::styleObj_clone;
 *setSymbolByName = *mapscriptc::styleObj_setSymbolByName;
 *removeBinding = *mapscriptc::styleObj_removeBinding;
@@ -662,6 +663,7 @@ sub DESTROY {
 }
 
 *updateFromString = *mapscriptc::labelObj_updateFromString;
+*convertToString = *mapscriptc::labelObj_convertToString;
 *removeBinding = *mapscriptc::labelObj_removeBinding;
 *getBinding = *mapscriptc::labelObj_getBinding;
 *setBinding = *mapscriptc::labelObj_setBinding;
@@ -752,6 +754,7 @@ sub DESTROY {
 }
 
 *updateFromString = *mapscriptc::classObj_updateFromString;
+*convertToString = *mapscriptc::classObj_convertToString;
 *clone = *mapscriptc::classObj_clone;
 *setExpression = *mapscriptc::classObj_setExpression;
 *getExpressionString = *mapscriptc::classObj_getExpressionString;
@@ -1157,6 +1160,7 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 *swig_map_get = *mapscriptc::referenceMapObj_map_get;
 *swig_map_set = *mapscriptc::referenceMapObj_map_set;
 *updateFromString = *mapscriptc::referenceMapObj_updateFromString;
+*convertToString = *mapscriptc::referenceMapObj_convertToString;
 sub new {
     my $pkg = shift;
     my $self = mapscriptc::new_referenceMapObj(@_);
@@ -1223,6 +1227,7 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 *swig_align_get = *mapscriptc::scalebarObj_align_get;
 *swig_align_set = *mapscriptc::scalebarObj_align_set;
 *updateFromString = *mapscriptc::scalebarObj_updateFromString;
+*convertToString = *mapscriptc::scalebarObj_convertToString;
 sub new {
     my $pkg = shift;
     my $self = mapscriptc::new_scalebarObj(@_);
@@ -1289,6 +1294,7 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 *swig_map_get = *mapscriptc::legendObj_map_get;
 *swig_map_set = *mapscriptc::legendObj_map_set;
 *updateFromString = *mapscriptc::legendObj_updateFromString;
+*convertToString = *mapscriptc::legendObj_convertToString;
 sub new {
     my $pkg = shift;
     my $self = mapscriptc::new_legendObj(@_);
@@ -1374,6 +1380,92 @@ sub ACQUIRE {
 }
 
 
+############# Class : mapscript::scaleTokenEntryObj ##############
+
+package mapscript::scaleTokenEntryObj;
+use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
+ at ISA = qw( mapscript );
+%OWNER = ();
+%ITERATORS = ();
+*swig_minscale_get = *mapscriptc::scaleTokenEntryObj_minscale_get;
+*swig_minscale_set = *mapscriptc::scaleTokenEntryObj_minscale_set;
+*swig_maxscale_get = *mapscriptc::scaleTokenEntryObj_maxscale_get;
+*swig_maxscale_set = *mapscriptc::scaleTokenEntryObj_maxscale_set;
+*swig_value_get = *mapscriptc::scaleTokenEntryObj_value_get;
+*swig_value_set = *mapscriptc::scaleTokenEntryObj_value_set;
+sub new {
+    my $pkg = shift;
+    my $self = mapscriptc::new_scaleTokenEntryObj(@_);
+    bless $self, $pkg if defined($self);
+}
+
+sub DESTROY {
+    return unless $_[0]->isa('HASH');
+    my $self = tied(%{$_[0]});
+    return unless defined $self;
+    delete $ITERATORS{$self};
+    if (exists $OWNER{$self}) {
+        mapscriptc::delete_scaleTokenEntryObj($self);
+        delete $OWNER{$self};
+    }
+}
+
+sub DISOWN {
+    my $self = shift;
+    my $ptr = tied(%$self);
+    delete $OWNER{$ptr};
+}
+
+sub ACQUIRE {
+    my $self = shift;
+    my $ptr = tied(%$self);
+    $OWNER{$ptr} = 1;
+}
+
+
+############# Class : mapscript::scaleTokenObj ##############
+
+package mapscript::scaleTokenObj;
+use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
+ at ISA = qw( mapscript );
+%OWNER = ();
+%ITERATORS = ();
+*swig_name_get = *mapscriptc::scaleTokenObj_name_get;
+*swig_name_set = *mapscriptc::scaleTokenObj_name_set;
+*swig_n_entries_get = *mapscriptc::scaleTokenObj_n_entries_get;
+*swig_n_entries_set = *mapscriptc::scaleTokenObj_n_entries_set;
+*swig_tokens_get = *mapscriptc::scaleTokenObj_tokens_get;
+*swig_tokens_set = *mapscriptc::scaleTokenObj_tokens_set;
+sub new {
+    my $pkg = shift;
+    my $self = mapscriptc::new_scaleTokenObj(@_);
+    bless $self, $pkg if defined($self);
+}
+
+sub DESTROY {
+    return unless $_[0]->isa('HASH');
+    my $self = tied(%{$_[0]});
+    return unless defined $self;
+    delete $ITERATORS{$self};
+    if (exists $OWNER{$self}) {
+        mapscriptc::delete_scaleTokenObj($self);
+        delete $OWNER{$self};
+    }
+}
+
+sub DISOWN {
+    my $self = shift;
+    my $ptr = tied(%$self);
+    delete $OWNER{$ptr};
+}
+
+sub ACQUIRE {
+    my $self = shift;
+    my $ptr = tied(%$self);
+    $OWNER{$ptr} = 1;
+}
+
+
 ############# Class : mapscript::layerObj ##############
 
 package mapscript::layerObj;
@@ -1449,6 +1541,8 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 *swig_tileitem_set = *mapscriptc::layerObj_tileitem_set;
 *swig_tileindex_get = *mapscriptc::layerObj_tileindex_get;
 *swig_tileindex_set = *mapscriptc::layerObj_tileindex_set;
+*swig_tilesrs_get = *mapscriptc::layerObj_tilesrs_get;
+*swig_tilesrs_set = *mapscriptc::layerObj_tilesrs_set;
 *swig_units_get = *mapscriptc::layerObj_units_get;
 *swig_units_set = *mapscriptc::layerObj_units_set;
 *swig_connection_get = *mapscriptc::layerObj_connection_get;
@@ -1518,6 +1612,7 @@ sub DESTROY {
 
 *clone = *mapscriptc::layerObj_clone;
 *updateFromString = *mapscriptc::layerObj_updateFromString;
+*convertToString = *mapscriptc::layerObj_convertToString;
 sub insertClass {
         my $idx = mapscriptc::layerObj_insertClass(@_);
         my $clazz=$_[1];
@@ -1586,6 +1681,8 @@ sub getClass {
 *clearProcessing = *mapscriptc::layerObj_clearProcessing;
 *setConnectionType = *mapscriptc::layerObj_setConnectionType;
 *getClassIndex = *mapscriptc::layerObj_getClassIndex;
+*getGeomTransform = *mapscriptc::layerObj_getGeomTransform;
+*setGeomTransform = *mapscriptc::layerObj_setGeomTransform;
 sub DISOWN {
     my $self = shift;
     my $ptr = tied(%$self);
@@ -1654,8 +1751,6 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 *swig_imagecolor_set = *mapscriptc::mapObj_imagecolor_set;
 *swig_numoutputformats_get = *mapscriptc::mapObj_numoutputformats_get;
 *swig_numoutputformats_set = *mapscriptc::mapObj_numoutputformats_set;
-*swig_outputformatlist_get = *mapscriptc::mapObj_outputformatlist_get;
-*swig_outputformatlist_set = *mapscriptc::mapObj_outputformatlist_set;
 *swig_outputformat_get = *mapscriptc::mapObj_outputformat_get;
 *swig_outputformat_set = *mapscriptc::mapObj_outputformat_set;
 *swig_imagetype_get = *mapscriptc::mapObj_imagetype_get;
@@ -1738,6 +1833,7 @@ sub getLayerByName {
 *prepareImage = *mapscriptc::mapObj_prepareImage;
 *setImageType = *mapscriptc::mapObj_setImageType;
 *selectOutputFormat = *mapscriptc::mapObj_selectOutputFormat;
+*getOutputFormat = *mapscriptc::mapObj_getOutputFormat;
 *setOutputFormat = *mapscriptc::mapObj_setOutputFormat;
 *draw = *mapscriptc::mapObj_draw;
 *drawQuery = *mapscriptc::mapObj_drawQuery;
@@ -1790,6 +1886,7 @@ sub getLayerByName {
 *removeOutputFormat = *mapscriptc::mapObj_removeOutputFormat;
 *loadOWSParameters = *mapscriptc::mapObj_loadOWSParameters;
 *OWSDispatch = *mapscriptc::mapObj_OWSDispatch;
+*convertToString = *mapscriptc::mapObj_convertToString;
 *zoomPoint = *mapscriptc::mapObj_zoomPoint;
 *zoomRectangle = *mapscriptc::mapObj_zoomRectangle;
 *zoomScale = *mapscriptc::mapObj_zoomScale;
@@ -2537,8 +2634,6 @@ use vars qw(@ISA %OWNER %ITERATORS %BLESSEDMEMBERS);
 *swig_antialias_set = *mapscriptc::symbolObj_antialias_set;
 *swig_font_get = *mapscriptc::symbolObj_font_get;
 *swig_font_set = *mapscriptc::symbolObj_font_set;
-*swig_svg_text_get = *mapscriptc::symbolObj_svg_text_get;
-*swig_svg_text_set = *mapscriptc::symbolObj_svg_text_set;
 sub new {
     my $pkg = shift;
     my $self = mapscriptc::new_symbolObj(@_);
@@ -2722,11 +2817,6 @@ sub ACQUIRE {
 
 package mapscript;
 
-*MS_VERSION = *mapscriptc::MS_VERSION;
-*MS_VERSION_MAJOR = *mapscriptc::MS_VERSION_MAJOR;
-*MS_VERSION_MINOR = *mapscriptc::MS_VERSION_MINOR;
-*MS_VERSION_REV = *mapscriptc::MS_VERSION_REV;
-*MS_VERSION_NUM = *mapscriptc::MS_VERSION_NUM;
 *MS_TRUE = *mapscriptc::MS_TRUE;
 *MS_FALSE = *mapscriptc::MS_FALSE;
 *MS_UNKNOWN = *mapscriptc::MS_UNKNOWN;
@@ -2824,6 +2914,7 @@ package mapscript;
 *MS_PLUGIN = *mapscriptc::MS_PLUGIN;
 *MS_UNION = *mapscriptc::MS_UNION;
 *MS_UVRASTER = *mapscriptc::MS_UVRASTER;
+*MS_CONTOUR = *mapscriptc::MS_CONTOUR;
 *MS_DB_XBASE = *mapscriptc::MS_DB_XBASE;
 *MS_DB_CSV = *mapscriptc::MS_DB_CSV;
 *MS_DB_MYSQL = *mapscriptc::MS_DB_MYSQL;
@@ -2937,11 +3028,17 @@ package mapscript;
 *MS_TOKEN_FUNCTION_FROMTEXT = *mapscriptc::MS_TOKEN_FUNCTION_FROMTEXT;
 *MS_TOKEN_FUNCTION_BUFFER = *mapscriptc::MS_TOKEN_FUNCTION_BUFFER;
 *MS_TOKEN_FUNCTION_DIFFERENCE = *mapscriptc::MS_TOKEN_FUNCTION_DIFFERENCE;
+*MS_TOKEN_FUNCTION_SIMPLIFY = *mapscriptc::MS_TOKEN_FUNCTION_SIMPLIFY;
+*MS_TOKEN_FUNCTION_SIMPLIFYPT = *mapscriptc::MS_TOKEN_FUNCTION_SIMPLIFYPT;
+*MS_TOKEN_FUNCTION_GENERALIZE = *mapscriptc::MS_TOKEN_FUNCTION_GENERALIZE;
+*MS_TOKEN_FUNCTION_SMOOTHSIA = *mapscriptc::MS_TOKEN_FUNCTION_SMOOTHSIA;
 *MS_TOKEN_BINDING_DOUBLE = *mapscriptc::MS_TOKEN_BINDING_DOUBLE;
 *MS_TOKEN_BINDING_INTEGER = *mapscriptc::MS_TOKEN_BINDING_INTEGER;
 *MS_TOKEN_BINDING_STRING = *mapscriptc::MS_TOKEN_BINDING_STRING;
 *MS_TOKEN_BINDING_TIME = *mapscriptc::MS_TOKEN_BINDING_TIME;
 *MS_TOKEN_BINDING_SHAPE = *mapscriptc::MS_TOKEN_BINDING_SHAPE;
+*MS_TOKEN_BINDING_MAP_CELLSIZE = *mapscriptc::MS_TOKEN_BINDING_MAP_CELLSIZE;
+*MS_TOKEN_BINDING_DATA_CELLSIZE = *mapscriptc::MS_TOKEN_BINDING_DATA_CELLSIZE;
 *MS_PARSE_TYPE_BOOLEAN = *mapscriptc::MS_PARSE_TYPE_BOOLEAN;
 *MS_PARSE_TYPE_STRING = *mapscriptc::MS_PARSE_TYPE_STRING;
 *MS_PARSE_TYPE_SHAPE = *mapscriptc::MS_PARSE_TYPE_SHAPE;
diff --git a/mapscript/perl/mapscript_wrap.c b/mapscript/perl/mapscript_wrap.c
index 4b90aa0..106a2b6 100644
--- a/mapscript/perl/mapscript_wrap.c
+++ b/mapscript/perl/mapscript_wrap.c
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -173,7 +173,7 @@
 /* 
    Flags/methods for returning states.
    
-   The SWIG conversion methods, as ConvertPtr, return and integer 
+   The SWIG conversion methods, as ConvertPtr, return an integer 
    that tells if the conversion was successful or not. And if not,
    an error code can be returned (see swigerrors.swg for the codes).
    
@@ -830,50 +830,35 @@ extern "C" {
 
 SWIGINTERN const char*
 SWIG_Perl_ErrorType(int code) {
-  const char* type = 0;
   switch(code) {
   case SWIG_MemoryError:
-    type = "MemoryError";
-    break;
+    return "MemoryError";
   case SWIG_IOError:
-    type = "IOError";
-    break;
+    return "IOError";
   case SWIG_RuntimeError:
-    type = "RuntimeError";
-    break;
+    return "RuntimeError";
   case SWIG_IndexError:
-    type = "IndexError";
-    break;
+    return "IndexError";
   case SWIG_TypeError:
-    type = "TypeError";
-    break;
+    return "TypeError";
   case SWIG_DivisionByZero:
-    type = "ZeroDivisionError";
-    break;
+    return "ZeroDivisionError";
   case SWIG_OverflowError:
-    type = "OverflowError";
-    break;
+    return "OverflowError";
   case SWIG_SyntaxError:
-    type = "SyntaxError";
-    break;
+    return "SyntaxError";
   case SWIG_ValueError:
-    type = "ValueError";
-    break;
+    return "ValueError";
   case SWIG_SystemError:
-    type = "SystemError";
-    break;
+    return "SystemError";
   case SWIG_AttributeError:
-    type = "AttributeError";
-    break;
+    return "AttributeError";
   default:
-    type = "RuntimeError";
+    return "RuntimeError";
   }
-  return type;
 }
 
 
-
-
 /* -----------------------------------------------------------------------------
  * perlrun.swg
  *
@@ -923,7 +908,7 @@ SWIG_Perl_ErrorType(int code) {
 /* Error manipulation */
 
 #define SWIG_ErrorType(code)                            SWIG_Perl_ErrorType(code)               
-#define SWIG_Error(code, msg)            		sv_setpvf(GvSV(PL_errgv),"%s %s\n", SWIG_ErrorType(code), msg)
+#define SWIG_Error(code, msg)            		sv_setpvf(get_sv("@", GV_ADD), "%s %s", SWIG_ErrorType(code), msg)
 #define SWIG_fail                        		goto fail						    
 
 /* Perl-specific SWIG API */
@@ -1017,8 +1002,6 @@ typedef int (*SwigMagicFunc)(struct interpreter *, SV *, MAGIC *);
 #endif /* MULTIPLICITY */
 #endif /* PERL_OBJECT */
 
-/* Workaround for bug in perl 5.6.x croak and earlier */
-#if (PERL_VERSION < 8)
 #  ifdef PERL_OBJECT
 #    define SWIG_croak_null() SWIG_Perl_croak_null(pPerl)
 static void SWIG_Perl_croak_null(CPerlObj *pPerl)
@@ -1026,17 +1009,16 @@ static void SWIG_Perl_croak_null(CPerlObj *pPerl)
 static void SWIG_croak_null()
 #  endif
 {
-  SV *err=ERRSV;
+  SV *err = get_sv("@", GV_ADD);
 #  if (PERL_VERSION < 6)
   croak("%_", err);
 #  else
-  if (SvOK(err) && !SvROK(err)) croak("%_", err);
-  croak(Nullch);
+  if (sv_isobject(err))
+    croak(0);
+  else
+    croak("%s", SvPV_nolen(err));
 #  endif
 }
-#else
-#  define SWIG_croak_null() croak(Nullch)
-#endif
 
 
 /* 
@@ -1088,8 +1070,7 @@ SWIG_TypeProxyCheck(const char *c, swig_type_info *ty) {
   if (ty) {
     swig_cast_info *iter = ty->cast;
     while (iter) {
-      if ( (!iter->type->clientdata && (strcmp(iter->type->name, c) == 0)) ||
-            (iter->type->clientdata && (strcmp((char*)iter->type->clientdata, c) == 0)) ) {
+      if (strcmp(SWIG_Perl_TypeProxyName(iter->type), c) == 0) {
         if (iter == ty->cast)
           return iter;
         /* Move iter to the top of the linked list */
@@ -1150,8 +1131,14 @@ SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_
     return SWIG_OK;
   } else if (SvTYPE(sv) == SVt_RV) {  /* Check for NULL pointer */
     if (!SvROK(sv)) {
-      *(ptr) = (void *) 0;
-      return SWIG_OK;
+      /* In Perl 5.12 and later, SVt_RV == SVt_IV, so sv could be a valid integer value.  */
+      if (SvIOK(sv)) {
+        return SWIG_ERROR;
+      } else {
+        /* NULL pointer (reference to undef). */
+        *(ptr) = (void *) 0;
+        return SWIG_OK;
+      }
     } else {
       return SWIG_ERROR;
     }
@@ -1169,7 +1156,7 @@ SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_
       int newmemory = 0;
       *ptr = SWIG_TypeCast(tc,voidptr,&newmemory);
       if (newmemory == SWIG_CAST_NEW_MEMORY) {
-        assert(own);
+        assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
         if (own)
           *own = *own | SWIG_CAST_NEW_MEMORY;
       }
@@ -1187,7 +1174,7 @@ SWIG_Perl_ConvertPtrAndOwn(SWIG_MAYBE_PERL_OBJECT SV *sv, void **ptr, swig_type_
      */
     SV *obj = sv;
     HV *stash = SvSTASH(SvRV(obj));
-    GV *gv = *(GV**) hv_fetch(stash, "OWNER", 5, TRUE);
+    GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
     if (isGV(gv)) {
       HV *hv = GvHVn(gv);
       /*
@@ -1214,11 +1201,11 @@ SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, i
     SV *obj=newSV(0);
     HV *hash=newHV();
     HV *stash;
-    sv_setref_pv(obj, (char *) SWIG_Perl_TypeProxyName(t), ptr);
+    sv_setref_pv(obj, SWIG_Perl_TypeProxyName(t), ptr);
     stash=SvSTASH(SvRV(obj));
     if (flags & SWIG_POINTER_OWN) {
       HV *hv;
-      GV *gv=*(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
+      GV *gv = *(GV**)hv_fetch(stash, "OWNER", 5, TRUE);
       if (!isGV(gv))
         gv_init(gv, stash, "OWNER", 5, FALSE);
       hv=GvHVn(gv);
@@ -1232,7 +1219,7 @@ SWIG_Perl_MakePtr(SWIG_MAYBE_PERL_OBJECT SV *sv, void *ptr, swig_type_info *t, i
     sv_bless(sv, stash);
   }
   else {
-    sv_setref_pv(sv, (char *) SWIG_Perl_TypeProxyName(t), ptr);
+    sv_setref_pv(sv, SWIG_Perl_TypeProxyName(t), ptr);
   }
 }
 
@@ -1323,19 +1310,23 @@ typedef struct {
 
 /* Magic variable code */
 #ifndef PERL_OBJECT
-#define swig_create_magic(s,a,b,c) _swig_create_magic(s,a,b,c)
-  #ifndef MULTIPLICITY
-     SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) 
-  #else
-     SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) 
-  #endif
+# ifdef __cplusplus
+#  define swig_create_magic(s,a,b,c) _swig_create_magic(s,const_cast<char*>(a),b,c)
+# else
+#  define swig_create_magic(s,a,b,c) _swig_create_magic(s,(char*)(a),b,c)
+# endif
+# ifndef MULTIPLICITY
+SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(SV *, MAGIC *), int (*get)(SV *,MAGIC *)) 
+# else
+SWIGRUNTIME void _swig_create_magic(SV *sv, char *name, int (*set)(struct interpreter*, SV *, MAGIC *), int (*get)(struct interpreter*, SV *,MAGIC *)) 
+# endif
 #else
 #  define swig_create_magic(s,a,b,c) _swig_create_magic(pPerl,s,a,b,c)
 SWIGRUNTIME void _swig_create_magic(CPerlObj *pPerl, SV *sv, const char *name, int (CPerlObj::*set)(SV *, MAGIC *), int (CPerlObj::*get)(SV *, MAGIC *)) 
 #endif
 {
   MAGIC *mg;
-  sv_magic(sv,sv,'U',(char *) name,strlen(name));
+  sv_magic(sv,sv,'U',name,strlen(name));
   mg = mg_find(sv,'U');
   mg->mg_virtual = (MGVTBL *) malloc(sizeof(MGVTBL));
   mg->mg_virtual->svt_get = (SwigMagicFunc) get;
@@ -1477,6 +1468,12 @@ SWIG_Perl_SetModule(swig_module_info *module) {
 #ifdef bind
   #undef bind
 #endif
+#ifdef access
+  #undef access
+#endif
+#ifdef stat
+  #undef stat
+#endif
 
 
 
@@ -1521,28 +1518,29 @@ SWIG_Perl_SetModule(swig_module_info *module) {
 #define SWIGTYPE_p_markerCacheMemberObj swig_types[27]
 #define SWIGTYPE_p_outputFormatObj swig_types[28]
 #define SWIGTYPE_p_p_char swig_types[29]
-#define SWIGTYPE_p_p_outputFormatObj swig_types[30]
-#define SWIGTYPE_p_pointObj swig_types[31]
-#define SWIGTYPE_p_projectionObj swig_types[32]
-#define SWIGTYPE_p_queryMapObj swig_types[33]
-#define SWIGTYPE_p_rectObj swig_types[34]
-#define SWIGTYPE_p_referenceMapObj swig_types[35]
-#define SWIGTYPE_p_rendererVTableObj swig_types[36]
-#define SWIGTYPE_p_resultCacheObj swig_types[37]
-#define SWIGTYPE_p_resultObj swig_types[38]
-#define SWIGTYPE_p_scalebarObj swig_types[39]
-#define SWIGTYPE_p_shapeObj swig_types[40]
-#define SWIGTYPE_p_shapefileObj swig_types[41]
-#define SWIGTYPE_p_strokeStyleObj swig_types[42]
-#define SWIGTYPE_p_styleObj swig_types[43]
-#define SWIGTYPE_p_symbolObj swig_types[44]
-#define SWIGTYPE_p_symbolSetObj swig_types[45]
-#define SWIGTYPE_p_symbolStyleObj swig_types[46]
-#define SWIGTYPE_p_tileCacheObj swig_types[47]
-#define SWIGTYPE_p_uint32_t swig_types[48]
-#define SWIGTYPE_p_webObj swig_types[49]
-static swig_type_info *swig_types[51];
-static swig_module_info swig_module = {swig_types, 50, 0, 0, 0, 0};
+#define SWIGTYPE_p_pointObj swig_types[30]
+#define SWIGTYPE_p_projectionObj swig_types[31]
+#define SWIGTYPE_p_queryMapObj swig_types[32]
+#define SWIGTYPE_p_rectObj swig_types[33]
+#define SWIGTYPE_p_referenceMapObj swig_types[34]
+#define SWIGTYPE_p_rendererVTableObj swig_types[35]
+#define SWIGTYPE_p_resultCacheObj swig_types[36]
+#define SWIGTYPE_p_resultObj swig_types[37]
+#define SWIGTYPE_p_scaleTokenEntryObj swig_types[38]
+#define SWIGTYPE_p_scaleTokenObj swig_types[39]
+#define SWIGTYPE_p_scalebarObj swig_types[40]
+#define SWIGTYPE_p_shapeObj swig_types[41]
+#define SWIGTYPE_p_shapefileObj swig_types[42]
+#define SWIGTYPE_p_strokeStyleObj swig_types[43]
+#define SWIGTYPE_p_styleObj swig_types[44]
+#define SWIGTYPE_p_symbolObj swig_types[45]
+#define SWIGTYPE_p_symbolSetObj swig_types[46]
+#define SWIGTYPE_p_symbolStyleObj swig_types[47]
+#define SWIGTYPE_p_tileCacheObj swig_types[48]
+#define SWIGTYPE_p_uint32_t swig_types[49]
+#define SWIGTYPE_p_webObj swig_types[50]
+static swig_type_info *swig_types[52];
+static swig_module_info swig_module = {swig_types, 51, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -1553,7 +1551,7 @@ static swig_module_info swig_module = {swig_types, 50, 0, 0, 0, 0};
 #define SWIG_name   "mapscriptc::boot_mapscript"
 #define SWIG_prefix "mapscriptc::"
 
-#define SWIGVERSION 0x010340 
+#define SWIGVERSION 0x020007 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -1607,7 +1605,9 @@ SWIG_AsVal_double SWIG_PERL_DECL_ARGS_2(SV *obj, double *val)
     const char *nptr = SvPV_nolen(obj);
     if (nptr) {
       char *endptr;
-      double v = strtod(nptr, &endptr);
+      double v;
+      errno = 0;
+      v = strtod(nptr, &endptr);
       if (errno == ERANGE) {
 	errno = 0;
 	return SWIG_OverflowError;
@@ -1663,16 +1663,19 @@ SWIGINTERN int
 SWIG_AsVal_unsigned_SS_long SWIG_PERL_DECL_ARGS_2(SV *obj, unsigned long *val) 
 {
   if (SvUOK(obj)) {
-    if (val) *val = SvUV(obj);
-    return SWIG_OK;
-  } else  if (SvIOK(obj)) {
-    long v = SvIV(obj);
-    if (v >= 0) {
+    UV v = SvUV(obj);
+    if (v <= ULONG_MAX) {
+      if (val) *val = v;
+      return SWIG_OK;
+    }
+    return SWIG_OverflowError;
+  } else if (SvIOK(obj)) {
+    IV v = SvIV(obj);
+    if (v >= 0 && v <= ULONG_MAX) {
       if (val) *val = v;
       return SWIG_OK;
-    } else {
-      return SWIG_OverflowError;
     }
+    return SWIG_OverflowError;
   } else {
     int dispatch = 0;
     const char *nptr = SvPV_nolen(obj);
@@ -1725,10 +1728,13 @@ SWIGINTERN int intarray_getitem(intarray *self,size_t index){
 
 SWIGINTERNINLINE SV *
 SWIG_From_long  SWIG_PERL_DECL_ARGS_1(long value)
-{    
-  SV *obj = sv_newmortal();
-  sv_setiv(obj, (IV) value);
-  return obj;
+{
+  SV *sv;
+  if (value >= IV_MIN && value <= IV_MAX)
+    sv = newSViv(value);
+  else
+    sv = newSVpvf("%ld", value);
+  return sv_2mortal(sv);
 }
 
 
@@ -1752,9 +1758,20 @@ SWIG_From_int  SWIG_PERL_DECL_ARGS_1(int value)
 SWIGINTERN int
 SWIG_AsVal_long SWIG_PERL_DECL_ARGS_2(SV *obj, long* val)
 {
-  if (SvIOK(obj)) {
-    if (val) *val = SvIV(obj);
-    return SWIG_OK;
+  if (SvUOK(obj)) {
+    UV v = SvUV(obj);
+    if (v <= LONG_MAX) {
+      if (val) *val = v;
+      return SWIG_OK;
+    }
+    return SWIG_OverflowError;
+  } else if (SvIOK(obj)) {
+    IV v = SvIV(obj);
+    if (v >= LONG_MIN && v <= LONG_MAX) {
+      if(val) *val = v;
+      return SWIG_OK;
+    }
+    return SWIG_OverflowError;
   } else {
     int dispatch = 0;
     const char *nptr = SvPV_nolen(obj);
@@ -1848,10 +1865,8 @@ SWIG_FromCharPtr(const char *cptr)
 
 SWIGINTERNINLINE SV *
 SWIG_From_double  SWIG_PERL_DECL_ARGS_1(double value)
-{    
-  SV *obj = sv_newmortal();
-  sv_setnv(obj, value);
-  return obj;
+{
+  return sv_2mortal(newSVnv(value));
 }
 
 
@@ -1913,6 +1928,9 @@ SWIG_AsCharPtrAndSize(SV *obj, char** cptr, size_t* psize, int *alloc)
 SWIGINTERN int clusterObj_updateFromString(clusterObj *self,char *snippet){
     return msUpdateClusterFromString(self, snippet);
   }
+SWIGINTERN char *clusterObj_convertToString(clusterObj *self){
+    return msWriteClusterToString(self);
+  }
 SWIGINTERN int clusterObj_setGroup(clusterObj *self,char *group){
     if (!group || strlen(group) == 0) {
        freeExpression(&self->group);
@@ -1949,15 +1967,13 @@ SWIGINTERN outputFormatObj *new_outputFormatObj(char const *driver,char *name){
         
         msInitializeRendererVTable(format);
 
-        /* Else, continue */
-        format->refcount++;
+        MS_REFCNT_INIT(format);
 	format->inmapfile = 1;
 
         return format;
     }
 SWIGINTERN void delete_outputFormatObj(outputFormatObj *self){
-        if ( --self->refcount < 1 )
-            msFreeOutputFormat( self );
+        msFreeOutputFormat( self );
     }
 SWIGINTERN void outputFormatObj_setExtension(outputFormatObj *self,char const *extension){
         msFree( self->extension );
@@ -1974,9 +1990,13 @@ SWIGINTERN int outputFormatObj_validate(outputFormatObj *self){
        	return msOutputFormatValidate( self, 0 );
     }
 SWIGINTERN char *outputFormatObj_getOption(outputFormatObj *self,char const *key,char const *value){
-        const char *retval;
-        retval = msGetOutputFormatOption(self, key, value);
-        return strdup(retval);
+        return strdup(msGetOutputFormatOption(self, key, value));
+    }
+SWIGINTERN char *outputFormatObj_getOptionAt(outputFormatObj *self,int i){
+       if( i >= 0 && i < self->numformatoptions ) {
+          return strdup(self->formatoptions[i]);
+       }
+       return NULL;
     }
 SWIGINTERN void outputFormatObj_attachDevice(outputFormatObj *self,void *device){
         self->device = device;
@@ -1984,6 +2004,9 @@ SWIGINTERN void outputFormatObj_attachDevice(outputFormatObj *self,void *device)
 SWIGINTERN int queryMapObj_updateFromString(queryMapObj *self,char *snippet){
     return msUpdateQueryMapFromString(self, snippet, 0);
   }
+SWIGINTERN char *queryMapObj_convertToString(queryMapObj *self){
+    return msWriteQueryMapToString(self);
+  }
 SWIGINTERN webObj *new_webObj(){
         webObj *web;
         web = (webObj *) malloc(sizeof(webObj));
@@ -1998,7 +2021,10 @@ SWIGINTERN void delete_webObj(webObj *self){
 SWIGINTERN int webObj_updateFromString(webObj *self,char *snippet){
         return msUpdateWebFromString(self, snippet, 0);
     }
-SWIGINTERN styleObj *new_styleObj(classObj *parent_class){
+SWIGINTERN char *webObj_convertToString(webObj *self){
+        return msWriteWebToString(self);
+    }
+SWIGINTERN struct styleObj *new_styleObj(classObj *parent_class){
     
         styleObj *style = NULL;
         
@@ -2029,7 +2055,7 @@ SWIGINTERN styleObj *new_styleObj(classObj *parent_class){
         }
         return style;
     }
-SWIGINTERN void delete_styleObj(styleObj *self){
+SWIGINTERN void delete_styleObj(struct styleObj *self){
         if (self) { 
 		if ( freeStyle(self) == MS_SUCCESS ) {
             		free(self);
@@ -2037,10 +2063,13 @@ SWIGINTERN void delete_styleObj(styleObj *self){
 		}
 	}
     }
-SWIGINTERN int styleObj_updateFromString(styleObj *self,char *snippet){
+SWIGINTERN int styleObj_updateFromString(struct styleObj *self,char *snippet){
         return msUpdateStyleFromString(self, snippet, 0);
     }
-SWIGINTERN styleObj *styleObj_clone(styleObj *self){
+SWIGINTERN char *styleObj_convertToString(struct styleObj *self){
+        return msWriteStyleToString(self);
+    }
+SWIGINTERN styleObj *styleObj_clone(struct styleObj *self){
         styleObj *style;
 
         style = (styleObj *) malloc(sizeof(styleObj));
@@ -2066,14 +2095,14 @@ SWIGINTERN styleObj *styleObj_clone(styleObj *self){
         
         return style;
     }
-SWIGINTERN int styleObj_setSymbolByName(styleObj *self,mapObj *map,char *symbolname){
+SWIGINTERN int styleObj_setSymbolByName(struct styleObj *self,mapObj *map,char *symbolname){
         self->symbol = msGetSymbolIndex(&map->symbolset, symbolname, 1);
         if (self->symbolname) free((char*)self->symbolname);
         if (symbolname) self->symbolname = strdup(symbolname);
         else self->symbolname = 0;
         return self->symbol;
     }
-SWIGINTERN int styleObj_removeBinding(styleObj *self,int binding){
+SWIGINTERN int styleObj_removeBinding(struct styleObj *self,int binding){
     if(binding < 0 || binding >= 12) return MS_FAILURE;
 
     if(self->bindings[binding].item) {
@@ -2085,7 +2114,7 @@ SWIGINTERN int styleObj_removeBinding(styleObj *self,int binding){
 
     return MS_SUCCESS;
   }
-SWIGINTERN int styleObj_setBinding(styleObj *self,int binding,char *item){
+SWIGINTERN int styleObj_setBinding(struct styleObj *self,int binding,char *item){
     if(!item) return MS_FAILURE;
     if(binding < 0 || binding >= 12) return MS_FAILURE;
 
@@ -2101,15 +2130,15 @@ SWIGINTERN int styleObj_setBinding(styleObj *self,int binding,char *item){
 
     return MS_SUCCESS;
   }
-SWIGINTERN char *styleObj_getBinding(styleObj *self,int binding){
+SWIGINTERN char *styleObj_getBinding(struct styleObj *self,int binding){
     if(binding < 0 || binding >= 12) return NULL;
 
     return self->bindings[binding].item;
   }
-SWIGINTERN char *styleObj_getGeomTransform(styleObj *self){
+SWIGINTERN char *styleObj_getGeomTransform(struct styleObj *self){
     return self->_geomtransform.string;
   }
-SWIGINTERN void styleObj_setGeomTransform(styleObj *self,char *transform){
+SWIGINTERN void styleObj_setGeomTransform(struct styleObj *self,char *transform){
     msStyleSetGeomTransform(self, transform);
   }
 
@@ -2162,7 +2191,7 @@ SWIG_From_char  SWIG_PERL_DECL_ARGS_1(char c)
   return SWIG_FromCharPtrAndSize(&c,1);
 }
 
-SWIGINTERN labelObj *new_labelObj(){
+SWIGINTERN struct labelObj *new_labelObj(){
       labelObj *label;
         
       label = (labelObj *)calloc(1, sizeof(labelObj));
@@ -2173,13 +2202,16 @@ SWIGINTERN labelObj *new_labelObj(){
       
       return(label);    	
     }
-SWIGINTERN void delete_labelObj(labelObj *self){
+SWIGINTERN void delete_labelObj(struct labelObj *self){
       freeLabel(self);
     }
-SWIGINTERN int labelObj_updateFromString(labelObj *self,char *snippet){
+SWIGINTERN int labelObj_updateFromString(struct labelObj *self,char *snippet){
     return msUpdateLabelFromString(self, snippet,0);
   }
-SWIGINTERN int labelObj_removeBinding(labelObj *self,int binding){
+SWIGINTERN char *labelObj_convertToString(struct labelObj *self){
+    return msWriteLabelToString(self);
+  }
+SWIGINTERN int labelObj_removeBinding(struct labelObj *self,int binding){
     if(binding < 0 || binding >= 9) return MS_FAILURE;
 
     if(self->bindings[binding].item) {
@@ -2191,12 +2223,12 @@ SWIGINTERN int labelObj_removeBinding(labelObj *self,int binding){
 
     return MS_SUCCESS;
   }
-SWIGINTERN char *labelObj_getBinding(labelObj *self,int binding){
+SWIGINTERN char *labelObj_getBinding(struct labelObj *self,int binding){
     if(binding < 0 || binding >= 9) return NULL;
 
     return self->bindings[binding].item;
   }
-SWIGINTERN int labelObj_setBinding(labelObj *self,int binding,char *item){
+SWIGINTERN int labelObj_setBinding(struct labelObj *self,int binding,char *item){
     if(!item) return MS_FAILURE;
     if(binding < 0 || binding >= 9) return MS_FAILURE;
 
@@ -2212,27 +2244,27 @@ SWIGINTERN int labelObj_setBinding(labelObj *self,int binding,char *item){
 
     return MS_SUCCESS;
   }
-SWIGINTERN int labelObj_setExpression(labelObj *self,char *expression){
+SWIGINTERN int labelObj_setExpression(struct labelObj *self,char *expression){
     if (!expression || strlen(expression) == 0) {
        freeExpression(&self->expression);
        return MS_SUCCESS;
     }
     else return msLoadExpressionString(&self->expression, expression);
   }
-SWIGINTERN char *labelObj_getExpressionString(labelObj *self){
+SWIGINTERN char *labelObj_getExpressionString(struct labelObj *self){
     return msGetExpressionString(&(self->expression));
   }
-SWIGINTERN int labelObj_setText(labelObj *self,char *text){
+SWIGINTERN int labelObj_setText(struct labelObj *self,char *text){
     if (!text || strlen(text) == 0) {
       freeExpression(&self->text);
       return MS_SUCCESS;
     }	
     else return msLoadExpressionString(&self->text, text);
   }
-SWIGINTERN char *labelObj_getTextString(labelObj *self){
+SWIGINTERN char *labelObj_getTextString(struct labelObj *self){
     return msGetExpressionString(&(self->text));
   }
-SWIGINTERN styleObj *labelObj_getStyle(labelObj *self,int i){
+SWIGINTERN styleObj *labelObj_getStyle(struct labelObj *self,int i){
       if (i >= 0 && i < self->numstyles) {
           MS_REFCNT_INCR(self->styles[i]);
           return self->styles[i];
@@ -2241,22 +2273,22 @@ SWIGINTERN styleObj *labelObj_getStyle(labelObj *self,int i){
           return NULL;
       }
   }
-SWIGINTERN int labelObj_insertStyle(labelObj *self,styleObj *style,int index){
+SWIGINTERN int labelObj_insertStyle(struct labelObj *self,styleObj *style,int index){
         return msInsertLabelStyle(self, style, index);
     }
-SWIGINTERN styleObj *labelObj_removeStyle(labelObj *self,int index){
+SWIGINTERN styleObj *labelObj_removeStyle(struct labelObj *self,int index){
 	styleObj* style = (styleObj *) msRemoveLabelStyle(self, index);
 	if (style)
 		MS_REFCNT_INCR(style);
         return style;
     }
-SWIGINTERN int labelObj_moveStyleUp(labelObj *self,int index){
+SWIGINTERN int labelObj_moveStyleUp(struct labelObj *self,int index){
         return msMoveLabelStyleUp(self, index);
     }
-SWIGINTERN int labelObj_moveStyleDown(labelObj *self,int index){
+SWIGINTERN int labelObj_moveStyleDown(struct labelObj *self,int index){
        return msMoveLabelStyleDown(self, index);
     }
-SWIGINTERN classObj *new_classObj(layerObj *layer){
+SWIGINTERN struct classObj *new_classObj(layerObj *layer){
         classObj *new_class=NULL;
         
         if (!layer)
@@ -2288,7 +2320,7 @@ SWIGINTERN classObj *new_classObj(layerObj *layer){
 
         return NULL;
     }
-SWIGINTERN void delete_classObj(classObj *self){
+SWIGINTERN void delete_classObj(struct classObj *self){
         if (self)
         {
             if (freeClass(self)==MS_SUCCESS) {
@@ -2297,10 +2329,13 @@ SWIGINTERN void delete_classObj(classObj *self){
 	    }
         }
     }
-SWIGINTERN int classObj_updateFromString(classObj *self,char *snippet){
+SWIGINTERN int classObj_updateFromString(struct classObj *self,char *snippet){
         return msUpdateClassFromString(self, snippet, 0);
     }
-SWIGINTERN classObj *classObj_clone(classObj *self){
+SWIGINTERN char *classObj_convertToString(struct classObj *self){
+        return msWriteClassToString(self);
+    }
+SWIGINTERN classObj *classObj_clone(struct classObj *self){
         classObj *new_class;
 
         new_class = (classObj *) malloc(sizeof(classObj));
@@ -2327,27 +2362,27 @@ SWIGINTERN classObj *classObj_clone(classObj *self){
         
         return new_class;
     }
-SWIGINTERN int classObj_setExpression(classObj *self,char *expression){
+SWIGINTERN int classObj_setExpression(struct classObj *self,char *expression){
     if (!expression || strlen(expression) == 0) {
        freeExpression(&self->expression);
        return MS_SUCCESS;
     }
     else return msLoadExpressionString(&self->expression, expression);
   }
-SWIGINTERN char *classObj_getExpressionString(classObj *self){
+SWIGINTERN char *classObj_getExpressionString(struct classObj *self){
     return msGetExpressionString(&(self->expression));
   }
-SWIGINTERN int classObj_setText(classObj *self,char *text){
+SWIGINTERN int classObj_setText(struct classObj *self,char *text){
     if (!text || strlen(text) == 0) {
       freeExpression(&self->text);
       return MS_SUCCESS;
     }	
     else return msLoadExpressionString(&self->text, text);
   }
-SWIGINTERN char *classObj_getTextString(classObj *self){
+SWIGINTERN char *classObj_getTextString(struct classObj *self){
     return msGetExpressionString(&(self->text));
   }
-SWIGINTERN char *classObj_getMetaData(classObj *self,char *name){
+SWIGINTERN char *classObj_getMetaData(struct classObj *self,char *name){
     char *value = NULL;
     if (!name) {
       msSetError(16, "NULL key", "getMetaData");
@@ -2360,24 +2395,24 @@ SWIGINTERN char *classObj_getMetaData(classObj *self,char *name){
     }
     return value;
   }
-SWIGINTERN int classObj_setMetaData(classObj *self,char *name,char *value){
+SWIGINTERN int classObj_setMetaData(struct classObj *self,char *name,char *value){
     if (msInsertHashTable(&(self->metadata), name, value) == NULL)
         return MS_FAILURE;
     return MS_SUCCESS;
   }
-SWIGINTERN char *classObj_getFirstMetaDataKey(classObj *self){
+SWIGINTERN char *classObj_getFirstMetaDataKey(struct classObj *self){
     return (char *) msFirstKeyFromHashTable(&(self->metadata));
   }
-SWIGINTERN char *classObj_getNextMetaDataKey(classObj *self,char *lastkey){
+SWIGINTERN char *classObj_getNextMetaDataKey(struct classObj *self,char *lastkey){
     return (char *) msNextKeyFromHashTable(&(self->metadata), lastkey);
   }
-SWIGINTERN int classObj_drawLegendIcon(classObj *self,mapObj *map,layerObj *layer,int width,int height,imageObj *dstImage,int dstX,int dstY){
-    return msDrawLegendIcon(map, layer, self, width, height, dstImage, dstX, dstY);
+SWIGINTERN int classObj_drawLegendIcon(struct classObj *self,mapObj *map,layerObj *layer,int width,int height,imageObj *dstImage,int dstX,int dstY){
+    return msDrawLegendIcon(map, layer, self, width, height, dstImage, dstX, dstY, 1, NULL);
   }
-SWIGINTERN imageObj *classObj_createLegendIcon(classObj *self,mapObj *map,layerObj *layer,int width,int height){
-    return msCreateLegendIcon(map, layer, self, width, height);
+SWIGINTERN imageObj *classObj_createLegendIcon(struct classObj *self,mapObj *map,layerObj *layer,int width,int height){
+    return msCreateLegendIcon(map, layer, self, width, height, 1);
   }
-SWIGINTERN labelObj *classObj_getLabel(classObj *self,int i){
+SWIGINTERN labelObj *classObj_getLabel(struct classObj *self,int i){
     if (i >= 0 && i < self->numlabels) {
       MS_REFCNT_INCR(self->labels[i]);
       return self->labels[i];
@@ -2386,15 +2421,15 @@ SWIGINTERN labelObj *classObj_getLabel(classObj *self,int i){
       return NULL;
     }
   }
-SWIGINTERN int classObj_addLabel(classObj *self,labelObj *label){
+SWIGINTERN int classObj_addLabel(struct classObj *self,labelObj *label){
     return msAddLabelToClass(self, label);
   }
-SWIGINTERN labelObj *classObj_removeLabel(classObj *self,int index){
+SWIGINTERN labelObj *classObj_removeLabel(struct classObj *self,int index){
     labelObj* label = (labelObj *) msRemoveLabelFromClass(self, index);
     if (label) MS_REFCNT_INCR(label);
     return label;
   }
-SWIGINTERN styleObj *classObj_getStyle(classObj *self,int i){
+SWIGINTERN styleObj *classObj_getStyle(struct classObj *self,int i){
     if (i >= 0 && i < self->numstyles) {
       MS_REFCNT_INCR(self->styles[i]);
       return self->styles[i];
@@ -2403,18 +2438,18 @@ SWIGINTERN styleObj *classObj_getStyle(classObj *self,int i){
       return NULL;
     }
   }
-SWIGINTERN int classObj_insertStyle(classObj *self,styleObj *style,int index){
+SWIGINTERN int classObj_insertStyle(struct classObj *self,styleObj *style,int index){
     return msInsertStyle(self, style, index);
   }
-SWIGINTERN styleObj *classObj_removeStyle(classObj *self,int index){
+SWIGINTERN styleObj *classObj_removeStyle(struct classObj *self,int index){
     styleObj* style = (styleObj *) msRemoveStyle(self, index);
     if (style) MS_REFCNT_INCR(style);
     return style;
   }
-SWIGINTERN int classObj_moveStyleUp(classObj *self,int index){
+SWIGINTERN int classObj_moveStyleUp(struct classObj *self,int index){
     return msMoveStyleUp(self, index);
   }
-SWIGINTERN int classObj_moveStyleDown(classObj *self,int index){
+SWIGINTERN int classObj_moveStyleDown(struct classObj *self,int index){
     return msMoveStyleDown(self, index);
   }
 SWIGINTERN void labelCacheObj_freeCache(labelCacheObj *self){
@@ -2497,13 +2532,22 @@ SWIGINTERN int symbolSetObj_save(symbolSetObj *self,char const *filename){
 SWIGINTERN int referenceMapObj_updateFromString(referenceMapObj *self,char *snippet){
     return msUpdateReferenceMapFromString(self, snippet, 0);
   }
+SWIGINTERN char *referenceMapObj_convertToString(referenceMapObj *self){
+    return msWriteReferenceMapToString(self);
+  }
 SWIGINTERN int scalebarObj_updateFromString(scalebarObj *self,char *snippet){
     return msUpdateScalebarFromString(self, snippet, 0);
   }
+SWIGINTERN char *scalebarObj_convertToString(scalebarObj *self){
+    return msWriteScalebarToString(self);
+  }
 SWIGINTERN int legendObj_updateFromString(legendObj *self,char *snippet){
     return msUpdateLegendFromString(self, snippet, 0);
   }
-SWIGINTERN imageObj *new_imageObj(int width,int height,outputFormatObj *input_format,char const *file,double resolution,double defresolution){
+SWIGINTERN char *legendObj_convertToString(legendObj *self){
+    return msWriteLegendToString(self);
+  }
+SWIGINTERN struct imageObj *new_imageObj(int width,int height,outputFormatObj *input_format,char const *file,double resolution,double defresolution){
         imageObj *image=NULL;
         outputFormatObj *format;
         rendererVTableObj *renderer = NULL;
@@ -2551,13 +2595,13 @@ SWIGINTERN imageObj *new_imageObj(int width,int height,outputFormatObj *input_fo
         image = msImageCreate(width, height, format, NULL, NULL, resolution, defresolution, NULL);
         return image;
     }
-SWIGINTERN void delete_imageObj(imageObj *self){
+SWIGINTERN void delete_imageObj(struct imageObj *self){
         msFreeImage(self);    
     }
-SWIGINTERN void imageObj_save(imageObj *self,char *filename,mapObj *map){
+SWIGINTERN void imageObj_save(struct imageObj *self,char *filename,mapObj *map){
         msSaveImage(map, self, filename );
     }
-SWIGINTERN int imageObj_write(imageObj *self,FILE *file){
+SWIGINTERN int imageObj_write(struct imageObj *self,FILE *file){
         int retval=MS_FAILURE;
         rendererVTableObj *renderer = NULL;
 
@@ -2582,7 +2626,7 @@ SWIGINTERN int imageObj_write(imageObj *self,FILE *file){
 
         return retval;
     }
-SWIGINTERN gdBuffer imageObj_getBytes(imageObj *self){
+SWIGINTERN gdBuffer imageObj_getBytes(struct imageObj *self){
         gdBuffer buffer;
         
         buffer.owns_data = 1;
@@ -2598,7 +2642,7 @@ SWIGINTERN gdBuffer imageObj_getBytes(imageObj *self){
 
         return buffer;
     }
-SWIGINTERN int imageObj_getSize(imageObj *self){
+SWIGINTERN int imageObj_getSize(struct imageObj *self){
         gdBuffer buffer;
 	int size=0;
         
@@ -2612,7 +2656,7 @@ SWIGINTERN int imageObj_getSize(imageObj *self){
 	free(buffer.data);
         return size;
     }
-SWIGINTERN layerObj *new_layerObj(mapObj *map){
+SWIGINTERN struct layerObj *new_layerObj(mapObj *map){
         layerObj *layer;
         int result;
         
@@ -2649,7 +2693,7 @@ SWIGINTERN layerObj *new_layerObj(mapObj *map){
             return (map->layers[map->numlayers-1]);
         }
     }
-SWIGINTERN void delete_layerObj(layerObj *self){
+SWIGINTERN void delete_layerObj(struct layerObj *self){
         /*if (!self->map) {*/
         if (self) {
             if(freeLayer(self)==MS_SUCCESS) {
@@ -2657,7 +2701,7 @@ SWIGINTERN void delete_layerObj(layerObj *self){
 	    }
         }
     }
-SWIGINTERN layerObj *layerObj_clone(layerObj *self){
+SWIGINTERN layerObj *layerObj_clone(struct layerObj *self){
         layerObj *layer;
         int result;
 
@@ -2684,20 +2728,23 @@ SWIGINTERN layerObj *layerObj_clone(layerObj *self){
         
         return layer;
     }
-SWIGINTERN int layerObj_updateFromString(layerObj *self,char *snippet){
+SWIGINTERN int layerObj_updateFromString(struct layerObj *self,char *snippet){
         return msUpdateLayerFromString(self, snippet, 0);
     }
-SWIGINTERN int layerObj_insertClass(layerObj *self,classObj *classobj,int index){
+SWIGINTERN char *layerObj_convertToString(struct layerObj *self){
+        return msWriteLayerToString(self);
+    }
+SWIGINTERN int layerObj_insertClass(struct layerObj *self,classObj *classobj,int index){
         return msInsertClass(self, classobj, index);
     }
-SWIGINTERN classObj *layerObj_removeClass(layerObj *self,int index){
+SWIGINTERN classObj *layerObj_removeClass(struct layerObj *self,int index){
         classObj* c = msRemoveClass(self, index);
 	if (c != NULL) {
 		MS_REFCNT_INCR(c);
 	}
 	return c;
     }
-SWIGINTERN int layerObj_open(layerObj *self){
+SWIGINTERN int layerObj_open(struct layerObj *self){
         int status;
         status =  msLayerOpen(self);
         if (status == MS_SUCCESS) {
@@ -2705,7 +2752,7 @@ SWIGINTERN int layerObj_open(layerObj *self){
         }
         return status;
     }
-SWIGINTERN int layerObj_whichShapes(layerObj *self,rectObj rect){
+SWIGINTERN int layerObj_whichShapes(struct layerObj *self,rectObj rect){
         int oldconnectiontype = self->connectiontype;
         self->connectiontype = MS_INLINE;
 
@@ -2717,7 +2764,7 @@ SWIGINTERN int layerObj_whichShapes(layerObj *self,rectObj rect){
 
         return msLayerWhichShapes(self, rect, 0);
     }
-SWIGINTERN shapeObj *layerObj_nextShape(layerObj *self){
+SWIGINTERN shapeObj *layerObj_nextShape(struct layerObj *self){
        int status;
        shapeObj *shape;
 
@@ -2733,10 +2780,10 @@ SWIGINTERN shapeObj *layerObj_nextShape(layerObj *self){
        } else
          return shape;
     }
-SWIGINTERN void layerObj_close(layerObj *self){
+SWIGINTERN void layerObj_close(struct layerObj *self){
         msLayerClose(self);
     }
-SWIGINTERN shapeObj *layerObj_getShape(layerObj *self,resultObj *record){
+SWIGINTERN shapeObj *layerObj_getShape(struct layerObj *self,resultObj *record){
         int retval;
         shapeObj *shape;
 
@@ -2751,25 +2798,25 @@ SWIGINTERN shapeObj *layerObj_getShape(layerObj *self,resultObj *record){
         retval = msLayerGetShape(self, shape, record);
         return shape;
     }
-SWIGINTERN int layerObj_getNumResults(layerObj *self){
+SWIGINTERN int layerObj_getNumResults(struct layerObj *self){
         if (!self->resultcache) return 0;
         return self->resultcache->numresults;
     }
-SWIGINTERN rectObj *layerObj_getResultsBounds(layerObj *self){
+SWIGINTERN rectObj *layerObj_getResultsBounds(struct layerObj *self){
         rectObj *bounds;
         if (!self->resultcache) return NULL;
         bounds = (rectObj *) malloc(sizeof(rectObj));
         MS_COPYRECT(bounds, &self->resultcache->bounds);
         return bounds;
     }
-SWIGINTERN resultObj *layerObj_getResult(layerObj *self,int i){
+SWIGINTERN resultObj *layerObj_getResult(struct layerObj *self,int i){
         if (!self->resultcache) return NULL;
         if (i >= 0 && i < self->resultcache->numresults)
             return &self->resultcache->results[i]; 
         else
             return NULL;
     }
-SWIGINTERN classObj *layerObj_getClass(layerObj *self,int i){
+SWIGINTERN classObj *layerObj_getClass(struct layerObj *self,int i){
 	classObj *result=NULL;
         if (i >= 0 && i < self->numclasses) {
             result=self->class[i]; 
@@ -2777,23 +2824,23 @@ SWIGINTERN classObj *layerObj_getClass(layerObj *self,int i){
 	}
 	return result;
     }
-SWIGINTERN char *layerObj_getItem(layerObj *self,int i){
+SWIGINTERN char *layerObj_getItem(struct layerObj *self,int i){
   
         if (i >= 0 && i < self->numitems)
             return (char *) (self->items[i]);
         else
             return NULL;
     }
-SWIGINTERN int layerObj_setItems(layerObj *self,char **items,int numitems){
+SWIGINTERN int layerObj_setItems(struct layerObj *self,char **items,int numitems){
         return msLayerSetItems(self, items, numitems);
     }
-SWIGINTERN int layerObj_draw(layerObj *self,mapObj *map,imageObj *image){
+SWIGINTERN int layerObj_draw(struct layerObj *self,mapObj *map,imageObj *image){
         return msDrawLayer(map, self, image);    
     }
-SWIGINTERN int layerObj_drawQuery(layerObj *self,mapObj *map,imageObj *image){
+SWIGINTERN int layerObj_drawQuery(struct layerObj *self,mapObj *map,imageObj *image){
         return msDrawQueryLayer(map, self, image);    
     }
-SWIGINTERN int layerObj_queryByFilter(layerObj *self,mapObj *map,char *string){
+SWIGINTERN int layerObj_queryByFilter(struct layerObj *self,mapObj *map,char *string){
         int status;
         int retval;
 
@@ -2817,7 +2864,7 @@ SWIGINTERN int layerObj_queryByFilter(layerObj *self,mapObj *map,char *string){
         self->status = status;
 	return retval;
     }
-SWIGINTERN int layerObj_queryByAttributes(layerObj *self,mapObj *map,char *qitem,char *qstring,int mode){
+SWIGINTERN int layerObj_queryByAttributes(struct layerObj *self,mapObj *map,char *qitem,char *qstring,int mode){
         int status;
         int retval;
 
@@ -2837,7 +2884,7 @@ SWIGINTERN int layerObj_queryByAttributes(layerObj *self,mapObj *map,char *qitem
 
         return retval;
     }
-SWIGINTERN int layerObj_queryByPoint(layerObj *self,mapObj *map,pointObj *point,int mode,double buffer){
+SWIGINTERN int layerObj_queryByPoint(struct layerObj *self,mapObj *map,pointObj *point,int mode,double buffer){
         int status;
         int retval;
 
@@ -2856,7 +2903,7 @@ SWIGINTERN int layerObj_queryByPoint(layerObj *self,mapObj *map,pointObj *point,
 
         return retval;
     }
-SWIGINTERN int layerObj_queryByRect(layerObj *self,mapObj *map,rectObj rect){
+SWIGINTERN int layerObj_queryByRect(struct layerObj *self,mapObj *map,rectObj rect){
         int status;
         int retval;
 
@@ -2874,7 +2921,7 @@ SWIGINTERN int layerObj_queryByRect(layerObj *self,mapObj *map,rectObj rect){
 
         return retval;
     }
-SWIGINTERN int layerObj_queryByFeatures(layerObj *self,mapObj *map,int slayer){
+SWIGINTERN int layerObj_queryByFeatures(struct layerObj *self,mapObj *map,int slayer){
         int status;
         int retval;
 
@@ -2887,7 +2934,7 @@ SWIGINTERN int layerObj_queryByFeatures(layerObj *self,mapObj *map,int slayer){
         self->status = status;
         return retval;
     }
-SWIGINTERN int layerObj_queryByShape(layerObj *self,mapObj *map,shapeObj *shape){
+SWIGINTERN int layerObj_queryByShape(struct layerObj *self,mapObj *map,shapeObj *shape){
         int status;
         int retval;
         
@@ -2906,7 +2953,7 @@ SWIGINTERN int layerObj_queryByShape(layerObj *self,mapObj *map,shapeObj *shape)
         self->status = status;
         return retval;
     }
-SWIGINTERN int layerObj_queryByIndex(layerObj *self,mapObj *map,int tileindex,int shapeindex,int bAddToQuery){
+SWIGINTERN int layerObj_queryByIndex(struct layerObj *self,mapObj *map,int tileindex,int shapeindex,int bAddToQuery){
         int status;
         int retval;
         
@@ -2925,31 +2972,31 @@ SWIGINTERN int layerObj_queryByIndex(layerObj *self,mapObj *map,int tileindex,in
         self->status = status;
         return retval;
     }
-SWIGINTERN resultCacheObj *layerObj_getResults(layerObj *self){
+SWIGINTERN resultCacheObj *layerObj_getResults(struct layerObj *self){
         return self->resultcache;
     }
-SWIGINTERN int layerObj_setFilter(layerObj *self,char *filter){
+SWIGINTERN int layerObj_setFilter(struct layerObj *self,char *filter){
         if (!filter || strlen(filter) == 0) {
             freeExpression(&self->filter);
             return MS_SUCCESS;
         }
         else return msLoadExpressionString(&self->filter, filter);
     }
-SWIGINTERN char *layerObj_getFilterString(layerObj *self){
+SWIGINTERN char *layerObj_getFilterString(struct layerObj *self){
         return msGetExpressionString(&(self->filter));
     }
-SWIGINTERN int layerObj_setWKTProjection(layerObj *self,char *wkt){
+SWIGINTERN int layerObj_setWKTProjection(struct layerObj *self,char *wkt){
         self->project = 1;
         return msOGCWKT2ProjectionObj(wkt, &(self->projection), self->debug);
     }
-SWIGINTERN char *layerObj_getProjection(layerObj *self){    
+SWIGINTERN char *layerObj_getProjection(struct layerObj *self){    
         return (char *) msGetProjectionString(&(self->projection));
     }
-SWIGINTERN int layerObj_setProjection(layerObj *self,char *proj4){
+SWIGINTERN int layerObj_setProjection(struct layerObj *self,char *proj4){
         self->project = 1;
         return msLoadProjectionString(&(self->projection), proj4);
     }
-SWIGINTERN int layerObj_addFeature(layerObj *self,shapeObj *shape){    
+SWIGINTERN int layerObj_addFeature(struct layerObj *self,shapeObj *shape){    
         self->connectiontype = MS_INLINE;
         if(self->features != NULL && self->features->tailifhead != NULL) 
             shape->index = self->features->tailifhead->shape.index + 1;
@@ -2959,16 +3006,16 @@ SWIGINTERN int layerObj_addFeature(layerObj *self,shapeObj *shape){
         return MS_FAILURE;
         return MS_SUCCESS;
     }
-SWIGINTERN int layerObj_getNumFeatures(layerObj *self){
+SWIGINTERN int layerObj_getNumFeatures(struct layerObj *self){
         return msLayerGetNumFeatures(self);
     }
-SWIGINTERN rectObj *layerObj_getExtent(layerObj *self){
+SWIGINTERN rectObj *layerObj_getExtent(struct layerObj *self){
         rectObj *extent;
         extent = (rectObj *) malloc(sizeof(rectObj));
         msLayerGetExtent(self, extent);
         return extent;
     }
-SWIGINTERN int layerObj_setExtent(layerObj *self,double minx,double miny,double maxx,double maxy){
+SWIGINTERN int layerObj_setExtent(struct layerObj *self,double minx,double miny,double maxx,double maxy){
         if (minx > maxx || miny > maxy) {
             msSetError(34,
                 "{ 'minx': %f , 'miny': %f , 'maxx': %f , 'maxy': %f }",
@@ -2978,7 +3025,7 @@ SWIGINTERN int layerObj_setExtent(layerObj *self,double minx,double miny,double
 
         return msLayerSetExtent(self, minx, miny, maxx, maxy);
     }
-SWIGINTERN char *layerObj_getMetaData(layerObj *self,char *name){
+SWIGINTERN char *layerObj_getMetaData(struct layerObj *self,char *name){
         char *value = NULL;
         if (!name) {
             msSetError(16, "NULL key", "getMetaData");
@@ -2999,37 +3046,37 @@ SWIGINTERN char *layerObj_getMetaData(layerObj *self,char *name){
 
         return value;
     }
-SWIGINTERN int layerObj_setMetaData(layerObj *self,char *name,char *value){
+SWIGINTERN int layerObj_setMetaData(struct layerObj *self,char *name,char *value){
         if (msInsertHashTable(&(self->metadata), name, value) == NULL)
         return MS_FAILURE;
         return MS_SUCCESS;
     }
-SWIGINTERN int layerObj_removeMetaData(layerObj *self,char *name){
+SWIGINTERN int layerObj_removeMetaData(struct layerObj *self,char *name){
         return(msRemoveHashTable(&(self->metadata), name));
     }
-SWIGINTERN char *layerObj_getFirstMetaDataKey(layerObj *self){
+SWIGINTERN char *layerObj_getFirstMetaDataKey(struct layerObj *self){
         return (char *) msFirstKeyFromHashTable(&(self->metadata));
     }
-SWIGINTERN char *layerObj_getNextMetaDataKey(layerObj *self,char *lastkey){
+SWIGINTERN char *layerObj_getNextMetaDataKey(struct layerObj *self,char *lastkey){
         return (char *) msNextKeyFromHashTable(&(self->metadata), lastkey);
     }
-SWIGINTERN char *layerObj_getWMSFeatureInfoURL(layerObj *self,mapObj *map,int click_x,int click_y,int feature_count,char *info_format){
+SWIGINTERN char *layerObj_getWMSFeatureInfoURL(struct layerObj *self,mapObj *map,int click_x,int click_y,int feature_count,char *info_format){
         return (char *) msWMSGetFeatureInfoURL(map, self, click_x, click_y,
                feature_count, info_format);
     }
-SWIGINTERN char *layerObj_executeWFSGetFeature(layerObj *self,layerObj *layer){
+SWIGINTERN char *layerObj_executeWFSGetFeature(struct layerObj *self,layerObj *layer){
         return (char *) msWFSExecuteGetFeature(layer);
     }
-SWIGINTERN int layerObj_applySLD(layerObj *self,char *sld,char *stylelayer){
+SWIGINTERN int layerObj_applySLD(struct layerObj *self,char *sld,char *stylelayer){
       return msSLDApplySLD(self->map, sld, self->index, stylelayer, NULL);
     }
-SWIGINTERN int layerObj_applySLDURL(layerObj *self,char *sld,char *stylelayer){
+SWIGINTERN int layerObj_applySLDURL(struct layerObj *self,char *sld,char *stylelayer){
       return msSLDApplySLDURL(self->map, sld, self->index, stylelayer, NULL);
     }
-SWIGINTERN char *layerObj_generateSLD(layerObj *self){
+SWIGINTERN char *layerObj_generateSLD(struct layerObj *self){
         return (char *) msSLDGenerateSLD(self->map, self->index, NULL);
     }
-SWIGINTERN int layerObj_isVisible(layerObj *self){
+SWIGINTERN int layerObj_isVisible(struct layerObj *self){
         if (!self->map)
         {
             msSetError(12,
@@ -3039,31 +3086,31 @@ SWIGINTERN int layerObj_isVisible(layerObj *self){
         }
         return msLayerIsVisible(self->map, self);
     }
-SWIGINTERN int layerObj_moveClassUp(layerObj *self,int index){
+SWIGINTERN int layerObj_moveClassUp(struct layerObj *self,int index){
         return msMoveClassUp(self, index);
     }
-SWIGINTERN int layerObj_moveClassDown(layerObj *self,int index){
+SWIGINTERN int layerObj_moveClassDown(struct layerObj *self,int index){
         return msMoveClassDown(self, index);
     }
-SWIGINTERN void layerObj_setProcessingKey(layerObj *self,char const *key,char const *value){
+SWIGINTERN void layerObj_setProcessingKey(struct layerObj *self,char const *key,char const *value){
 	   msLayerSetProcessingKey( self, key, value );
     }
-SWIGINTERN void layerObj_setProcessing(layerObj *self,char const *directive){
+SWIGINTERN void layerObj_setProcessing(struct layerObj *self,char const *directive){
         msLayerAddProcessing( self, directive );
     }
-SWIGINTERN void layerObj_addProcessing(layerObj *self,char const *directive){
+SWIGINTERN void layerObj_addProcessing(struct layerObj *self,char const *directive){
         msLayerAddProcessing( self, directive );
     }
-SWIGINTERN char *layerObj_getProcessing(layerObj *self,int index){
+SWIGINTERN char *layerObj_getProcessing(struct layerObj *self,int index){
         return (char *) msLayerGetProcessing(self, index);
     }
-SWIGINTERN char *layerObj_getProcessingKey(layerObj *self,char const *key){
+SWIGINTERN char *layerObj_getProcessingKey(struct layerObj *self,char const *key){
       return (char *) msLayerGetProcessingKey(self, key);
     }
-SWIGINTERN int layerObj_clearProcessing(layerObj *self){
+SWIGINTERN int layerObj_clearProcessing(struct layerObj *self){
         return msLayerClearProcessing(self);
     }
-SWIGINTERN int layerObj_setConnectionType(layerObj *self,int connectiontype,char const *library_str){    
+SWIGINTERN int layerObj_setConnectionType(struct layerObj *self,int connectiontype,char const *library_str){    
         /* Caller is responsible to close previous layer correctly before
          * calling msConnectLayer() 
          */
@@ -3071,20 +3118,34 @@ SWIGINTERN int layerObj_setConnectionType(layerObj *self,int connectiontype,char
           msLayerClose(self);
         return msConnectLayer(self, connectiontype, library_str);
     }
-SWIGINTERN int layerObj_getClassIndex(layerObj *self,mapObj *map,shapeObj *shape,int *classgroup,int numclasses){
+SWIGINTERN int layerObj_getClassIndex(struct layerObj *self,mapObj *map,shapeObj *shape,int *classgroup,int numclasses){
         return msShapeGetClass(self, map, shape, classgroup, numclasses);
     }
-SWIGINTERN mapObj *new_mapObj(char *filename){
+SWIGINTERN char *layerObj_getGeomTransform(struct layerObj *self){
+      return self->_geomtransform.string;
+    }
+SWIGINTERN void layerObj_setGeomTransform(struct layerObj *self,char *transform){
+      msFree(self->_geomtransform.string);
+      if (!transform || strlen(transform) > 0) {
+        self->_geomtransform.string = msStrdup(transform);
+        self->_geomtransform.type = MS_GEOMTRANSFORM_EXPRESSION;
+      }
+      else {
+        self->_geomtransform.type = MS_GEOMTRANSFORM_NONE;
+        self->_geomtransform.string = NULL;
+      }
+    }
+SWIGINTERN struct mapObj *new_mapObj(char *filename){
         if (filename && strlen(filename))
             return msLoadMap(filename, NULL);
         else { /* create an empty map, no layers etc... */
             return msNewMapObj();
         }      
     }
-SWIGINTERN void delete_mapObj(mapObj *self){
+SWIGINTERN void delete_mapObj(struct mapObj *self){
         msFreeMap(self);
     }
-SWIGINTERN mapObj *mapObj_clone(mapObj *self){
+SWIGINTERN mapObj *mapObj_clone(struct mapObj *self){
         mapObj *dstMap;
         dstMap = msNewMapObj();
         if (msCopyMap(dstMap, self) != MS_SUCCESS) {
@@ -3093,33 +3154,33 @@ SWIGINTERN mapObj *mapObj_clone(mapObj *self){
         }
         return dstMap;
     }
-SWIGINTERN int mapObj_insertLayer(mapObj *self,layerObj *layer,int index){
+SWIGINTERN int mapObj_insertLayer(struct mapObj *self,layerObj *layer,int index){
         return msInsertLayer(self, layer, index);  
     }
-SWIGINTERN layerObj *mapObj_removeLayer(mapObj *self,int index){
+SWIGINTERN layerObj *mapObj_removeLayer(struct mapObj *self,int index){
     	layerObj *layer=msRemoveLayer(self, index);
 	MS_REFCNT_INCR(layer);
         return layer;
     }
-SWIGINTERN int mapObj_setExtent(mapObj *self,double minx,double miny,double maxx,double maxy){	
+SWIGINTERN int mapObj_setExtent(struct mapObj *self,double minx,double miny,double maxx,double maxy){	
 	return msMapSetExtent( self, minx, miny, maxx, maxy );
     }
-SWIGINTERN int mapObj_offsetExtent(mapObj *self,double x,double y){	
+SWIGINTERN int mapObj_offsetExtent(struct mapObj *self,double x,double y){	
 	return msMapOffsetExtent( self, x, y );
     }
-SWIGINTERN int mapObj_scaleExtent(mapObj *self,double zoomfactor,double minscaledenom,double maxscaledenom){	
+SWIGINTERN int mapObj_scaleExtent(struct mapObj *self,double zoomfactor,double minscaledenom,double maxscaledenom){	
 	return msMapScaleExtent( self, zoomfactor, minscaledenom, maxscaledenom );
     }
-SWIGINTERN int mapObj_setCenter(mapObj *self,pointObj *center){	
+SWIGINTERN int mapObj_setCenter(struct mapObj *self,pointObj *center){	
 	return msMapSetCenter( self, center );
     }
-SWIGINTERN int mapObj_setSize(mapObj *self,int width,int height){
+SWIGINTERN int mapObj_setSize(struct mapObj *self,int width,int height){
         return msMapSetSize(self, width, height);
     }
-SWIGINTERN int mapObj_setRotation(mapObj *self,double rotation_angle){
+SWIGINTERN int mapObj_setRotation(struct mapObj *self,double rotation_angle){
         return msMapSetRotation( self, rotation_angle );
     }
-SWIGINTERN layerObj *mapObj_getLayer(mapObj *self,int i){
+SWIGINTERN layerObj *mapObj_getLayer(struct mapObj *self,int i){
     if(i >= 0 && i < self->numlayers) {
     	MS_REFCNT_INCR(self->layers[i]);
       	return (self->layers[i]); /* returns an EXISTING layer */
@@ -3127,7 +3188,7 @@ SWIGINTERN layerObj *mapObj_getLayer(mapObj *self,int i){
       return NULL;
     }
   }
-SWIGINTERN layerObj *mapObj_getLayerByName(mapObj *self,char *name){
+SWIGINTERN layerObj *mapObj_getLayerByName(struct mapObj *self,char *name){
     int i;
 
     i = msGetLayerIndex(self, name);
@@ -3139,19 +3200,19 @@ SWIGINTERN layerObj *mapObj_getLayerByName(mapObj *self,char *name){
     else
       return NULL;
   }
-SWIGINTERN int mapObj_getSymbolByName(mapObj *self,char *name){
+SWIGINTERN int mapObj_getSymbolByName(struct mapObj *self,char *name){
     return msGetSymbolIndex(&self->symbolset, name, 1);
   }
-SWIGINTERN void mapObj_prepareQuery(mapObj *self){
+SWIGINTERN void mapObj_prepareQuery(struct mapObj *self){
     int status;
 
     status = msCalculateScale(self->extent, self->units, self->width, self->height, self->resolution, &self->scaledenom);
     if(status != MS_SUCCESS) self->scaledenom = -1;
   }
-SWIGINTERN imageObj *mapObj_prepareImage(mapObj *self){
+SWIGINTERN imageObj *mapObj_prepareImage(struct mapObj *self){
     return msPrepareImage(self, 0);
   }
-SWIGINTERN void mapObj_setImageType(mapObj *self,char *imagetype){
+SWIGINTERN void mapObj_setImageType(struct mapObj *self,char *imagetype){
       outputFormatObj *format;
 
       format = msSelectOutputFormat( self, imagetype );
@@ -3166,7 +3227,7 @@ SWIGINTERN void mapObj_setImageType(mapObj *self,char *imagetype){
                                -1111, -1111 );
       }
   }
-SWIGINTERN void mapObj_selectOutputFormat(mapObj *self,char *imagetype){
+SWIGINTERN void mapObj_selectOutputFormat(struct mapObj *self,char *imagetype){
         outputFormatObj *format;
 
         format = msSelectOutputFormat( self, imagetype );
@@ -3181,38 +3242,46 @@ SWIGINTERN void mapObj_selectOutputFormat(mapObj *self,char *imagetype){
                                  -1111, -1111 );
         }
     }
-SWIGINTERN void mapObj_setOutputFormat(mapObj *self,outputFormatObj *format){
+SWIGINTERN outputFormatObj *mapObj_getOutputFormat(struct mapObj *self,int i){
+    if(i >= 0 && i < self->numoutputformats) {
+    	MS_REFCNT_INCR(self->outputformatlist[i]);
+        return (self->outputformatlist[i]); 
+    } else {
+      return NULL;
+    }
+  }
+SWIGINTERN void mapObj_setOutputFormat(struct mapObj *self,outputFormatObj *format){
       msApplyOutputFormat( &(self->outputformat), format, -1111, 
                            -1111, -1111 );
   }
-SWIGINTERN imageObj *mapObj_draw(mapObj *self){
+SWIGINTERN imageObj *mapObj_draw(struct mapObj *self){
     return msDrawMap(self, 0);
   }
-SWIGINTERN imageObj *mapObj_drawQuery(mapObj *self){
+SWIGINTERN imageObj *mapObj_drawQuery(struct mapObj *self){
     return msDrawMap(self, 1);
   }
-SWIGINTERN imageObj *mapObj_drawLegend(mapObj *self){
-    return msDrawLegend(self, 0);
+SWIGINTERN imageObj *mapObj_drawLegend(struct mapObj *self){
+    return msDrawLegend(self, 0, NULL);
   }
-SWIGINTERN imageObj *mapObj_drawScalebar(mapObj *self){
+SWIGINTERN imageObj *mapObj_drawScalebar(struct mapObj *self){
     return msDrawScalebar(self);
   }
-SWIGINTERN imageObj *mapObj_drawReferenceMap(mapObj *self){
+SWIGINTERN imageObj *mapObj_drawReferenceMap(struct mapObj *self){
     return msDrawReferenceMap(self);
   }
-SWIGINTERN int mapObj_embedScalebar(mapObj *self,imageObj *image){	
+SWIGINTERN int mapObj_embedScalebar(struct mapObj *self,imageObj *image){	
     return msEmbedScalebar(self, image);
   }
-SWIGINTERN int mapObj_embedLegend(mapObj *self,imageObj *image){	
+SWIGINTERN int mapObj_embedLegend(struct mapObj *self,imageObj *image){	
     return msEmbedLegend(self, image);
   }
-SWIGINTERN int mapObj_drawLabelCache(mapObj *self,imageObj *image){
+SWIGINTERN int mapObj_drawLabelCache(struct mapObj *self,imageObj *image){
     return msDrawLabelCache(image, self);
   }
-SWIGINTERN labelCacheMemberObj *mapObj_getLabel(mapObj *self,int i){
+SWIGINTERN labelCacheMemberObj *mapObj_getLabel(struct mapObj *self,int i){
     return msGetLabelCacheMember(&(self->labelcache), i);
   }
-SWIGINTERN labelCacheMemberObj *mapObj_nextLabel(mapObj *self){
+SWIGINTERN labelCacheMemberObj *mapObj_nextLabel(struct mapObj *self){
     static int i=0;
 
     if(i<self->labelcache.numlabels)
@@ -3220,7 +3289,7 @@ SWIGINTERN labelCacheMemberObj *mapObj_nextLabel(mapObj *self){
     else
       return NULL;	
   }
-SWIGINTERN int mapObj_queryByFilter(mapObj *self,char *string){
+SWIGINTERN int mapObj_queryByFilter(struct mapObj *self,char *string){
     msInitQuery(&(self->query));
 
     self->query.type = MS_QUERY_BY_FILTER;
@@ -3236,7 +3305,7 @@ SWIGINTERN int mapObj_queryByFilter(mapObj *self,char *string){
 
     return msQueryByFilter(self);
   }
-SWIGINTERN int mapObj_queryByPoint(mapObj *self,pointObj *point,int mode,double buffer){
+SWIGINTERN int mapObj_queryByPoint(struct mapObj *self,pointObj *point,int mode,double buffer){
     msInitQuery(&(self->query));
 
     self->query.type = MS_QUERY_BY_POINT;
@@ -3246,7 +3315,7 @@ SWIGINTERN int mapObj_queryByPoint(mapObj *self,pointObj *point,int mode,double
 
     return msQueryByPoint(self);
   }
-SWIGINTERN int mapObj_queryByRect(mapObj *self,rectObj rect){
+SWIGINTERN int mapObj_queryByRect(struct mapObj *self,rectObj rect){
     msInitQuery(&(self->query));
 
     self->query.type = MS_QUERY_BY_RECT;
@@ -3255,11 +3324,11 @@ SWIGINTERN int mapObj_queryByRect(mapObj *self,rectObj rect){
 
     return msQueryByRect(self);
   }
-SWIGINTERN int mapObj_queryByFeatures(mapObj *self,int slayer){
+SWIGINTERN int mapObj_queryByFeatures(struct mapObj *self,int slayer){
     self->query.slayer = slayer;
     return msQueryByFeatures(self);
   }
-SWIGINTERN int mapObj_queryByShape(mapObj *self,shapeObj *shape){
+SWIGINTERN int mapObj_queryByShape(struct mapObj *self,shapeObj *shape){
     msInitQuery(&(self->query));
     
     self->query.type = MS_QUERY_BY_SHAPE;
@@ -3270,31 +3339,31 @@ SWIGINTERN int mapObj_queryByShape(mapObj *self,shapeObj *shape){
 
     return msQueryByShape(self);
   }
-SWIGINTERN int mapObj_setWKTProjection(mapObj *self,char *wkt){
+SWIGINTERN int mapObj_setWKTProjection(struct mapObj *self,char *wkt){
     return msOGCWKT2ProjectionObj(wkt, &(self->projection), self->debug);
   }
-SWIGINTERN char *mapObj_getProjection(mapObj *self){
+SWIGINTERN char *mapObj_getProjection(struct mapObj *self){
     return msGetProjectionString(&(self->projection));
   }
-SWIGINTERN int mapObj_setProjection(mapObj *self,char *proj4){
+SWIGINTERN int mapObj_setProjection(struct mapObj *self,char *proj4){
     return msLoadProjectionString(&(self->projection), proj4);
   }
-SWIGINTERN int mapObj_save(mapObj *self,char *filename){
+SWIGINTERN int mapObj_save(struct mapObj *self,char *filename){
     return msSaveMap(self, filename);
   }
-SWIGINTERN int mapObj_saveQuery(mapObj *self,char *filename,int results){
+SWIGINTERN int mapObj_saveQuery(struct mapObj *self,char *filename,int results){
     return msSaveQuery(self, filename, results);
   }
-SWIGINTERN int mapObj_loadQuery(mapObj *self,char *filename){
+SWIGINTERN int mapObj_loadQuery(struct mapObj *self,char *filename){
     return msLoadQuery(self, filename);
   }
-SWIGINTERN void mapObj_freeQuery(mapObj *self,int qlayer){
+SWIGINTERN void mapObj_freeQuery(struct mapObj *self,int qlayer){
     msQueryFree(self, qlayer);
   }
-SWIGINTERN int mapObj_saveQueryAsGML(mapObj *self,char *filename,char const *ns){
+SWIGINTERN int mapObj_saveQueryAsGML(struct mapObj *self,char *filename,char const *ns){
     return msGMLWriteQuery(self, filename, ns);
   }
-SWIGINTERN char *mapObj_getMetaData(mapObj *self,char *name){
+SWIGINTERN char *mapObj_getMetaData(struct mapObj *self,char *name){
     char *value = NULL;
     if (!name) {
       msSetError(16, "NULL key", "getMetaData");
@@ -3307,21 +3376,21 @@ SWIGINTERN char *mapObj_getMetaData(mapObj *self,char *name){
     }
     return value;
   }
-SWIGINTERN int mapObj_setMetaData(mapObj *self,char *name,char *value){
+SWIGINTERN int mapObj_setMetaData(struct mapObj *self,char *name,char *value){
     if (msInsertHashTable(&(self->web.metadata), name, value) == NULL)
 	return MS_FAILURE;
     return MS_SUCCESS;
   }
-SWIGINTERN int mapObj_removeMetaData(mapObj *self,char *name){
+SWIGINTERN int mapObj_removeMetaData(struct mapObj *self,char *name){
     return(msRemoveHashTable(&(self->web.metadata), name));
   }
-SWIGINTERN char *mapObj_getFirstMetaDataKey(mapObj *self){
+SWIGINTERN char *mapObj_getFirstMetaDataKey(struct mapObj *self){
     return (char *) msFirstKeyFromHashTable(&(self->web.metadata));
   }
-SWIGINTERN char *mapObj_getNextMetaDataKey(mapObj *self,char *lastkey){
+SWIGINTERN char *mapObj_getNextMetaDataKey(struct mapObj *self,char *lastkey){
     return (char *) msNextKeyFromHashTable(&(self->web.metadata), lastkey);
   }
-SWIGINTERN int mapObj_setSymbolSet(mapObj *self,char *szFileName){
+SWIGINTERN int mapObj_setSymbolSet(struct mapObj *self,char *szFileName){
     msFreeSymbolSet(&self->symbolset);
     msInitSymbolSet(&self->symbolset);
    
@@ -3332,10 +3401,10 @@ SWIGINTERN int mapObj_setSymbolSet(mapObj *self,char *szFileName){
 
     return msLoadSymbolSet(&self->symbolset, self);
   }
-SWIGINTERN int mapObj_getNumSymbols(mapObj *self){
+SWIGINTERN int mapObj_getNumSymbols(struct mapObj *self){
     return self->symbolset.numsymbols;
   }
-SWIGINTERN int mapObj_setFontSet(mapObj *self,char *filename){
+SWIGINTERN int mapObj_setFontSet(struct mapObj *self,char *filename){
     msFreeFontSet(&(self->fontset));
     msInitFontSet(&(self->fontset));
    
@@ -3343,19 +3412,19 @@ SWIGINTERN int mapObj_setFontSet(mapObj *self,char *filename){
 
     return msLoadFontSet(&(self->fontset), self);
   }
-SWIGINTERN int mapObj_saveMapContext(mapObj *self,char *szFileName){
+SWIGINTERN int mapObj_saveMapContext(struct mapObj *self,char *szFileName){
     return msSaveMapContext(self, szFileName);
   }
-SWIGINTERN int mapObj_loadMapContext(mapObj *self,char *szFileName,int useUniqueNames){
+SWIGINTERN int mapObj_loadMapContext(struct mapObj *self,char *szFileName,int useUniqueNames){
     return msLoadMapContext(self, szFileName, useUniqueNames);
   }
-SWIGINTERN int mapObj_moveLayerUp(mapObj *self,int layerindex){
+SWIGINTERN int mapObj_moveLayerUp(struct mapObj *self,int layerindex){
     return msMoveLayerUp(self, layerindex);
   }
-SWIGINTERN int mapObj_moveLayerDown(mapObj *self,int layerindex){
+SWIGINTERN int mapObj_moveLayerDown(struct mapObj *self,int layerindex){
     return msMoveLayerDown(self, layerindex);
   }
-SWIGINTERN intarray *mapObj_getLayersDrawingOrder(mapObj *self){
+SWIGINTERN intarray *mapObj_getLayersDrawingOrder(struct mapObj *self){
     int i;
     intarray *order;
     order = new_intarray(self->numlayers);
@@ -3367,53 +3436,56 @@ SWIGINTERN intarray *mapObj_getLayersDrawingOrder(mapObj *self){
         
     return order;
   }
-SWIGINTERN int mapObj_setLayersDrawingOrder(mapObj *self,int *panIndexes){
+SWIGINTERN int mapObj_setLayersDrawingOrder(struct mapObj *self,int *panIndexes){
     return  msSetLayersdrawingOrder(self, panIndexes); 
   }
-SWIGINTERN void mapObj_setConfigOption(mapObj *self,char *key,char *value){
+SWIGINTERN void mapObj_setConfigOption(struct mapObj *self,char *key,char *value){
     msSetConfigOption(self,key,value);
   }
-SWIGINTERN char *mapObj_getConfigOption(mapObj *self,char *key){
+SWIGINTERN char *mapObj_getConfigOption(struct mapObj *self,char *key){
     return (char *) msGetConfigOption(self,key);
   }
-SWIGINTERN void mapObj_applyConfigOptions(mapObj *self){
+SWIGINTERN void mapObj_applyConfigOptions(struct mapObj *self){
     msApplyMapConfigOptions( self );
   }
-SWIGINTERN int mapObj_applySLD(mapObj *self,char *sld){
+SWIGINTERN int mapObj_applySLD(struct mapObj *self,char *sld){
       return msSLDApplySLD(self, sld, -1, NULL, NULL);
     }
-SWIGINTERN int mapObj_applySLDURL(mapObj *self,char *sld){
+SWIGINTERN int mapObj_applySLDURL(struct mapObj *self,char *sld){
       return msSLDApplySLDURL(self, sld, -1, NULL, NULL);
     }
-SWIGINTERN char *mapObj_generateSLD(mapObj *self){
+SWIGINTERN char *mapObj_generateSLD(struct mapObj *self){
         return (char *) msSLDGenerateSLD(self, -1, NULL);
     }
-SWIGINTERN char *mapObj_processTemplate(mapObj *self,int bGenerateImages,char **names,char **values,int numentries){
+SWIGINTERN char *mapObj_processTemplate(struct mapObj *self,int bGenerateImages,char **names,char **values,int numentries){
         return msProcessTemplate(self, bGenerateImages, names, values,
                                  numentries);
     }
-SWIGINTERN char *mapObj_processLegendTemplate(mapObj *self,char **names,char **values,int numentries){
+SWIGINTERN char *mapObj_processLegendTemplate(struct mapObj *self,char **names,char **values,int numentries){
         return msProcessLegendTemplate(self, names, values, numentries);
     }
-SWIGINTERN char *mapObj_processQueryTemplate(mapObj *self,char **names,char **values,int numentries){
+SWIGINTERN char *mapObj_processQueryTemplate(struct mapObj *self,char **names,char **values,int numentries){
         return msProcessQueryTemplate(self, 1, names, values, numentries);
     }
-SWIGINTERN outputFormatObj *mapObj_getOutputFormatByName(mapObj *self,char *name){
+SWIGINTERN outputFormatObj *mapObj_getOutputFormatByName(struct mapObj *self,char *name){
         return msSelectOutputFormat(self, name); 
     }
-SWIGINTERN int mapObj_appendOutputFormat(mapObj *self,outputFormatObj *format){
+SWIGINTERN int mapObj_appendOutputFormat(struct mapObj *self,outputFormatObj *format){
         return msAppendOutputFormat(self, format);
     }
-SWIGINTERN int mapObj_removeOutputFormat(mapObj *self,char *name){
+SWIGINTERN int mapObj_removeOutputFormat(struct mapObj *self,char *name){
         return msRemoveOutputFormat(self, name);
     }
-SWIGINTERN int mapObj_loadOWSParameters(mapObj *self,cgiRequestObj *request,char *wmtver_string){
+SWIGINTERN int mapObj_loadOWSParameters(struct mapObj *self,cgiRequestObj *request,char *wmtver_string){
         return msMapLoadOWSParameters(self, request, wmtver_string);
     }
-SWIGINTERN int mapObj_OWSDispatch(mapObj *self,cgiRequestObj *req){
+SWIGINTERN int mapObj_OWSDispatch(struct mapObj *self,cgiRequestObj *req){
 	return msOWSDispatch( self, req, 1 );
     }
-SWIGINTERN int mapObj_zoomPoint(mapObj *self,int zoomfactor,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
+SWIGINTERN char *mapObj_convertToString(struct mapObj *self){
+        return msWriteMapToString(self);
+    }
+SWIGINTERN int mapObj_zoomPoint(struct mapObj *self,int zoomfactor,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
         double      dfGeoPosX, dfGeoPosY;
         double      dfDeltaX, dfDeltaY;
         rectObj     oNewGeorefExt;    
@@ -3589,7 +3661,7 @@ SWIGINTERN int mapObj_zoomPoint(mapObj *self,int zoomfactor,pointObj *poPixPos,i
 
         return MS_SUCCESS;
     }
-SWIGINTERN int mapObj_zoomRectangle(mapObj *self,rectObj *poPixRect,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
+SWIGINTERN int mapObj_zoomRectangle(struct mapObj *self,rectObj *poPixRect,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
         double      dfDeltaX, dfDeltaY;
         rectObj     oNewGeorefExt;    
         double      dfNewScale;
@@ -3754,7 +3826,7 @@ SWIGINTERN int mapObj_zoomRectangle(mapObj *self,rectObj *poPixRect,int width,in
 
         return MS_SUCCESS;
     }
-SWIGINTERN int mapObj_zoomScale(mapObj *self,double scale,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
+SWIGINTERN int mapObj_zoomScale(struct mapObj *self,double scale,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
         double      dfGeoPosX, dfGeoPosY;
         double      dfDeltaX, dfDeltaY;
         rectObj     oNewGeorefExt;    
@@ -4350,10 +4422,13 @@ SWIGINTERN void shapeObj_initValues(shapeObj *self,int numvalues){
 
 SWIGINTERNINLINE SV *
 SWIG_From_unsigned_SS_long  SWIG_PERL_DECL_ARGS_1(unsigned long value)
-{    
-  SV *obj = sv_newmortal();
-  sv_setuv(obj, (UV) value);
-  return obj;
+{
+  SV *sv;
+  if (value <= UV_MAX)
+    sv = newSVuv(value);
+  else
+    sv = newSVpvf("%lu", value);
+  return sv_2mortal(sv);
 }
 
 
@@ -4574,7 +4649,7 @@ SWIGINTERN char *colorObj_toHex(colorObj *self){
                  self->red, self->green, self->blue);
         return strdup(hexcolor);
     }
-SWIGINTERN symbolObj *new_symbolObj(char *symbolname,char const *imagefile){
+SWIGINTERN struct symbolObj *new_symbolObj(char *symbolname,char const *imagefile){
         symbolObj *symbol;
         symbol = (symbolObj *) malloc(sizeof(symbolObj));
         initSymbol(symbol);
@@ -4584,7 +4659,7 @@ SWIGINTERN symbolObj *new_symbolObj(char *symbolname,char const *imagefile){
         }
         return symbol;
     }
-SWIGINTERN void delete_symbolObj(symbolObj *self){
+SWIGINTERN void delete_symbolObj(struct symbolObj *self){
 		if (self) {
             if (msFreeSymbol(self)==MS_SUCCESS) {
             	free(self);
@@ -4592,10 +4667,10 @@ SWIGINTERN void delete_symbolObj(symbolObj *self){
 			}
         }
     }
-SWIGINTERN int symbolObj_setImagepath(symbolObj *self,char const *imagefile){
+SWIGINTERN int symbolObj_setImagepath(struct symbolObj *self,char const *imagefile){
 	return msLoadImageSymbol(self, imagefile);
     }
-SWIGINTERN int symbolObj_setPoints(symbolObj *self,lineObj *line){
+SWIGINTERN int symbolObj_setPoints(struct symbolObj *self,lineObj *line){
         int i;
 	self->sizex = 0;
 	self->sizey = 0;
@@ -4607,7 +4682,7 @@ SWIGINTERN int symbolObj_setPoints(symbolObj *self,lineObj *line){
         self->numpoints = line->numpoints;
         return self->numpoints;
     }
-SWIGINTERN lineObj *symbolObj_getPoints(symbolObj *self){
+SWIGINTERN lineObj *symbolObj_getPoints(struct symbolObj *self){
         int i;
         lineObj *line;
         line = (lineObj *) malloc(sizeof(lineObj));
@@ -4619,7 +4694,7 @@ SWIGINTERN lineObj *symbolObj_getPoints(symbolObj *self){
         line->numpoints = self->numpoints;
         return line;
     }
-SWIGINTERN imageObj *symbolObj_getImage(symbolObj *self,outputFormatObj *input_format){
+SWIGINTERN imageObj *symbolObj_getImage(struct symbolObj *self,outputFormatObj *input_format){
         imageObj *image = NULL;
         outputFormatObj *format = NULL;
         rendererVTableObj *renderer = NULL;
@@ -4664,7 +4739,7 @@ SWIGINTERN imageObj *symbolObj_getImage(symbolObj *self,outputFormatObj *input_f
 
         return image;
     }
-SWIGINTERN int symbolObj_setImage(symbolObj *self,imageObj *image){
+SWIGINTERN int symbolObj_setImage(struct symbolObj *self,imageObj *image){
         rendererVTableObj *renderer = NULL;
         
         renderer = image->format->vtable;
@@ -4684,11 +4759,11 @@ SWIGINTERN int symbolObj_setImage(symbolObj *self,imageObj *image){
 
         return MS_SUCCESS;
     }
-SWIGINTERN errorObj *new_errorObj(){    
+SWIGINTERN struct errorObj *new_errorObj(){    
         return msGetErrorObj();
     }
-SWIGINTERN void delete_errorObj(errorObj *self){}
-SWIGINTERN errorObj *errorObj_next(errorObj *self){
+SWIGINTERN void delete_errorObj(struct errorObj *self){}
+SWIGINTERN errorObj *errorObj_next(struct errorObj *self){
         errorObj *ep;	
 
         if (self == NULL || self->next == NULL) return NULL;
@@ -5482,6 +5557,35 @@ XS(_wrap_clusterObj_updateFromString) {
 }
 
 
+XS(_wrap_clusterObj_convertToString) {
+  {
+    clusterObj *arg1 = (clusterObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: clusterObj_convertToString(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_clusterObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "clusterObj_convertToString" "', argument " "1"" of type '" "clusterObj *""'"); 
+    }
+    arg1 = (clusterObj *)(argp1);
+    result = (char *)clusterObj_convertToString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_clusterObj_setGroup) {
   {
     clusterObj *arg1 = (clusterObj *) 0 ;
@@ -5663,6 +5767,34 @@ XS(_wrap_delete_clusterObj) {
 }
 
 
+XS(_wrap_outputFormatObj_numformatoptions_get) {
+  {
+    outputFormatObj *arg1 = (outputFormatObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    int result;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: outputFormatObj_numformatoptions_get(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_numformatoptions_get" "', argument " "1"" of type '" "outputFormatObj *""'"); 
+    }
+    arg1 = (outputFormatObj *)(argp1);
+    result = (int) ((arg1)->numformatoptions);
+    ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_outputFormatObj_name_set) {
   {
     outputFormatObj *arg1 = (outputFormatObj *) 0 ;
@@ -6219,201 +6351,6 @@ XS(_wrap_outputFormatObj_bands_get) {
 }
 
 
-XS(_wrap_outputFormatObj_numformatoptions_set) {
-  {
-    outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-    int arg2 ;
-    void *argp1 = 0 ;
-    int res1 = 0 ;
-    int val2 ;
-    int ecode2 = 0 ;
-    int argvi = 0;
-    dXSARGS;
-    
-    if ((items < 2) || (items > 2)) {
-      SWIG_croak("Usage: outputFormatObj_numformatoptions_set(self,numformatoptions);");
-    }
-    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-    if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_numformatoptions_set" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-    }
-    arg1 = (outputFormatObj *)(argp1);
-    ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
-    if (!SWIG_IsOK(ecode2)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "outputFormatObj_numformatoptions_set" "', argument " "2"" of type '" "int""'");
-    } 
-    arg2 = (int)(val2);
-    if (arg1) (arg1)->numformatoptions = arg2;
-    ST(argvi) = sv_newmortal();
-    
-    
-    XSRETURN(argvi);
-  fail:
-    
-    
-    SWIG_croak_null();
-  }
-}
-
-
-XS(_wrap_outputFormatObj_numformatoptions_get) {
-  {
-    outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-    void *argp1 = 0 ;
-    int res1 = 0 ;
-    int argvi = 0;
-    int result;
-    dXSARGS;
-    
-    if ((items < 1) || (items > 1)) {
-      SWIG_croak("Usage: outputFormatObj_numformatoptions_get(self);");
-    }
-    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-    if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_numformatoptions_get" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-    }
-    arg1 = (outputFormatObj *)(argp1);
-    result = (int) ((arg1)->numformatoptions);
-    ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
-    
-    XSRETURN(argvi);
-  fail:
-    
-    SWIG_croak_null();
-  }
-}
-
-
-XS(_wrap_outputFormatObj_formatoptions_set) {
-  {
-    outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-    char **arg2 = (char **) 0 ;
-    void *argp1 = 0 ;
-    int res1 = 0 ;
-    void *argp2 = 0 ;
-    int res2 = 0 ;
-    int argvi = 0;
-    dXSARGS;
-    
-    if ((items < 2) || (items > 2)) {
-      SWIG_croak("Usage: outputFormatObj_formatoptions_set(self,formatoptions);");
-    }
-    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-    if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_formatoptions_set" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-    }
-    arg1 = (outputFormatObj *)(argp1);
-    res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_p_char, 0 |  0 );
-    if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "outputFormatObj_formatoptions_set" "', argument " "2"" of type '" "char **""'"); 
-    }
-    arg2 = (char **)(argp2);
-    if (arg1) (arg1)->formatoptions = arg2;
-    ST(argvi) = sv_newmortal();
-    
-    
-    XSRETURN(argvi);
-  fail:
-    
-    
-    SWIG_croak_null();
-  }
-}
-
-
-XS(_wrap_outputFormatObj_formatoptions_get) {
-  {
-    outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-    void *argp1 = 0 ;
-    int res1 = 0 ;
-    int argvi = 0;
-    char **result = 0 ;
-    dXSARGS;
-    
-    if ((items < 1) || (items > 1)) {
-      SWIG_croak("Usage: outputFormatObj_formatoptions_get(self);");
-    }
-    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-    if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_formatoptions_get" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-    }
-    arg1 = (outputFormatObj *)(argp1);
-    result = (char **) ((arg1)->formatoptions);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_char, 0 | 0); argvi++ ;
-    
-    XSRETURN(argvi);
-  fail:
-    
-    SWIG_croak_null();
-  }
-}
-
-
-XS(_wrap_outputFormatObj_refcount_set) {
-  {
-    outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-    int arg2 ;
-    void *argp1 = 0 ;
-    int res1 = 0 ;
-    int val2 ;
-    int ecode2 = 0 ;
-    int argvi = 0;
-    dXSARGS;
-    
-    if ((items < 2) || (items > 2)) {
-      SWIG_croak("Usage: outputFormatObj_refcount_set(self,refcount);");
-    }
-    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-    if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_refcount_set" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-    }
-    arg1 = (outputFormatObj *)(argp1);
-    ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
-    if (!SWIG_IsOK(ecode2)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "outputFormatObj_refcount_set" "', argument " "2"" of type '" "int""'");
-    } 
-    arg2 = (int)(val2);
-    if (arg1) (arg1)->refcount = arg2;
-    ST(argvi) = sv_newmortal();
-    
-    
-    XSRETURN(argvi);
-  fail:
-    
-    
-    SWIG_croak_null();
-  }
-}
-
-
-XS(_wrap_outputFormatObj_refcount_get) {
-  {
-    outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-    void *argp1 = 0 ;
-    int res1 = 0 ;
-    int argvi = 0;
-    int result;
-    dXSARGS;
-    
-    if ((items < 1) || (items > 1)) {
-      SWIG_croak("Usage: outputFormatObj_refcount_get(self);");
-    }
-    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-    if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_refcount_get" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-    }
-    arg1 = (outputFormatObj *)(argp1);
-    result = (int) ((arg1)->refcount);
-    ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
-    
-    XSRETURN(argvi);
-  fail:
-    
-    SWIG_croak_null();
-  }
-}
-
-
 XS(_wrap_outputFormatObj_inmapfile_set) {
   {
     outputFormatObj *arg1 = (outputFormatObj *) 0 ;
@@ -6754,6 +6691,45 @@ XS(_wrap_outputFormatObj_getOption) {
 }
 
 
+XS(_wrap_outputFormatObj_getOptionAt) {
+  {
+    outputFormatObj *arg1 = (outputFormatObj *) 0 ;
+    int arg2 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int val2 ;
+    int ecode2 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: outputFormatObj_getOptionAt(self,i);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_getOptionAt" "', argument " "1"" of type '" "outputFormatObj *""'"); 
+    }
+    arg1 = (outputFormatObj *)(argp1);
+    ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+    if (!SWIG_IsOK(ecode2)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "outputFormatObj_getOptionAt" "', argument " "2"" of type '" "int""'");
+    } 
+    arg2 = (int)(val2);
+    result = (char *)outputFormatObj_getOptionAt(arg1,arg2);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_outputFormatObj_attachDevice) {
   {
     outputFormatObj *arg1 = (outputFormatObj *) 0 ;
@@ -7153,6 +7129,35 @@ XS(_wrap_queryMapObj_updateFromString) {
 }
 
 
+XS(_wrap_queryMapObj_convertToString) {
+  {
+    queryMapObj *arg1 = (queryMapObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: queryMapObj_convertToString(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_queryMapObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "queryMapObj_convertToString" "', argument " "1"" of type '" "queryMapObj *""'"); 
+    }
+    arg1 = (queryMapObj *)(argp1);
+    result = (char *)queryMapObj_convertToString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_new_queryMapObj) {
   {
     int argvi = 0;
@@ -8601,9 +8606,38 @@ XS(_wrap_webObj_updateFromString) {
 }
 
 
+XS(_wrap_webObj_convertToString) {
+  {
+    webObj *arg1 = (webObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: webObj_convertToString(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_webObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "webObj_convertToString" "', argument " "1"" of type '" "webObj *""'"); 
+    }
+    arg1 = (webObj *)(argp1);
+    result = (char *)webObj_convertToString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_styleObj_refcount_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -8615,9 +8649,9 @@ XS(_wrap_styleObj_refcount_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_refcount_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_refcount_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (int) ((arg1)->refcount);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -8631,7 +8665,7 @@ XS(_wrap_styleObj_refcount_get) {
 
 XS(_wrap_styleObj_autoangle_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -8645,9 +8679,9 @@ XS(_wrap_styleObj_autoangle_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_autoangle_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_autoangle_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_autoangle_set" "', argument " "2"" of type '" "int""'");
@@ -8668,7 +8702,7 @@ XS(_wrap_styleObj_autoangle_set) {
 
 XS(_wrap_styleObj_autoangle_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -8680,9 +8714,9 @@ XS(_wrap_styleObj_autoangle_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_autoangle_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_autoangle_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (int) ((arg1)->autoangle);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -8696,7 +8730,7 @@ XS(_wrap_styleObj_autoangle_get) {
 
 XS(_wrap_styleObj_color_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     colorObj *arg2 = (colorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -8710,9 +8744,9 @@ XS(_wrap_styleObj_color_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_color_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_color_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_color_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -8733,7 +8767,7 @@ XS(_wrap_styleObj_color_set) {
 
 XS(_wrap_styleObj_color_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -8745,9 +8779,9 @@ XS(_wrap_styleObj_color_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_color_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_color_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (colorObj *)& ((arg1)->color);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -8761,7 +8795,7 @@ XS(_wrap_styleObj_color_get) {
 
 XS(_wrap_styleObj_backgroundcolor_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     colorObj *arg2 = (colorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -8775,9 +8809,9 @@ XS(_wrap_styleObj_backgroundcolor_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_backgroundcolor_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_backgroundcolor_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_backgroundcolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -8798,7 +8832,7 @@ XS(_wrap_styleObj_backgroundcolor_set) {
 
 XS(_wrap_styleObj_backgroundcolor_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -8810,9 +8844,9 @@ XS(_wrap_styleObj_backgroundcolor_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_backgroundcolor_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_backgroundcolor_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (colorObj *)& ((arg1)->backgroundcolor);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -8826,7 +8860,7 @@ XS(_wrap_styleObj_backgroundcolor_get) {
 
 XS(_wrap_styleObj_outlinecolor_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     colorObj *arg2 = (colorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -8840,9 +8874,9 @@ XS(_wrap_styleObj_outlinecolor_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinecolor_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinecolor_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_outlinecolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -8863,7 +8897,7 @@ XS(_wrap_styleObj_outlinecolor_set) {
 
 XS(_wrap_styleObj_outlinecolor_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -8875,9 +8909,9 @@ XS(_wrap_styleObj_outlinecolor_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinecolor_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinecolor_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (colorObj *)& ((arg1)->outlinecolor);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -8891,7 +8925,7 @@ XS(_wrap_styleObj_outlinecolor_get) {
 
 XS(_wrap_styleObj_opacity_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -8905,9 +8939,9 @@ XS(_wrap_styleObj_opacity_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_opacity_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_opacity_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_opacity_set" "', argument " "2"" of type '" "int""'");
@@ -8928,7 +8962,7 @@ XS(_wrap_styleObj_opacity_set) {
 
 XS(_wrap_styleObj_opacity_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -8940,9 +8974,9 @@ XS(_wrap_styleObj_opacity_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_opacity_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_opacity_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (int) ((arg1)->opacity);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -8956,7 +8990,7 @@ XS(_wrap_styleObj_opacity_get) {
 
 XS(_wrap_styleObj_mincolor_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     colorObj *arg2 = (colorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -8970,9 +9004,9 @@ XS(_wrap_styleObj_mincolor_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_mincolor_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_mincolor_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_mincolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -8993,7 +9027,7 @@ XS(_wrap_styleObj_mincolor_set) {
 
 XS(_wrap_styleObj_mincolor_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9005,9 +9039,9 @@ XS(_wrap_styleObj_mincolor_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_mincolor_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_mincolor_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (colorObj *)& ((arg1)->mincolor);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -9021,7 +9055,7 @@ XS(_wrap_styleObj_mincolor_get) {
 
 XS(_wrap_styleObj_maxcolor_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     colorObj *arg2 = (colorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9035,9 +9069,9 @@ XS(_wrap_styleObj_maxcolor_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxcolor_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxcolor_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_maxcolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -9058,7 +9092,7 @@ XS(_wrap_styleObj_maxcolor_set) {
 
 XS(_wrap_styleObj_maxcolor_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9070,9 +9104,9 @@ XS(_wrap_styleObj_maxcolor_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxcolor_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxcolor_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (colorObj *)& ((arg1)->maxcolor);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -9086,7 +9120,7 @@ XS(_wrap_styleObj_maxcolor_get) {
 
 XS(_wrap_styleObj_minvalue_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9100,9 +9134,9 @@ XS(_wrap_styleObj_minvalue_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minvalue_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minvalue_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_minvalue_set" "', argument " "2"" of type '" "double""'");
@@ -9123,7 +9157,7 @@ XS(_wrap_styleObj_minvalue_set) {
 
 XS(_wrap_styleObj_minvalue_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9135,9 +9169,9 @@ XS(_wrap_styleObj_minvalue_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minvalue_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minvalue_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->minvalue);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -9151,7 +9185,7 @@ XS(_wrap_styleObj_minvalue_get) {
 
 XS(_wrap_styleObj_maxvalue_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9165,9 +9199,9 @@ XS(_wrap_styleObj_maxvalue_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxvalue_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxvalue_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_maxvalue_set" "', argument " "2"" of type '" "double""'");
@@ -9188,7 +9222,7 @@ XS(_wrap_styleObj_maxvalue_set) {
 
 XS(_wrap_styleObj_maxvalue_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9200,9 +9234,9 @@ XS(_wrap_styleObj_maxvalue_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxvalue_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxvalue_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->maxvalue);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -9216,7 +9250,7 @@ XS(_wrap_styleObj_maxvalue_get) {
 
 XS(_wrap_styleObj_rangeitem_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9231,9 +9265,9 @@ XS(_wrap_styleObj_rangeitem_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitem_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitem_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_rangeitem_set" "', argument " "2"" of type '" "char *""'");
@@ -9262,7 +9296,7 @@ XS(_wrap_styleObj_rangeitem_set) {
 
 XS(_wrap_styleObj_rangeitem_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9274,9 +9308,9 @@ XS(_wrap_styleObj_rangeitem_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitem_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitem_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (char *) ((arg1)->rangeitem);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -9290,7 +9324,7 @@ XS(_wrap_styleObj_rangeitem_get) {
 
 XS(_wrap_styleObj_rangeitemindex_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9304,9 +9338,9 @@ XS(_wrap_styleObj_rangeitemindex_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitemindex_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitemindex_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_rangeitemindex_set" "', argument " "2"" of type '" "int""'");
@@ -9327,7 +9361,7 @@ XS(_wrap_styleObj_rangeitemindex_set) {
 
 XS(_wrap_styleObj_rangeitemindex_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9339,9 +9373,9 @@ XS(_wrap_styleObj_rangeitemindex_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitemindex_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitemindex_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (int) ((arg1)->rangeitemindex);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -9355,7 +9389,7 @@ XS(_wrap_styleObj_rangeitemindex_get) {
 
 XS(_wrap_styleObj_symbol_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9369,9 +9403,9 @@ XS(_wrap_styleObj_symbol_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbol_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbol_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_symbol_set" "', argument " "2"" of type '" "int""'");
@@ -9392,7 +9426,7 @@ XS(_wrap_styleObj_symbol_set) {
 
 XS(_wrap_styleObj_symbol_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9404,9 +9438,9 @@ XS(_wrap_styleObj_symbol_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbol_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbol_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (int) ((arg1)->symbol);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -9420,7 +9454,7 @@ XS(_wrap_styleObj_symbol_get) {
 
 XS(_wrap_styleObj_symbolname_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9435,9 +9469,9 @@ XS(_wrap_styleObj_symbolname_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbolname_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbolname_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_symbolname_set" "', argument " "2"" of type '" "char *""'");
@@ -9466,7 +9500,7 @@ XS(_wrap_styleObj_symbolname_set) {
 
 XS(_wrap_styleObj_symbolname_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9478,9 +9512,9 @@ XS(_wrap_styleObj_symbolname_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbolname_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbolname_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (char *) ((arg1)->symbolname);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -9494,7 +9528,7 @@ XS(_wrap_styleObj_symbolname_get) {
 
 XS(_wrap_styleObj_size_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9508,9 +9542,9 @@ XS(_wrap_styleObj_size_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_size_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_size_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_size_set" "', argument " "2"" of type '" "double""'");
@@ -9531,7 +9565,7 @@ XS(_wrap_styleObj_size_set) {
 
 XS(_wrap_styleObj_size_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9543,9 +9577,9 @@ XS(_wrap_styleObj_size_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_size_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_size_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->size);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -9559,7 +9593,7 @@ XS(_wrap_styleObj_size_get) {
 
 XS(_wrap_styleObj_minsize_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9573,9 +9607,9 @@ XS(_wrap_styleObj_minsize_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minsize_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minsize_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_minsize_set" "', argument " "2"" of type '" "double""'");
@@ -9596,7 +9630,7 @@ XS(_wrap_styleObj_minsize_set) {
 
 XS(_wrap_styleObj_minsize_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9608,9 +9642,9 @@ XS(_wrap_styleObj_minsize_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minsize_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minsize_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->minsize);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -9624,7 +9658,7 @@ XS(_wrap_styleObj_minsize_get) {
 
 XS(_wrap_styleObj_maxsize_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9638,9 +9672,9 @@ XS(_wrap_styleObj_maxsize_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxsize_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxsize_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_maxsize_set" "', argument " "2"" of type '" "double""'");
@@ -9661,7 +9695,7 @@ XS(_wrap_styleObj_maxsize_set) {
 
 XS(_wrap_styleObj_maxsize_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9673,9 +9707,9 @@ XS(_wrap_styleObj_maxsize_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxsize_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxsize_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->maxsize);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -9689,7 +9723,7 @@ XS(_wrap_styleObj_maxsize_get) {
 
 XS(_wrap_styleObj_patternlength_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9703,9 +9737,9 @@ XS(_wrap_styleObj_patternlength_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_patternlength_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_patternlength_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_patternlength_set" "', argument " "2"" of type '" "int""'");
@@ -9726,7 +9760,7 @@ XS(_wrap_styleObj_patternlength_set) {
 
 XS(_wrap_styleObj_patternlength_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9738,9 +9772,9 @@ XS(_wrap_styleObj_patternlength_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_patternlength_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_patternlength_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (int) ((arg1)->patternlength);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -9754,7 +9788,7 @@ XS(_wrap_styleObj_patternlength_get) {
 
 XS(_wrap_styleObj_pattern_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double *arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9768,9 +9802,9 @@ XS(_wrap_styleObj_pattern_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_pattern_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_pattern_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_double, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_pattern_set" "', argument " "2"" of type '" "double [MS_MAXPATTERNLENGTH]""'"); 
@@ -9798,7 +9832,7 @@ XS(_wrap_styleObj_pattern_set) {
 
 XS(_wrap_styleObj_pattern_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9810,9 +9844,9 @@ XS(_wrap_styleObj_pattern_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_pattern_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_pattern_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double *)(double *) ((arg1)->pattern);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 | 0); argvi++ ;
     
@@ -9826,7 +9860,7 @@ XS(_wrap_styleObj_pattern_get) {
 
 XS(_wrap_styleObj_gap_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9840,9 +9874,9 @@ XS(_wrap_styleObj_gap_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_gap_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_gap_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_gap_set" "', argument " "2"" of type '" "double""'");
@@ -9863,7 +9897,7 @@ XS(_wrap_styleObj_gap_set) {
 
 XS(_wrap_styleObj_gap_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9875,9 +9909,9 @@ XS(_wrap_styleObj_gap_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_gap_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_gap_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->gap);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -9891,7 +9925,7 @@ XS(_wrap_styleObj_gap_get) {
 
 XS(_wrap_styleObj_initialgap_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9905,9 +9939,9 @@ XS(_wrap_styleObj_initialgap_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_initialgap_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_initialgap_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_initialgap_set" "', argument " "2"" of type '" "double""'");
@@ -9928,7 +9962,7 @@ XS(_wrap_styleObj_initialgap_set) {
 
 XS(_wrap_styleObj_initialgap_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -9940,9 +9974,9 @@ XS(_wrap_styleObj_initialgap_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_initialgap_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_initialgap_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->initialgap);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -9956,7 +9990,7 @@ XS(_wrap_styleObj_initialgap_get) {
 
 XS(_wrap_styleObj_position_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -9970,9 +10004,9 @@ XS(_wrap_styleObj_position_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_position_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_position_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_position_set" "', argument " "2"" of type '" "int""'");
@@ -9993,7 +10027,7 @@ XS(_wrap_styleObj_position_set) {
 
 XS(_wrap_styleObj_position_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10005,9 +10039,9 @@ XS(_wrap_styleObj_position_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_position_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_position_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (int) ((arg1)->position);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -10021,7 +10055,7 @@ XS(_wrap_styleObj_position_get) {
 
 XS(_wrap_styleObj_linecap_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10035,9 +10069,9 @@ XS(_wrap_styleObj_linecap_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linecap_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linecap_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_linecap_set" "', argument " "2"" of type '" "int""'");
@@ -10058,7 +10092,7 @@ XS(_wrap_styleObj_linecap_set) {
 
 XS(_wrap_styleObj_linecap_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10070,9 +10104,9 @@ XS(_wrap_styleObj_linecap_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linecap_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linecap_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (int) ((arg1)->linecap);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -10086,7 +10120,7 @@ XS(_wrap_styleObj_linecap_get) {
 
 XS(_wrap_styleObj_linejoin_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10100,9 +10134,9 @@ XS(_wrap_styleObj_linejoin_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoin_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoin_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_linejoin_set" "', argument " "2"" of type '" "int""'");
@@ -10123,7 +10157,7 @@ XS(_wrap_styleObj_linejoin_set) {
 
 XS(_wrap_styleObj_linejoin_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10135,9 +10169,9 @@ XS(_wrap_styleObj_linejoin_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoin_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoin_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (int) ((arg1)->linejoin);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -10151,7 +10185,7 @@ XS(_wrap_styleObj_linejoin_get) {
 
 XS(_wrap_styleObj_linejoinmaxsize_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10165,9 +10199,9 @@ XS(_wrap_styleObj_linejoinmaxsize_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoinmaxsize_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoinmaxsize_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_linejoinmaxsize_set" "', argument " "2"" of type '" "double""'");
@@ -10188,7 +10222,7 @@ XS(_wrap_styleObj_linejoinmaxsize_set) {
 
 XS(_wrap_styleObj_linejoinmaxsize_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10200,9 +10234,9 @@ XS(_wrap_styleObj_linejoinmaxsize_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoinmaxsize_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoinmaxsize_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->linejoinmaxsize);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -10216,7 +10250,7 @@ XS(_wrap_styleObj_linejoinmaxsize_get) {
 
 XS(_wrap_styleObj_width_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10230,9 +10264,9 @@ XS(_wrap_styleObj_width_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_width_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_width_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_width_set" "', argument " "2"" of type '" "double""'");
@@ -10253,7 +10287,7 @@ XS(_wrap_styleObj_width_set) {
 
 XS(_wrap_styleObj_width_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10265,9 +10299,9 @@ XS(_wrap_styleObj_width_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_width_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_width_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->width);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -10281,7 +10315,7 @@ XS(_wrap_styleObj_width_get) {
 
 XS(_wrap_styleObj_outlinewidth_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10295,9 +10329,9 @@ XS(_wrap_styleObj_outlinewidth_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinewidth_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinewidth_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_outlinewidth_set" "', argument " "2"" of type '" "double""'");
@@ -10318,7 +10352,7 @@ XS(_wrap_styleObj_outlinewidth_set) {
 
 XS(_wrap_styleObj_outlinewidth_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10330,9 +10364,9 @@ XS(_wrap_styleObj_outlinewidth_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinewidth_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinewidth_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->outlinewidth);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -10346,7 +10380,7 @@ XS(_wrap_styleObj_outlinewidth_get) {
 
 XS(_wrap_styleObj_minwidth_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10360,9 +10394,9 @@ XS(_wrap_styleObj_minwidth_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minwidth_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minwidth_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_minwidth_set" "', argument " "2"" of type '" "double""'");
@@ -10383,7 +10417,7 @@ XS(_wrap_styleObj_minwidth_set) {
 
 XS(_wrap_styleObj_minwidth_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10395,9 +10429,9 @@ XS(_wrap_styleObj_minwidth_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minwidth_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minwidth_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->minwidth);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -10411,7 +10445,7 @@ XS(_wrap_styleObj_minwidth_get) {
 
 XS(_wrap_styleObj_maxwidth_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10425,9 +10459,9 @@ XS(_wrap_styleObj_maxwidth_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxwidth_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxwidth_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_maxwidth_set" "', argument " "2"" of type '" "double""'");
@@ -10448,7 +10482,7 @@ XS(_wrap_styleObj_maxwidth_set) {
 
 XS(_wrap_styleObj_maxwidth_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10460,9 +10494,9 @@ XS(_wrap_styleObj_maxwidth_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxwidth_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxwidth_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->maxwidth);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -10476,7 +10510,7 @@ XS(_wrap_styleObj_maxwidth_get) {
 
 XS(_wrap_styleObj_offsetx_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10490,9 +10524,9 @@ XS(_wrap_styleObj_offsetx_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsetx_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsetx_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_offsetx_set" "', argument " "2"" of type '" "double""'");
@@ -10513,7 +10547,7 @@ XS(_wrap_styleObj_offsetx_set) {
 
 XS(_wrap_styleObj_offsetx_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10525,9 +10559,9 @@ XS(_wrap_styleObj_offsetx_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsetx_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsetx_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->offsetx);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -10541,7 +10575,7 @@ XS(_wrap_styleObj_offsetx_get) {
 
 XS(_wrap_styleObj_offsety_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10555,9 +10589,9 @@ XS(_wrap_styleObj_offsety_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsety_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsety_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_offsety_set" "', argument " "2"" of type '" "double""'");
@@ -10578,7 +10612,7 @@ XS(_wrap_styleObj_offsety_set) {
 
 XS(_wrap_styleObj_offsety_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10590,9 +10624,9 @@ XS(_wrap_styleObj_offsety_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsety_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsety_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->offsety);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -10606,7 +10640,7 @@ XS(_wrap_styleObj_offsety_get) {
 
 XS(_wrap_styleObj_polaroffsetpixel_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10620,9 +10654,9 @@ XS(_wrap_styleObj_polaroffsetpixel_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetpixel_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetpixel_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_polaroffsetpixel_set" "', argument " "2"" of type '" "double""'");
@@ -10643,7 +10677,7 @@ XS(_wrap_styleObj_polaroffsetpixel_set) {
 
 XS(_wrap_styleObj_polaroffsetpixel_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10655,9 +10689,9 @@ XS(_wrap_styleObj_polaroffsetpixel_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetpixel_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetpixel_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->polaroffsetpixel);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -10671,7 +10705,7 @@ XS(_wrap_styleObj_polaroffsetpixel_get) {
 
 XS(_wrap_styleObj_polaroffsetangle_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10685,9 +10719,9 @@ XS(_wrap_styleObj_polaroffsetangle_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetangle_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetangle_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_polaroffsetangle_set" "', argument " "2"" of type '" "double""'");
@@ -10708,7 +10742,7 @@ XS(_wrap_styleObj_polaroffsetangle_set) {
 
 XS(_wrap_styleObj_polaroffsetangle_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10720,9 +10754,9 @@ XS(_wrap_styleObj_polaroffsetangle_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetangle_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetangle_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->polaroffsetangle);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -10736,7 +10770,7 @@ XS(_wrap_styleObj_polaroffsetangle_get) {
 
 XS(_wrap_styleObj_angle_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10750,9 +10784,9 @@ XS(_wrap_styleObj_angle_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_angle_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_angle_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_angle_set" "', argument " "2"" of type '" "double""'");
@@ -10773,7 +10807,7 @@ XS(_wrap_styleObj_angle_set) {
 
 XS(_wrap_styleObj_angle_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10785,9 +10819,9 @@ XS(_wrap_styleObj_angle_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_angle_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_angle_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->angle);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -10801,7 +10835,7 @@ XS(_wrap_styleObj_angle_get) {
 
 XS(_wrap_styleObj_antialias_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10815,9 +10849,9 @@ XS(_wrap_styleObj_antialias_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_antialias_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_antialias_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_antialias_set" "', argument " "2"" of type '" "int""'");
@@ -10838,7 +10872,7 @@ XS(_wrap_styleObj_antialias_set) {
 
 XS(_wrap_styleObj_antialias_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10850,9 +10884,9 @@ XS(_wrap_styleObj_antialias_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_antialias_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_antialias_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (int) ((arg1)->antialias);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -10866,7 +10900,7 @@ XS(_wrap_styleObj_antialias_get) {
 
 XS(_wrap_styleObj_minscaledenom_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10880,9 +10914,9 @@ XS(_wrap_styleObj_minscaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minscaledenom_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minscaledenom_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_minscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -10903,7 +10937,7 @@ XS(_wrap_styleObj_minscaledenom_set) {
 
 XS(_wrap_styleObj_minscaledenom_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10915,9 +10949,9 @@ XS(_wrap_styleObj_minscaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minscaledenom_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minscaledenom_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->minscaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -10931,7 +10965,7 @@ XS(_wrap_styleObj_minscaledenom_get) {
 
 XS(_wrap_styleObj_maxscaledenom_set) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -10945,9 +10979,9 @@ XS(_wrap_styleObj_maxscaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxscaledenom_set" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxscaledenom_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_maxscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -10968,7 +11002,7 @@ XS(_wrap_styleObj_maxscaledenom_set) {
 
 XS(_wrap_styleObj_maxscaledenom_get) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -10980,9 +11014,9 @@ XS(_wrap_styleObj_maxscaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxscaledenom_get" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxscaledenom_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (double) ((arg1)->maxscaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -11000,7 +11034,7 @@ XS(_wrap_new_styleObj) {
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
-    styleObj *result = 0 ;
+    struct styleObj *result = 0 ;
     dXSARGS;
     
     if ((items < 0) || (items > 1)) {
@@ -11013,7 +11047,7 @@ XS(_wrap_new_styleObj) {
       }
       arg1 = (classObj *)(argp1);
     }
-    result = (styleObj *)new_styleObj(arg1);
+    result = (struct styleObj *)new_styleObj(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_styleObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
     XSRETURN(argvi);
@@ -11026,7 +11060,7 @@ XS(_wrap_new_styleObj) {
 
 XS(_wrap_delete_styleObj) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -11037,9 +11071,9 @@ XS(_wrap_delete_styleObj) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, SWIG_POINTER_DISOWN |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_styleObj" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_styleObj" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     delete_styleObj(arg1);
     ST(argvi) = sv_newmortal();
     
@@ -11053,7 +11087,7 @@ XS(_wrap_delete_styleObj) {
 
 XS(_wrap_styleObj_updateFromString) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -11069,9 +11103,9 @@ XS(_wrap_styleObj_updateFromString) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_updateFromString" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_updateFromString" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_updateFromString" "', argument " "2"" of type '" "char *""'");
@@ -11090,9 +11124,38 @@ XS(_wrap_styleObj_updateFromString) {
 }
 
 
+XS(_wrap_styleObj_convertToString) {
+  {
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: styleObj_convertToString(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_convertToString" "', argument " "1"" of type '" "struct styleObj *""'"); 
+    }
+    arg1 = (struct styleObj *)(argp1);
+    result = (char *)styleObj_convertToString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_styleObj_clone) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -11104,9 +11167,9 @@ XS(_wrap_styleObj_clone) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_clone" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_clone" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (styleObj *)styleObj_clone(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_styleObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -11120,7 +11183,7 @@ XS(_wrap_styleObj_clone) {
 
 XS(_wrap_styleObj_setSymbolByName) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -11139,9 +11202,9 @@ XS(_wrap_styleObj_setSymbolByName) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setSymbolByName" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setSymbolByName" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_setSymbolByName" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -11169,7 +11232,7 @@ XS(_wrap_styleObj_setSymbolByName) {
 
 XS(_wrap_styleObj_removeBinding) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -11184,9 +11247,9 @@ XS(_wrap_styleObj_removeBinding) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_removeBinding" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_removeBinding" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_removeBinding" "', argument " "2"" of type '" "int""'");
@@ -11207,7 +11270,7 @@ XS(_wrap_styleObj_removeBinding) {
 
 XS(_wrap_styleObj_setBinding) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -11226,9 +11289,9 @@ XS(_wrap_styleObj_setBinding) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setBinding" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setBinding" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_setBinding" "', argument " "2"" of type '" "int""'");
@@ -11256,7 +11319,7 @@ XS(_wrap_styleObj_setBinding) {
 
 XS(_wrap_styleObj_getBinding) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -11271,9 +11334,9 @@ XS(_wrap_styleObj_getBinding) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_getBinding" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_getBinding" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_getBinding" "', argument " "2"" of type '" "int""'");
@@ -11294,7 +11357,7 @@ XS(_wrap_styleObj_getBinding) {
 
 XS(_wrap_styleObj_getGeomTransform) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -11306,9 +11369,9 @@ XS(_wrap_styleObj_getGeomTransform) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_getGeomTransform" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_getGeomTransform" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     result = (char *)styleObj_getGeomTransform(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -11322,7 +11385,7 @@ XS(_wrap_styleObj_getGeomTransform) {
 
 XS(_wrap_styleObj_setGeomTransform) {
   {
-    styleObj *arg1 = (styleObj *) 0 ;
+    struct styleObj *arg1 = (struct styleObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -11337,9 +11400,9 @@ XS(_wrap_styleObj_setGeomTransform) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setGeomTransform" "', argument " "1"" of type '" "styleObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setGeomTransform" "', argument " "1"" of type '" "struct styleObj *""'"); 
     }
-    arg1 = (styleObj *)(argp1);
+    arg1 = (struct styleObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_setGeomTransform" "', argument " "2"" of type '" "char *""'");
@@ -11563,7 +11626,7 @@ XS(_wrap_delete_labelLeaderObj) {
 
 XS(_wrap_labelObj_refcount_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -11575,9 +11638,9 @@ XS(_wrap_labelObj_refcount_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_refcount_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_refcount_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->refcount);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -11591,7 +11654,7 @@ XS(_wrap_labelObj_refcount_get) {
 
 XS(_wrap_labelObj_font_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -11606,9 +11669,9 @@ XS(_wrap_labelObj_font_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_font_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_font_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_font_set" "', argument " "2"" of type '" "char *""'");
@@ -11637,7 +11700,7 @@ XS(_wrap_labelObj_font_set) {
 
 XS(_wrap_labelObj_font_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -11649,9 +11712,9 @@ XS(_wrap_labelObj_font_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_font_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_font_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (char *) ((arg1)->font);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -11665,7 +11728,7 @@ XS(_wrap_labelObj_font_get) {
 
 XS(_wrap_labelObj_type_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     enum MS_FONT_TYPE arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -11679,9 +11742,9 @@ XS(_wrap_labelObj_type_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_type_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_type_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_type_set" "', argument " "2"" of type '" "enum MS_FONT_TYPE""'");
@@ -11702,7 +11765,7 @@ XS(_wrap_labelObj_type_set) {
 
 XS(_wrap_labelObj_type_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -11714,9 +11777,9 @@ XS(_wrap_labelObj_type_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_type_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_type_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (enum MS_FONT_TYPE) ((arg1)->type);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -11730,7 +11793,7 @@ XS(_wrap_labelObj_type_get) {
 
 XS(_wrap_labelObj_color_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     colorObj *arg2 = (colorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -11744,9 +11807,9 @@ XS(_wrap_labelObj_color_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_color_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_color_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_color_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -11767,7 +11830,7 @@ XS(_wrap_labelObj_color_set) {
 
 XS(_wrap_labelObj_color_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -11779,9 +11842,9 @@ XS(_wrap_labelObj_color_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_color_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_color_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (colorObj *)& ((arg1)->color);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -11795,7 +11858,7 @@ XS(_wrap_labelObj_color_get) {
 
 XS(_wrap_labelObj_outlinecolor_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     colorObj *arg2 = (colorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -11809,9 +11872,9 @@ XS(_wrap_labelObj_outlinecolor_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinecolor_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinecolor_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_outlinecolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -11832,7 +11895,7 @@ XS(_wrap_labelObj_outlinecolor_set) {
 
 XS(_wrap_labelObj_outlinecolor_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -11844,9 +11907,9 @@ XS(_wrap_labelObj_outlinecolor_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinecolor_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinecolor_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (colorObj *)& ((arg1)->outlinecolor);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -11860,7 +11923,7 @@ XS(_wrap_labelObj_outlinecolor_get) {
 
 XS(_wrap_labelObj_outlinewidth_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -11874,9 +11937,9 @@ XS(_wrap_labelObj_outlinewidth_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinewidth_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinewidth_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_outlinewidth_set" "', argument " "2"" of type '" "int""'");
@@ -11897,7 +11960,7 @@ XS(_wrap_labelObj_outlinewidth_set) {
 
 XS(_wrap_labelObj_outlinewidth_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -11909,9 +11972,9 @@ XS(_wrap_labelObj_outlinewidth_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinewidth_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinewidth_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->outlinewidth);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -11925,7 +11988,7 @@ XS(_wrap_labelObj_outlinewidth_get) {
 
 XS(_wrap_labelObj_shadowcolor_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     colorObj *arg2 = (colorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -11939,9 +12002,9 @@ XS(_wrap_labelObj_shadowcolor_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowcolor_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowcolor_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_shadowcolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -11962,7 +12025,7 @@ XS(_wrap_labelObj_shadowcolor_set) {
 
 XS(_wrap_labelObj_shadowcolor_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -11974,9 +12037,9 @@ XS(_wrap_labelObj_shadowcolor_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowcolor_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowcolor_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (colorObj *)& ((arg1)->shadowcolor);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -11990,7 +12053,7 @@ XS(_wrap_labelObj_shadowcolor_get) {
 
 XS(_wrap_labelObj_shadowsizex_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12004,9 +12067,9 @@ XS(_wrap_labelObj_shadowsizex_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizex_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizex_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_shadowsizex_set" "', argument " "2"" of type '" "int""'");
@@ -12027,7 +12090,7 @@ XS(_wrap_labelObj_shadowsizex_set) {
 
 XS(_wrap_labelObj_shadowsizex_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12039,9 +12102,9 @@ XS(_wrap_labelObj_shadowsizex_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizex_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizex_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->shadowsizex);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -12055,7 +12118,7 @@ XS(_wrap_labelObj_shadowsizex_get) {
 
 XS(_wrap_labelObj_shadowsizey_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12069,9 +12132,9 @@ XS(_wrap_labelObj_shadowsizey_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizey_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizey_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_shadowsizey_set" "', argument " "2"" of type '" "int""'");
@@ -12092,7 +12155,7 @@ XS(_wrap_labelObj_shadowsizey_set) {
 
 XS(_wrap_labelObj_shadowsizey_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12104,9 +12167,9 @@ XS(_wrap_labelObj_shadowsizey_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizey_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizey_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->shadowsizey);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -12120,7 +12183,7 @@ XS(_wrap_labelObj_shadowsizey_get) {
 
 XS(_wrap_labelObj_size_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12134,9 +12197,9 @@ XS(_wrap_labelObj_size_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_size_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_size_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_size_set" "', argument " "2"" of type '" "double""'");
@@ -12157,7 +12220,7 @@ XS(_wrap_labelObj_size_set) {
 
 XS(_wrap_labelObj_size_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12169,9 +12232,9 @@ XS(_wrap_labelObj_size_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_size_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_size_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (double) ((arg1)->size);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -12185,7 +12248,7 @@ XS(_wrap_labelObj_size_get) {
 
 XS(_wrap_labelObj_minsize_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12199,9 +12262,9 @@ XS(_wrap_labelObj_minsize_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minsize_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minsize_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_minsize_set" "', argument " "2"" of type '" "double""'");
@@ -12222,7 +12285,7 @@ XS(_wrap_labelObj_minsize_set) {
 
 XS(_wrap_labelObj_minsize_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12234,9 +12297,9 @@ XS(_wrap_labelObj_minsize_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minsize_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minsize_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (double) ((arg1)->minsize);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -12250,7 +12313,7 @@ XS(_wrap_labelObj_minsize_get) {
 
 XS(_wrap_labelObj_maxsize_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12264,9 +12327,9 @@ XS(_wrap_labelObj_maxsize_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxsize_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxsize_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_maxsize_set" "', argument " "2"" of type '" "double""'");
@@ -12287,7 +12350,7 @@ XS(_wrap_labelObj_maxsize_set) {
 
 XS(_wrap_labelObj_maxsize_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12299,9 +12362,9 @@ XS(_wrap_labelObj_maxsize_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxsize_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxsize_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (double) ((arg1)->maxsize);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -12315,7 +12378,7 @@ XS(_wrap_labelObj_maxsize_get) {
 
 XS(_wrap_labelObj_position_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12329,9 +12392,9 @@ XS(_wrap_labelObj_position_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_position_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_position_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_position_set" "', argument " "2"" of type '" "int""'");
@@ -12352,7 +12415,7 @@ XS(_wrap_labelObj_position_set) {
 
 XS(_wrap_labelObj_position_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12364,9 +12427,9 @@ XS(_wrap_labelObj_position_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_position_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_position_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->position);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -12380,7 +12443,7 @@ XS(_wrap_labelObj_position_get) {
 
 XS(_wrap_labelObj_offsetx_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12394,9 +12457,9 @@ XS(_wrap_labelObj_offsetx_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsetx_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsetx_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_offsetx_set" "', argument " "2"" of type '" "int""'");
@@ -12417,7 +12480,7 @@ XS(_wrap_labelObj_offsetx_set) {
 
 XS(_wrap_labelObj_offsetx_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12429,9 +12492,9 @@ XS(_wrap_labelObj_offsetx_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsetx_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsetx_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->offsetx);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -12445,7 +12508,7 @@ XS(_wrap_labelObj_offsetx_get) {
 
 XS(_wrap_labelObj_offsety_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12459,9 +12522,9 @@ XS(_wrap_labelObj_offsety_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsety_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsety_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_offsety_set" "', argument " "2"" of type '" "int""'");
@@ -12482,7 +12545,7 @@ XS(_wrap_labelObj_offsety_set) {
 
 XS(_wrap_labelObj_offsety_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12494,9 +12557,9 @@ XS(_wrap_labelObj_offsety_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsety_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsety_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->offsety);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -12510,7 +12573,7 @@ XS(_wrap_labelObj_offsety_get) {
 
 XS(_wrap_labelObj_angle_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12524,9 +12587,9 @@ XS(_wrap_labelObj_angle_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_angle_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_angle_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_angle_set" "', argument " "2"" of type '" "double""'");
@@ -12547,7 +12610,7 @@ XS(_wrap_labelObj_angle_set) {
 
 XS(_wrap_labelObj_angle_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12559,9 +12622,9 @@ XS(_wrap_labelObj_angle_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_angle_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_angle_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (double) ((arg1)->angle);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -12575,7 +12638,7 @@ XS(_wrap_labelObj_angle_get) {
 
 XS(_wrap_labelObj_anglemode_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12589,9 +12652,9 @@ XS(_wrap_labelObj_anglemode_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_anglemode_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_anglemode_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_anglemode_set" "', argument " "2"" of type '" "int""'");
@@ -12612,7 +12675,7 @@ XS(_wrap_labelObj_anglemode_set) {
 
 XS(_wrap_labelObj_anglemode_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12624,9 +12687,9 @@ XS(_wrap_labelObj_anglemode_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_anglemode_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_anglemode_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->anglemode);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -12640,7 +12703,7 @@ XS(_wrap_labelObj_anglemode_get) {
 
 XS(_wrap_labelObj_buffer_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12654,9 +12717,9 @@ XS(_wrap_labelObj_buffer_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_buffer_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_buffer_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_buffer_set" "', argument " "2"" of type '" "int""'");
@@ -12677,7 +12740,7 @@ XS(_wrap_labelObj_buffer_set) {
 
 XS(_wrap_labelObj_buffer_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12689,9 +12752,9 @@ XS(_wrap_labelObj_buffer_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_buffer_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_buffer_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->buffer);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -12705,7 +12768,7 @@ XS(_wrap_labelObj_buffer_get) {
 
 XS(_wrap_labelObj_antialias_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12719,9 +12782,9 @@ XS(_wrap_labelObj_antialias_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_antialias_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_antialias_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_antialias_set" "', argument " "2"" of type '" "int""'");
@@ -12742,7 +12805,7 @@ XS(_wrap_labelObj_antialias_set) {
 
 XS(_wrap_labelObj_antialias_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12754,9 +12817,9 @@ XS(_wrap_labelObj_antialias_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_antialias_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_antialias_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->antialias);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -12770,7 +12833,7 @@ XS(_wrap_labelObj_antialias_get) {
 
 XS(_wrap_labelObj_align_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12784,9 +12847,9 @@ XS(_wrap_labelObj_align_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_align_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_align_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_align_set" "', argument " "2"" of type '" "int""'");
@@ -12807,7 +12870,7 @@ XS(_wrap_labelObj_align_set) {
 
 XS(_wrap_labelObj_align_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12819,9 +12882,9 @@ XS(_wrap_labelObj_align_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_align_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_align_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->align);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -12835,7 +12898,7 @@ XS(_wrap_labelObj_align_get) {
 
 XS(_wrap_labelObj_wrap_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     char arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12849,9 +12912,9 @@ XS(_wrap_labelObj_wrap_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_wrap_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_wrap_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_char SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_wrap_set" "', argument " "2"" of type '" "char""'");
@@ -12872,7 +12935,7 @@ XS(_wrap_labelObj_wrap_set) {
 
 XS(_wrap_labelObj_wrap_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12884,9 +12947,9 @@ XS(_wrap_labelObj_wrap_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_wrap_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_wrap_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (char) ((arg1)->wrap);
     ST(argvi) = SWIG_From_char  SWIG_PERL_CALL_ARGS_1((char)(result)); argvi++ ;
     
@@ -12900,7 +12963,7 @@ XS(_wrap_labelObj_wrap_get) {
 
 XS(_wrap_labelObj_maxlength_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12914,9 +12977,9 @@ XS(_wrap_labelObj_maxlength_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxlength_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxlength_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_maxlength_set" "', argument " "2"" of type '" "int""'");
@@ -12937,7 +13000,7 @@ XS(_wrap_labelObj_maxlength_set) {
 
 XS(_wrap_labelObj_maxlength_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -12949,9 +13012,9 @@ XS(_wrap_labelObj_maxlength_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxlength_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxlength_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->maxlength);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -12965,7 +13028,7 @@ XS(_wrap_labelObj_maxlength_get) {
 
 XS(_wrap_labelObj_minlength_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -12979,9 +13042,9 @@ XS(_wrap_labelObj_minlength_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minlength_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minlength_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_minlength_set" "', argument " "2"" of type '" "int""'");
@@ -13002,7 +13065,7 @@ XS(_wrap_labelObj_minlength_set) {
 
 XS(_wrap_labelObj_minlength_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13014,9 +13077,9 @@ XS(_wrap_labelObj_minlength_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minlength_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minlength_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->minlength);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -13030,7 +13093,7 @@ XS(_wrap_labelObj_minlength_get) {
 
 XS(_wrap_labelObj_space_size_10_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13044,9 +13107,9 @@ XS(_wrap_labelObj_space_size_10_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_space_size_10_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_space_size_10_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_space_size_10_set" "', argument " "2"" of type '" "double""'");
@@ -13067,7 +13130,7 @@ XS(_wrap_labelObj_space_size_10_set) {
 
 XS(_wrap_labelObj_space_size_10_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13079,9 +13142,9 @@ XS(_wrap_labelObj_space_size_10_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_space_size_10_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_space_size_10_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (double) ((arg1)->space_size_10);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -13095,7 +13158,7 @@ XS(_wrap_labelObj_space_size_10_get) {
 
 XS(_wrap_labelObj_minfeaturesize_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13109,9 +13172,9 @@ XS(_wrap_labelObj_minfeaturesize_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minfeaturesize_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minfeaturesize_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_minfeaturesize_set" "', argument " "2"" of type '" "int""'");
@@ -13132,7 +13195,7 @@ XS(_wrap_labelObj_minfeaturesize_set) {
 
 XS(_wrap_labelObj_minfeaturesize_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13144,9 +13207,9 @@ XS(_wrap_labelObj_minfeaturesize_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minfeaturesize_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minfeaturesize_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->minfeaturesize);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -13160,7 +13223,7 @@ XS(_wrap_labelObj_minfeaturesize_get) {
 
 XS(_wrap_labelObj_autominfeaturesize_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13174,9 +13237,9 @@ XS(_wrap_labelObj_autominfeaturesize_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_autominfeaturesize_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_autominfeaturesize_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_autominfeaturesize_set" "', argument " "2"" of type '" "int""'");
@@ -13197,7 +13260,7 @@ XS(_wrap_labelObj_autominfeaturesize_set) {
 
 XS(_wrap_labelObj_autominfeaturesize_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13209,9 +13272,9 @@ XS(_wrap_labelObj_autominfeaturesize_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_autominfeaturesize_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_autominfeaturesize_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->autominfeaturesize);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -13225,7 +13288,7 @@ XS(_wrap_labelObj_autominfeaturesize_get) {
 
 XS(_wrap_labelObj_minscaledenom_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13239,9 +13302,9 @@ XS(_wrap_labelObj_minscaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minscaledenom_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minscaledenom_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_minscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -13262,7 +13325,7 @@ XS(_wrap_labelObj_minscaledenom_set) {
 
 XS(_wrap_labelObj_minscaledenom_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13274,9 +13337,9 @@ XS(_wrap_labelObj_minscaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minscaledenom_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minscaledenom_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (double) ((arg1)->minscaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -13290,7 +13353,7 @@ XS(_wrap_labelObj_minscaledenom_get) {
 
 XS(_wrap_labelObj_maxscaledenom_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13304,9 +13367,9 @@ XS(_wrap_labelObj_maxscaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxscaledenom_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxscaledenom_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_maxscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -13327,7 +13390,7 @@ XS(_wrap_labelObj_maxscaledenom_set) {
 
 XS(_wrap_labelObj_maxscaledenom_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13339,9 +13402,9 @@ XS(_wrap_labelObj_maxscaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxscaledenom_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxscaledenom_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (double) ((arg1)->maxscaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -13355,7 +13418,7 @@ XS(_wrap_labelObj_maxscaledenom_get) {
 
 XS(_wrap_labelObj_mindistance_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13369,9 +13432,9 @@ XS(_wrap_labelObj_mindistance_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_mindistance_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_mindistance_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_mindistance_set" "', argument " "2"" of type '" "int""'");
@@ -13392,7 +13455,7 @@ XS(_wrap_labelObj_mindistance_set) {
 
 XS(_wrap_labelObj_mindistance_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13404,9 +13467,9 @@ XS(_wrap_labelObj_mindistance_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_mindistance_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_mindistance_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->mindistance);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -13420,7 +13483,7 @@ XS(_wrap_labelObj_mindistance_get) {
 
 XS(_wrap_labelObj_repeatdistance_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13434,9 +13497,9 @@ XS(_wrap_labelObj_repeatdistance_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_repeatdistance_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_repeatdistance_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_repeatdistance_set" "', argument " "2"" of type '" "int""'");
@@ -13457,7 +13520,7 @@ XS(_wrap_labelObj_repeatdistance_set) {
 
 XS(_wrap_labelObj_repeatdistance_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13469,9 +13532,9 @@ XS(_wrap_labelObj_repeatdistance_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_repeatdistance_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_repeatdistance_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->repeatdistance);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -13485,7 +13548,7 @@ XS(_wrap_labelObj_repeatdistance_get) {
 
 XS(_wrap_labelObj_maxoverlapangle_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13499,9 +13562,9 @@ XS(_wrap_labelObj_maxoverlapangle_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxoverlapangle_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxoverlapangle_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_maxoverlapangle_set" "', argument " "2"" of type '" "double""'");
@@ -13522,7 +13585,7 @@ XS(_wrap_labelObj_maxoverlapangle_set) {
 
 XS(_wrap_labelObj_maxoverlapangle_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13534,9 +13597,9 @@ XS(_wrap_labelObj_maxoverlapangle_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxoverlapangle_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxoverlapangle_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (double) ((arg1)->maxoverlapangle);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -13550,7 +13613,7 @@ XS(_wrap_labelObj_maxoverlapangle_get) {
 
 XS(_wrap_labelObj_partials_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13564,9 +13627,9 @@ XS(_wrap_labelObj_partials_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_partials_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_partials_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_partials_set" "', argument " "2"" of type '" "int""'");
@@ -13587,7 +13650,7 @@ XS(_wrap_labelObj_partials_set) {
 
 XS(_wrap_labelObj_partials_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13599,9 +13662,9 @@ XS(_wrap_labelObj_partials_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_partials_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_partials_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->partials);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -13615,7 +13678,7 @@ XS(_wrap_labelObj_partials_get) {
 
 XS(_wrap_labelObj_force_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13629,9 +13692,9 @@ XS(_wrap_labelObj_force_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_force_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_force_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_force_set" "', argument " "2"" of type '" "int""'");
@@ -13652,7 +13715,7 @@ XS(_wrap_labelObj_force_set) {
 
 XS(_wrap_labelObj_force_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13664,9 +13727,9 @@ XS(_wrap_labelObj_force_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_force_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_force_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->force);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -13680,7 +13743,7 @@ XS(_wrap_labelObj_force_get) {
 
 XS(_wrap_labelObj_encoding_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13695,9 +13758,9 @@ XS(_wrap_labelObj_encoding_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_encoding_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_encoding_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_encoding_set" "', argument " "2"" of type '" "char *""'");
@@ -13726,7 +13789,7 @@ XS(_wrap_labelObj_encoding_set) {
 
 XS(_wrap_labelObj_encoding_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13738,9 +13801,9 @@ XS(_wrap_labelObj_encoding_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_encoding_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_encoding_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (char *) ((arg1)->encoding);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -13754,7 +13817,7 @@ XS(_wrap_labelObj_encoding_get) {
 
 XS(_wrap_labelObj_priority_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13768,9 +13831,9 @@ XS(_wrap_labelObj_priority_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_priority_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_priority_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_priority_set" "', argument " "2"" of type '" "int""'");
@@ -13791,7 +13854,7 @@ XS(_wrap_labelObj_priority_set) {
 
 XS(_wrap_labelObj_priority_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13803,9 +13866,9 @@ XS(_wrap_labelObj_priority_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_priority_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_priority_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->priority);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -13819,7 +13882,7 @@ XS(_wrap_labelObj_priority_get) {
 
 XS(_wrap_labelObj_status_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13833,9 +13896,9 @@ XS(_wrap_labelObj_status_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_status_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_status_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_status_set" "', argument " "2"" of type '" "int""'");
@@ -13856,7 +13919,7 @@ XS(_wrap_labelObj_status_set) {
 
 XS(_wrap_labelObj_status_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13868,9 +13931,9 @@ XS(_wrap_labelObj_status_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_status_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_status_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->status);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -13884,7 +13947,7 @@ XS(_wrap_labelObj_status_get) {
 
 XS(_wrap_labelObj_numstyles_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13898,9 +13961,9 @@ XS(_wrap_labelObj_numstyles_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_numstyles_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_numstyles_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_numstyles_set" "', argument " "2"" of type '" "int""'");
@@ -13921,7 +13984,7 @@ XS(_wrap_labelObj_numstyles_set) {
 
 XS(_wrap_labelObj_numstyles_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -13933,9 +13996,9 @@ XS(_wrap_labelObj_numstyles_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_numstyles_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_numstyles_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (int) ((arg1)->numstyles);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -13949,7 +14012,7 @@ XS(_wrap_labelObj_numstyles_get) {
 
 XS(_wrap_labelObj_annotext_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -13964,9 +14027,9 @@ XS(_wrap_labelObj_annotext_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annotext_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annotext_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_annotext_set" "', argument " "2"" of type '" "char *""'");
@@ -13995,7 +14058,7 @@ XS(_wrap_labelObj_annotext_set) {
 
 XS(_wrap_labelObj_annotext_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -14007,9 +14070,9 @@ XS(_wrap_labelObj_annotext_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annotext_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annotext_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (char *) ((arg1)->annotext);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -14023,7 +14086,7 @@ XS(_wrap_labelObj_annotext_get) {
 
 XS(_wrap_labelObj_annopoint_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     pointObj *arg2 = (pointObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14037,9 +14100,9 @@ XS(_wrap_labelObj_annopoint_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoint_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoint_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_pointObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_annopoint_set" "', argument " "2"" of type '" "pointObj *""'"); 
@@ -14060,7 +14123,7 @@ XS(_wrap_labelObj_annopoint_set) {
 
 XS(_wrap_labelObj_annopoint_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -14072,9 +14135,9 @@ XS(_wrap_labelObj_annopoint_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoint_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoint_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (pointObj *)& ((arg1)->annopoint);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pointObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -14088,7 +14151,7 @@ XS(_wrap_labelObj_annopoint_get) {
 
 XS(_wrap_labelObj_annopoly_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     shapeObj *arg2 = (shapeObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14102,9 +14165,9 @@ XS(_wrap_labelObj_annopoly_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoly_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoly_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_shapeObj, SWIG_POINTER_DISOWN |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_annopoly_set" "', argument " "2"" of type '" "shapeObj *""'"); 
@@ -14125,7 +14188,7 @@ XS(_wrap_labelObj_annopoly_set) {
 
 XS(_wrap_labelObj_annopoly_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -14137,9 +14200,9 @@ XS(_wrap_labelObj_annopoly_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoly_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoly_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (shapeObj *) ((arg1)->annopoly);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_shapeObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -14153,7 +14216,7 @@ XS(_wrap_labelObj_annopoly_get) {
 
 XS(_wrap_labelObj_leader_set) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     labelLeaderObj *arg2 = (labelLeaderObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14167,9 +14230,9 @@ XS(_wrap_labelObj_leader_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_leader_set" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_leader_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_labelLeaderObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_leader_set" "', argument " "2"" of type '" "labelLeaderObj *""'"); 
@@ -14190,7 +14253,7 @@ XS(_wrap_labelObj_leader_set) {
 
 XS(_wrap_labelObj_leader_get) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -14202,9 +14265,9 @@ XS(_wrap_labelObj_leader_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_leader_get" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_leader_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (labelLeaderObj *)& ((arg1)->leader);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelLeaderObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -14219,13 +14282,13 @@ XS(_wrap_labelObj_leader_get) {
 XS(_wrap_new_labelObj) {
   {
     int argvi = 0;
-    labelObj *result = 0 ;
+    struct labelObj *result = 0 ;
     dXSARGS;
     
     if ((items < 0) || (items > 0)) {
       SWIG_croak("Usage: new_labelObj();");
     }
-    result = (labelObj *)new_labelObj();
+    result = (struct labelObj *)new_labelObj();
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     XSRETURN(argvi);
   fail:
@@ -14236,7 +14299,7 @@ XS(_wrap_new_labelObj) {
 
 XS(_wrap_delete_labelObj) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -14247,9 +14310,9 @@ XS(_wrap_delete_labelObj) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, SWIG_POINTER_DISOWN |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_labelObj" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_labelObj" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     delete_labelObj(arg1);
     ST(argvi) = sv_newmortal();
     
@@ -14263,7 +14326,7 @@ XS(_wrap_delete_labelObj) {
 
 XS(_wrap_labelObj_updateFromString) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14279,9 +14342,9 @@ XS(_wrap_labelObj_updateFromString) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_updateFromString" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_updateFromString" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_updateFromString" "', argument " "2"" of type '" "char *""'");
@@ -14300,9 +14363,38 @@ XS(_wrap_labelObj_updateFromString) {
 }
 
 
+XS(_wrap_labelObj_convertToString) {
+  {
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: labelObj_convertToString(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_convertToString" "', argument " "1"" of type '" "struct labelObj *""'"); 
+    }
+    arg1 = (struct labelObj *)(argp1);
+    result = (char *)labelObj_convertToString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_labelObj_removeBinding) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14317,9 +14409,9 @@ XS(_wrap_labelObj_removeBinding) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_removeBinding" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_removeBinding" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_removeBinding" "', argument " "2"" of type '" "int""'");
@@ -14340,7 +14432,7 @@ XS(_wrap_labelObj_removeBinding) {
 
 XS(_wrap_labelObj_getBinding) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14355,9 +14447,9 @@ XS(_wrap_labelObj_getBinding) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getBinding" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getBinding" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_getBinding" "', argument " "2"" of type '" "int""'");
@@ -14378,7 +14470,7 @@ XS(_wrap_labelObj_getBinding) {
 
 XS(_wrap_labelObj_setBinding) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -14397,9 +14489,9 @@ XS(_wrap_labelObj_setBinding) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setBinding" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setBinding" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_setBinding" "', argument " "2"" of type '" "int""'");
@@ -14427,7 +14519,7 @@ XS(_wrap_labelObj_setBinding) {
 
 XS(_wrap_labelObj_setExpression) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14443,9 +14535,9 @@ XS(_wrap_labelObj_setExpression) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setExpression" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setExpression" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_setExpression" "', argument " "2"" of type '" "char *""'");
@@ -14466,7 +14558,7 @@ XS(_wrap_labelObj_setExpression) {
 
 XS(_wrap_labelObj_getExpressionString) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -14478,9 +14570,9 @@ XS(_wrap_labelObj_getExpressionString) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getExpressionString" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getExpressionString" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (char *)labelObj_getExpressionString(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -14495,7 +14587,7 @@ XS(_wrap_labelObj_getExpressionString) {
 
 XS(_wrap_labelObj_setText) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14511,9 +14603,9 @@ XS(_wrap_labelObj_setText) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setText" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setText" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_setText" "', argument " "2"" of type '" "char *""'");
@@ -14534,7 +14626,7 @@ XS(_wrap_labelObj_setText) {
 
 XS(_wrap_labelObj_getTextString) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -14546,9 +14638,9 @@ XS(_wrap_labelObj_getTextString) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getTextString" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getTextString" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     result = (char *)labelObj_getTextString(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -14563,7 +14655,7 @@ XS(_wrap_labelObj_getTextString) {
 
 XS(_wrap_labelObj_getStyle) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14578,9 +14670,9 @@ XS(_wrap_labelObj_getStyle) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getStyle" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getStyle" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_getStyle" "', argument " "2"" of type '" "int""'");
@@ -14601,7 +14693,7 @@ XS(_wrap_labelObj_getStyle) {
 
 XS(_wrap_labelObj_insertStyle) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     styleObj *arg2 = (styleObj *) 0 ;
     int arg3 = (int) -1 ;
     void *argp1 = 0 ;
@@ -14619,9 +14711,9 @@ XS(_wrap_labelObj_insertStyle) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_insertStyle" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_insertStyle" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_insertStyle" "', argument " "2"" of type '" "styleObj *""'"); 
@@ -14651,7 +14743,7 @@ XS(_wrap_labelObj_insertStyle) {
 
 XS(_wrap_labelObj_removeStyle) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14666,9 +14758,9 @@ XS(_wrap_labelObj_removeStyle) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_removeStyle" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_removeStyle" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_removeStyle" "', argument " "2"" of type '" "int""'");
@@ -14689,7 +14781,7 @@ XS(_wrap_labelObj_removeStyle) {
 
 XS(_wrap_labelObj_moveStyleUp) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14704,9 +14796,9 @@ XS(_wrap_labelObj_moveStyleUp) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_moveStyleUp" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_moveStyleUp" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_moveStyleUp" "', argument " "2"" of type '" "int""'");
@@ -14727,7 +14819,7 @@ XS(_wrap_labelObj_moveStyleUp) {
 
 XS(_wrap_labelObj_moveStyleDown) {
   {
-    labelObj *arg1 = (labelObj *) 0 ;
+    struct labelObj *arg1 = (struct labelObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14742,9 +14834,9 @@ XS(_wrap_labelObj_moveStyleDown) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_moveStyleDown" "', argument " "1"" of type '" "labelObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_moveStyleDown" "', argument " "1"" of type '" "struct labelObj *""'"); 
     }
-    arg1 = (labelObj *)(argp1);
+    arg1 = (struct labelObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_moveStyleDown" "', argument " "2"" of type '" "int""'");
@@ -14765,7 +14857,7 @@ XS(_wrap_labelObj_moveStyleDown) {
 
 XS(_wrap_classObj_status_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14779,9 +14871,9 @@ XS(_wrap_classObj_status_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_status_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_status_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_status_set" "', argument " "2"" of type '" "int""'");
@@ -14802,7 +14894,7 @@ XS(_wrap_classObj_status_set) {
 
 XS(_wrap_classObj_status_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -14814,9 +14906,9 @@ XS(_wrap_classObj_status_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_status_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_status_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (int) ((arg1)->status);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -14830,7 +14922,7 @@ XS(_wrap_classObj_status_get) {
 
 XS(_wrap_classObj_numstyles_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -14842,9 +14934,9 @@ XS(_wrap_classObj_numstyles_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numstyles_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numstyles_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (int) ((arg1)->numstyles);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -14858,7 +14950,7 @@ XS(_wrap_classObj_numstyles_get) {
 
 XS(_wrap_classObj_numlabels_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14872,9 +14964,9 @@ XS(_wrap_classObj_numlabels_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numlabels_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numlabels_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_numlabels_set" "', argument " "2"" of type '" "int""'");
@@ -14895,7 +14987,7 @@ XS(_wrap_classObj_numlabels_set) {
 
 XS(_wrap_classObj_numlabels_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -14907,9 +14999,9 @@ XS(_wrap_classObj_numlabels_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numlabels_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numlabels_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (int) ((arg1)->numlabels);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -14923,7 +15015,7 @@ XS(_wrap_classObj_numlabels_get) {
 
 XS(_wrap_classObj_name_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -14938,9 +15030,9 @@ XS(_wrap_classObj_name_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_name_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_name_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_name_set" "', argument " "2"" of type '" "char *""'");
@@ -14969,7 +15061,7 @@ XS(_wrap_classObj_name_set) {
 
 XS(_wrap_classObj_name_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -14981,9 +15073,9 @@ XS(_wrap_classObj_name_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_name_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_name_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (char *) ((arg1)->name);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -14997,7 +15089,7 @@ XS(_wrap_classObj_name_get) {
 
 XS(_wrap_classObj_title_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15012,9 +15104,9 @@ XS(_wrap_classObj_title_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_title_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_title_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_title_set" "', argument " "2"" of type '" "char *""'");
@@ -15043,7 +15135,7 @@ XS(_wrap_classObj_title_set) {
 
 XS(_wrap_classObj_title_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15055,9 +15147,9 @@ XS(_wrap_classObj_title_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_title_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_title_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (char *) ((arg1)->title);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -15071,7 +15163,7 @@ XS(_wrap_classObj_title_get) {
 
 XS(_wrap_classObj_template_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15086,9 +15178,9 @@ XS(_wrap_classObj_template_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_template_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_template_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_template_set" "', argument " "2"" of type '" "char *""'");
@@ -15117,7 +15209,7 @@ XS(_wrap_classObj_template_set) {
 
 XS(_wrap_classObj_template_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15129,9 +15221,9 @@ XS(_wrap_classObj_template_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_template_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_template_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (char *) ((arg1)->template);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -15145,7 +15237,7 @@ XS(_wrap_classObj_template_get) {
 
 XS(_wrap_classObj_type_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15159,9 +15251,9 @@ XS(_wrap_classObj_type_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_type_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_type_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_type_set" "', argument " "2"" of type '" "int""'");
@@ -15182,7 +15274,7 @@ XS(_wrap_classObj_type_set) {
 
 XS(_wrap_classObj_type_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15194,9 +15286,9 @@ XS(_wrap_classObj_type_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_type_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_type_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (int) ((arg1)->type);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -15210,7 +15302,7 @@ XS(_wrap_classObj_type_get) {
 
 XS(_wrap_classObj_metadata_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15222,9 +15314,9 @@ XS(_wrap_classObj_metadata_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_metadata_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_metadata_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (hashTableObj *)& ((arg1)->metadata);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -15238,7 +15330,7 @@ XS(_wrap_classObj_metadata_get) {
 
 XS(_wrap_classObj_validation_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15250,9 +15342,9 @@ XS(_wrap_classObj_validation_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_validation_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_validation_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (hashTableObj *)& ((arg1)->validation);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -15266,7 +15358,7 @@ XS(_wrap_classObj_validation_get) {
 
 XS(_wrap_classObj_minscaledenom_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15280,9 +15372,9 @@ XS(_wrap_classObj_minscaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minscaledenom_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minscaledenom_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_minscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -15303,7 +15395,7 @@ XS(_wrap_classObj_minscaledenom_set) {
 
 XS(_wrap_classObj_minscaledenom_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15315,9 +15407,9 @@ XS(_wrap_classObj_minscaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minscaledenom_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minscaledenom_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (double) ((arg1)->minscaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -15331,7 +15423,7 @@ XS(_wrap_classObj_minscaledenom_get) {
 
 XS(_wrap_classObj_maxscaledenom_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15345,9 +15437,9 @@ XS(_wrap_classObj_maxscaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_maxscaledenom_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_maxscaledenom_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_maxscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -15368,7 +15460,7 @@ XS(_wrap_classObj_maxscaledenom_set) {
 
 XS(_wrap_classObj_maxscaledenom_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15380,9 +15472,9 @@ XS(_wrap_classObj_maxscaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_maxscaledenom_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_maxscaledenom_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (double) ((arg1)->maxscaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -15396,7 +15488,7 @@ XS(_wrap_classObj_maxscaledenom_get) {
 
 XS(_wrap_classObj_minfeaturesize_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15410,9 +15502,9 @@ XS(_wrap_classObj_minfeaturesize_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minfeaturesize_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minfeaturesize_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_minfeaturesize_set" "', argument " "2"" of type '" "int""'");
@@ -15433,7 +15525,7 @@ XS(_wrap_classObj_minfeaturesize_set) {
 
 XS(_wrap_classObj_minfeaturesize_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15445,9 +15537,9 @@ XS(_wrap_classObj_minfeaturesize_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minfeaturesize_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minfeaturesize_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (int) ((arg1)->minfeaturesize);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -15461,7 +15553,7 @@ XS(_wrap_classObj_minfeaturesize_get) {
 
 XS(_wrap_classObj_refcount_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15473,9 +15565,9 @@ XS(_wrap_classObj_refcount_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_refcount_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_refcount_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (int) ((arg1)->refcount);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -15489,7 +15581,7 @@ XS(_wrap_classObj_refcount_get) {
 
 XS(_wrap_classObj_layer_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15501,9 +15593,9 @@ XS(_wrap_classObj_layer_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_layer_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_layer_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     {
       /* Accessing layer */
       result = (struct layerObj *) ((arg1)->layer);;
@@ -15521,7 +15613,7 @@ XS(_wrap_classObj_layer_get) {
 
 XS(_wrap_classObj_debug_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15535,9 +15627,9 @@ XS(_wrap_classObj_debug_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_debug_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_debug_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_debug_set" "', argument " "2"" of type '" "int""'");
@@ -15558,7 +15650,7 @@ XS(_wrap_classObj_debug_set) {
 
 XS(_wrap_classObj_debug_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15570,9 +15662,9 @@ XS(_wrap_classObj_debug_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_debug_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_debug_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (int) ((arg1)->debug);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -15586,7 +15678,7 @@ XS(_wrap_classObj_debug_get) {
 
 XS(_wrap_classObj_keyimage_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15601,9 +15693,9 @@ XS(_wrap_classObj_keyimage_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_keyimage_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_keyimage_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_keyimage_set" "', argument " "2"" of type '" "char *""'");
@@ -15632,7 +15724,7 @@ XS(_wrap_classObj_keyimage_set) {
 
 XS(_wrap_classObj_keyimage_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15644,9 +15736,9 @@ XS(_wrap_classObj_keyimage_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_keyimage_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_keyimage_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (char *) ((arg1)->keyimage);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -15660,7 +15752,7 @@ XS(_wrap_classObj_keyimage_get) {
 
 XS(_wrap_classObj_group_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15675,9 +15767,9 @@ XS(_wrap_classObj_group_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_group_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_group_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_group_set" "', argument " "2"" of type '" "char *""'");
@@ -15706,7 +15798,7 @@ XS(_wrap_classObj_group_set) {
 
 XS(_wrap_classObj_group_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15718,9 +15810,9 @@ XS(_wrap_classObj_group_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_group_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_group_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (char *) ((arg1)->group);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -15734,7 +15826,7 @@ XS(_wrap_classObj_group_get) {
 
 XS(_wrap_classObj_leader_set) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     labelLeaderObj *arg2 = (labelLeaderObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15748,9 +15840,9 @@ XS(_wrap_classObj_leader_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_leader_set" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_leader_set" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_labelLeaderObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_leader_set" "', argument " "2"" of type '" "labelLeaderObj *""'"); 
@@ -15771,7 +15863,7 @@ XS(_wrap_classObj_leader_set) {
 
 XS(_wrap_classObj_leader_get) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15783,9 +15875,9 @@ XS(_wrap_classObj_leader_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_leader_get" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_leader_get" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (labelLeaderObj *)& ((arg1)->leader);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelLeaderObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -15803,7 +15895,7 @@ XS(_wrap_new_classObj) {
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
-    classObj *result = 0 ;
+    struct classObj *result = 0 ;
     dXSARGS;
     
     if ((items < 0) || (items > 1)) {
@@ -15816,7 +15908,7 @@ XS(_wrap_new_classObj) {
       }
       arg1 = (layerObj *)(argp1);
     }
-    result = (classObj *)new_classObj(arg1);
+    result = (struct classObj *)new_classObj(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_classObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
     XSRETURN(argvi);
@@ -15829,7 +15921,7 @@ XS(_wrap_new_classObj) {
 
 XS(_wrap_delete_classObj) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15840,9 +15932,9 @@ XS(_wrap_delete_classObj) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, SWIG_POINTER_DISOWN |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_classObj" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_classObj" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     delete_classObj(arg1);
     ST(argvi) = sv_newmortal();
     
@@ -15856,7 +15948,7 @@ XS(_wrap_delete_classObj) {
 
 XS(_wrap_classObj_updateFromString) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15872,9 +15964,9 @@ XS(_wrap_classObj_updateFromString) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_updateFromString" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_updateFromString" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_updateFromString" "', argument " "2"" of type '" "char *""'");
@@ -15893,9 +15985,38 @@ XS(_wrap_classObj_updateFromString) {
 }
 
 
+XS(_wrap_classObj_convertToString) {
+  {
+    struct classObj *arg1 = (struct classObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: classObj_convertToString(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_convertToString" "', argument " "1"" of type '" "struct classObj *""'"); 
+    }
+    arg1 = (struct classObj *)(argp1);
+    result = (char *)classObj_convertToString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_classObj_clone) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15907,9 +16028,9 @@ XS(_wrap_classObj_clone) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_clone" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_clone" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (classObj *)classObj_clone(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_classObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -15923,7 +16044,7 @@ XS(_wrap_classObj_clone) {
 
 XS(_wrap_classObj_setExpression) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -15939,9 +16060,9 @@ XS(_wrap_classObj_setExpression) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setExpression" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setExpression" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_setExpression" "', argument " "2"" of type '" "char *""'");
@@ -15962,7 +16083,7 @@ XS(_wrap_classObj_setExpression) {
 
 XS(_wrap_classObj_getExpressionString) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -15974,9 +16095,9 @@ XS(_wrap_classObj_getExpressionString) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getExpressionString" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getExpressionString" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (char *)classObj_getExpressionString(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -15991,7 +16112,7 @@ XS(_wrap_classObj_getExpressionString) {
 
 XS(_wrap_classObj_setText) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -16007,9 +16128,9 @@ XS(_wrap_classObj_setText) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setText" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setText" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_setText" "', argument " "2"" of type '" "char *""'");
@@ -16030,7 +16151,7 @@ XS(_wrap_classObj_setText) {
 
 XS(_wrap_classObj_getTextString) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -16042,9 +16163,9 @@ XS(_wrap_classObj_getTextString) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getTextString" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getTextString" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (char *)classObj_getTextString(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -16059,7 +16180,7 @@ XS(_wrap_classObj_getTextString) {
 
 XS(_wrap_classObj_getMetaData) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -16075,9 +16196,9 @@ XS(_wrap_classObj_getMetaData) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getMetaData" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getMetaData" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_getMetaData" "', argument " "2"" of type '" "char *""'");
@@ -16098,7 +16219,7 @@ XS(_wrap_classObj_getMetaData) {
 
 XS(_wrap_classObj_setMetaData) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     char *arg2 = (char *) 0 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -16118,9 +16239,9 @@ XS(_wrap_classObj_setMetaData) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setMetaData" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setMetaData" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_setMetaData" "', argument " "2"" of type '" "char *""'");
@@ -16148,7 +16269,7 @@ XS(_wrap_classObj_setMetaData) {
 
 XS(_wrap_classObj_getFirstMetaDataKey) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -16160,9 +16281,9 @@ XS(_wrap_classObj_getFirstMetaDataKey) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getFirstMetaDataKey" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getFirstMetaDataKey" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     result = (char *)classObj_getFirstMetaDataKey(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -16176,7 +16297,7 @@ XS(_wrap_classObj_getFirstMetaDataKey) {
 
 XS(_wrap_classObj_getNextMetaDataKey) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -16192,9 +16313,9 @@ XS(_wrap_classObj_getNextMetaDataKey) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getNextMetaDataKey" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getNextMetaDataKey" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_getNextMetaDataKey" "', argument " "2"" of type '" "char *""'");
@@ -16215,7 +16336,7 @@ XS(_wrap_classObj_getNextMetaDataKey) {
 
 XS(_wrap_classObj_drawLegendIcon) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     layerObj *arg3 = (layerObj *) 0 ;
     int arg4 ;
@@ -16248,9 +16369,9 @@ XS(_wrap_classObj_drawLegendIcon) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_drawLegendIcon" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_drawLegendIcon" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_drawLegendIcon" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -16313,7 +16434,7 @@ XS(_wrap_classObj_drawLegendIcon) {
 
 XS(_wrap_classObj_createLegendIcon) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     layerObj *arg3 = (layerObj *) 0 ;
     int arg4 ;
@@ -16337,9 +16458,9 @@ XS(_wrap_classObj_createLegendIcon) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_createLegendIcon" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_createLegendIcon" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_createLegendIcon" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -16381,7 +16502,7 @@ XS(_wrap_classObj_createLegendIcon) {
 
 XS(_wrap_classObj_getLabel) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -16396,9 +16517,9 @@ XS(_wrap_classObj_getLabel) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getLabel" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getLabel" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_getLabel" "', argument " "2"" of type '" "int""'");
@@ -16419,7 +16540,7 @@ XS(_wrap_classObj_getLabel) {
 
 XS(_wrap_classObj_addLabel) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     labelObj *arg2 = (labelObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -16434,9 +16555,9 @@ XS(_wrap_classObj_addLabel) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_addLabel" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_addLabel" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_labelObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_addLabel" "', argument " "2"" of type '" "labelObj *""'"); 
@@ -16457,7 +16578,7 @@ XS(_wrap_classObj_addLabel) {
 
 XS(_wrap_classObj_removeLabel) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -16472,9 +16593,9 @@ XS(_wrap_classObj_removeLabel) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_removeLabel" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_removeLabel" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_removeLabel" "', argument " "2"" of type '" "int""'");
@@ -16495,7 +16616,7 @@ XS(_wrap_classObj_removeLabel) {
 
 XS(_wrap_classObj_getStyle) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -16510,9 +16631,9 @@ XS(_wrap_classObj_getStyle) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getStyle" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getStyle" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_getStyle" "', argument " "2"" of type '" "int""'");
@@ -16533,7 +16654,7 @@ XS(_wrap_classObj_getStyle) {
 
 XS(_wrap_classObj_insertStyle) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     styleObj *arg2 = (styleObj *) 0 ;
     int arg3 = (int) -1 ;
     void *argp1 = 0 ;
@@ -16551,9 +16672,9 @@ XS(_wrap_classObj_insertStyle) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_insertStyle" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_insertStyle" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_styleObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_insertStyle" "', argument " "2"" of type '" "styleObj *""'"); 
@@ -16583,7 +16704,7 @@ XS(_wrap_classObj_insertStyle) {
 
 XS(_wrap_classObj_removeStyle) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -16598,9 +16719,9 @@ XS(_wrap_classObj_removeStyle) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_removeStyle" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_removeStyle" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_removeStyle" "', argument " "2"" of type '" "int""'");
@@ -16621,7 +16742,7 @@ XS(_wrap_classObj_removeStyle) {
 
 XS(_wrap_classObj_moveStyleUp) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -16636,9 +16757,9 @@ XS(_wrap_classObj_moveStyleUp) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_moveStyleUp" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_moveStyleUp" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_moveStyleUp" "', argument " "2"" of type '" "int""'");
@@ -16659,7 +16780,7 @@ XS(_wrap_classObj_moveStyleUp) {
 
 XS(_wrap_classObj_moveStyleDown) {
   {
-    classObj *arg1 = (classObj *) 0 ;
+    struct classObj *arg1 = (struct classObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -16674,9 +16795,9 @@ XS(_wrap_classObj_moveStyleDown) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_moveStyleDown" "', argument " "1"" of type '" "classObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_moveStyleDown" "', argument " "1"" of type '" "struct classObj *""'"); 
     }
-    arg1 = (classObj *)(argp1);
+    arg1 = (struct classObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_moveStyleDown" "', argument " "2"" of type '" "int""'");
@@ -19326,6 +19447,35 @@ XS(_wrap_referenceMapObj_updateFromString) {
 }
 
 
+XS(_wrap_referenceMapObj_convertToString) {
+  {
+    referenceMapObj *arg1 = (referenceMapObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: referenceMapObj_convertToString(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_referenceMapObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "referenceMapObj_convertToString" "', argument " "1"" of type '" "referenceMapObj *""'"); 
+    }
+    arg1 = (referenceMapObj *)(argp1);
+    result = (char *)referenceMapObj_convertToString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_new_referenceMapObj) {
   {
     int argvi = 0;
@@ -19699,10 +19849,10 @@ XS(_wrap_scalebarObj_intervals_get) {
 XS(_wrap_scalebarObj_label_set) {
   {
     scalebarObj *arg1 = (scalebarObj *) 0 ;
-    labelObj *arg2 = (labelObj *) 0 ;
+    labelObj arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
-    void *argp2 = 0 ;
+    void *argp2 ;
     int res2 = 0 ;
     int argvi = 0;
     dXSARGS;
@@ -19715,19 +19865,23 @@ XS(_wrap_scalebarObj_label_set) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scalebarObj_label_set" "', argument " "1"" of type '" "scalebarObj *""'"); 
     }
     arg1 = (scalebarObj *)(argp1);
-    res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_labelObj, 0 |  0 );
-    if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "scalebarObj_label_set" "', argument " "2"" of type '" "labelObj *""'"); 
+    {
+      res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_labelObj,  0 );
+      if (!SWIG_IsOK(res2)) {
+        SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "scalebarObj_label_set" "', argument " "2"" of type '" "labelObj""'"); 
+      }  
+      if (!argp2) {
+        SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "scalebarObj_label_set" "', argument " "2"" of type '" "labelObj""'");
+      } else {
+        arg2 = *((labelObj *)(argp2));
+      }
     }
-    arg2 = (labelObj *)(argp2);
-    if (arg1) (arg1)->label = *arg2;
+    if (arg1) (arg1)->label = arg2;
     ST(argvi) = sv_newmortal();
     
-    
     XSRETURN(argvi);
   fail:
     
-    
     SWIG_croak_null();
   }
 }
@@ -19739,7 +19893,7 @@ XS(_wrap_scalebarObj_label_get) {
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
-    labelObj *result = 0 ;
+    labelObj result;
     dXSARGS;
     
     if ((items < 1) || (items > 1)) {
@@ -19750,8 +19904,8 @@ XS(_wrap_scalebarObj_label_get) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scalebarObj_label_get" "', argument " "1"" of type '" "scalebarObj *""'"); 
     }
     arg1 = (scalebarObj *)(argp1);
-    result = (labelObj *)& ((arg1)->label);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelObj, 0 | SWIG_SHADOW); argvi++ ;
+    result =  ((arg1)->label);
+    ST(argvi) = SWIG_NewPointerObj((labelObj *)memcpy((labelObj *)malloc(sizeof(labelObj)),&result,sizeof(labelObj)), SWIGTYPE_p_labelObj, SWIG_POINTER_OWN | SWIG_SHADOW); argvi++ ;
     
     XSRETURN(argvi);
   fail:
@@ -20320,6 +20474,35 @@ XS(_wrap_scalebarObj_updateFromString) {
 }
 
 
+XS(_wrap_scalebarObj_convertToString) {
+  {
+    scalebarObj *arg1 = (scalebarObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: scalebarObj_convertToString(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scalebarObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scalebarObj_convertToString" "', argument " "1"" of type '" "scalebarObj *""'"); 
+    }
+    arg1 = (scalebarObj *)(argp1);
+    result = (char *)scalebarObj_convertToString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_new_scalebarObj) {
   {
     int argvi = 0;
@@ -20436,7 +20619,7 @@ XS(_wrap_legendObj_label_get) {
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
-    labelObj *result = 0 ;
+    labelObj result;
     dXSARGS;
     
     if ((items < 1) || (items > 1)) {
@@ -20447,8 +20630,8 @@ XS(_wrap_legendObj_label_get) {
       SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "legendObj_label_get" "', argument " "1"" of type '" "legendObj *""'"); 
     }
     arg1 = (legendObj *)(argp1);
-    result = (labelObj *)& ((arg1)->label);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelObj, 0 | SWIG_SHADOW); argvi++ ;
+    result =  ((arg1)->label);
+    ST(argvi) = SWIG_NewPointerObj((labelObj *)memcpy((labelObj *)malloc(sizeof(labelObj)),&result,sizeof(labelObj)), SWIGTYPE_p_labelObj, SWIG_POINTER_OWN | SWIG_SHADOW); argvi++ ;
     
     XSRETURN(argvi);
   fail:
@@ -21253,6 +21436,35 @@ XS(_wrap_legendObj_updateFromString) {
 }
 
 
+XS(_wrap_legendObj_convertToString) {
+  {
+    legendObj *arg1 = (legendObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: legendObj_convertToString(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_legendObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "legendObj_convertToString" "', argument " "1"" of type '" "legendObj *""'"); 
+    }
+    arg1 = (legendObj *)(argp1);
+    result = (char *)legendObj_convertToString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_new_legendObj) {
   {
     int argvi = 0;
@@ -21300,7 +21512,7 @@ XS(_wrap_delete_legendObj) {
 
 XS(_wrap_imageObj_width_get) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21312,9 +21524,9 @@ XS(_wrap_imageObj_width_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_width_get" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_width_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     result = (int) ((arg1)->width);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -21328,7 +21540,7 @@ XS(_wrap_imageObj_width_get) {
 
 XS(_wrap_imageObj_height_get) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21340,9 +21552,9 @@ XS(_wrap_imageObj_height_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_height_get" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_height_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     result = (int) ((arg1)->height);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -21356,7 +21568,7 @@ XS(_wrap_imageObj_height_get) {
 
 XS(_wrap_imageObj_resolution_get) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21368,9 +21580,9 @@ XS(_wrap_imageObj_resolution_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_resolution_get" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_resolution_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     result = (double) ((arg1)->resolution);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -21384,7 +21596,7 @@ XS(_wrap_imageObj_resolution_get) {
 
 XS(_wrap_imageObj_resolutionfactor_get) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21396,9 +21608,9 @@ XS(_wrap_imageObj_resolutionfactor_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_resolutionfactor_get" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_resolutionfactor_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     result = (double) ((arg1)->resolutionfactor);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -21412,7 +21624,7 @@ XS(_wrap_imageObj_resolutionfactor_get) {
 
 XS(_wrap_imageObj_imagepath_get) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21424,9 +21636,9 @@ XS(_wrap_imageObj_imagepath_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_imagepath_get" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_imagepath_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     result = (char *) ((arg1)->imagepath);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -21440,7 +21652,7 @@ XS(_wrap_imageObj_imagepath_get) {
 
 XS(_wrap_imageObj_imageurl_get) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21452,9 +21664,9 @@ XS(_wrap_imageObj_imageurl_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_imageurl_get" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_imageurl_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     result = (char *) ((arg1)->imageurl);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -21468,7 +21680,7 @@ XS(_wrap_imageObj_imageurl_get) {
 
 XS(_wrap_imageObj_format_get) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21480,9 +21692,9 @@ XS(_wrap_imageObj_format_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_format_get" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_format_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     result = (outputFormatObj *) ((arg1)->format);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_outputFormatObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -21516,7 +21728,7 @@ XS(_wrap_new_imageObj) {
     double val6 ;
     int ecode6 = 0 ;
     int argvi = 0;
-    imageObj *result = 0 ;
+    struct imageObj *result = 0 ;
     dXSARGS;
     
     if ((items < 2) || (items > 6)) {
@@ -21560,7 +21772,7 @@ XS(_wrap_new_imageObj) {
       } 
       arg6 = (double)(val6);
     }
-    result = (imageObj *)new_imageObj(arg1,arg2,arg3,(char const *)arg4,arg5,arg6);
+    result = (struct imageObj *)new_imageObj(arg1,arg2,arg3,(char const *)arg4,arg5,arg6);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_imageObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
     
@@ -21583,7 +21795,7 @@ XS(_wrap_new_imageObj) {
 
 XS(_wrap_delete_imageObj) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21594,9 +21806,9 @@ XS(_wrap_delete_imageObj) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, SWIG_POINTER_DISOWN |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_imageObj" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_imageObj" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     delete_imageObj(arg1);
     ST(argvi) = sv_newmortal();
     
@@ -21610,7 +21822,7 @@ XS(_wrap_delete_imageObj) {
 
 XS(_wrap_imageObj_save) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     char *arg2 = (char *) 0 ;
     mapObj *arg3 = (mapObj *) NULL ;
     void *argp1 = 0 ;
@@ -21628,9 +21840,9 @@ XS(_wrap_imageObj_save) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_save" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_save" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "imageObj_save" "', argument " "2"" of type '" "char *""'");
@@ -21660,7 +21872,7 @@ XS(_wrap_imageObj_save) {
 
 XS(_wrap_imageObj_write) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     FILE *arg2 = (FILE *) NULL ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -21673,9 +21885,9 @@ XS(_wrap_imageObj_write) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_write" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_write" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     if (items > 1) {
       {
         arg2 = PerlIO_exportFILE (IoIFP (sv_2io (ST(1))), NULL);
@@ -21696,7 +21908,7 @@ XS(_wrap_imageObj_write) {
 
 XS(_wrap_imageObj_getBytes) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21708,9 +21920,9 @@ XS(_wrap_imageObj_getBytes) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_getBytes" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_getBytes" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     result = imageObj_getBytes(arg1);
     {
       SV *mysv;
@@ -21736,7 +21948,7 @@ XS(_wrap_imageObj_getBytes) {
 
 XS(_wrap_imageObj_getSize) {
   {
-    imageObj *arg1 = (imageObj *) 0 ;
+    struct imageObj *arg1 = (struct imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21748,9 +21960,9 @@ XS(_wrap_imageObj_getSize) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_getSize" "', argument " "1"" of type '" "imageObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_getSize" "', argument " "1"" of type '" "struct imageObj *""'"); 
     }
-    arg1 = (imageObj *)(argp1);
+    arg1 = (struct imageObj *)(argp1);
     result = (int)imageObj_getSize(arg1);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -21762,9 +21974,507 @@ XS(_wrap_imageObj_getSize) {
 }
 
 
+XS(_wrap_scaleTokenEntryObj_minscale_set) {
+  {
+    scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+    double arg2 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    double val2 ;
+    int ecode2 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: scaleTokenEntryObj_minscale_set(self,minscale);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_minscale_set" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+    }
+    arg1 = (scaleTokenEntryObj *)(argp1);
+    ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+    if (!SWIG_IsOK(ecode2)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "scaleTokenEntryObj_minscale_set" "', argument " "2"" of type '" "double""'");
+    } 
+    arg2 = (double)(val2);
+    if (arg1) (arg1)->minscale = arg2;
+    ST(argvi) = sv_newmortal();
+    
+    
+    XSRETURN(argvi);
+  fail:
+    
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_scaleTokenEntryObj_minscale_get) {
+  {
+    scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    double result;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: scaleTokenEntryObj_minscale_get(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_minscale_get" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+    }
+    arg1 = (scaleTokenEntryObj *)(argp1);
+    result = (double) ((arg1)->minscale);
+    ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_scaleTokenEntryObj_maxscale_set) {
+  {
+    scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+    double arg2 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    double val2 ;
+    int ecode2 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: scaleTokenEntryObj_maxscale_set(self,maxscale);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_maxscale_set" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+    }
+    arg1 = (scaleTokenEntryObj *)(argp1);
+    ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+    if (!SWIG_IsOK(ecode2)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "scaleTokenEntryObj_maxscale_set" "', argument " "2"" of type '" "double""'");
+    } 
+    arg2 = (double)(val2);
+    if (arg1) (arg1)->maxscale = arg2;
+    ST(argvi) = sv_newmortal();
+    
+    
+    XSRETURN(argvi);
+  fail:
+    
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_scaleTokenEntryObj_maxscale_get) {
+  {
+    scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    double result;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: scaleTokenEntryObj_maxscale_get(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_maxscale_get" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+    }
+    arg1 = (scaleTokenEntryObj *)(argp1);
+    result = (double) ((arg1)->maxscale);
+    ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_scaleTokenEntryObj_value_set) {
+  {
+    scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+    char *arg2 = (char *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int res2 ;
+    char *buf2 = 0 ;
+    int alloc2 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: scaleTokenEntryObj_value_set(self,value);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_value_set" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+    }
+    arg1 = (scaleTokenEntryObj *)(argp1);
+    res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "scaleTokenEntryObj_value_set" "', argument " "2"" of type '" "char *""'");
+    }
+    arg2 = (char *)(buf2);
+    {
+      if (arg1->value) free((char*)arg1->value);
+      if (arg2) {
+        arg1->value = (char *) malloc(strlen(arg2)+1);
+        strcpy((char*)arg1->value,arg2);
+      } else {
+        arg1->value = 0;
+      }
+    }
+    ST(argvi) = sv_newmortal();
+    
+    if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+    XSRETURN(argvi);
+  fail:
+    
+    if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_scaleTokenEntryObj_value_get) {
+  {
+    scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: scaleTokenEntryObj_value_get(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_value_get" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+    }
+    arg1 = (scaleTokenEntryObj *)(argp1);
+    result = (char *) ((arg1)->value);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_new_scaleTokenEntryObj) {
+  {
+    int argvi = 0;
+    scaleTokenEntryObj *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 0) || (items > 0)) {
+      SWIG_croak("Usage: new_scaleTokenEntryObj();");
+    }
+    result = (scaleTokenEntryObj *)calloc(1, sizeof(scaleTokenEntryObj));
+    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_scaleTokenEntryObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+    XSRETURN(argvi);
+  fail:
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_delete_scaleTokenEntryObj) {
+  {
+    scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: delete_scaleTokenEntryObj(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenEntryObj, SWIG_POINTER_DISOWN |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_scaleTokenEntryObj" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+    }
+    arg1 = (scaleTokenEntryObj *)(argp1);
+    free((char *) arg1);
+    ST(argvi) = sv_newmortal();
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_scaleTokenObj_name_set) {
+  {
+    scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+    char *arg2 = (char *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int res2 ;
+    char *buf2 = 0 ;
+    int alloc2 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: scaleTokenObj_name_set(self,name);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_name_set" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+    }
+    arg1 = (scaleTokenObj *)(argp1);
+    res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "scaleTokenObj_name_set" "', argument " "2"" of type '" "char *""'");
+    }
+    arg2 = (char *)(buf2);
+    {
+      if (arg1->name) free((char*)arg1->name);
+      if (arg2) {
+        arg1->name = (char *) malloc(strlen(arg2)+1);
+        strcpy((char*)arg1->name,arg2);
+      } else {
+        arg1->name = 0;
+      }
+    }
+    ST(argvi) = sv_newmortal();
+    
+    if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+    XSRETURN(argvi);
+  fail:
+    
+    if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_scaleTokenObj_name_get) {
+  {
+    scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: scaleTokenObj_name_get(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_name_get" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+    }
+    arg1 = (scaleTokenObj *)(argp1);
+    result = (char *) ((arg1)->name);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_scaleTokenObj_n_entries_set) {
+  {
+    scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+    int arg2 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int val2 ;
+    int ecode2 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: scaleTokenObj_n_entries_set(self,n_entries);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_n_entries_set" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+    }
+    arg1 = (scaleTokenObj *)(argp1);
+    ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+    if (!SWIG_IsOK(ecode2)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "scaleTokenObj_n_entries_set" "', argument " "2"" of type '" "int""'");
+    } 
+    arg2 = (int)(val2);
+    if (arg1) (arg1)->n_entries = arg2;
+    ST(argvi) = sv_newmortal();
+    
+    
+    XSRETURN(argvi);
+  fail:
+    
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_scaleTokenObj_n_entries_get) {
+  {
+    scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    int result;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: scaleTokenObj_n_entries_get(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_n_entries_get" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+    }
+    arg1 = (scaleTokenObj *)(argp1);
+    result = (int) ((arg1)->n_entries);
+    ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_scaleTokenObj_tokens_set) {
+  {
+    scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+    scaleTokenEntryObj *arg2 = (scaleTokenEntryObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    void *argp2 = 0 ;
+    int res2 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: scaleTokenObj_tokens_set(self,tokens);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_tokens_set" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+    }
+    arg1 = (scaleTokenObj *)(argp1);
+    res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_scaleTokenEntryObj, SWIG_POINTER_DISOWN |  0 );
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "scaleTokenObj_tokens_set" "', argument " "2"" of type '" "scaleTokenEntryObj *""'"); 
+    }
+    arg2 = (scaleTokenEntryObj *)(argp2);
+    if (arg1) (arg1)->tokens = arg2;
+    ST(argvi) = sv_newmortal();
+    
+    
+    XSRETURN(argvi);
+  fail:
+    
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_scaleTokenObj_tokens_get) {
+  {
+    scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    scaleTokenEntryObj *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: scaleTokenObj_tokens_get(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_tokens_get" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+    }
+    arg1 = (scaleTokenObj *)(argp1);
+    result = (scaleTokenEntryObj *) ((arg1)->tokens);
+    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_scaleTokenEntryObj, 0 | SWIG_SHADOW); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_new_scaleTokenObj) {
+  {
+    int argvi = 0;
+    scaleTokenObj *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 0) || (items > 0)) {
+      SWIG_croak("Usage: new_scaleTokenObj();");
+    }
+    result = (scaleTokenObj *)calloc(1, sizeof(scaleTokenObj));
+    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_scaleTokenObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+    XSRETURN(argvi);
+  fail:
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_delete_scaleTokenObj) {
+  {
+    scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: delete_scaleTokenObj(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_scaleTokenObj, SWIG_POINTER_DISOWN |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_scaleTokenObj" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+    }
+    arg1 = (scaleTokenObj *)(argp1);
+    free((char *) arg1);
+    ST(argvi) = sv_newmortal();
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_layerObj_classitem_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -21779,9 +22489,9 @@ XS(_wrap_layerObj_classitem_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classitem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classitem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_classitem_set" "', argument " "2"" of type '" "char *""'");
@@ -21810,7 +22520,7 @@ XS(_wrap_layerObj_classitem_set) {
 
 XS(_wrap_layerObj_classitem_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21822,9 +22532,9 @@ XS(_wrap_layerObj_classitem_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classitem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classitem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->classitem);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -21838,7 +22548,7 @@ XS(_wrap_layerObj_classitem_get) {
 
 XS(_wrap_layerObj_refcount_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21850,9 +22560,9 @@ XS(_wrap_layerObj_refcount_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_refcount_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_refcount_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->refcount);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -21866,7 +22576,7 @@ XS(_wrap_layerObj_refcount_get) {
 
 XS(_wrap_layerObj_numclasses_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21878,9 +22588,9 @@ XS(_wrap_layerObj_numclasses_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numclasses_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numclasses_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->numclasses);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -21894,7 +22604,7 @@ XS(_wrap_layerObj_numclasses_get) {
 
 XS(_wrap_layerObj_maxclasses_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21906,9 +22616,9 @@ XS(_wrap_layerObj_maxclasses_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxclasses_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxclasses_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->maxclasses);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -21922,7 +22632,7 @@ XS(_wrap_layerObj_maxclasses_get) {
 
 XS(_wrap_layerObj_index_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21934,9 +22644,9 @@ XS(_wrap_layerObj_index_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_index_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_index_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->index);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -21950,7 +22660,7 @@ XS(_wrap_layerObj_index_get) {
 
 XS(_wrap_layerObj_map_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -21962,9 +22672,9 @@ XS(_wrap_layerObj_map_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_map_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_map_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     {
       /* Accessing map */
       result = (struct mapObj *) ((arg1)->map);;
@@ -21982,7 +22692,7 @@ XS(_wrap_layerObj_map_get) {
 
 XS(_wrap_layerObj_header_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -21997,9 +22707,9 @@ XS(_wrap_layerObj_header_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_header_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_header_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_header_set" "', argument " "2"" of type '" "char *""'");
@@ -22028,7 +22738,7 @@ XS(_wrap_layerObj_header_set) {
 
 XS(_wrap_layerObj_header_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22040,9 +22750,9 @@ XS(_wrap_layerObj_header_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_header_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_header_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->header);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -22056,7 +22766,7 @@ XS(_wrap_layerObj_header_get) {
 
 XS(_wrap_layerObj_footer_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22071,9 +22781,9 @@ XS(_wrap_layerObj_footer_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_footer_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_footer_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_footer_set" "', argument " "2"" of type '" "char *""'");
@@ -22102,7 +22812,7 @@ XS(_wrap_layerObj_footer_set) {
 
 XS(_wrap_layerObj_footer_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22114,9 +22824,9 @@ XS(_wrap_layerObj_footer_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_footer_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_footer_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->footer);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -22130,7 +22840,7 @@ XS(_wrap_layerObj_footer_get) {
 
 XS(_wrap_layerObj_template_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22145,9 +22855,9 @@ XS(_wrap_layerObj_template_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_template_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_template_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_template_set" "', argument " "2"" of type '" "char *""'");
@@ -22176,7 +22886,7 @@ XS(_wrap_layerObj_template_set) {
 
 XS(_wrap_layerObj_template_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22188,9 +22898,9 @@ XS(_wrap_layerObj_template_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_template_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_template_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->template);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -22204,7 +22914,7 @@ XS(_wrap_layerObj_template_get) {
 
 XS(_wrap_layerObj_name_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22219,9 +22929,9 @@ XS(_wrap_layerObj_name_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_name_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_name_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_name_set" "', argument " "2"" of type '" "char *""'");
@@ -22250,7 +22960,7 @@ XS(_wrap_layerObj_name_set) {
 
 XS(_wrap_layerObj_name_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22262,9 +22972,9 @@ XS(_wrap_layerObj_name_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_name_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_name_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->name);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -22278,7 +22988,7 @@ XS(_wrap_layerObj_name_get) {
 
 XS(_wrap_layerObj_group_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22293,9 +23003,9 @@ XS(_wrap_layerObj_group_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_group_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_group_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_group_set" "', argument " "2"" of type '" "char *""'");
@@ -22324,7 +23034,7 @@ XS(_wrap_layerObj_group_set) {
 
 XS(_wrap_layerObj_group_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22336,9 +23046,9 @@ XS(_wrap_layerObj_group_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_group_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_group_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->group);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -22352,7 +23062,7 @@ XS(_wrap_layerObj_group_get) {
 
 XS(_wrap_layerObj_status_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22366,9 +23076,9 @@ XS(_wrap_layerObj_status_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_status_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_status_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_status_set" "', argument " "2"" of type '" "int""'");
@@ -22389,7 +23099,7 @@ XS(_wrap_layerObj_status_set) {
 
 XS(_wrap_layerObj_status_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22401,9 +23111,9 @@ XS(_wrap_layerObj_status_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_status_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_status_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->status);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -22417,7 +23127,7 @@ XS(_wrap_layerObj_status_get) {
 
 XS(_wrap_layerObj_data_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22432,9 +23142,9 @@ XS(_wrap_layerObj_data_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_data_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_data_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_data_set" "', argument " "2"" of type '" "char *""'");
@@ -22463,7 +23173,7 @@ XS(_wrap_layerObj_data_set) {
 
 XS(_wrap_layerObj_data_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22475,9 +23185,9 @@ XS(_wrap_layerObj_data_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_data_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_data_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->data);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -22491,7 +23201,7 @@ XS(_wrap_layerObj_data_get) {
 
 XS(_wrap_layerObj_type_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     enum MS_LAYER_TYPE arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22505,9 +23215,9 @@ XS(_wrap_layerObj_type_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_type_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_type_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_type_set" "', argument " "2"" of type '" "enum MS_LAYER_TYPE""'");
@@ -22528,7 +23238,7 @@ XS(_wrap_layerObj_type_set) {
 
 XS(_wrap_layerObj_type_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22540,9 +23250,9 @@ XS(_wrap_layerObj_type_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_type_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_type_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (enum MS_LAYER_TYPE) ((arg1)->type);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -22556,7 +23266,7 @@ XS(_wrap_layerObj_type_get) {
 
 XS(_wrap_layerObj_tolerance_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22570,9 +23280,9 @@ XS(_wrap_layerObj_tolerance_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tolerance_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tolerance_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_tolerance_set" "', argument " "2"" of type '" "double""'");
@@ -22593,7 +23303,7 @@ XS(_wrap_layerObj_tolerance_set) {
 
 XS(_wrap_layerObj_tolerance_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22605,9 +23315,9 @@ XS(_wrap_layerObj_tolerance_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tolerance_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tolerance_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (double) ((arg1)->tolerance);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -22621,7 +23331,7 @@ XS(_wrap_layerObj_tolerance_get) {
 
 XS(_wrap_layerObj_toleranceunits_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22635,9 +23345,9 @@ XS(_wrap_layerObj_toleranceunits_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_toleranceunits_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_toleranceunits_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_toleranceunits_set" "', argument " "2"" of type '" "int""'");
@@ -22658,7 +23368,7 @@ XS(_wrap_layerObj_toleranceunits_set) {
 
 XS(_wrap_layerObj_toleranceunits_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22670,9 +23380,9 @@ XS(_wrap_layerObj_toleranceunits_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_toleranceunits_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_toleranceunits_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->toleranceunits);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -22686,7 +23396,7 @@ XS(_wrap_layerObj_toleranceunits_get) {
 
 XS(_wrap_layerObj_symbolscaledenom_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22700,9 +23410,9 @@ XS(_wrap_layerObj_symbolscaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_symbolscaledenom_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_symbolscaledenom_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_symbolscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -22723,7 +23433,7 @@ XS(_wrap_layerObj_symbolscaledenom_set) {
 
 XS(_wrap_layerObj_symbolscaledenom_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22735,9 +23445,9 @@ XS(_wrap_layerObj_symbolscaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_symbolscaledenom_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_symbolscaledenom_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (double) ((arg1)->symbolscaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -22751,7 +23461,7 @@ XS(_wrap_layerObj_symbolscaledenom_get) {
 
 XS(_wrap_layerObj_minscaledenom_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22765,9 +23475,9 @@ XS(_wrap_layerObj_minscaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minscaledenom_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minscaledenom_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_minscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -22788,7 +23498,7 @@ XS(_wrap_layerObj_minscaledenom_set) {
 
 XS(_wrap_layerObj_minscaledenom_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22800,9 +23510,9 @@ XS(_wrap_layerObj_minscaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minscaledenom_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minscaledenom_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (double) ((arg1)->minscaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -22816,7 +23526,7 @@ XS(_wrap_layerObj_minscaledenom_get) {
 
 XS(_wrap_layerObj_maxscaledenom_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22830,9 +23540,9 @@ XS(_wrap_layerObj_maxscaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxscaledenom_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxscaledenom_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_maxscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -22853,7 +23563,7 @@ XS(_wrap_layerObj_maxscaledenom_set) {
 
 XS(_wrap_layerObj_maxscaledenom_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22865,9 +23575,9 @@ XS(_wrap_layerObj_maxscaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxscaledenom_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxscaledenom_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (double) ((arg1)->maxscaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -22881,7 +23591,7 @@ XS(_wrap_layerObj_maxscaledenom_get) {
 
 XS(_wrap_layerObj_minfeaturesize_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22895,9 +23605,9 @@ XS(_wrap_layerObj_minfeaturesize_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minfeaturesize_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minfeaturesize_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_minfeaturesize_set" "', argument " "2"" of type '" "int""'");
@@ -22918,7 +23628,7 @@ XS(_wrap_layerObj_minfeaturesize_set) {
 
 XS(_wrap_layerObj_minfeaturesize_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22930,9 +23640,9 @@ XS(_wrap_layerObj_minfeaturesize_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minfeaturesize_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minfeaturesize_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->minfeaturesize);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -22946,7 +23656,7 @@ XS(_wrap_layerObj_minfeaturesize_get) {
 
 XS(_wrap_layerObj_labelminscaledenom_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -22960,9 +23670,9 @@ XS(_wrap_layerObj_labelminscaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelminscaledenom_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelminscaledenom_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_labelminscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -22983,7 +23693,7 @@ XS(_wrap_layerObj_labelminscaledenom_set) {
 
 XS(_wrap_layerObj_labelminscaledenom_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -22995,9 +23705,9 @@ XS(_wrap_layerObj_labelminscaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelminscaledenom_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelminscaledenom_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (double) ((arg1)->labelminscaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -23011,7 +23721,7 @@ XS(_wrap_layerObj_labelminscaledenom_get) {
 
 XS(_wrap_layerObj_labelmaxscaledenom_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23025,9 +23735,9 @@ XS(_wrap_layerObj_labelmaxscaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelmaxscaledenom_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelmaxscaledenom_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_labelmaxscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -23048,7 +23758,7 @@ XS(_wrap_layerObj_labelmaxscaledenom_set) {
 
 XS(_wrap_layerObj_labelmaxscaledenom_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23060,9 +23770,9 @@ XS(_wrap_layerObj_labelmaxscaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelmaxscaledenom_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelmaxscaledenom_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (double) ((arg1)->labelmaxscaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -23076,7 +23786,7 @@ XS(_wrap_layerObj_labelmaxscaledenom_get) {
 
 XS(_wrap_layerObj_mingeowidth_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23090,9 +23800,9 @@ XS(_wrap_layerObj_mingeowidth_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mingeowidth_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mingeowidth_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_mingeowidth_set" "', argument " "2"" of type '" "double""'");
@@ -23113,7 +23823,7 @@ XS(_wrap_layerObj_mingeowidth_set) {
 
 XS(_wrap_layerObj_mingeowidth_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23125,9 +23835,9 @@ XS(_wrap_layerObj_mingeowidth_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mingeowidth_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mingeowidth_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (double) ((arg1)->mingeowidth);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -23141,7 +23851,7 @@ XS(_wrap_layerObj_mingeowidth_get) {
 
 XS(_wrap_layerObj_maxgeowidth_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23155,9 +23865,9 @@ XS(_wrap_layerObj_maxgeowidth_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxgeowidth_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxgeowidth_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_maxgeowidth_set" "', argument " "2"" of type '" "double""'");
@@ -23178,7 +23888,7 @@ XS(_wrap_layerObj_maxgeowidth_set) {
 
 XS(_wrap_layerObj_maxgeowidth_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23190,9 +23900,9 @@ XS(_wrap_layerObj_maxgeowidth_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxgeowidth_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxgeowidth_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (double) ((arg1)->maxgeowidth);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -23206,7 +23916,7 @@ XS(_wrap_layerObj_maxgeowidth_get) {
 
 XS(_wrap_layerObj_sizeunits_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23220,9 +23930,9 @@ XS(_wrap_layerObj_sizeunits_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_sizeunits_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_sizeunits_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_sizeunits_set" "', argument " "2"" of type '" "int""'");
@@ -23243,7 +23953,7 @@ XS(_wrap_layerObj_sizeunits_set) {
 
 XS(_wrap_layerObj_sizeunits_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23255,9 +23965,9 @@ XS(_wrap_layerObj_sizeunits_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_sizeunits_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_sizeunits_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->sizeunits);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -23271,7 +23981,7 @@ XS(_wrap_layerObj_sizeunits_get) {
 
 XS(_wrap_layerObj_maxfeatures_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23285,9 +23995,9 @@ XS(_wrap_layerObj_maxfeatures_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxfeatures_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxfeatures_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_maxfeatures_set" "', argument " "2"" of type '" "int""'");
@@ -23308,7 +24018,7 @@ XS(_wrap_layerObj_maxfeatures_set) {
 
 XS(_wrap_layerObj_maxfeatures_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23320,9 +24030,9 @@ XS(_wrap_layerObj_maxfeatures_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxfeatures_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxfeatures_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->maxfeatures);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -23336,7 +24046,7 @@ XS(_wrap_layerObj_maxfeatures_get) {
 
 XS(_wrap_layerObj_startindex_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23350,9 +24060,9 @@ XS(_wrap_layerObj_startindex_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_startindex_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_startindex_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_startindex_set" "', argument " "2"" of type '" "int""'");
@@ -23373,7 +24083,7 @@ XS(_wrap_layerObj_startindex_set) {
 
 XS(_wrap_layerObj_startindex_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23385,9 +24095,9 @@ XS(_wrap_layerObj_startindex_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_startindex_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_startindex_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->startindex);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -23401,7 +24111,7 @@ XS(_wrap_layerObj_startindex_get) {
 
 XS(_wrap_layerObj_offsite_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     colorObj *arg2 = (colorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23415,9 +24125,9 @@ XS(_wrap_layerObj_offsite_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_offsite_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_offsite_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_offsite_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -23438,7 +24148,7 @@ XS(_wrap_layerObj_offsite_set) {
 
 XS(_wrap_layerObj_offsite_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23450,9 +24160,9 @@ XS(_wrap_layerObj_offsite_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_offsite_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_offsite_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (colorObj *)& ((arg1)->offsite);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -23466,7 +24176,7 @@ XS(_wrap_layerObj_offsite_get) {
 
 XS(_wrap_layerObj_transform_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23480,9 +24190,9 @@ XS(_wrap_layerObj_transform_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_transform_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_transform_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_transform_set" "', argument " "2"" of type '" "int""'");
@@ -23503,7 +24213,7 @@ XS(_wrap_layerObj_transform_set) {
 
 XS(_wrap_layerObj_transform_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23515,9 +24225,9 @@ XS(_wrap_layerObj_transform_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_transform_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_transform_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->transform);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -23531,7 +24241,7 @@ XS(_wrap_layerObj_transform_get) {
 
 XS(_wrap_layerObj_labelcache_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23545,9 +24255,9 @@ XS(_wrap_layerObj_labelcache_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelcache_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelcache_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_labelcache_set" "', argument " "2"" of type '" "int""'");
@@ -23568,7 +24278,7 @@ XS(_wrap_layerObj_labelcache_set) {
 
 XS(_wrap_layerObj_labelcache_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23580,9 +24290,9 @@ XS(_wrap_layerObj_labelcache_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelcache_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelcache_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->labelcache);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -23596,7 +24306,7 @@ XS(_wrap_layerObj_labelcache_get) {
 
 XS(_wrap_layerObj_postlabelcache_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23610,9 +24320,9 @@ XS(_wrap_layerObj_postlabelcache_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_postlabelcache_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_postlabelcache_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_postlabelcache_set" "', argument " "2"" of type '" "int""'");
@@ -23633,7 +24343,7 @@ XS(_wrap_layerObj_postlabelcache_set) {
 
 XS(_wrap_layerObj_postlabelcache_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23645,9 +24355,9 @@ XS(_wrap_layerObj_postlabelcache_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_postlabelcache_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_postlabelcache_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->postlabelcache);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -23661,7 +24371,7 @@ XS(_wrap_layerObj_postlabelcache_get) {
 
 XS(_wrap_layerObj_labelitem_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23676,9 +24386,9 @@ XS(_wrap_layerObj_labelitem_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelitem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelitem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_labelitem_set" "', argument " "2"" of type '" "char *""'");
@@ -23707,7 +24417,7 @@ XS(_wrap_layerObj_labelitem_set) {
 
 XS(_wrap_layerObj_labelitem_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23719,9 +24429,9 @@ XS(_wrap_layerObj_labelitem_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelitem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelitem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->labelitem);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -23735,7 +24445,7 @@ XS(_wrap_layerObj_labelitem_get) {
 
 XS(_wrap_layerObj_tileitem_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23750,9 +24460,9 @@ XS(_wrap_layerObj_tileitem_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileitem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileitem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_tileitem_set" "', argument " "2"" of type '" "char *""'");
@@ -23781,7 +24491,7 @@ XS(_wrap_layerObj_tileitem_set) {
 
 XS(_wrap_layerObj_tileitem_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23793,9 +24503,9 @@ XS(_wrap_layerObj_tileitem_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileitem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileitem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->tileitem);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -23809,7 +24519,7 @@ XS(_wrap_layerObj_tileitem_get) {
 
 XS(_wrap_layerObj_tileindex_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23824,9 +24534,9 @@ XS(_wrap_layerObj_tileindex_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileindex_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileindex_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_tileindex_set" "', argument " "2"" of type '" "char *""'");
@@ -23855,7 +24565,7 @@ XS(_wrap_layerObj_tileindex_set) {
 
 XS(_wrap_layerObj_tileindex_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23867,9 +24577,9 @@ XS(_wrap_layerObj_tileindex_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileindex_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileindex_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->tileindex);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -23881,9 +24591,83 @@ XS(_wrap_layerObj_tileindex_get) {
 }
 
 
+XS(_wrap_layerObj_tilesrs_set) {
+  {
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
+    char *arg2 = (char *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int res2 ;
+    char *buf2 = 0 ;
+    int alloc2 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: layerObj_tilesrs_set(self,tilesrs);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tilesrs_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
+    }
+    arg1 = (struct layerObj *)(argp1);
+    res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_tilesrs_set" "', argument " "2"" of type '" "char *""'");
+    }
+    arg2 = (char *)(buf2);
+    {
+      if (arg1->tilesrs) free((char*)arg1->tilesrs);
+      if (arg2) {
+        arg1->tilesrs = (char *) malloc(strlen(arg2)+1);
+        strcpy((char*)arg1->tilesrs,arg2);
+      } else {
+        arg1->tilesrs = 0;
+      }
+    }
+    ST(argvi) = sv_newmortal();
+    
+    if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+    XSRETURN(argvi);
+  fail:
+    
+    if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_layerObj_tilesrs_get) {
+  {
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: layerObj_tilesrs_get(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tilesrs_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
+    }
+    arg1 = (struct layerObj *)(argp1);
+    result = (char *) ((arg1)->tilesrs);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_layerObj_units_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23897,9 +24681,9 @@ XS(_wrap_layerObj_units_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_units_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_units_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_units_set" "', argument " "2"" of type '" "int""'");
@@ -23920,7 +24704,7 @@ XS(_wrap_layerObj_units_set) {
 
 XS(_wrap_layerObj_units_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -23932,9 +24716,9 @@ XS(_wrap_layerObj_units_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_units_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_units_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->units);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -23948,7 +24732,7 @@ XS(_wrap_layerObj_units_get) {
 
 XS(_wrap_layerObj_connection_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -23963,9 +24747,9 @@ XS(_wrap_layerObj_connection_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connection_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connection_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_connection_set" "', argument " "2"" of type '" "char *""'");
@@ -23994,7 +24778,7 @@ XS(_wrap_layerObj_connection_set) {
 
 XS(_wrap_layerObj_connection_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24006,9 +24790,9 @@ XS(_wrap_layerObj_connection_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connection_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connection_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->connection);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -24022,7 +24806,7 @@ XS(_wrap_layerObj_connection_get) {
 
 XS(_wrap_layerObj_plugin_library_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -24037,9 +24821,9 @@ XS(_wrap_layerObj_plugin_library_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_plugin_library_set" "', argument " "2"" of type '" "char *""'");
@@ -24068,7 +24852,7 @@ XS(_wrap_layerObj_plugin_library_set) {
 
 XS(_wrap_layerObj_plugin_library_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24080,9 +24864,9 @@ XS(_wrap_layerObj_plugin_library_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->plugin_library);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -24096,7 +24880,7 @@ XS(_wrap_layerObj_plugin_library_get) {
 
 XS(_wrap_layerObj_plugin_library_original_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -24111,9 +24895,9 @@ XS(_wrap_layerObj_plugin_library_original_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_original_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_original_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_plugin_library_original_set" "', argument " "2"" of type '" "char *""'");
@@ -24142,7 +24926,7 @@ XS(_wrap_layerObj_plugin_library_original_set) {
 
 XS(_wrap_layerObj_plugin_library_original_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24154,9 +24938,9 @@ XS(_wrap_layerObj_plugin_library_original_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_original_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_original_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->plugin_library_original);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -24170,7 +24954,7 @@ XS(_wrap_layerObj_plugin_library_original_get) {
 
 XS(_wrap_layerObj_connectiontype_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     enum MS_CONNECTION_TYPE arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -24184,9 +24968,9 @@ XS(_wrap_layerObj_connectiontype_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connectiontype_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connectiontype_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_connectiontype_set" "', argument " "2"" of type '" "enum MS_CONNECTION_TYPE""'");
@@ -24207,7 +24991,7 @@ XS(_wrap_layerObj_connectiontype_set) {
 
 XS(_wrap_layerObj_connectiontype_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24219,9 +25003,9 @@ XS(_wrap_layerObj_connectiontype_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connectiontype_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connectiontype_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (enum MS_CONNECTION_TYPE) ((arg1)->connectiontype);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -24235,7 +25019,7 @@ XS(_wrap_layerObj_connectiontype_get) {
 
 XS(_wrap_layerObj_numitems_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24247,9 +25031,9 @@ XS(_wrap_layerObj_numitems_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numitems_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numitems_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->numitems);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -24263,7 +25047,7 @@ XS(_wrap_layerObj_numitems_get) {
 
 XS(_wrap_layerObj_bandsitem_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -24278,9 +25062,9 @@ XS(_wrap_layerObj_bandsitem_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bandsitem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bandsitem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_bandsitem_set" "', argument " "2"" of type '" "char *""'");
@@ -24309,7 +25093,7 @@ XS(_wrap_layerObj_bandsitem_set) {
 
 XS(_wrap_layerObj_bandsitem_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24321,9 +25105,9 @@ XS(_wrap_layerObj_bandsitem_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bandsitem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bandsitem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->bandsitem);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -24337,7 +25121,7 @@ XS(_wrap_layerObj_bandsitem_get) {
 
 XS(_wrap_layerObj_filteritem_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -24352,9 +25136,9 @@ XS(_wrap_layerObj_filteritem_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_filteritem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_filteritem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_filteritem_set" "', argument " "2"" of type '" "char *""'");
@@ -24383,7 +25167,7 @@ XS(_wrap_layerObj_filteritem_set) {
 
 XS(_wrap_layerObj_filteritem_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24395,9 +25179,9 @@ XS(_wrap_layerObj_filteritem_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_filteritem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_filteritem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->filteritem);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -24411,7 +25195,7 @@ XS(_wrap_layerObj_filteritem_get) {
 
 XS(_wrap_layerObj_styleitem_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -24426,9 +25210,9 @@ XS(_wrap_layerObj_styleitem_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_styleitem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_styleitem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_styleitem_set" "', argument " "2"" of type '" "char *""'");
@@ -24457,7 +25241,7 @@ XS(_wrap_layerObj_styleitem_set) {
 
 XS(_wrap_layerObj_styleitem_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24469,9 +25253,9 @@ XS(_wrap_layerObj_styleitem_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_styleitem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_styleitem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->styleitem);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -24485,7 +25269,7 @@ XS(_wrap_layerObj_styleitem_get) {
 
 XS(_wrap_layerObj_requires_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -24500,9 +25284,9 @@ XS(_wrap_layerObj_requires_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_requires_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_requires_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_requires_set" "', argument " "2"" of type '" "char *""'");
@@ -24531,7 +25315,7 @@ XS(_wrap_layerObj_requires_set) {
 
 XS(_wrap_layerObj_requires_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24543,9 +25327,9 @@ XS(_wrap_layerObj_requires_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_requires_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_requires_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->requires);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -24559,7 +25343,7 @@ XS(_wrap_layerObj_requires_get) {
 
 XS(_wrap_layerObj_labelrequires_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -24574,9 +25358,9 @@ XS(_wrap_layerObj_labelrequires_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelrequires_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelrequires_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_labelrequires_set" "', argument " "2"" of type '" "char *""'");
@@ -24605,7 +25389,7 @@ XS(_wrap_layerObj_labelrequires_set) {
 
 XS(_wrap_layerObj_labelrequires_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24617,9 +25401,9 @@ XS(_wrap_layerObj_labelrequires_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelrequires_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelrequires_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->labelrequires);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -24633,7 +25417,7 @@ XS(_wrap_layerObj_labelrequires_get) {
 
 XS(_wrap_layerObj_metadata_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24645,9 +25429,9 @@ XS(_wrap_layerObj_metadata_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_metadata_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_metadata_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (hashTableObj *)& ((arg1)->metadata);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -24661,7 +25445,7 @@ XS(_wrap_layerObj_metadata_get) {
 
 XS(_wrap_layerObj_validation_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24673,9 +25457,9 @@ XS(_wrap_layerObj_validation_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_validation_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_validation_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (hashTableObj *)& ((arg1)->validation);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -24689,7 +25473,7 @@ XS(_wrap_layerObj_validation_get) {
 
 XS(_wrap_layerObj_bindvals_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24701,9 +25485,9 @@ XS(_wrap_layerObj_bindvals_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bindvals_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bindvals_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (hashTableObj *)& ((arg1)->bindvals);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -24717,7 +25501,7 @@ XS(_wrap_layerObj_bindvals_get) {
 
 XS(_wrap_layerObj_cluster_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24729,9 +25513,9 @@ XS(_wrap_layerObj_cluster_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_cluster_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_cluster_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (clusterObj *)& ((arg1)->cluster);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_clusterObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -24745,7 +25529,7 @@ XS(_wrap_layerObj_cluster_get) {
 
 XS(_wrap_layerObj_opacity_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -24759,9 +25543,9 @@ XS(_wrap_layerObj_opacity_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_opacity_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_opacity_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_opacity_set" "', argument " "2"" of type '" "int""'");
@@ -24782,7 +25566,7 @@ XS(_wrap_layerObj_opacity_set) {
 
 XS(_wrap_layerObj_opacity_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24794,9 +25578,9 @@ XS(_wrap_layerObj_opacity_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_opacity_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_opacity_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->opacity);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -24810,7 +25594,7 @@ XS(_wrap_layerObj_opacity_get) {
 
 XS(_wrap_layerObj_dump_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -24824,9 +25608,9 @@ XS(_wrap_layerObj_dump_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_dump_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_dump_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_dump_set" "', argument " "2"" of type '" "int""'");
@@ -24847,7 +25631,7 @@ XS(_wrap_layerObj_dump_set) {
 
 XS(_wrap_layerObj_dump_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24859,9 +25643,9 @@ XS(_wrap_layerObj_dump_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_dump_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_dump_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->dump);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -24875,7 +25659,7 @@ XS(_wrap_layerObj_dump_get) {
 
 XS(_wrap_layerObj_debug_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -24889,9 +25673,9 @@ XS(_wrap_layerObj_debug_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_debug_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_debug_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_debug_set" "', argument " "2"" of type '" "int""'");
@@ -24912,7 +25696,7 @@ XS(_wrap_layerObj_debug_set) {
 
 XS(_wrap_layerObj_debug_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24924,9 +25708,9 @@ XS(_wrap_layerObj_debug_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_debug_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_debug_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->debug);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -24940,7 +25724,7 @@ XS(_wrap_layerObj_debug_get) {
 
 XS(_wrap_layerObj_extent_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24952,9 +25736,9 @@ XS(_wrap_layerObj_extent_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_extent_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_extent_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (rectObj *)& ((arg1)->extent);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_rectObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -24968,7 +25752,7 @@ XS(_wrap_layerObj_extent_get) {
 
 XS(_wrap_layerObj_numprocessing_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -24980,9 +25764,9 @@ XS(_wrap_layerObj_numprocessing_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numprocessing_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numprocessing_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->numprocessing);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -24996,7 +25780,7 @@ XS(_wrap_layerObj_numprocessing_get) {
 
 XS(_wrap_layerObj_numjoins_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -25008,9 +25792,9 @@ XS(_wrap_layerObj_numjoins_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numjoins_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numjoins_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int) ((arg1)->numjoins);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -25024,7 +25808,7 @@ XS(_wrap_layerObj_numjoins_get) {
 
 XS(_wrap_layerObj_classgroup_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -25039,9 +25823,9 @@ XS(_wrap_layerObj_classgroup_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classgroup_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classgroup_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_classgroup_set" "', argument " "2"" of type '" "char *""'");
@@ -25070,7 +25854,7 @@ XS(_wrap_layerObj_classgroup_set) {
 
 XS(_wrap_layerObj_classgroup_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -25082,9 +25866,9 @@ XS(_wrap_layerObj_classgroup_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classgroup_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classgroup_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->classgroup);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -25098,7 +25882,7 @@ XS(_wrap_layerObj_classgroup_get) {
 
 XS(_wrap_layerObj_mask_set) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -25113,9 +25897,9 @@ XS(_wrap_layerObj_mask_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mask_set" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mask_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_mask_set" "', argument " "2"" of type '" "char *""'");
@@ -25144,7 +25928,7 @@ XS(_wrap_layerObj_mask_set) {
 
 XS(_wrap_layerObj_mask_get) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -25156,9 +25940,9 @@ XS(_wrap_layerObj_mask_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mask_get" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mask_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *) ((arg1)->mask);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -25176,7 +25960,7 @@ XS(_wrap_new_layerObj) {
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
-    layerObj *result = 0 ;
+    struct layerObj *result = 0 ;
     dXSARGS;
     
     if ((items < 0) || (items > 1)) {
@@ -25189,7 +25973,7 @@ XS(_wrap_new_layerObj) {
       }
       arg1 = (mapObj *)(argp1);
     }
-    result = (layerObj *)new_layerObj(arg1);
+    result = (struct layerObj *)new_layerObj(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_layerObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
     XSRETURN(argvi);
@@ -25202,7 +25986,7 @@ XS(_wrap_new_layerObj) {
 
 XS(_wrap_delete_layerObj) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -25213,9 +25997,9 @@ XS(_wrap_delete_layerObj) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, SWIG_POINTER_DISOWN |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_layerObj" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_layerObj" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     delete_layerObj(arg1);
     ST(argvi) = sv_newmortal();
     
@@ -25229,7 +26013,7 @@ XS(_wrap_delete_layerObj) {
 
 XS(_wrap_layerObj_clone) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -25241,9 +26025,9 @@ XS(_wrap_layerObj_clone) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_clone" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_clone" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (layerObj *)layerObj_clone(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_layerObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -25257,7 +26041,7 @@ XS(_wrap_layerObj_clone) {
 
 XS(_wrap_layerObj_updateFromString) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -25273,9 +26057,9 @@ XS(_wrap_layerObj_updateFromString) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_updateFromString" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_updateFromString" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_updateFromString" "', argument " "2"" of type '" "char *""'");
@@ -25294,9 +26078,38 @@ XS(_wrap_layerObj_updateFromString) {
 }
 
 
+XS(_wrap_layerObj_convertToString) {
+  {
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: layerObj_convertToString(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_convertToString" "', argument " "1"" of type '" "struct layerObj *""'"); 
+    }
+    arg1 = (struct layerObj *)(argp1);
+    result = (char *)layerObj_convertToString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_layerObj_insertClass) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     classObj *arg2 = (classObj *) 0 ;
     int arg3 = (int) -1 ;
     void *argp1 = 0 ;
@@ -25314,9 +26127,9 @@ XS(_wrap_layerObj_insertClass) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_insertClass" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_insertClass" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_classObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_insertClass" "', argument " "2"" of type '" "classObj *""'"); 
@@ -25346,7 +26159,7 @@ XS(_wrap_layerObj_insertClass) {
 
 XS(_wrap_layerObj_removeClass) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -25361,9 +26174,9 @@ XS(_wrap_layerObj_removeClass) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_removeClass" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_removeClass" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_removeClass" "', argument " "2"" of type '" "int""'");
@@ -25384,7 +26197,7 @@ XS(_wrap_layerObj_removeClass) {
 
 XS(_wrap_layerObj_open) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -25396,9 +26209,9 @@ XS(_wrap_layerObj_open) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_open" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_open" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int)layerObj_open(arg1);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -25412,7 +26225,7 @@ XS(_wrap_layerObj_open) {
 
 XS(_wrap_layerObj_whichShapes) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     rectObj arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -25427,9 +26240,9 @@ XS(_wrap_layerObj_whichShapes) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_whichShapes" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_whichShapes" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     {
       res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_rectObj,  0 );
       if (!SWIG_IsOK(res2)) {
@@ -25454,7 +26267,7 @@ XS(_wrap_layerObj_whichShapes) {
 
 XS(_wrap_layerObj_nextShape) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -25466,9 +26279,9 @@ XS(_wrap_layerObj_nextShape) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_nextShape" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_nextShape" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (shapeObj *)layerObj_nextShape(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_shapeObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -25482,7 +26295,7 @@ XS(_wrap_layerObj_nextShape) {
 
 XS(_wrap_layerObj_close) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -25493,9 +26306,9 @@ XS(_wrap_layerObj_close) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_close" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_close" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     layerObj_close(arg1);
     ST(argvi) = sv_newmortal();
     
@@ -25509,7 +26322,7 @@ XS(_wrap_layerObj_close) {
 
 XS(_wrap_layerObj_getShape) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     resultObj *arg2 = (resultObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -25524,9 +26337,9 @@ XS(_wrap_layerObj_getShape) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getShape" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getShape" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_resultObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_getShape" "', argument " "2"" of type '" "resultObj *""'"); 
@@ -25547,7 +26360,7 @@ XS(_wrap_layerObj_getShape) {
 
 XS(_wrap_layerObj_getNumResults) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -25559,9 +26372,9 @@ XS(_wrap_layerObj_getNumResults) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNumResults" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNumResults" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int)layerObj_getNumResults(arg1);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -25575,7 +26388,7 @@ XS(_wrap_layerObj_getNumResults) {
 
 XS(_wrap_layerObj_getResultsBounds) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -25587,9 +26400,9 @@ XS(_wrap_layerObj_getResultsBounds) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResultsBounds" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResultsBounds" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (rectObj *)layerObj_getResultsBounds(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_rectObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -25603,7 +26416,7 @@ XS(_wrap_layerObj_getResultsBounds) {
 
 XS(_wrap_layerObj_getResult) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -25618,9 +26431,9 @@ XS(_wrap_layerObj_getResult) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResult" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResult" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_getResult" "', argument " "2"" of type '" "int""'");
@@ -25641,7 +26454,7 @@ XS(_wrap_layerObj_getResult) {
 
 XS(_wrap_layerObj_getClass) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -25656,9 +26469,9 @@ XS(_wrap_layerObj_getClass) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getClass" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getClass" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_getClass" "', argument " "2"" of type '" "int""'");
@@ -25679,7 +26492,7 @@ XS(_wrap_layerObj_getClass) {
 
 XS(_wrap_layerObj_getItem) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -25694,9 +26507,9 @@ XS(_wrap_layerObj_getItem) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getItem" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getItem" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_getItem" "', argument " "2"" of type '" "int""'");
@@ -25717,7 +26530,7 @@ XS(_wrap_layerObj_getItem) {
 
 XS(_wrap_layerObj_setItems) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char **arg2 = (char **) 0 ;
     int arg3 ;
     void *argp1 = 0 ;
@@ -25735,9 +26548,9 @@ XS(_wrap_layerObj_setItems) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setItems" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setItems" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_p_char, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_setItems" "', argument " "2"" of type '" "char **""'"); 
@@ -25765,7 +26578,7 @@ XS(_wrap_layerObj_setItems) {
 
 XS(_wrap_layerObj_draw) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     imageObj *arg3 = (imageObj *) 0 ;
     void *argp1 = 0 ;
@@ -25783,9 +26596,9 @@ XS(_wrap_layerObj_draw) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_draw" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_draw" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_draw" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -25813,7 +26626,7 @@ XS(_wrap_layerObj_draw) {
 
 XS(_wrap_layerObj_drawQuery) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     imageObj *arg3 = (imageObj *) 0 ;
     void *argp1 = 0 ;
@@ -25831,9 +26644,9 @@ XS(_wrap_layerObj_drawQuery) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_drawQuery" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_drawQuery" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_drawQuery" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -25861,7 +26674,7 @@ XS(_wrap_layerObj_drawQuery) {
 
 XS(_wrap_layerObj_queryByFilter) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -25880,9 +26693,9 @@ XS(_wrap_layerObj_queryByFilter) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByFilter" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByFilter" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByFilter" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -25910,7 +26723,7 @@ XS(_wrap_layerObj_queryByFilter) {
 
 XS(_wrap_layerObj_queryByAttributes) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     char *arg3 = (char *) 0 ;
     char *arg4 = (char *) 0 ;
@@ -25936,9 +26749,9 @@ XS(_wrap_layerObj_queryByAttributes) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByAttributes" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByAttributes" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByAttributes" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -25980,7 +26793,7 @@ XS(_wrap_layerObj_queryByAttributes) {
 
 XS(_wrap_layerObj_queryByPoint) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     pointObj *arg3 = (pointObj *) 0 ;
     int arg4 ;
@@ -26004,9 +26817,9 @@ XS(_wrap_layerObj_queryByPoint) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByPoint" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByPoint" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByPoint" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -26048,7 +26861,7 @@ XS(_wrap_layerObj_queryByPoint) {
 
 XS(_wrap_layerObj_queryByRect) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     rectObj arg3 ;
     void *argp1 = 0 ;
@@ -26066,9 +26879,9 @@ XS(_wrap_layerObj_queryByRect) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByRect" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByRect" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByRect" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -26100,7 +26913,7 @@ XS(_wrap_layerObj_queryByRect) {
 
 XS(_wrap_layerObj_queryByFeatures) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     int arg3 ;
     void *argp1 = 0 ;
@@ -26118,9 +26931,9 @@ XS(_wrap_layerObj_queryByFeatures) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByFeatures" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByFeatures" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByFeatures" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -26148,7 +26961,7 @@ XS(_wrap_layerObj_queryByFeatures) {
 
 XS(_wrap_layerObj_queryByShape) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     shapeObj *arg3 = (shapeObj *) 0 ;
     void *argp1 = 0 ;
@@ -26166,9 +26979,9 @@ XS(_wrap_layerObj_queryByShape) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByShape" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByShape" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByShape" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -26196,7 +27009,7 @@ XS(_wrap_layerObj_queryByShape) {
 
 XS(_wrap_layerObj_queryByIndex) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     int arg3 ;
     int arg4 ;
@@ -26220,9 +27033,9 @@ XS(_wrap_layerObj_queryByIndex) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByIndex" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByIndex" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByIndex" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -26266,7 +27079,7 @@ XS(_wrap_layerObj_queryByIndex) {
 
 XS(_wrap_layerObj_getResults) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -26278,9 +27091,9 @@ XS(_wrap_layerObj_getResults) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResults" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResults" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (resultCacheObj *)layerObj_getResults(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_resultCacheObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -26294,7 +27107,7 @@ XS(_wrap_layerObj_getResults) {
 
 XS(_wrap_layerObj_setFilter) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -26310,9 +27123,9 @@ XS(_wrap_layerObj_setFilter) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setFilter" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setFilter" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_setFilter" "', argument " "2"" of type '" "char *""'");
@@ -26333,7 +27146,7 @@ XS(_wrap_layerObj_setFilter) {
 
 XS(_wrap_layerObj_getFilterString) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -26345,9 +27158,9 @@ XS(_wrap_layerObj_getFilterString) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getFilterString" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getFilterString" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *)layerObj_getFilterString(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -26362,7 +27175,7 @@ XS(_wrap_layerObj_getFilterString) {
 
 XS(_wrap_layerObj_setWKTProjection) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -26378,9 +27191,9 @@ XS(_wrap_layerObj_setWKTProjection) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setWKTProjection" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setWKTProjection" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_setWKTProjection" "', argument " "2"" of type '" "char *""'");
@@ -26401,7 +27214,7 @@ XS(_wrap_layerObj_setWKTProjection) {
 
 XS(_wrap_layerObj_getProjection) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -26413,9 +27226,9 @@ XS(_wrap_layerObj_getProjection) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProjection" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProjection" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *)layerObj_getProjection(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -26430,7 +27243,7 @@ XS(_wrap_layerObj_getProjection) {
 
 XS(_wrap_layerObj_setProjection) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -26446,9 +27259,9 @@ XS(_wrap_layerObj_setProjection) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProjection" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProjection" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_setProjection" "', argument " "2"" of type '" "char *""'");
@@ -26469,7 +27282,7 @@ XS(_wrap_layerObj_setProjection) {
 
 XS(_wrap_layerObj_addFeature) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     shapeObj *arg2 = (shapeObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -26484,9 +27297,9 @@ XS(_wrap_layerObj_addFeature) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_addFeature" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_addFeature" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_shapeObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_addFeature" "', argument " "2"" of type '" "shapeObj *""'"); 
@@ -26507,7 +27320,7 @@ XS(_wrap_layerObj_addFeature) {
 
 XS(_wrap_layerObj_getNumFeatures) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -26519,9 +27332,9 @@ XS(_wrap_layerObj_getNumFeatures) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNumFeatures" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNumFeatures" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int)layerObj_getNumFeatures(arg1);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -26535,7 +27348,7 @@ XS(_wrap_layerObj_getNumFeatures) {
 
 XS(_wrap_layerObj_getExtent) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -26547,9 +27360,9 @@ XS(_wrap_layerObj_getExtent) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getExtent" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getExtent" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (rectObj *)layerObj_getExtent(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_rectObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -26563,7 +27376,7 @@ XS(_wrap_layerObj_getExtent) {
 
 XS(_wrap_layerObj_setExtent) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     double arg2 = (double) -1.0 ;
     double arg3 = (double) -1.0 ;
     double arg4 = (double) -1.0 ;
@@ -26587,9 +27400,9 @@ XS(_wrap_layerObj_setExtent) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setExtent" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setExtent" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     if (items > 1) {
       ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
       if (!SWIG_IsOK(ecode2)) {
@@ -26639,7 +27452,7 @@ XS(_wrap_layerObj_setExtent) {
 
 XS(_wrap_layerObj_getMetaData) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -26655,9 +27468,9 @@ XS(_wrap_layerObj_getMetaData) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getMetaData" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getMetaData" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_getMetaData" "', argument " "2"" of type '" "char *""'");
@@ -26678,7 +27491,7 @@ XS(_wrap_layerObj_getMetaData) {
 
 XS(_wrap_layerObj_setMetaData) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -26698,9 +27511,9 @@ XS(_wrap_layerObj_setMetaData) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setMetaData" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setMetaData" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_setMetaData" "', argument " "2"" of type '" "char *""'");
@@ -26728,7 +27541,7 @@ XS(_wrap_layerObj_setMetaData) {
 
 XS(_wrap_layerObj_removeMetaData) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -26744,9 +27557,9 @@ XS(_wrap_layerObj_removeMetaData) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_removeMetaData" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_removeMetaData" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_removeMetaData" "', argument " "2"" of type '" "char *""'");
@@ -26767,7 +27580,7 @@ XS(_wrap_layerObj_removeMetaData) {
 
 XS(_wrap_layerObj_getFirstMetaDataKey) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -26779,9 +27592,9 @@ XS(_wrap_layerObj_getFirstMetaDataKey) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getFirstMetaDataKey" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getFirstMetaDataKey" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *)layerObj_getFirstMetaDataKey(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -26795,7 +27608,7 @@ XS(_wrap_layerObj_getFirstMetaDataKey) {
 
 XS(_wrap_layerObj_getNextMetaDataKey) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -26811,9 +27624,9 @@ XS(_wrap_layerObj_getNextMetaDataKey) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNextMetaDataKey" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNextMetaDataKey" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_getNextMetaDataKey" "', argument " "2"" of type '" "char *""'");
@@ -26834,7 +27647,7 @@ XS(_wrap_layerObj_getNextMetaDataKey) {
 
 XS(_wrap_layerObj_getWMSFeatureInfoURL) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     int arg3 ;
     int arg4 ;
@@ -26862,9 +27675,9 @@ XS(_wrap_layerObj_getWMSFeatureInfoURL) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getWMSFeatureInfoURL" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getWMSFeatureInfoURL" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_getWMSFeatureInfoURL" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -26914,7 +27727,7 @@ XS(_wrap_layerObj_getWMSFeatureInfoURL) {
 
 XS(_wrap_layerObj_executeWFSGetFeature) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     layerObj *arg2 = (layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -26929,9 +27742,9 @@ XS(_wrap_layerObj_executeWFSGetFeature) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_executeWFSGetFeature" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_executeWFSGetFeature" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_executeWFSGetFeature" "', argument " "2"" of type '" "layerObj *""'"); 
@@ -26953,7 +27766,7 @@ XS(_wrap_layerObj_executeWFSGetFeature) {
 
 XS(_wrap_layerObj_applySLD) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -26973,9 +27786,9 @@ XS(_wrap_layerObj_applySLD) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_applySLD" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_applySLD" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_applySLD" "', argument " "2"" of type '" "char *""'");
@@ -27003,7 +27816,7 @@ XS(_wrap_layerObj_applySLD) {
 
 XS(_wrap_layerObj_applySLDURL) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -27023,9 +27836,9 @@ XS(_wrap_layerObj_applySLDURL) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_applySLDURL" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_applySLDURL" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_applySLDURL" "', argument " "2"" of type '" "char *""'");
@@ -27053,7 +27866,7 @@ XS(_wrap_layerObj_applySLDURL) {
 
 XS(_wrap_layerObj_generateSLD) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27065,9 +27878,9 @@ XS(_wrap_layerObj_generateSLD) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_generateSLD" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_generateSLD" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (char *)layerObj_generateSLD(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -27082,7 +27895,7 @@ XS(_wrap_layerObj_generateSLD) {
 
 XS(_wrap_layerObj_isVisible) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27094,9 +27907,9 @@ XS(_wrap_layerObj_isVisible) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_isVisible" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_isVisible" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int)layerObj_isVisible(arg1);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -27110,7 +27923,7 @@ XS(_wrap_layerObj_isVisible) {
 
 XS(_wrap_layerObj_moveClassUp) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -27125,9 +27938,9 @@ XS(_wrap_layerObj_moveClassUp) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_moveClassUp" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_moveClassUp" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_moveClassUp" "', argument " "2"" of type '" "int""'");
@@ -27148,7 +27961,7 @@ XS(_wrap_layerObj_moveClassUp) {
 
 XS(_wrap_layerObj_moveClassDown) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -27163,9 +27976,9 @@ XS(_wrap_layerObj_moveClassDown) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_moveClassDown" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_moveClassDown" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_moveClassDown" "', argument " "2"" of type '" "int""'");
@@ -27186,7 +27999,7 @@ XS(_wrap_layerObj_moveClassDown) {
 
 XS(_wrap_layerObj_setProcessingKey) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -27205,9 +28018,9 @@ XS(_wrap_layerObj_setProcessingKey) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProcessingKey" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProcessingKey" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_setProcessingKey" "', argument " "2"" of type '" "char const *""'");
@@ -27235,7 +28048,7 @@ XS(_wrap_layerObj_setProcessingKey) {
 
 XS(_wrap_layerObj_setProcessing) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -27250,9 +28063,9 @@ XS(_wrap_layerObj_setProcessing) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProcessing" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProcessing" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_setProcessing" "', argument " "2"" of type '" "char const *""'");
@@ -27273,7 +28086,7 @@ XS(_wrap_layerObj_setProcessing) {
 
 XS(_wrap_layerObj_addProcessing) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -27288,9 +28101,9 @@ XS(_wrap_layerObj_addProcessing) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_addProcessing" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_addProcessing" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_addProcessing" "', argument " "2"" of type '" "char const *""'");
@@ -27311,7 +28124,7 @@ XS(_wrap_layerObj_addProcessing) {
 
 XS(_wrap_layerObj_getProcessing) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -27326,9 +28139,9 @@ XS(_wrap_layerObj_getProcessing) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProcessing" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProcessing" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_getProcessing" "', argument " "2"" of type '" "int""'");
@@ -27349,7 +28162,7 @@ XS(_wrap_layerObj_getProcessing) {
 
 XS(_wrap_layerObj_getProcessingKey) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -27365,9 +28178,9 @@ XS(_wrap_layerObj_getProcessingKey) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProcessingKey" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProcessingKey" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_getProcessingKey" "', argument " "2"" of type '" "char const *""'");
@@ -27388,7 +28201,7 @@ XS(_wrap_layerObj_getProcessingKey) {
 
 XS(_wrap_layerObj_clearProcessing) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27400,9 +28213,9 @@ XS(_wrap_layerObj_clearProcessing) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_clearProcessing" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_clearProcessing" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     result = (int)layerObj_clearProcessing(arg1);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -27416,7 +28229,7 @@ XS(_wrap_layerObj_clearProcessing) {
 
 XS(_wrap_layerObj_setConnectionType) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     int arg2 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -27435,9 +28248,9 @@ XS(_wrap_layerObj_setConnectionType) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setConnectionType" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setConnectionType" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_setConnectionType" "', argument " "2"" of type '" "int""'");
@@ -27465,7 +28278,7 @@ XS(_wrap_layerObj_setConnectionType) {
 
 XS(_wrap_layerObj_getClassIndex) {
   {
-    layerObj *arg1 = (layerObj *) 0 ;
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
     mapObj *arg2 = (mapObj *) 0 ;
     shapeObj *arg3 = (shapeObj *) 0 ;
     int *arg4 = (int *) NULL ;
@@ -27489,9 +28302,9 @@ XS(_wrap_layerObj_getClassIndex) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getClassIndex" "', argument " "1"" of type '" "layerObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getClassIndex" "', argument " "1"" of type '" "struct layerObj *""'"); 
     }
-    arg1 = (layerObj *)(argp1);
+    arg1 = (struct layerObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_getClassIndex" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -27535,9 +28348,75 @@ XS(_wrap_layerObj_getClassIndex) {
 }
 
 
+XS(_wrap_layerObj_getGeomTransform) {
+  {
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: layerObj_getGeomTransform(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getGeomTransform" "', argument " "1"" of type '" "struct layerObj *""'"); 
+    }
+    arg1 = (struct layerObj *)(argp1);
+    result = (char *)layerObj_getGeomTransform(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
+XS(_wrap_layerObj_setGeomTransform) {
+  {
+    struct layerObj *arg1 = (struct layerObj *) 0 ;
+    char *arg2 = (char *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int res2 ;
+    char *buf2 = 0 ;
+    int alloc2 = 0 ;
+    int argvi = 0;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: layerObj_setGeomTransform(self,transform);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setGeomTransform" "', argument " "1"" of type '" "struct layerObj *""'"); 
+    }
+    arg1 = (struct layerObj *)(argp1);
+    res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_setGeomTransform" "', argument " "2"" of type '" "char *""'");
+    }
+    arg2 = (char *)(buf2);
+    layerObj_setGeomTransform(arg1,arg2);
+    ST(argvi) = sv_newmortal();
+    
+    if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+    XSRETURN(argvi);
+  fail:
+    
+    if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_mapObj_name_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -27552,9 +28431,9 @@ XS(_wrap_mapObj_name_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_name_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_name_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_name_set" "', argument " "2"" of type '" "char *""'");
@@ -27583,7 +28462,7 @@ XS(_wrap_mapObj_name_set) {
 
 XS(_wrap_mapObj_name_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27595,9 +28474,9 @@ XS(_wrap_mapObj_name_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_name_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_name_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (char *) ((arg1)->name);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -27611,7 +28490,7 @@ XS(_wrap_mapObj_name_get) {
 
 XS(_wrap_mapObj_status_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -27625,9 +28504,9 @@ XS(_wrap_mapObj_status_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_status_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_status_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_status_set" "', argument " "2"" of type '" "int""'");
@@ -27648,7 +28527,7 @@ XS(_wrap_mapObj_status_set) {
 
 XS(_wrap_mapObj_status_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27660,9 +28539,9 @@ XS(_wrap_mapObj_status_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_status_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_status_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->status);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -27676,7 +28555,7 @@ XS(_wrap_mapObj_status_get) {
 
 XS(_wrap_mapObj_height_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -27690,9 +28569,9 @@ XS(_wrap_mapObj_height_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_height_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_height_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_height_set" "', argument " "2"" of type '" "int""'");
@@ -27713,7 +28592,7 @@ XS(_wrap_mapObj_height_set) {
 
 XS(_wrap_mapObj_height_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27725,9 +28604,9 @@ XS(_wrap_mapObj_height_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_height_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_height_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->height);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -27741,7 +28620,7 @@ XS(_wrap_mapObj_height_get) {
 
 XS(_wrap_mapObj_width_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -27755,9 +28634,9 @@ XS(_wrap_mapObj_width_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_width_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_width_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_width_set" "', argument " "2"" of type '" "int""'");
@@ -27778,7 +28657,7 @@ XS(_wrap_mapObj_width_set) {
 
 XS(_wrap_mapObj_width_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27790,9 +28669,9 @@ XS(_wrap_mapObj_width_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_width_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_width_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->width);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -27806,7 +28685,7 @@ XS(_wrap_mapObj_width_get) {
 
 XS(_wrap_mapObj_maxsize_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -27820,9 +28699,9 @@ XS(_wrap_mapObj_maxsize_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxsize_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxsize_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_maxsize_set" "', argument " "2"" of type '" "int""'");
@@ -27843,7 +28722,7 @@ XS(_wrap_mapObj_maxsize_set) {
 
 XS(_wrap_mapObj_maxsize_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27855,9 +28734,9 @@ XS(_wrap_mapObj_maxsize_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxsize_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxsize_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->maxsize);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -27871,7 +28750,7 @@ XS(_wrap_mapObj_maxsize_get) {
 
 XS(_wrap_mapObj_refcount_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27883,9 +28762,9 @@ XS(_wrap_mapObj_refcount_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_refcount_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_refcount_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->refcount);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -27899,7 +28778,7 @@ XS(_wrap_mapObj_refcount_get) {
 
 XS(_wrap_mapObj_numlayers_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27911,9 +28790,9 @@ XS(_wrap_mapObj_numlayers_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_numlayers_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_numlayers_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->numlayers);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -27927,7 +28806,7 @@ XS(_wrap_mapObj_numlayers_get) {
 
 XS(_wrap_mapObj_maxlayers_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27939,9 +28818,9 @@ XS(_wrap_mapObj_maxlayers_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxlayers_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxlayers_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->maxlayers);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -27955,7 +28834,7 @@ XS(_wrap_mapObj_maxlayers_get) {
 
 XS(_wrap_mapObj_symbolset_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27967,9 +28846,9 @@ XS(_wrap_mapObj_symbolset_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_symbolset_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_symbolset_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (symbolSetObj *)& ((arg1)->symbolset);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_symbolSetObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -27983,7 +28862,7 @@ XS(_wrap_mapObj_symbolset_get) {
 
 XS(_wrap_mapObj_fontset_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -27995,9 +28874,9 @@ XS(_wrap_mapObj_fontset_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_fontset_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_fontset_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (fontSetObj *)& ((arg1)->fontset);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_fontSetObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -28011,7 +28890,7 @@ XS(_wrap_mapObj_fontset_get) {
 
 XS(_wrap_mapObj_labelcache_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28023,9 +28902,9 @@ XS(_wrap_mapObj_labelcache_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_labelcache_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_labelcache_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (labelCacheObj *)& ((arg1)->labelcache);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelCacheObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -28039,7 +28918,7 @@ XS(_wrap_mapObj_labelcache_get) {
 
 XS(_wrap_mapObj_transparent_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28053,9 +28932,9 @@ XS(_wrap_mapObj_transparent_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_transparent_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_transparent_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_transparent_set" "', argument " "2"" of type '" "int""'");
@@ -28076,7 +28955,7 @@ XS(_wrap_mapObj_transparent_set) {
 
 XS(_wrap_mapObj_transparent_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28088,9 +28967,9 @@ XS(_wrap_mapObj_transparent_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_transparent_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_transparent_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->transparent);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -28104,7 +28983,7 @@ XS(_wrap_mapObj_transparent_get) {
 
 XS(_wrap_mapObj_interlace_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28118,9 +28997,9 @@ XS(_wrap_mapObj_interlace_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_interlace_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_interlace_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_interlace_set" "', argument " "2"" of type '" "int""'");
@@ -28141,7 +29020,7 @@ XS(_wrap_mapObj_interlace_set) {
 
 XS(_wrap_mapObj_interlace_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28153,9 +29032,9 @@ XS(_wrap_mapObj_interlace_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_interlace_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_interlace_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->interlace);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -28169,7 +29048,7 @@ XS(_wrap_mapObj_interlace_get) {
 
 XS(_wrap_mapObj_imagequality_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28183,9 +29062,9 @@ XS(_wrap_mapObj_imagequality_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagequality_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagequality_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_imagequality_set" "', argument " "2"" of type '" "int""'");
@@ -28206,7 +29085,7 @@ XS(_wrap_mapObj_imagequality_set) {
 
 XS(_wrap_mapObj_imagequality_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28218,9 +29097,9 @@ XS(_wrap_mapObj_imagequality_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagequality_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagequality_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->imagequality);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -28234,7 +29113,7 @@ XS(_wrap_mapObj_imagequality_get) {
 
 XS(_wrap_mapObj_extent_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     rectObj *arg2 = (rectObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28248,9 +29127,9 @@ XS(_wrap_mapObj_extent_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_extent_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_extent_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_rectObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_extent_set" "', argument " "2"" of type '" "rectObj *""'"); 
@@ -28271,7 +29150,7 @@ XS(_wrap_mapObj_extent_set) {
 
 XS(_wrap_mapObj_extent_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28283,9 +29162,9 @@ XS(_wrap_mapObj_extent_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_extent_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_extent_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (rectObj *)& ((arg1)->extent);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_rectObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -28299,7 +29178,7 @@ XS(_wrap_mapObj_extent_get) {
 
 XS(_wrap_mapObj_cellsize_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28313,9 +29192,9 @@ XS(_wrap_mapObj_cellsize_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_cellsize_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_cellsize_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_cellsize_set" "', argument " "2"" of type '" "double""'");
@@ -28336,7 +29215,7 @@ XS(_wrap_mapObj_cellsize_set) {
 
 XS(_wrap_mapObj_cellsize_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28348,9 +29227,9 @@ XS(_wrap_mapObj_cellsize_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_cellsize_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_cellsize_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (double) ((arg1)->cellsize);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -28364,7 +29243,7 @@ XS(_wrap_mapObj_cellsize_get) {
 
 XS(_wrap_mapObj_units_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     enum MS_UNITS arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28378,9 +29257,9 @@ XS(_wrap_mapObj_units_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_units_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_units_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_units_set" "', argument " "2"" of type '" "enum MS_UNITS""'");
@@ -28401,7 +29280,7 @@ XS(_wrap_mapObj_units_set) {
 
 XS(_wrap_mapObj_units_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28413,9 +29292,9 @@ XS(_wrap_mapObj_units_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_units_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_units_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (enum MS_UNITS) ((arg1)->units);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -28429,7 +29308,7 @@ XS(_wrap_mapObj_units_get) {
 
 XS(_wrap_mapObj_scaledenom_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28443,9 +29322,9 @@ XS(_wrap_mapObj_scaledenom_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaledenom_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaledenom_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_scaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -28466,7 +29345,7 @@ XS(_wrap_mapObj_scaledenom_set) {
 
 XS(_wrap_mapObj_scaledenom_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28478,9 +29357,9 @@ XS(_wrap_mapObj_scaledenom_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaledenom_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaledenom_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (double) ((arg1)->scaledenom);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -28494,7 +29373,7 @@ XS(_wrap_mapObj_scaledenom_get) {
 
 XS(_wrap_mapObj_resolution_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28508,9 +29387,9 @@ XS(_wrap_mapObj_resolution_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_resolution_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_resolution_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_resolution_set" "', argument " "2"" of type '" "double""'");
@@ -28531,7 +29410,7 @@ XS(_wrap_mapObj_resolution_set) {
 
 XS(_wrap_mapObj_resolution_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28543,9 +29422,9 @@ XS(_wrap_mapObj_resolution_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_resolution_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_resolution_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (double) ((arg1)->resolution);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -28559,7 +29438,7 @@ XS(_wrap_mapObj_resolution_get) {
 
 XS(_wrap_mapObj_defresolution_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28573,9 +29452,9 @@ XS(_wrap_mapObj_defresolution_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_defresolution_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_defresolution_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_defresolution_set" "', argument " "2"" of type '" "double""'");
@@ -28596,7 +29475,7 @@ XS(_wrap_mapObj_defresolution_set) {
 
 XS(_wrap_mapObj_defresolution_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28608,9 +29487,9 @@ XS(_wrap_mapObj_defresolution_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_defresolution_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_defresolution_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (double) ((arg1)->defresolution);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -28624,7 +29503,7 @@ XS(_wrap_mapObj_defresolution_get) {
 
 XS(_wrap_mapObj_shapepath_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28639,9 +29518,9 @@ XS(_wrap_mapObj_shapepath_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_shapepath_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_shapepath_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_shapepath_set" "', argument " "2"" of type '" "char *""'");
@@ -28670,7 +29549,7 @@ XS(_wrap_mapObj_shapepath_set) {
 
 XS(_wrap_mapObj_shapepath_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28682,9 +29561,9 @@ XS(_wrap_mapObj_shapepath_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_shapepath_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_shapepath_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (char *) ((arg1)->shapepath);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -28698,7 +29577,7 @@ XS(_wrap_mapObj_shapepath_get) {
 
 XS(_wrap_mapObj_mappath_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28713,9 +29592,9 @@ XS(_wrap_mapObj_mappath_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_mappath_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_mappath_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_mappath_set" "', argument " "2"" of type '" "char *""'");
@@ -28744,7 +29623,7 @@ XS(_wrap_mapObj_mappath_set) {
 
 XS(_wrap_mapObj_mappath_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28756,9 +29635,9 @@ XS(_wrap_mapObj_mappath_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_mappath_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_mappath_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (char *) ((arg1)->mappath);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -28772,7 +29651,7 @@ XS(_wrap_mapObj_mappath_get) {
 
 XS(_wrap_mapObj_imagecolor_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     colorObj *arg2 = (colorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -28786,9 +29665,9 @@ XS(_wrap_mapObj_imagecolor_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagecolor_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagecolor_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_imagecolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -28809,7 +29688,7 @@ XS(_wrap_mapObj_imagecolor_set) {
 
 XS(_wrap_mapObj_imagecolor_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28821,9 +29700,9 @@ XS(_wrap_mapObj_imagecolor_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagecolor_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagecolor_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (colorObj *)& ((arg1)->imagecolor);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -28837,7 +29716,7 @@ XS(_wrap_mapObj_imagecolor_get) {
 
 XS(_wrap_mapObj_numoutputformats_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28849,9 +29728,9 @@ XS(_wrap_mapObj_numoutputformats_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_numoutputformats_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_numoutputformats_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->numoutputformats);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -28863,37 +29742,9 @@ XS(_wrap_mapObj_numoutputformats_get) {
 }
 
 
-XS(_wrap_mapObj_outputformatlist_get) {
-  {
-    mapObj *arg1 = (mapObj *) 0 ;
-    void *argp1 = 0 ;
-    int res1 = 0 ;
-    int argvi = 0;
-    outputFormatObj **result = 0 ;
-    dXSARGS;
-    
-    if ((items < 1) || (items > 1)) {
-      SWIG_croak("Usage: mapObj_outputformatlist_get(self);");
-    }
-    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
-    if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_outputformatlist_get" "', argument " "1"" of type '" "mapObj *""'"); 
-    }
-    arg1 = (mapObj *)(argp1);
-    result = (outputFormatObj **) ((arg1)->outputformatlist);
-    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_outputFormatObj, 0 | 0); argvi++ ;
-    
-    XSRETURN(argvi);
-  fail:
-    
-    SWIG_croak_null();
-  }
-}
-
-
 XS(_wrap_mapObj_outputformat_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28905,9 +29756,9 @@ XS(_wrap_mapObj_outputformat_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_outputformat_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_outputformat_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (outputFormatObj *) ((arg1)->outputformat);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_outputFormatObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -28921,7 +29772,7 @@ XS(_wrap_mapObj_outputformat_get) {
 
 XS(_wrap_mapObj_imagetype_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28933,9 +29784,9 @@ XS(_wrap_mapObj_imagetype_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagetype_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagetype_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (char *) ((arg1)->imagetype);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -28949,7 +29800,7 @@ XS(_wrap_mapObj_imagetype_get) {
 
 XS(_wrap_mapObj_reference_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28961,9 +29812,9 @@ XS(_wrap_mapObj_reference_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_reference_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_reference_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (referenceMapObj *)& ((arg1)->reference);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_referenceMapObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -28977,7 +29828,7 @@ XS(_wrap_mapObj_reference_get) {
 
 XS(_wrap_mapObj_scalebar_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -28989,9 +29840,9 @@ XS(_wrap_mapObj_scalebar_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scalebar_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scalebar_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (scalebarObj *)& ((arg1)->scalebar);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_scalebarObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -29005,7 +29856,7 @@ XS(_wrap_mapObj_scalebar_get) {
 
 XS(_wrap_mapObj_legend_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -29017,9 +29868,9 @@ XS(_wrap_mapObj_legend_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_legend_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_legend_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (legendObj *)& ((arg1)->legend);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_legendObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -29033,7 +29884,7 @@ XS(_wrap_mapObj_legend_get) {
 
 XS(_wrap_mapObj_querymap_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -29045,9 +29896,9 @@ XS(_wrap_mapObj_querymap_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_querymap_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_querymap_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (queryMapObj *)& ((arg1)->querymap);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_queryMapObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -29061,7 +29912,7 @@ XS(_wrap_mapObj_querymap_get) {
 
 XS(_wrap_mapObj_web_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -29073,9 +29924,9 @@ XS(_wrap_mapObj_web_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_web_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_web_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (webObj *)& ((arg1)->web);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_webObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -29089,7 +29940,7 @@ XS(_wrap_mapObj_web_get) {
 
 XS(_wrap_mapObj_layerorder_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int *arg2 = (int *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -29103,9 +29954,9 @@ XS(_wrap_mapObj_layerorder_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_layerorder_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_layerorder_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_int, SWIG_POINTER_DISOWN |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_layerorder_set" "', argument " "2"" of type '" "int *""'"); 
@@ -29126,7 +29977,7 @@ XS(_wrap_mapObj_layerorder_set) {
 
 XS(_wrap_mapObj_layerorder_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -29138,9 +29989,9 @@ XS(_wrap_mapObj_layerorder_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_layerorder_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_layerorder_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int *) ((arg1)->layerorder);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 | 0); argvi++ ;
     
@@ -29154,7 +30005,7 @@ XS(_wrap_mapObj_layerorder_get) {
 
 XS(_wrap_mapObj_debug_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -29168,9 +30019,9 @@ XS(_wrap_mapObj_debug_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_debug_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_debug_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_debug_set" "', argument " "2"" of type '" "int""'");
@@ -29191,7 +30042,7 @@ XS(_wrap_mapObj_debug_set) {
 
 XS(_wrap_mapObj_debug_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -29203,9 +30054,9 @@ XS(_wrap_mapObj_debug_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_debug_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_debug_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int) ((arg1)->debug);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -29219,7 +30070,7 @@ XS(_wrap_mapObj_debug_get) {
 
 XS(_wrap_mapObj_datapattern_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -29234,9 +30085,9 @@ XS(_wrap_mapObj_datapattern_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_datapattern_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_datapattern_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_datapattern_set" "', argument " "2"" of type '" "char *""'");
@@ -29265,7 +30116,7 @@ XS(_wrap_mapObj_datapattern_set) {
 
 XS(_wrap_mapObj_datapattern_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -29277,9 +30128,9 @@ XS(_wrap_mapObj_datapattern_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_datapattern_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_datapattern_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (char *) ((arg1)->datapattern);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -29293,7 +30144,7 @@ XS(_wrap_mapObj_datapattern_get) {
 
 XS(_wrap_mapObj_templatepattern_set) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -29308,9 +30159,9 @@ XS(_wrap_mapObj_templatepattern_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_templatepattern_set" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_templatepattern_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_templatepattern_set" "', argument " "2"" of type '" "char *""'");
@@ -29339,7 +30190,7 @@ XS(_wrap_mapObj_templatepattern_set) {
 
 XS(_wrap_mapObj_templatepattern_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -29351,9 +30202,9 @@ XS(_wrap_mapObj_templatepattern_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_templatepattern_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_templatepattern_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (char *) ((arg1)->templatepattern);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -29367,7 +30218,7 @@ XS(_wrap_mapObj_templatepattern_get) {
 
 XS(_wrap_mapObj_configoptions_get) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -29379,9 +30230,9 @@ XS(_wrap_mapObj_configoptions_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_configoptions_get" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_configoptions_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (hashTableObj *)& ((arg1)->configoptions);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -29400,7 +30251,7 @@ XS(_wrap_new_mapObj) {
     char *buf1 = 0 ;
     int alloc1 = 0 ;
     int argvi = 0;
-    mapObj *result = 0 ;
+    struct mapObj *result = 0 ;
     dXSARGS;
     
     if ((items < 0) || (items > 1)) {
@@ -29413,7 +30264,7 @@ XS(_wrap_new_mapObj) {
       }
       arg1 = (char *)(buf1);
     }
-    result = (mapObj *)new_mapObj(arg1);
+    result = (struct mapObj *)new_mapObj(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mapObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
     XSRETURN(argvi);
@@ -29426,7 +30277,7 @@ XS(_wrap_new_mapObj) {
 
 XS(_wrap_delete_mapObj) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -29437,9 +30288,9 @@ XS(_wrap_delete_mapObj) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, SWIG_POINTER_DISOWN |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mapObj" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mapObj" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     delete_mapObj(arg1);
     ST(argvi) = sv_newmortal();
     
@@ -29453,7 +30304,7 @@ XS(_wrap_delete_mapObj) {
 
 XS(_wrap_mapObj_clone) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -29465,9 +30316,9 @@ XS(_wrap_mapObj_clone) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_clone" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_clone" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (mapObj *)mapObj_clone(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mapObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -29481,7 +30332,7 @@ XS(_wrap_mapObj_clone) {
 
 XS(_wrap_mapObj_insertLayer) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     layerObj *arg2 = (layerObj *) 0 ;
     int arg3 = (int) -1 ;
     void *argp1 = 0 ;
@@ -29499,9 +30350,9 @@ XS(_wrap_mapObj_insertLayer) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_insertLayer" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_insertLayer" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_layerObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_insertLayer" "', argument " "2"" of type '" "layerObj *""'"); 
@@ -29531,7 +30382,7 @@ XS(_wrap_mapObj_insertLayer) {
 
 XS(_wrap_mapObj_removeLayer) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -29546,9 +30397,9 @@ XS(_wrap_mapObj_removeLayer) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeLayer" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeLayer" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_removeLayer" "', argument " "2"" of type '" "int""'");
@@ -29569,7 +30420,7 @@ XS(_wrap_mapObj_removeLayer) {
 
 XS(_wrap_mapObj_setExtent) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     double arg2 ;
     double arg3 ;
     double arg4 ;
@@ -29593,9 +30444,9 @@ XS(_wrap_mapObj_setExtent) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setExtent" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setExtent" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_setExtent" "', argument " "2"" of type '" "double""'");
@@ -29637,7 +30488,7 @@ XS(_wrap_mapObj_setExtent) {
 
 XS(_wrap_mapObj_offsetExtent) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     double arg2 ;
     double arg3 ;
     void *argp1 = 0 ;
@@ -29655,9 +30506,9 @@ XS(_wrap_mapObj_offsetExtent) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_offsetExtent" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_offsetExtent" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_offsetExtent" "', argument " "2"" of type '" "double""'");
@@ -29685,7 +30536,7 @@ XS(_wrap_mapObj_offsetExtent) {
 
 XS(_wrap_mapObj_scaleExtent) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     double arg2 ;
     double arg3 ;
     double arg4 ;
@@ -29706,9 +30557,9 @@ XS(_wrap_mapObj_scaleExtent) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaleExtent" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaleExtent" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_scaleExtent" "', argument " "2"" of type '" "double""'");
@@ -29743,7 +30594,7 @@ XS(_wrap_mapObj_scaleExtent) {
 
 XS(_wrap_mapObj_setCenter) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     pointObj *arg2 = (pointObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -29758,9 +30609,9 @@ XS(_wrap_mapObj_setCenter) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setCenter" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setCenter" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_pointObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setCenter" "', argument " "2"" of type '" "pointObj *""'"); 
@@ -29781,7 +30632,7 @@ XS(_wrap_mapObj_setCenter) {
 
 XS(_wrap_mapObj_setSize) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     int arg3 ;
     void *argp1 = 0 ;
@@ -29799,9 +30650,9 @@ XS(_wrap_mapObj_setSize) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setSize" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setSize" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_setSize" "', argument " "2"" of type '" "int""'");
@@ -29829,7 +30680,7 @@ XS(_wrap_mapObj_setSize) {
 
 XS(_wrap_mapObj_setRotation) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -29844,9 +30695,9 @@ XS(_wrap_mapObj_setRotation) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setRotation" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setRotation" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_setRotation" "', argument " "2"" of type '" "double""'");
@@ -29867,7 +30718,7 @@ XS(_wrap_mapObj_setRotation) {
 
 XS(_wrap_mapObj_getLayer) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -29882,9 +30733,9 @@ XS(_wrap_mapObj_getLayer) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayer" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayer" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_getLayer" "', argument " "2"" of type '" "int""'");
@@ -29905,7 +30756,7 @@ XS(_wrap_mapObj_getLayer) {
 
 XS(_wrap_mapObj_getLayerByName) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -29921,9 +30772,9 @@ XS(_wrap_mapObj_getLayerByName) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayerByName" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayerByName" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_getLayerByName" "', argument " "2"" of type '" "char *""'");
@@ -29944,7 +30795,7 @@ XS(_wrap_mapObj_getLayerByName) {
 
 XS(_wrap_mapObj_getSymbolByName) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -29960,9 +30811,9 @@ XS(_wrap_mapObj_getSymbolByName) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getSymbolByName" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getSymbolByName" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_getSymbolByName" "', argument " "2"" of type '" "char *""'");
@@ -29983,7 +30834,7 @@ XS(_wrap_mapObj_getSymbolByName) {
 
 XS(_wrap_mapObj_prepareQuery) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -29994,9 +30845,9 @@ XS(_wrap_mapObj_prepareQuery) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_prepareQuery" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_prepareQuery" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     mapObj_prepareQuery(arg1);
     ST(argvi) = sv_newmortal();
     
@@ -30010,7 +30861,7 @@ XS(_wrap_mapObj_prepareQuery) {
 
 XS(_wrap_mapObj_prepareImage) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -30022,9 +30873,9 @@ XS(_wrap_mapObj_prepareImage) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_prepareImage" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_prepareImage" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (imageObj *)mapObj_prepareImage(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_imageObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -30038,7 +30889,7 @@ XS(_wrap_mapObj_prepareImage) {
 
 XS(_wrap_mapObj_setImageType) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30053,9 +30904,9 @@ XS(_wrap_mapObj_setImageType) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setImageType" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setImageType" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setImageType" "', argument " "2"" of type '" "char *""'");
@@ -30076,7 +30927,7 @@ XS(_wrap_mapObj_setImageType) {
 
 XS(_wrap_mapObj_selectOutputFormat) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30091,9 +30942,9 @@ XS(_wrap_mapObj_selectOutputFormat) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_selectOutputFormat" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_selectOutputFormat" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_selectOutputFormat" "', argument " "2"" of type '" "char *""'");
@@ -30112,9 +30963,47 @@ XS(_wrap_mapObj_selectOutputFormat) {
 }
 
 
+XS(_wrap_mapObj_getOutputFormat) {
+  {
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
+    int arg2 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int val2 ;
+    int ecode2 = 0 ;
+    int argvi = 0;
+    outputFormatObj *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 2) || (items > 2)) {
+      SWIG_croak("Usage: mapObj_getOutputFormat(self,i);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getOutputFormat" "', argument " "1"" of type '" "struct mapObj *""'"); 
+    }
+    arg1 = (struct mapObj *)(argp1);
+    ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
+    if (!SWIG_IsOK(ecode2)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_getOutputFormat" "', argument " "2"" of type '" "int""'");
+    } 
+    arg2 = (int)(val2);
+    result = (outputFormatObj *)mapObj_getOutputFormat(arg1,arg2);
+    ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_outputFormatObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
+    
+    
+    XSRETURN(argvi);
+  fail:
+    
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_mapObj_setOutputFormat) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     outputFormatObj *arg2 = (outputFormatObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30128,9 +31017,9 @@ XS(_wrap_mapObj_setOutputFormat) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setOutputFormat" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setOutputFormat" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_outputFormatObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setOutputFormat" "', argument " "2"" of type '" "outputFormatObj *""'"); 
@@ -30151,7 +31040,7 @@ XS(_wrap_mapObj_setOutputFormat) {
 
 XS(_wrap_mapObj_draw) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -30163,9 +31052,9 @@ XS(_wrap_mapObj_draw) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_draw" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_draw" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (imageObj *)mapObj_draw(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_imageObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -30179,7 +31068,7 @@ XS(_wrap_mapObj_draw) {
 
 XS(_wrap_mapObj_drawQuery) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -30191,9 +31080,9 @@ XS(_wrap_mapObj_drawQuery) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawQuery" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawQuery" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (imageObj *)mapObj_drawQuery(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_imageObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -30207,7 +31096,7 @@ XS(_wrap_mapObj_drawQuery) {
 
 XS(_wrap_mapObj_drawLegend) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -30219,9 +31108,9 @@ XS(_wrap_mapObj_drawLegend) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawLegend" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawLegend" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (imageObj *)mapObj_drawLegend(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_imageObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -30235,7 +31124,7 @@ XS(_wrap_mapObj_drawLegend) {
 
 XS(_wrap_mapObj_drawScalebar) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -30247,9 +31136,9 @@ XS(_wrap_mapObj_drawScalebar) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawScalebar" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawScalebar" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (imageObj *)mapObj_drawScalebar(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_imageObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -30263,7 +31152,7 @@ XS(_wrap_mapObj_drawScalebar) {
 
 XS(_wrap_mapObj_drawReferenceMap) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -30275,9 +31164,9 @@ XS(_wrap_mapObj_drawReferenceMap) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawReferenceMap" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawReferenceMap" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (imageObj *)mapObj_drawReferenceMap(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_imageObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -30291,7 +31180,7 @@ XS(_wrap_mapObj_drawReferenceMap) {
 
 XS(_wrap_mapObj_embedScalebar) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     imageObj *arg2 = (imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30306,9 +31195,9 @@ XS(_wrap_mapObj_embedScalebar) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_embedScalebar" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_embedScalebar" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_embedScalebar" "', argument " "2"" of type '" "imageObj *""'"); 
@@ -30329,7 +31218,7 @@ XS(_wrap_mapObj_embedScalebar) {
 
 XS(_wrap_mapObj_embedLegend) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     imageObj *arg2 = (imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30344,9 +31233,9 @@ XS(_wrap_mapObj_embedLegend) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_embedLegend" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_embedLegend" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_embedLegend" "', argument " "2"" of type '" "imageObj *""'"); 
@@ -30367,7 +31256,7 @@ XS(_wrap_mapObj_embedLegend) {
 
 XS(_wrap_mapObj_drawLabelCache) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     imageObj *arg2 = (imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30382,9 +31271,9 @@ XS(_wrap_mapObj_drawLabelCache) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawLabelCache" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawLabelCache" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_drawLabelCache" "', argument " "2"" of type '" "imageObj *""'"); 
@@ -30405,7 +31294,7 @@ XS(_wrap_mapObj_drawLabelCache) {
 
 XS(_wrap_mapObj_getLabel) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30420,9 +31309,9 @@ XS(_wrap_mapObj_getLabel) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLabel" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLabel" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_getLabel" "', argument " "2"" of type '" "int""'");
@@ -30443,7 +31332,7 @@ XS(_wrap_mapObj_getLabel) {
 
 XS(_wrap_mapObj_nextLabel) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -30455,9 +31344,9 @@ XS(_wrap_mapObj_nextLabel) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_nextLabel" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_nextLabel" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (labelCacheMemberObj *)mapObj_nextLabel(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelCacheMemberObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -30471,7 +31360,7 @@ XS(_wrap_mapObj_nextLabel) {
 
 XS(_wrap_mapObj_queryByFilter) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30487,9 +31376,9 @@ XS(_wrap_mapObj_queryByFilter) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByFilter" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByFilter" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_queryByFilter" "', argument " "2"" of type '" "char *""'");
@@ -30510,7 +31399,7 @@ XS(_wrap_mapObj_queryByFilter) {
 
 XS(_wrap_mapObj_queryByPoint) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     pointObj *arg2 = (pointObj *) 0 ;
     int arg3 ;
     double arg4 ;
@@ -30531,9 +31420,9 @@ XS(_wrap_mapObj_queryByPoint) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByPoint" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByPoint" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_pointObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_queryByPoint" "', argument " "2"" of type '" "pointObj *""'"); 
@@ -30568,7 +31457,7 @@ XS(_wrap_mapObj_queryByPoint) {
 
 XS(_wrap_mapObj_queryByRect) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     rectObj arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30583,9 +31472,9 @@ XS(_wrap_mapObj_queryByRect) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByRect" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByRect" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     {
       res2 = SWIG_ConvertPtr(ST(1), &argp2, SWIGTYPE_p_rectObj,  0 );
       if (!SWIG_IsOK(res2)) {
@@ -30610,7 +31499,7 @@ XS(_wrap_mapObj_queryByRect) {
 
 XS(_wrap_mapObj_queryByFeatures) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30625,9 +31514,9 @@ XS(_wrap_mapObj_queryByFeatures) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByFeatures" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByFeatures" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_queryByFeatures" "', argument " "2"" of type '" "int""'");
@@ -30648,7 +31537,7 @@ XS(_wrap_mapObj_queryByFeatures) {
 
 XS(_wrap_mapObj_queryByShape) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     shapeObj *arg2 = (shapeObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30663,9 +31552,9 @@ XS(_wrap_mapObj_queryByShape) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByShape" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByShape" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_shapeObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_queryByShape" "', argument " "2"" of type '" "shapeObj *""'"); 
@@ -30686,7 +31575,7 @@ XS(_wrap_mapObj_queryByShape) {
 
 XS(_wrap_mapObj_setWKTProjection) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30702,9 +31591,9 @@ XS(_wrap_mapObj_setWKTProjection) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setWKTProjection" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setWKTProjection" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setWKTProjection" "', argument " "2"" of type '" "char *""'");
@@ -30725,7 +31614,7 @@ XS(_wrap_mapObj_setWKTProjection) {
 
 XS(_wrap_mapObj_getProjection) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -30737,9 +31626,9 @@ XS(_wrap_mapObj_getProjection) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getProjection" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getProjection" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (char *)mapObj_getProjection(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -30754,7 +31643,7 @@ XS(_wrap_mapObj_getProjection) {
 
 XS(_wrap_mapObj_setProjection) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30770,9 +31659,9 @@ XS(_wrap_mapObj_setProjection) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setProjection" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setProjection" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setProjection" "', argument " "2"" of type '" "char *""'");
@@ -30793,7 +31682,7 @@ XS(_wrap_mapObj_setProjection) {
 
 XS(_wrap_mapObj_save) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30809,9 +31698,9 @@ XS(_wrap_mapObj_save) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_save" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_save" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_save" "', argument " "2"" of type '" "char *""'");
@@ -30832,7 +31721,7 @@ XS(_wrap_mapObj_save) {
 
 XS(_wrap_mapObj_saveQuery) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     int arg3 = (int) 0 ;
     void *argp1 = 0 ;
@@ -30851,9 +31740,9 @@ XS(_wrap_mapObj_saveQuery) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveQuery" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveQuery" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_saveQuery" "', argument " "2"" of type '" "char *""'");
@@ -30883,7 +31772,7 @@ XS(_wrap_mapObj_saveQuery) {
 
 XS(_wrap_mapObj_loadQuery) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30899,9 +31788,9 @@ XS(_wrap_mapObj_loadQuery) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadQuery" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadQuery" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_loadQuery" "', argument " "2"" of type '" "char *""'");
@@ -30922,7 +31811,7 @@ XS(_wrap_mapObj_loadQuery) {
 
 XS(_wrap_mapObj_freeQuery) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 = (int) -1 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -30936,9 +31825,9 @@ XS(_wrap_mapObj_freeQuery) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_freeQuery" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_freeQuery" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     if (items > 1) {
       ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
       if (!SWIG_IsOK(ecode2)) {
@@ -30961,7 +31850,7 @@ XS(_wrap_mapObj_freeQuery) {
 
 XS(_wrap_mapObj_saveQueryAsGML) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     char *arg3 = (char *) "GOMF" ;
     void *argp1 = 0 ;
@@ -30981,9 +31870,9 @@ XS(_wrap_mapObj_saveQueryAsGML) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveQueryAsGML" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveQueryAsGML" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_saveQueryAsGML" "', argument " "2"" of type '" "char *""'");
@@ -31013,7 +31902,7 @@ XS(_wrap_mapObj_saveQueryAsGML) {
 
 XS(_wrap_mapObj_getMetaData) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31029,9 +31918,9 @@ XS(_wrap_mapObj_getMetaData) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getMetaData" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getMetaData" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_getMetaData" "', argument " "2"" of type '" "char *""'");
@@ -31052,7 +31941,7 @@ XS(_wrap_mapObj_getMetaData) {
 
 XS(_wrap_mapObj_setMetaData) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -31072,9 +31961,9 @@ XS(_wrap_mapObj_setMetaData) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setMetaData" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setMetaData" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setMetaData" "', argument " "2"" of type '" "char *""'");
@@ -31102,7 +31991,7 @@ XS(_wrap_mapObj_setMetaData) {
 
 XS(_wrap_mapObj_removeMetaData) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31118,9 +32007,9 @@ XS(_wrap_mapObj_removeMetaData) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeMetaData" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeMetaData" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_removeMetaData" "', argument " "2"" of type '" "char *""'");
@@ -31141,7 +32030,7 @@ XS(_wrap_mapObj_removeMetaData) {
 
 XS(_wrap_mapObj_getFirstMetaDataKey) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -31153,9 +32042,9 @@ XS(_wrap_mapObj_getFirstMetaDataKey) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getFirstMetaDataKey" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getFirstMetaDataKey" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (char *)mapObj_getFirstMetaDataKey(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -31169,7 +32058,7 @@ XS(_wrap_mapObj_getFirstMetaDataKey) {
 
 XS(_wrap_mapObj_getNextMetaDataKey) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31185,9 +32074,9 @@ XS(_wrap_mapObj_getNextMetaDataKey) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getNextMetaDataKey" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getNextMetaDataKey" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_getNextMetaDataKey" "', argument " "2"" of type '" "char *""'");
@@ -31208,7 +32097,7 @@ XS(_wrap_mapObj_getNextMetaDataKey) {
 
 XS(_wrap_mapObj_setSymbolSet) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31224,9 +32113,9 @@ XS(_wrap_mapObj_setSymbolSet) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setSymbolSet" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setSymbolSet" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setSymbolSet" "', argument " "2"" of type '" "char *""'");
@@ -31247,7 +32136,7 @@ XS(_wrap_mapObj_setSymbolSet) {
 
 XS(_wrap_mapObj_getNumSymbols) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -31259,9 +32148,9 @@ XS(_wrap_mapObj_getNumSymbols) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getNumSymbols" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getNumSymbols" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (int)mapObj_getNumSymbols(arg1);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -31275,7 +32164,7 @@ XS(_wrap_mapObj_getNumSymbols) {
 
 XS(_wrap_mapObj_setFontSet) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31291,9 +32180,9 @@ XS(_wrap_mapObj_setFontSet) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setFontSet" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setFontSet" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setFontSet" "', argument " "2"" of type '" "char *""'");
@@ -31314,7 +32203,7 @@ XS(_wrap_mapObj_setFontSet) {
 
 XS(_wrap_mapObj_saveMapContext) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31330,9 +32219,9 @@ XS(_wrap_mapObj_saveMapContext) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveMapContext" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveMapContext" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_saveMapContext" "', argument " "2"" of type '" "char *""'");
@@ -31353,7 +32242,7 @@ XS(_wrap_mapObj_saveMapContext) {
 
 XS(_wrap_mapObj_loadMapContext) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     int arg3 = (int) 0 ;
     void *argp1 = 0 ;
@@ -31372,9 +32261,9 @@ XS(_wrap_mapObj_loadMapContext) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadMapContext" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadMapContext" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_loadMapContext" "', argument " "2"" of type '" "char *""'");
@@ -31404,7 +32293,7 @@ XS(_wrap_mapObj_loadMapContext) {
 
 XS(_wrap_mapObj_moveLayerUp) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31419,9 +32308,9 @@ XS(_wrap_mapObj_moveLayerUp) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_moveLayerUp" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_moveLayerUp" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_moveLayerUp" "', argument " "2"" of type '" "int""'");
@@ -31442,7 +32331,7 @@ XS(_wrap_mapObj_moveLayerUp) {
 
 XS(_wrap_mapObj_moveLayerDown) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31457,9 +32346,9 @@ XS(_wrap_mapObj_moveLayerDown) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_moveLayerDown" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_moveLayerDown" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_moveLayerDown" "', argument " "2"" of type '" "int""'");
@@ -31480,7 +32369,7 @@ XS(_wrap_mapObj_moveLayerDown) {
 
 XS(_wrap_mapObj_getLayersDrawingOrder) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -31492,9 +32381,9 @@ XS(_wrap_mapObj_getLayersDrawingOrder) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayersDrawingOrder" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayersDrawingOrder" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (intarray *)mapObj_getLayersDrawingOrder(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_intarray, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -31508,7 +32397,7 @@ XS(_wrap_mapObj_getLayersDrawingOrder) {
 
 XS(_wrap_mapObj_setLayersDrawingOrder) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int *arg2 = (int *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31523,9 +32412,9 @@ XS(_wrap_mapObj_setLayersDrawingOrder) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setLayersDrawingOrder" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setLayersDrawingOrder" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_int, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setLayersDrawingOrder" "', argument " "2"" of type '" "int *""'"); 
@@ -31546,7 +32435,7 @@ XS(_wrap_mapObj_setLayersDrawingOrder) {
 
 XS(_wrap_mapObj_setConfigOption) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     char *arg3 = (char *) 0 ;
     void *argp1 = 0 ;
@@ -31565,9 +32454,9 @@ XS(_wrap_mapObj_setConfigOption) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setConfigOption" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setConfigOption" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setConfigOption" "', argument " "2"" of type '" "char *""'");
@@ -31595,7 +32484,7 @@ XS(_wrap_mapObj_setConfigOption) {
 
 XS(_wrap_mapObj_getConfigOption) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31611,9 +32500,9 @@ XS(_wrap_mapObj_getConfigOption) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getConfigOption" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getConfigOption" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_getConfigOption" "', argument " "2"" of type '" "char *""'");
@@ -31634,7 +32523,7 @@ XS(_wrap_mapObj_getConfigOption) {
 
 XS(_wrap_mapObj_applyConfigOptions) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -31645,9 +32534,9 @@ XS(_wrap_mapObj_applyConfigOptions) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applyConfigOptions" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applyConfigOptions" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     mapObj_applyConfigOptions(arg1);
     ST(argvi) = sv_newmortal();
     
@@ -31661,7 +32550,7 @@ XS(_wrap_mapObj_applyConfigOptions) {
 
 XS(_wrap_mapObj_applySLD) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31677,9 +32566,9 @@ XS(_wrap_mapObj_applySLD) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applySLD" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applySLD" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_applySLD" "', argument " "2"" of type '" "char *""'");
@@ -31700,7 +32589,7 @@ XS(_wrap_mapObj_applySLD) {
 
 XS(_wrap_mapObj_applySLDURL) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31716,9 +32605,9 @@ XS(_wrap_mapObj_applySLDURL) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applySLDURL" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applySLDURL" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_applySLDURL" "', argument " "2"" of type '" "char *""'");
@@ -31739,7 +32628,7 @@ XS(_wrap_mapObj_applySLDURL) {
 
 XS(_wrap_mapObj_generateSLD) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -31751,9 +32640,9 @@ XS(_wrap_mapObj_generateSLD) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_generateSLD" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_generateSLD" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     result = (char *)mapObj_generateSLD(arg1);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -31768,7 +32657,7 @@ XS(_wrap_mapObj_generateSLD) {
 
 XS(_wrap_mapObj_processTemplate) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     char **arg3 = (char **) 0 ;
     char **arg4 = (char **) 0 ;
@@ -31792,9 +32681,9 @@ XS(_wrap_mapObj_processTemplate) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processTemplate" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processTemplate" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_processTemplate" "', argument " "2"" of type '" "int""'");
@@ -31837,7 +32726,7 @@ XS(_wrap_mapObj_processTemplate) {
 
 XS(_wrap_mapObj_processLegendTemplate) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char **arg2 = (char **) 0 ;
     char **arg3 = (char **) 0 ;
     int arg4 ;
@@ -31858,9 +32747,9 @@ XS(_wrap_mapObj_processLegendTemplate) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processLegendTemplate" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processLegendTemplate" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_p_char, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_processLegendTemplate" "', argument " "2"" of type '" "char **""'"); 
@@ -31896,7 +32785,7 @@ XS(_wrap_mapObj_processLegendTemplate) {
 
 XS(_wrap_mapObj_processQueryTemplate) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char **arg2 = (char **) 0 ;
     char **arg3 = (char **) 0 ;
     int arg4 ;
@@ -31917,9 +32806,9 @@ XS(_wrap_mapObj_processQueryTemplate) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processQueryTemplate" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processQueryTemplate" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_p_char, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_processQueryTemplate" "', argument " "2"" of type '" "char **""'"); 
@@ -31955,7 +32844,7 @@ XS(_wrap_mapObj_processQueryTemplate) {
 
 XS(_wrap_mapObj_getOutputFormatByName) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -31971,9 +32860,9 @@ XS(_wrap_mapObj_getOutputFormatByName) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getOutputFormatByName" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getOutputFormatByName" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_getOutputFormatByName" "', argument " "2"" of type '" "char *""'");
@@ -31994,7 +32883,7 @@ XS(_wrap_mapObj_getOutputFormatByName) {
 
 XS(_wrap_mapObj_appendOutputFormat) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     outputFormatObj *arg2 = (outputFormatObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -32009,9 +32898,9 @@ XS(_wrap_mapObj_appendOutputFormat) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_appendOutputFormat" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_appendOutputFormat" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_outputFormatObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_appendOutputFormat" "', argument " "2"" of type '" "outputFormatObj *""'"); 
@@ -32032,7 +32921,7 @@ XS(_wrap_mapObj_appendOutputFormat) {
 
 XS(_wrap_mapObj_removeOutputFormat) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -32048,9 +32937,9 @@ XS(_wrap_mapObj_removeOutputFormat) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeOutputFormat" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeOutputFormat" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_removeOutputFormat" "', argument " "2"" of type '" "char *""'");
@@ -32071,7 +32960,7 @@ XS(_wrap_mapObj_removeOutputFormat) {
 
 XS(_wrap_mapObj_loadOWSParameters) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     cgiRequestObj *arg2 = (cgiRequestObj *) 0 ;
     char *arg3 = (char *) "1.1.1" ;
     void *argp1 = 0 ;
@@ -32090,9 +32979,9 @@ XS(_wrap_mapObj_loadOWSParameters) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadOWSParameters" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadOWSParameters" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_cgiRequestObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_loadOWSParameters" "', argument " "2"" of type '" "cgiRequestObj *""'"); 
@@ -32122,7 +33011,7 @@ XS(_wrap_mapObj_loadOWSParameters) {
 
 XS(_wrap_mapObj_OWSDispatch) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     cgiRequestObj *arg2 = (cgiRequestObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -32137,9 +33026,9 @@ XS(_wrap_mapObj_OWSDispatch) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_OWSDispatch" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_OWSDispatch" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_cgiRequestObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_OWSDispatch" "', argument " "2"" of type '" "cgiRequestObj *""'"); 
@@ -32158,9 +33047,38 @@ XS(_wrap_mapObj_OWSDispatch) {
 }
 
 
+XS(_wrap_mapObj_convertToString) {
+  {
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
+    void *argp1 = 0 ;
+    int res1 = 0 ;
+    int argvi = 0;
+    char *result = 0 ;
+    dXSARGS;
+    
+    if ((items < 1) || (items > 1)) {
+      SWIG_croak("Usage: mapObj_convertToString(self);");
+    }
+    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
+    if (!SWIG_IsOK(res1)) {
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_convertToString" "', argument " "1"" of type '" "struct mapObj *""'"); 
+    }
+    arg1 = (struct mapObj *)(argp1);
+    result = (char *)mapObj_convertToString(arg1);
+    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
+    
+    free((char*)result);
+    XSRETURN(argvi);
+  fail:
+    
+    SWIG_croak_null();
+  }
+}
+
+
 XS(_wrap_mapObj_zoomPoint) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     int arg2 ;
     pointObj *arg3 = (pointObj *) 0 ;
     int arg4 ;
@@ -32190,9 +33108,9 @@ XS(_wrap_mapObj_zoomPoint) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomPoint" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomPoint" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_zoomPoint" "', argument " "2"" of type '" "int""'");
@@ -32248,7 +33166,7 @@ XS(_wrap_mapObj_zoomPoint) {
 
 XS(_wrap_mapObj_zoomRectangle) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     rectObj *arg2 = (rectObj *) 0 ;
     int arg3 ;
     int arg4 ;
@@ -32275,9 +33193,9 @@ XS(_wrap_mapObj_zoomRectangle) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomRectangle" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomRectangle" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_rectObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_zoomRectangle" "', argument " "2"" of type '" "rectObj *""'"); 
@@ -32326,7 +33244,7 @@ XS(_wrap_mapObj_zoomRectangle) {
 
 XS(_wrap_mapObj_zoomScale) {
   {
-    mapObj *arg1 = (mapObj *) 0 ;
+    struct mapObj *arg1 = (struct mapObj *) 0 ;
     double arg2 ;
     pointObj *arg3 = (pointObj *) 0 ;
     int arg4 ;
@@ -32356,9 +33274,9 @@ XS(_wrap_mapObj_zoomScale) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomScale" "', argument " "1"" of type '" "mapObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomScale" "', argument " "1"" of type '" "struct mapObj *""'"); 
     }
-    arg1 = (mapObj *)(argp1);
+    arg1 = (struct mapObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_zoomScale" "', argument " "2"" of type '" "double""'");
@@ -38471,9 +39389,9 @@ XS(_wrap_shapeObj_contains) {
   dispatch:
     switch(_index) {
     case 1:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_shapeObj_contains__SWIG_0); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_shapeObj_contains__SWIG_0); return;
     case 2:
-      ++PL_markstack_ptr; SWIG_CALLXS(_wrap_shapeObj_contains__SWIG_1); return;
+      PUSHMARK(MARK); SWIG_CALLXS(_wrap_shapeObj_contains__SWIG_1); return;
     }
   }
   
@@ -40708,7 +41626,7 @@ XS(_wrap_colorObj_toHex) {
 
 XS(_wrap_symbolObj_name_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -40723,9 +41641,9 @@ XS(_wrap_symbolObj_name_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_name_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_name_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_name_set" "', argument " "2"" of type '" "char *""'");
@@ -40754,7 +41672,7 @@ XS(_wrap_symbolObj_name_set) {
 
 XS(_wrap_symbolObj_name_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -40766,9 +41684,9 @@ XS(_wrap_symbolObj_name_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_name_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_name_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (char *) ((arg1)->name);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -40782,7 +41700,7 @@ XS(_wrap_symbolObj_name_get) {
 
 XS(_wrap_symbolObj_type_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -40796,9 +41714,9 @@ XS(_wrap_symbolObj_type_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_type_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_type_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_type_set" "', argument " "2"" of type '" "int""'");
@@ -40819,7 +41737,7 @@ XS(_wrap_symbolObj_type_set) {
 
 XS(_wrap_symbolObj_type_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -40831,9 +41749,9 @@ XS(_wrap_symbolObj_type_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_type_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_type_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (int) ((arg1)->type);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -40847,7 +41765,7 @@ XS(_wrap_symbolObj_type_get) {
 
 XS(_wrap_symbolObj_inmapfile_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -40861,9 +41779,9 @@ XS(_wrap_symbolObj_inmapfile_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_inmapfile_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_inmapfile_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_inmapfile_set" "', argument " "2"" of type '" "int""'");
@@ -40884,7 +41802,7 @@ XS(_wrap_symbolObj_inmapfile_set) {
 
 XS(_wrap_symbolObj_inmapfile_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -40896,9 +41814,9 @@ XS(_wrap_symbolObj_inmapfile_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_inmapfile_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_inmapfile_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (int) ((arg1)->inmapfile);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -40912,7 +41830,7 @@ XS(_wrap_symbolObj_inmapfile_get) {
 
 XS(_wrap_symbolObj_sizex_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -40926,9 +41844,9 @@ XS(_wrap_symbolObj_sizex_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizex_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizex_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_sizex_set" "', argument " "2"" of type '" "double""'");
@@ -40949,7 +41867,7 @@ XS(_wrap_symbolObj_sizex_set) {
 
 XS(_wrap_symbolObj_sizex_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -40961,9 +41879,9 @@ XS(_wrap_symbolObj_sizex_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizex_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizex_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (double) ((arg1)->sizex);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -40977,7 +41895,7 @@ XS(_wrap_symbolObj_sizex_get) {
 
 XS(_wrap_symbolObj_sizey_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -40991,9 +41909,9 @@ XS(_wrap_symbolObj_sizey_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizey_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizey_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_sizey_set" "', argument " "2"" of type '" "double""'");
@@ -41014,7 +41932,7 @@ XS(_wrap_symbolObj_sizey_set) {
 
 XS(_wrap_symbolObj_sizey_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41026,9 +41944,9 @@ XS(_wrap_symbolObj_sizey_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizey_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizey_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (double) ((arg1)->sizey);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -41042,7 +41960,7 @@ XS(_wrap_symbolObj_sizey_get) {
 
 XS(_wrap_symbolObj_minx_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41056,9 +41974,9 @@ XS(_wrap_symbolObj_minx_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_minx_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_minx_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_minx_set" "', argument " "2"" of type '" "double""'");
@@ -41079,7 +41997,7 @@ XS(_wrap_symbolObj_minx_set) {
 
 XS(_wrap_symbolObj_minx_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41091,9 +42009,9 @@ XS(_wrap_symbolObj_minx_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_minx_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_minx_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (double) ((arg1)->minx);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -41107,7 +42025,7 @@ XS(_wrap_symbolObj_minx_get) {
 
 XS(_wrap_symbolObj_miny_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41121,9 +42039,9 @@ XS(_wrap_symbolObj_miny_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_miny_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_miny_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_miny_set" "', argument " "2"" of type '" "double""'");
@@ -41144,7 +42062,7 @@ XS(_wrap_symbolObj_miny_set) {
 
 XS(_wrap_symbolObj_miny_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41156,9 +42074,9 @@ XS(_wrap_symbolObj_miny_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_miny_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_miny_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (double) ((arg1)->miny);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -41172,7 +42090,7 @@ XS(_wrap_symbolObj_miny_get) {
 
 XS(_wrap_symbolObj_maxx_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41186,9 +42104,9 @@ XS(_wrap_symbolObj_maxx_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxx_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxx_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_maxx_set" "', argument " "2"" of type '" "double""'");
@@ -41209,7 +42127,7 @@ XS(_wrap_symbolObj_maxx_set) {
 
 XS(_wrap_symbolObj_maxx_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41221,9 +42139,9 @@ XS(_wrap_symbolObj_maxx_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxx_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxx_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (double) ((arg1)->maxx);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -41237,7 +42155,7 @@ XS(_wrap_symbolObj_maxx_get) {
 
 XS(_wrap_symbolObj_maxy_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41251,9 +42169,9 @@ XS(_wrap_symbolObj_maxy_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxy_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxy_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_maxy_set" "', argument " "2"" of type '" "double""'");
@@ -41274,7 +42192,7 @@ XS(_wrap_symbolObj_maxy_set) {
 
 XS(_wrap_symbolObj_maxy_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41286,9 +42204,9 @@ XS(_wrap_symbolObj_maxy_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxy_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxy_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (double) ((arg1)->maxy);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -41302,7 +42220,7 @@ XS(_wrap_symbolObj_maxy_get) {
 
 XS(_wrap_symbolObj_refcount_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41314,9 +42232,9 @@ XS(_wrap_symbolObj_refcount_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_refcount_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_refcount_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (int) ((arg1)->refcount);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -41330,7 +42248,7 @@ XS(_wrap_symbolObj_refcount_get) {
 
 XS(_wrap_symbolObj_numpoints_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41342,9 +42260,9 @@ XS(_wrap_symbolObj_numpoints_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_numpoints_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_numpoints_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (int) ((arg1)->numpoints);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -41358,7 +42276,7 @@ XS(_wrap_symbolObj_numpoints_get) {
 
 XS(_wrap_symbolObj_filled_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41372,9 +42290,9 @@ XS(_wrap_symbolObj_filled_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_filled_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_filled_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_filled_set" "', argument " "2"" of type '" "int""'");
@@ -41395,7 +42313,7 @@ XS(_wrap_symbolObj_filled_set) {
 
 XS(_wrap_symbolObj_filled_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41407,9 +42325,9 @@ XS(_wrap_symbolObj_filled_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_filled_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_filled_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (int) ((arg1)->filled);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -41423,7 +42341,7 @@ XS(_wrap_symbolObj_filled_get) {
 
 XS(_wrap_symbolObj_anchorpoint_x_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41437,9 +42355,9 @@ XS(_wrap_symbolObj_anchorpoint_x_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_x_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_x_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_anchorpoint_x_set" "', argument " "2"" of type '" "double""'");
@@ -41460,7 +42378,7 @@ XS(_wrap_symbolObj_anchorpoint_x_set) {
 
 XS(_wrap_symbolObj_anchorpoint_x_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41472,9 +42390,9 @@ XS(_wrap_symbolObj_anchorpoint_x_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_x_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_x_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (double) ((arg1)->anchorpoint_x);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -41488,7 +42406,7 @@ XS(_wrap_symbolObj_anchorpoint_x_get) {
 
 XS(_wrap_symbolObj_anchorpoint_y_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     double arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41502,9 +42420,9 @@ XS(_wrap_symbolObj_anchorpoint_y_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_y_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_y_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_double SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_anchorpoint_y_set" "', argument " "2"" of type '" "double""'");
@@ -41525,7 +42443,7 @@ XS(_wrap_symbolObj_anchorpoint_y_set) {
 
 XS(_wrap_symbolObj_anchorpoint_y_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41537,9 +42455,9 @@ XS(_wrap_symbolObj_anchorpoint_y_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_y_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_y_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (double) ((arg1)->anchorpoint_y);
     ST(argvi) = SWIG_From_double  SWIG_PERL_CALL_ARGS_1((double)(result)); argvi++ ;
     
@@ -41553,7 +42471,7 @@ XS(_wrap_symbolObj_anchorpoint_y_get) {
 
 XS(_wrap_symbolObj_imagepath_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41565,9 +42483,9 @@ XS(_wrap_symbolObj_imagepath_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_imagepath_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_imagepath_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (char *) ((arg1)->imagepath);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -41581,7 +42499,7 @@ XS(_wrap_symbolObj_imagepath_get) {
 
 XS(_wrap_symbolObj_transparent_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41595,9 +42513,9 @@ XS(_wrap_symbolObj_transparent_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparent_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparent_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_transparent_set" "', argument " "2"" of type '" "int""'");
@@ -41618,7 +42536,7 @@ XS(_wrap_symbolObj_transparent_set) {
 
 XS(_wrap_symbolObj_transparent_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41630,9 +42548,9 @@ XS(_wrap_symbolObj_transparent_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparent_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparent_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (int) ((arg1)->transparent);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -41646,7 +42564,7 @@ XS(_wrap_symbolObj_transparent_get) {
 
 XS(_wrap_symbolObj_transparentcolor_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41660,9 +42578,9 @@ XS(_wrap_symbolObj_transparentcolor_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparentcolor_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparentcolor_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_transparentcolor_set" "', argument " "2"" of type '" "int""'");
@@ -41683,7 +42601,7 @@ XS(_wrap_symbolObj_transparentcolor_set) {
 
 XS(_wrap_symbolObj_transparentcolor_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41695,9 +42613,9 @@ XS(_wrap_symbolObj_transparentcolor_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparentcolor_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparentcolor_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (int) ((arg1)->transparentcolor);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -41711,7 +42629,7 @@ XS(_wrap_symbolObj_transparentcolor_get) {
 
 XS(_wrap_symbolObj_character_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41726,9 +42644,9 @@ XS(_wrap_symbolObj_character_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_character_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_character_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_character_set" "', argument " "2"" of type '" "char *""'");
@@ -41757,7 +42675,7 @@ XS(_wrap_symbolObj_character_set) {
 
 XS(_wrap_symbolObj_character_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41769,9 +42687,9 @@ XS(_wrap_symbolObj_character_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_character_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_character_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (char *) ((arg1)->character);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -41785,7 +42703,7 @@ XS(_wrap_symbolObj_character_get) {
 
 XS(_wrap_symbolObj_antialias_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41799,9 +42717,9 @@ XS(_wrap_symbolObj_antialias_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_antialias_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_antialias_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_antialias_set" "', argument " "2"" of type '" "int""'");
@@ -41822,7 +42740,7 @@ XS(_wrap_symbolObj_antialias_set) {
 
 XS(_wrap_symbolObj_antialias_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41834,9 +42752,9 @@ XS(_wrap_symbolObj_antialias_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_antialias_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_antialias_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (int) ((arg1)->antialias);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -41850,7 +42768,7 @@ XS(_wrap_symbolObj_antialias_get) {
 
 XS(_wrap_symbolObj_font_set) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -41865,9 +42783,9 @@ XS(_wrap_symbolObj_font_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_font_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_font_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_font_set" "', argument " "2"" of type '" "char *""'");
@@ -41896,7 +42814,7 @@ XS(_wrap_symbolObj_font_set) {
 
 XS(_wrap_symbolObj_font_get) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -41908,9 +42826,9 @@ XS(_wrap_symbolObj_font_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_font_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_font_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (char *) ((arg1)->font);
     ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
     
@@ -41922,80 +42840,6 @@ XS(_wrap_symbolObj_font_get) {
 }
 
 
-XS(_wrap_symbolObj_svg_text_set) {
-  {
-    symbolObj *arg1 = (symbolObj *) 0 ;
-    char *arg2 = (char *) 0 ;
-    void *argp1 = 0 ;
-    int res1 = 0 ;
-    int res2 ;
-    char *buf2 = 0 ;
-    int alloc2 = 0 ;
-    int argvi = 0;
-    dXSARGS;
-    
-    if ((items < 2) || (items > 2)) {
-      SWIG_croak("Usage: symbolObj_svg_text_set(self,svg_text);");
-    }
-    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
-    if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_svg_text_set" "', argument " "1"" of type '" "symbolObj *""'"); 
-    }
-    arg1 = (symbolObj *)(argp1);
-    res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
-    if (!SWIG_IsOK(res2)) {
-      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_svg_text_set" "', argument " "2"" of type '" "char *""'");
-    }
-    arg2 = (char *)(buf2);
-    {
-      if (arg1->svg_text) free((char*)arg1->svg_text);
-      if (arg2) {
-        arg1->svg_text = (char *) malloc(strlen(arg2)+1);
-        strcpy((char*)arg1->svg_text,arg2);
-      } else {
-        arg1->svg_text = 0;
-      }
-    }
-    ST(argvi) = sv_newmortal();
-    
-    if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-    XSRETURN(argvi);
-  fail:
-    
-    if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
-    SWIG_croak_null();
-  }
-}
-
-
-XS(_wrap_symbolObj_svg_text_get) {
-  {
-    symbolObj *arg1 = (symbolObj *) 0 ;
-    void *argp1 = 0 ;
-    int res1 = 0 ;
-    int argvi = 0;
-    char *result = 0 ;
-    dXSARGS;
-    
-    if ((items < 1) || (items > 1)) {
-      SWIG_croak("Usage: symbolObj_svg_text_get(self);");
-    }
-    res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
-    if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_svg_text_get" "', argument " "1"" of type '" "symbolObj *""'"); 
-    }
-    arg1 = (symbolObj *)(argp1);
-    result = (char *) ((arg1)->svg_text);
-    ST(argvi) = SWIG_FromCharPtr((const char *)result); argvi++ ;
-    
-    XSRETURN(argvi);
-  fail:
-    
-    SWIG_croak_null();
-  }
-}
-
-
 XS(_wrap_new_symbolObj) {
   {
     char *arg1 = (char *) 0 ;
@@ -42007,7 +42851,7 @@ XS(_wrap_new_symbolObj) {
     char *buf2 = 0 ;
     int alloc2 = 0 ;
     int argvi = 0;
-    symbolObj *result = 0 ;
+    struct symbolObj *result = 0 ;
     dXSARGS;
     
     if ((items < 1) || (items > 2)) {
@@ -42025,7 +42869,7 @@ XS(_wrap_new_symbolObj) {
       }
       arg2 = (char *)(buf2);
     }
-    result = (symbolObj *)new_symbolObj(arg1,(char const *)arg2);
+    result = (struct symbolObj *)new_symbolObj(arg1,(char const *)arg2);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_symbolObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     if (alloc1 == SWIG_NEWOBJ) free((char*)buf1);
     if (alloc2 == SWIG_NEWOBJ) free((char*)buf2);
@@ -42040,7 +42884,7 @@ XS(_wrap_new_symbolObj) {
 
 XS(_wrap_delete_symbolObj) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -42051,9 +42895,9 @@ XS(_wrap_delete_symbolObj) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, SWIG_POINTER_DISOWN |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_symbolObj" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_symbolObj" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     delete_symbolObj(arg1);
     ST(argvi) = sv_newmortal();
     
@@ -42067,7 +42911,7 @@ XS(_wrap_delete_symbolObj) {
 
 XS(_wrap_symbolObj_setImagepath) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     char *arg2 = (char *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -42083,9 +42927,9 @@ XS(_wrap_symbolObj_setImagepath) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setImagepath" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setImagepath" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     res2 = SWIG_AsCharPtrAndSize(ST(1), &buf2, NULL, &alloc2);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_setImagepath" "', argument " "2"" of type '" "char const *""'");
@@ -42106,7 +42950,7 @@ XS(_wrap_symbolObj_setImagepath) {
 
 XS(_wrap_symbolObj_setPoints) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     lineObj *arg2 = (lineObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -42121,9 +42965,9 @@ XS(_wrap_symbolObj_setPoints) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setPoints" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setPoints" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_lineObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_setPoints" "', argument " "2"" of type '" "lineObj *""'"); 
@@ -42144,7 +42988,7 @@ XS(_wrap_symbolObj_setPoints) {
 
 XS(_wrap_symbolObj_getPoints) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -42156,9 +43000,9 @@ XS(_wrap_symbolObj_getPoints) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_getPoints" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_getPoints" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     result = (lineObj *)symbolObj_getPoints(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_lineObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     
@@ -42172,7 +43016,7 @@ XS(_wrap_symbolObj_getPoints) {
 
 XS(_wrap_symbolObj_getImage) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     outputFormatObj *arg2 = (outputFormatObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -42187,9 +43031,9 @@ XS(_wrap_symbolObj_getImage) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_getImage" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_getImage" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_outputFormatObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_getImage" "', argument " "2"" of type '" "outputFormatObj *""'"); 
@@ -42210,7 +43054,7 @@ XS(_wrap_symbolObj_getImage) {
 
 XS(_wrap_symbolObj_setImage) {
   {
-    symbolObj *arg1 = (symbolObj *) 0 ;
+    struct symbolObj *arg1 = (struct symbolObj *) 0 ;
     imageObj *arg2 = (imageObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -42225,9 +43069,9 @@ XS(_wrap_symbolObj_setImage) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setImage" "', argument " "1"" of type '" "symbolObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setImage" "', argument " "1"" of type '" "struct symbolObj *""'"); 
     }
-    arg1 = (symbolObj *)(argp1);
+    arg1 = (struct symbolObj *)(argp1);
     res2 = SWIG_ConvertPtr(ST(1), &argp2,SWIGTYPE_p_imageObj, 0 |  0 );
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_setImage" "', argument " "2"" of type '" "imageObj *""'"); 
@@ -42248,7 +43092,7 @@ XS(_wrap_symbolObj_setImage) {
 
 XS(_wrap_errorObj_code_set) {
   {
-    errorObj *arg1 = (errorObj *) 0 ;
+    struct errorObj *arg1 = (struct errorObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -42262,9 +43106,9 @@ XS(_wrap_errorObj_code_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_code_set" "', argument " "1"" of type '" "errorObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_code_set" "', argument " "1"" of type '" "struct errorObj *""'"); 
     }
-    arg1 = (errorObj *)(argp1);
+    arg1 = (struct errorObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "errorObj_code_set" "', argument " "2"" of type '" "int""'");
@@ -42285,7 +43129,7 @@ XS(_wrap_errorObj_code_set) {
 
 XS(_wrap_errorObj_code_get) {
   {
-    errorObj *arg1 = (errorObj *) 0 ;
+    struct errorObj *arg1 = (struct errorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -42297,9 +43141,9 @@ XS(_wrap_errorObj_code_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_code_get" "', argument " "1"" of type '" "errorObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_code_get" "', argument " "1"" of type '" "struct errorObj *""'"); 
     }
-    arg1 = (errorObj *)(argp1);
+    arg1 = (struct errorObj *)(argp1);
     result = (int) ((arg1)->code);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -42313,7 +43157,7 @@ XS(_wrap_errorObj_code_get) {
 
 XS(_wrap_errorObj_routine_set) {
   {
-    errorObj *arg1 = (errorObj *) 0 ;
+    struct errorObj *arg1 = (struct errorObj *) 0 ;
     char *arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -42327,9 +43171,9 @@ XS(_wrap_errorObj_routine_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_routine_set" "', argument " "1"" of type '" "errorObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_routine_set" "', argument " "1"" of type '" "struct errorObj *""'"); 
     }
-    arg1 = (errorObj *)(argp1);
+    arg1 = (struct errorObj *)(argp1);
     res2 = SWIG_AsCharArray(ST(1), temp2, 64);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "errorObj_routine_set" "', argument " "2"" of type '" "char [64]""'");
@@ -42351,7 +43195,7 @@ XS(_wrap_errorObj_routine_set) {
 
 XS(_wrap_errorObj_routine_get) {
   {
-    errorObj *arg1 = (errorObj *) 0 ;
+    struct errorObj *arg1 = (struct errorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -42363,9 +43207,9 @@ XS(_wrap_errorObj_routine_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_routine_get" "', argument " "1"" of type '" "errorObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_routine_get" "', argument " "1"" of type '" "struct errorObj *""'"); 
     }
-    arg1 = (errorObj *)(argp1);
+    arg1 = (struct errorObj *)(argp1);
     result = (char *)(char *) ((arg1)->routine);
     {
       ST(argvi) = newSVpvn(result, strlen(result));
@@ -42382,7 +43226,7 @@ XS(_wrap_errorObj_routine_get) {
 
 XS(_wrap_errorObj_message_set) {
   {
-    errorObj *arg1 = (errorObj *) 0 ;
+    struct errorObj *arg1 = (struct errorObj *) 0 ;
     char *arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -42396,9 +43240,9 @@ XS(_wrap_errorObj_message_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_message_set" "', argument " "1"" of type '" "errorObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_message_set" "', argument " "1"" of type '" "struct errorObj *""'"); 
     }
-    arg1 = (errorObj *)(argp1);
+    arg1 = (struct errorObj *)(argp1);
     res2 = SWIG_AsCharArray(ST(1), temp2, 2048);
     if (!SWIG_IsOK(res2)) {
       SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "errorObj_message_set" "', argument " "2"" of type '" "char [2048]""'");
@@ -42420,7 +43264,7 @@ XS(_wrap_errorObj_message_set) {
 
 XS(_wrap_errorObj_message_get) {
   {
-    errorObj *arg1 = (errorObj *) 0 ;
+    struct errorObj *arg1 = (struct errorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -42432,9 +43276,9 @@ XS(_wrap_errorObj_message_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_message_get" "', argument " "1"" of type '" "errorObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_message_get" "', argument " "1"" of type '" "struct errorObj *""'"); 
     }
-    arg1 = (errorObj *)(argp1);
+    arg1 = (struct errorObj *)(argp1);
     result = (char *)(char *) ((arg1)->message);
     {
       ST(argvi) = newSVpvn(result, strlen(result));
@@ -42451,7 +43295,7 @@ XS(_wrap_errorObj_message_get) {
 
 XS(_wrap_errorObj_isreported_set) {
   {
-    errorObj *arg1 = (errorObj *) 0 ;
+    struct errorObj *arg1 = (struct errorObj *) 0 ;
     int arg2 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
@@ -42465,9 +43309,9 @@ XS(_wrap_errorObj_isreported_set) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_isreported_set" "', argument " "1"" of type '" "errorObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_isreported_set" "', argument " "1"" of type '" "struct errorObj *""'"); 
     }
-    arg1 = (errorObj *)(argp1);
+    arg1 = (struct errorObj *)(argp1);
     ecode2 = SWIG_AsVal_int SWIG_PERL_CALL_ARGS_2(ST(1), &val2);
     if (!SWIG_IsOK(ecode2)) {
       SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "errorObj_isreported_set" "', argument " "2"" of type '" "int""'");
@@ -42488,7 +43332,7 @@ XS(_wrap_errorObj_isreported_set) {
 
 XS(_wrap_errorObj_isreported_get) {
   {
-    errorObj *arg1 = (errorObj *) 0 ;
+    struct errorObj *arg1 = (struct errorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -42500,9 +43344,9 @@ XS(_wrap_errorObj_isreported_get) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_isreported_get" "', argument " "1"" of type '" "errorObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_isreported_get" "', argument " "1"" of type '" "struct errorObj *""'"); 
     }
-    arg1 = (errorObj *)(argp1);
+    arg1 = (struct errorObj *)(argp1);
     result = (int) ((arg1)->isreported);
     ST(argvi) = SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(result)); argvi++ ;
     
@@ -42517,13 +43361,13 @@ XS(_wrap_errorObj_isreported_get) {
 XS(_wrap_new_errorObj) {
   {
     int argvi = 0;
-    errorObj *result = 0 ;
+    struct errorObj *result = 0 ;
     dXSARGS;
     
     if ((items < 0) || (items > 0)) {
       SWIG_croak("Usage: new_errorObj();");
     }
-    result = (errorObj *)new_errorObj();
+    result = (struct errorObj *)new_errorObj();
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_errorObj, SWIG_OWNER | SWIG_SHADOW); argvi++ ;
     XSRETURN(argvi);
   fail:
@@ -42534,7 +43378,7 @@ XS(_wrap_new_errorObj) {
 
 XS(_wrap_delete_errorObj) {
   {
-    errorObj *arg1 = (errorObj *) 0 ;
+    struct errorObj *arg1 = (struct errorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -42545,9 +43389,9 @@ XS(_wrap_delete_errorObj) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_errorObj, SWIG_POINTER_DISOWN |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_errorObj" "', argument " "1"" of type '" "errorObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_errorObj" "', argument " "1"" of type '" "struct errorObj *""'"); 
     }
-    arg1 = (errorObj *)(argp1);
+    arg1 = (struct errorObj *)(argp1);
     delete_errorObj(arg1);
     ST(argvi) = sv_newmortal();
     
@@ -42561,7 +43405,7 @@ XS(_wrap_delete_errorObj) {
 
 XS(_wrap_errorObj_next) {
   {
-    errorObj *arg1 = (errorObj *) 0 ;
+    struct errorObj *arg1 = (struct errorObj *) 0 ;
     void *argp1 = 0 ;
     int res1 = 0 ;
     int argvi = 0;
@@ -42573,9 +43417,9 @@ XS(_wrap_errorObj_next) {
     }
     res1 = SWIG_ConvertPtr(ST(0), &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
     if (!SWIG_IsOK(res1)) {
-      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_next" "', argument " "1"" of type '" "errorObj *""'"); 
+      SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_next" "', argument " "1"" of type '" "struct errorObj *""'"); 
     }
-    arg1 = (errorObj *)(argp1);
+    arg1 = (struct errorObj *)(argp1);
     result = (errorObj *)errorObj_next(arg1);
     ST(argvi) = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_errorObj, 0 | SWIG_SHADOW); argvi++ ;
     
@@ -43772,7 +44616,7 @@ static swig_type_info _swigt__p_DBFInfo = {"_p_DBFInfo", "DBFInfo *", 0, 0, (voi
 static swig_type_info _swigt__p_FILE = {"_p_FILE", "FILE *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_cgiRequestObj = {"_p_cgiRequestObj", "cgiRequestObj *", 0, 0, (void*)"mapscript::OWSRequest", 0};
 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_classObj = {"_p_classObj", "struct classObj *|classObj *", 0, 0, (void*)"mapscript::classObj", 0};
+static swig_type_info _swigt__p_classObj = {"_p_classObj", "classObj *|struct classObj *", 0, 0, (void*)"mapscript::classObj", 0};
 static swig_type_info _swigt__p_clusterObj = {"_p_clusterObj", "clusterObj *", 0, 0, (void*)"mapscript::clusterObj", 0};
 static swig_type_info _swigt__p_colorObj = {"_p_colorObj", "colorObj *", 0, 0, (void*)"mapscript::colorObj", 0};
 static swig_type_info _swigt__p_debugLevel = {"_p_debugLevel", "enum debugLevel *|debugLevel *", 0, 0, (void*)0, 0};
@@ -43780,15 +44624,15 @@ static swig_type_info _swigt__p_double = {"_p_double", "double *", 0, 0, (void*)
 static swig_type_info _swigt__p_errorObj = {"_p_errorObj", "struct errorObj *|errorObj *", 0, 0, (void*)"mapscript::errorObj", 0};
 static swig_type_info _swigt__p_fontSetObj = {"_p_fontSetObj", "fontSetObj *", 0, 0, (void*)"mapscript::fontSetObj", 0};
 static swig_type_info _swigt__p_hashTableObj = {"_p_hashTableObj", "hashTableObj *", 0, 0, (void*)"mapscript::hashTableObj", 0};
-static swig_type_info _swigt__p_imageObj = {"_p_imageObj", "imageObj *", 0, 0, (void*)"mapscript::imageObj", 0};
+static swig_type_info _swigt__p_imageObj = {"_p_imageObj", "imageObj *|struct imageObj *", 0, 0, (void*)"mapscript::imageObj", 0};
 static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_int32_t = {"_p_int32_t", "int32_t *|ms_int32 *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_intarray = {"_p_intarray", "struct intarray *|intarray *", 0, 0, (void*)"mapscript::intarray", 0};
+static swig_type_info _swigt__p_intarray = {"_p_intarray", "intarray *", 0, 0, (void*)"mapscript::intarray", 0};
 static swig_type_info _swigt__p_labelCacheMemberObj = {"_p_labelCacheMemberObj", "labelCacheMemberObj *", 0, 0, (void*)"mapscript::labelCacheMemberObj", 0};
 static swig_type_info _swigt__p_labelCacheObj = {"_p_labelCacheObj", "labelCacheObj *", 0, 0, (void*)"mapscript::labelCacheObj", 0};
 static swig_type_info _swigt__p_labelCacheSlotObj = {"_p_labelCacheSlotObj", "labelCacheSlotObj *", 0, 0, (void*)"mapscript::labelCacheSlotObj", 0};
 static swig_type_info _swigt__p_labelLeaderObj = {"_p_labelLeaderObj", "labelLeaderObj *", 0, 0, (void*)"mapscript::labelLeaderObj", 0};
-static swig_type_info _swigt__p_labelObj = {"_p_labelObj", "labelObj *", 0, 0, (void*)"mapscript::labelObj", 0};
+static swig_type_info _swigt__p_labelObj = {"_p_labelObj", "struct labelObj *|labelObj *", 0, 0, (void*)"mapscript::labelObj", 0};
 static swig_type_info _swigt__p_labelStyleObj = {"_p_labelStyleObj", "labelStyleObj *", 0, 0, (void*)"mapscript::labelStyleObj", 0};
 static swig_type_info _swigt__p_layerObj = {"_p_layerObj", "struct layerObj *|layerObj *", 0, 0, (void*)"mapscript::layerObj", 0};
 static swig_type_info _swigt__p_legendObj = {"_p_legendObj", "legendObj *", 0, 0, (void*)"mapscript::legendObj", 0};
@@ -43797,7 +44641,6 @@ static swig_type_info _swigt__p_mapObj = {"_p_mapObj", "struct mapObj *|mapObj *
 static swig_type_info _swigt__p_markerCacheMemberObj = {"_p_markerCacheMemberObj", "markerCacheMemberObj *", 0, 0, (void*)"mapscript::markerCacheMemberObj", 0};
 static swig_type_info _swigt__p_outputFormatObj = {"_p_outputFormatObj", "outputFormatObj *", 0, 0, (void*)"mapscript::outputFormatObj", 0};
 static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_p_outputFormatObj = {"_p_p_outputFormatObj", "outputFormatObj **", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_pointObj = {"_p_pointObj", "pointObj *", 0, 0, (void*)"mapscript::pointObj", 0};
 static swig_type_info _swigt__p_projectionObj = {"_p_projectionObj", "projectionObj *", 0, 0, (void*)"mapscript::projectionObj", 0};
 static swig_type_info _swigt__p_queryMapObj = {"_p_queryMapObj", "queryMapObj *", 0, 0, (void*)"mapscript::queryMapObj", 0};
@@ -43806,12 +44649,14 @@ static swig_type_info _swigt__p_referenceMapObj = {"_p_referenceMapObj", "refere
 static swig_type_info _swigt__p_rendererVTableObj = {"_p_rendererVTableObj", "struct rendererVTableObj *|rendererVTableObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_resultCacheObj = {"_p_resultCacheObj", "resultCacheObj *", 0, 0, (void*)"mapscript::resultCacheObj", 0};
 static swig_type_info _swigt__p_resultObj = {"_p_resultObj", "resultObj *", 0, 0, (void*)"mapscript::resultObj", 0};
+static swig_type_info _swigt__p_scaleTokenEntryObj = {"_p_scaleTokenEntryObj", "scaleTokenEntryObj *", 0, 0, (void*)"mapscript::scaleTokenEntryObj", 0};
+static swig_type_info _swigt__p_scaleTokenObj = {"_p_scaleTokenObj", "scaleTokenObj *", 0, 0, (void*)"mapscript::scaleTokenObj", 0};
 static swig_type_info _swigt__p_scalebarObj = {"_p_scalebarObj", "scalebarObj *", 0, 0, (void*)"mapscript::scalebarObj", 0};
 static swig_type_info _swigt__p_shapeObj = {"_p_shapeObj", "shapeObj *", 0, 0, (void*)"mapscript::shapeObj", 0};
 static swig_type_info _swigt__p_shapefileObj = {"_p_shapefileObj", "shapefileObj *", 0, 0, (void*)"mapscript::shapefileObj", 0};
 static swig_type_info _swigt__p_strokeStyleObj = {"_p_strokeStyleObj", "strokeStyleObj *", 0, 0, (void*)"mapscript::strokeStyleObj", 0};
-static swig_type_info _swigt__p_styleObj = {"_p_styleObj", "styleObj *", 0, 0, (void*)"mapscript::styleObj", 0};
-static swig_type_info _swigt__p_symbolObj = {"_p_symbolObj", "symbolObj *", 0, 0, (void*)"mapscript::symbolObj", 0};
+static swig_type_info _swigt__p_styleObj = {"_p_styleObj", "struct styleObj *|styleObj *", 0, 0, (void*)"mapscript::styleObj", 0};
+static swig_type_info _swigt__p_symbolObj = {"_p_symbolObj", "symbolObj *|struct symbolObj *", 0, 0, (void*)"mapscript::symbolObj", 0};
 static swig_type_info _swigt__p_symbolSetObj = {"_p_symbolSetObj", "symbolSetObj *", 0, 0, (void*)"mapscript::symbolSetObj", 0};
 static swig_type_info _swigt__p_symbolStyleObj = {"_p_symbolStyleObj", "symbolStyleObj *", 0, 0, (void*)"mapscript::symbolStyleObj", 0};
 static swig_type_info _swigt__p_tileCacheObj = {"_p_tileCacheObj", "struct tileCacheObj *|tileCacheObj *", 0, 0, (void*)"mapscript::tileCacheObj", 0};
@@ -43849,7 +44694,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_markerCacheMemberObj,
   &_swigt__p_outputFormatObj,
   &_swigt__p_p_char,
-  &_swigt__p_p_outputFormatObj,
   &_swigt__p_pointObj,
   &_swigt__p_projectionObj,
   &_swigt__p_queryMapObj,
@@ -43858,6 +44702,8 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_rendererVTableObj,
   &_swigt__p_resultCacheObj,
   &_swigt__p_resultObj,
+  &_swigt__p_scaleTokenEntryObj,
+  &_swigt__p_scaleTokenObj,
   &_swigt__p_scalebarObj,
   &_swigt__p_shapeObj,
   &_swigt__p_shapefileObj,
@@ -43901,7 +44747,6 @@ static swig_cast_info _swigc__p_mapObj[] = {  {&_swigt__p_mapObj, 0, 0, 0},{0, 0
 static swig_cast_info _swigc__p_markerCacheMemberObj[] = {  {&_swigt__p_markerCacheMemberObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_outputFormatObj[] = {  {&_swigt__p_outputFormatObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_p_char[] = {  {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_p_outputFormatObj[] = {  {&_swigt__p_p_outputFormatObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_pointObj[] = {  {&_swigt__p_pointObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_projectionObj[] = {  {&_swigt__p_projectionObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_queryMapObj[] = {  {&_swigt__p_queryMapObj, 0, 0, 0},{0, 0, 0, 0}};
@@ -43910,6 +44755,8 @@ static swig_cast_info _swigc__p_referenceMapObj[] = {  {&_swigt__p_referenceMapO
 static swig_cast_info _swigc__p_rendererVTableObj[] = {  {&_swigt__p_rendererVTableObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_resultCacheObj[] = {  {&_swigt__p_resultCacheObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_resultObj[] = {  {&_swigt__p_resultObj, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_scaleTokenEntryObj[] = {  {&_swigt__p_scaleTokenEntryObj, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_scaleTokenObj[] = {  {&_swigt__p_scaleTokenObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_scalebarObj[] = {  {&_swigt__p_scalebarObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_shapeObj[] = {  {&_swigt__p_shapeObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_shapefileObj[] = {  {&_swigt__p_shapefileObj, 0, 0, 0},{0, 0, 0, 0}};
@@ -43953,7 +44800,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_markerCacheMemberObj,
   _swigc__p_outputFormatObj,
   _swigc__p_p_char,
-  _swigc__p_p_outputFormatObj,
   _swigc__p_pointObj,
   _swigc__p_projectionObj,
   _swigc__p_queryMapObj,
@@ -43962,6 +44808,8 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_rendererVTableObj,
   _swigc__p_resultCacheObj,
   _swigc__p_resultObj,
+  _swigc__p_scaleTokenEntryObj,
+  _swigc__p_scaleTokenObj,
   _swigc__p_scalebarObj,
   _swigc__p_shapeObj,
   _swigc__p_shapefileObj,
@@ -44006,12 +44854,14 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::clusterObj_region_set", _wrap_clusterObj_region_set},
 {"mapscriptc::clusterObj_region_get", _wrap_clusterObj_region_get},
 {"mapscriptc::clusterObj_updateFromString", _wrap_clusterObj_updateFromString},
+{"mapscriptc::clusterObj_convertToString", _wrap_clusterObj_convertToString},
 {"mapscriptc::clusterObj_setGroup", _wrap_clusterObj_setGroup},
 {"mapscriptc::clusterObj_getGroupString", _wrap_clusterObj_getGroupString},
 {"mapscriptc::clusterObj_setFilter", _wrap_clusterObj_setFilter},
 {"mapscriptc::clusterObj_getFilterString", _wrap_clusterObj_getFilterString},
 {"mapscriptc::new_clusterObj", _wrap_new_clusterObj},
 {"mapscriptc::delete_clusterObj", _wrap_delete_clusterObj},
+{"mapscriptc::outputFormatObj_numformatoptions_get", _wrap_outputFormatObj_numformatoptions_get},
 {"mapscriptc::outputFormatObj_name_set", _wrap_outputFormatObj_name_set},
 {"mapscriptc::outputFormatObj_name_get", _wrap_outputFormatObj_name_get},
 {"mapscriptc::outputFormatObj_mimetype_set", _wrap_outputFormatObj_mimetype_set},
@@ -44028,12 +44878,6 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::outputFormatObj_transparent_get", _wrap_outputFormatObj_transparent_get},
 {"mapscriptc::outputFormatObj_bands_set", _wrap_outputFormatObj_bands_set},
 {"mapscriptc::outputFormatObj_bands_get", _wrap_outputFormatObj_bands_get},
-{"mapscriptc::outputFormatObj_numformatoptions_set", _wrap_outputFormatObj_numformatoptions_set},
-{"mapscriptc::outputFormatObj_numformatoptions_get", _wrap_outputFormatObj_numformatoptions_get},
-{"mapscriptc::outputFormatObj_formatoptions_set", _wrap_outputFormatObj_formatoptions_set},
-{"mapscriptc::outputFormatObj_formatoptions_get", _wrap_outputFormatObj_formatoptions_get},
-{"mapscriptc::outputFormatObj_refcount_set", _wrap_outputFormatObj_refcount_set},
-{"mapscriptc::outputFormatObj_refcount_get", _wrap_outputFormatObj_refcount_get},
 {"mapscriptc::outputFormatObj_inmapfile_set", _wrap_outputFormatObj_inmapfile_set},
 {"mapscriptc::outputFormatObj_inmapfile_get", _wrap_outputFormatObj_inmapfile_get},
 {"mapscriptc::new_outputFormatObj", _wrap_new_outputFormatObj},
@@ -44043,6 +44887,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::outputFormatObj_setOption", _wrap_outputFormatObj_setOption},
 {"mapscriptc::outputFormatObj_validate", _wrap_outputFormatObj_validate},
 {"mapscriptc::outputFormatObj_getOption", _wrap_outputFormatObj_getOption},
+{"mapscriptc::outputFormatObj_getOptionAt", _wrap_outputFormatObj_getOptionAt},
 {"mapscriptc::outputFormatObj_attachDevice", _wrap_outputFormatObj_attachDevice},
 {"mapscriptc::queryMapObj_height_set", _wrap_queryMapObj_height_set},
 {"mapscriptc::queryMapObj_height_get", _wrap_queryMapObj_height_get},
@@ -44055,6 +44900,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::queryMapObj_color_set", _wrap_queryMapObj_color_set},
 {"mapscriptc::queryMapObj_color_get", _wrap_queryMapObj_color_get},
 {"mapscriptc::queryMapObj_updateFromString", _wrap_queryMapObj_updateFromString},
+{"mapscriptc::queryMapObj_convertToString", _wrap_queryMapObj_convertToString},
 {"mapscriptc::new_queryMapObj", _wrap_new_queryMapObj},
 {"mapscriptc::delete_queryMapObj", _wrap_delete_queryMapObj},
 {"mapscriptc::webObj_log_set", _wrap_webObj_log_set},
@@ -44097,6 +44943,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::new_webObj", _wrap_new_webObj},
 {"mapscriptc::delete_webObj", _wrap_delete_webObj},
 {"mapscriptc::webObj_updateFromString", _wrap_webObj_updateFromString},
+{"mapscriptc::webObj_convertToString", _wrap_webObj_convertToString},
 {"mapscriptc::styleObj_refcount_get", _wrap_styleObj_refcount_get},
 {"mapscriptc::styleObj_autoangle_set", _wrap_styleObj_autoangle_set},
 {"mapscriptc::styleObj_autoangle_get", _wrap_styleObj_autoangle_get},
@@ -44173,6 +45020,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::new_styleObj", _wrap_new_styleObj},
 {"mapscriptc::delete_styleObj", _wrap_delete_styleObj},
 {"mapscriptc::styleObj_updateFromString", _wrap_styleObj_updateFromString},
+{"mapscriptc::styleObj_convertToString", _wrap_styleObj_convertToString},
 {"mapscriptc::styleObj_clone", _wrap_styleObj_clone},
 {"mapscriptc::styleObj_setSymbolByName", _wrap_styleObj_setSymbolByName},
 {"mapscriptc::styleObj_removeBinding", _wrap_styleObj_removeBinding},
@@ -44271,6 +45119,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::new_labelObj", _wrap_new_labelObj},
 {"mapscriptc::delete_labelObj", _wrap_delete_labelObj},
 {"mapscriptc::labelObj_updateFromString", _wrap_labelObj_updateFromString},
+{"mapscriptc::labelObj_convertToString", _wrap_labelObj_convertToString},
 {"mapscriptc::labelObj_removeBinding", _wrap_labelObj_removeBinding},
 {"mapscriptc::labelObj_getBinding", _wrap_labelObj_getBinding},
 {"mapscriptc::labelObj_setBinding", _wrap_labelObj_setBinding},
@@ -44317,6 +45166,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::new_classObj", _wrap_new_classObj},
 {"mapscriptc::delete_classObj", _wrap_delete_classObj},
 {"mapscriptc::classObj_updateFromString", _wrap_classObj_updateFromString},
+{"mapscriptc::classObj_convertToString", _wrap_classObj_convertToString},
 {"mapscriptc::classObj_clone", _wrap_classObj_clone},
 {"mapscriptc::classObj_setExpression", _wrap_classObj_setExpression},
 {"mapscriptc::classObj_getExpressionString", _wrap_classObj_getExpressionString},
@@ -44423,6 +45273,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::referenceMapObj_maxboxsize_get", _wrap_referenceMapObj_maxboxsize_get},
 {"mapscriptc::referenceMapObj_map_get", _wrap_referenceMapObj_map_get},
 {"mapscriptc::referenceMapObj_updateFromString", _wrap_referenceMapObj_updateFromString},
+{"mapscriptc::referenceMapObj_convertToString", _wrap_referenceMapObj_convertToString},
 {"mapscriptc::new_referenceMapObj", _wrap_new_referenceMapObj},
 {"mapscriptc::delete_referenceMapObj", _wrap_delete_referenceMapObj},
 {"mapscriptc::scalebarObj_imagecolor_set", _wrap_scalebarObj_imagecolor_set},
@@ -44454,6 +45305,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::scalebarObj_align_set", _wrap_scalebarObj_align_set},
 {"mapscriptc::scalebarObj_align_get", _wrap_scalebarObj_align_get},
 {"mapscriptc::scalebarObj_updateFromString", _wrap_scalebarObj_updateFromString},
+{"mapscriptc::scalebarObj_convertToString", _wrap_scalebarObj_convertToString},
 {"mapscriptc::new_scalebarObj", _wrap_new_scalebarObj},
 {"mapscriptc::delete_scalebarObj", _wrap_delete_scalebarObj},
 {"mapscriptc::legendObj_imagecolor_set", _wrap_legendObj_imagecolor_set},
@@ -44483,6 +45335,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::legendObj_template_get", _wrap_legendObj_template_get},
 {"mapscriptc::legendObj_map_get", _wrap_legendObj_map_get},
 {"mapscriptc::legendObj_updateFromString", _wrap_legendObj_updateFromString},
+{"mapscriptc::legendObj_convertToString", _wrap_legendObj_convertToString},
 {"mapscriptc::new_legendObj", _wrap_new_legendObj},
 {"mapscriptc::delete_legendObj", _wrap_delete_legendObj},
 {"mapscriptc::imageObj_width_get", _wrap_imageObj_width_get},
@@ -44498,6 +45351,22 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::imageObj_write", _wrap_imageObj_write},
 {"mapscriptc::imageObj_getBytes", _wrap_imageObj_getBytes},
 {"mapscriptc::imageObj_getSize", _wrap_imageObj_getSize},
+{"mapscriptc::scaleTokenEntryObj_minscale_set", _wrap_scaleTokenEntryObj_minscale_set},
+{"mapscriptc::scaleTokenEntryObj_minscale_get", _wrap_scaleTokenEntryObj_minscale_get},
+{"mapscriptc::scaleTokenEntryObj_maxscale_set", _wrap_scaleTokenEntryObj_maxscale_set},
+{"mapscriptc::scaleTokenEntryObj_maxscale_get", _wrap_scaleTokenEntryObj_maxscale_get},
+{"mapscriptc::scaleTokenEntryObj_value_set", _wrap_scaleTokenEntryObj_value_set},
+{"mapscriptc::scaleTokenEntryObj_value_get", _wrap_scaleTokenEntryObj_value_get},
+{"mapscriptc::new_scaleTokenEntryObj", _wrap_new_scaleTokenEntryObj},
+{"mapscriptc::delete_scaleTokenEntryObj", _wrap_delete_scaleTokenEntryObj},
+{"mapscriptc::scaleTokenObj_name_set", _wrap_scaleTokenObj_name_set},
+{"mapscriptc::scaleTokenObj_name_get", _wrap_scaleTokenObj_name_get},
+{"mapscriptc::scaleTokenObj_n_entries_set", _wrap_scaleTokenObj_n_entries_set},
+{"mapscriptc::scaleTokenObj_n_entries_get", _wrap_scaleTokenObj_n_entries_get},
+{"mapscriptc::scaleTokenObj_tokens_set", _wrap_scaleTokenObj_tokens_set},
+{"mapscriptc::scaleTokenObj_tokens_get", _wrap_scaleTokenObj_tokens_get},
+{"mapscriptc::new_scaleTokenObj", _wrap_new_scaleTokenObj},
+{"mapscriptc::delete_scaleTokenObj", _wrap_delete_scaleTokenObj},
 {"mapscriptc::layerObj_classitem_set", _wrap_layerObj_classitem_set},
 {"mapscriptc::layerObj_classitem_get", _wrap_layerObj_classitem_get},
 {"mapscriptc::layerObj_refcount_get", _wrap_layerObj_refcount_get},
@@ -44561,6 +45430,8 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::layerObj_tileitem_get", _wrap_layerObj_tileitem_get},
 {"mapscriptc::layerObj_tileindex_set", _wrap_layerObj_tileindex_set},
 {"mapscriptc::layerObj_tileindex_get", _wrap_layerObj_tileindex_get},
+{"mapscriptc::layerObj_tilesrs_set", _wrap_layerObj_tilesrs_set},
+{"mapscriptc::layerObj_tilesrs_get", _wrap_layerObj_tilesrs_get},
 {"mapscriptc::layerObj_units_set", _wrap_layerObj_units_set},
 {"mapscriptc::layerObj_units_get", _wrap_layerObj_units_get},
 {"mapscriptc::layerObj_connection_set", _wrap_layerObj_connection_set},
@@ -44603,6 +45474,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::delete_layerObj", _wrap_delete_layerObj},
 {"mapscriptc::layerObj_clone", _wrap_layerObj_clone},
 {"mapscriptc::layerObj_updateFromString", _wrap_layerObj_updateFromString},
+{"mapscriptc::layerObj_convertToString", _wrap_layerObj_convertToString},
 {"mapscriptc::layerObj_insertClass", _wrap_layerObj_insertClass},
 {"mapscriptc::layerObj_removeClass", _wrap_layerObj_removeClass},
 {"mapscriptc::layerObj_open", _wrap_layerObj_open},
@@ -44656,6 +45528,8 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::layerObj_clearProcessing", _wrap_layerObj_clearProcessing},
 {"mapscriptc::layerObj_setConnectionType", _wrap_layerObj_setConnectionType},
 {"mapscriptc::layerObj_getClassIndex", _wrap_layerObj_getClassIndex},
+{"mapscriptc::layerObj_getGeomTransform", _wrap_layerObj_getGeomTransform},
+{"mapscriptc::layerObj_setGeomTransform", _wrap_layerObj_setGeomTransform},
 {"mapscriptc::mapObj_name_set", _wrap_mapObj_name_set},
 {"mapscriptc::mapObj_name_get", _wrap_mapObj_name_get},
 {"mapscriptc::mapObj_status_set", _wrap_mapObj_status_set},
@@ -44697,7 +45571,6 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::mapObj_imagecolor_set", _wrap_mapObj_imagecolor_set},
 {"mapscriptc::mapObj_imagecolor_get", _wrap_mapObj_imagecolor_get},
 {"mapscriptc::mapObj_numoutputformats_get", _wrap_mapObj_numoutputformats_get},
-{"mapscriptc::mapObj_outputformatlist_get", _wrap_mapObj_outputformatlist_get},
 {"mapscriptc::mapObj_outputformat_get", _wrap_mapObj_outputformat_get},
 {"mapscriptc::mapObj_imagetype_get", _wrap_mapObj_imagetype_get},
 {"mapscriptc::mapObj_reference_get", _wrap_mapObj_reference_get},
@@ -44732,6 +45605,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::mapObj_prepareImage", _wrap_mapObj_prepareImage},
 {"mapscriptc::mapObj_setImageType", _wrap_mapObj_setImageType},
 {"mapscriptc::mapObj_selectOutputFormat", _wrap_mapObj_selectOutputFormat},
+{"mapscriptc::mapObj_getOutputFormat", _wrap_mapObj_getOutputFormat},
 {"mapscriptc::mapObj_setOutputFormat", _wrap_mapObj_setOutputFormat},
 {"mapscriptc::mapObj_draw", _wrap_mapObj_draw},
 {"mapscriptc::mapObj_drawQuery", _wrap_mapObj_drawQuery},
@@ -44784,6 +45658,7 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::mapObj_removeOutputFormat", _wrap_mapObj_removeOutputFormat},
 {"mapscriptc::mapObj_loadOWSParameters", _wrap_mapObj_loadOWSParameters},
 {"mapscriptc::mapObj_OWSDispatch", _wrap_mapObj_OWSDispatch},
+{"mapscriptc::mapObj_convertToString", _wrap_mapObj_convertToString},
 {"mapscriptc::mapObj_zoomPoint", _wrap_mapObj_zoomPoint},
 {"mapscriptc::mapObj_zoomRectangle", _wrap_mapObj_zoomRectangle},
 {"mapscriptc::mapObj_zoomScale", _wrap_mapObj_zoomScale},
@@ -45063,8 +45938,6 @@ static swig_command_info swig_commands[] = {
 {"mapscriptc::symbolObj_antialias_get", _wrap_symbolObj_antialias_get},
 {"mapscriptc::symbolObj_font_set", _wrap_symbolObj_font_set},
 {"mapscriptc::symbolObj_font_get", _wrap_symbolObj_font_get},
-{"mapscriptc::symbolObj_svg_text_set", _wrap_symbolObj_svg_text_set},
-{"mapscriptc::symbolObj_svg_text_get", _wrap_symbolObj_svg_text_get},
 {"mapscriptc::new_symbolObj", _wrap_new_symbolObj},
 {"mapscriptc::delete_symbolObj", _wrap_delete_symbolObj},
 {"mapscriptc::symbolObj_setImagepath", _wrap_symbolObj_setImagepath},
@@ -45375,25 +46248,30 @@ XS(SWIG_init) {
   
   /* Install commands */
   for (i = 0; swig_commands[i].name; i++) {
-    newXS((char*) swig_commands[i].name,swig_commands[i].wrapper, (char*)__FILE__);
+    // Casts only needed for Perl < 5.10.
+#ifdef __cplusplus
+    newXS(const_cast<char*>(swig_commands[i].name), swig_commands[i].wrapper, const_cast<char*>(__FILE__));
+#else
+    newXS((char*)swig_commands[i].name, swig_commands[i].wrapper, (char*)__FILE__);
+#endif
   }
   
   /* Install variables */
   for (i = 0; swig_variables[i].name; i++) {
     SV *sv;
-    sv = get_sv((char*) swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
+    sv = get_sv(swig_variables[i].name, TRUE | 0x2 | GV_ADDMULTI);
     if (swig_variables[i].type) {
       SWIG_MakePtr(sv,(void *)1, *swig_variables[i].type,0);
     } else {
       sv_setiv(sv,(IV) 0);
     }
-    swig_create_magic(sv, (char *) swig_variables[i].name, swig_variables[i].set, swig_variables[i].get); 
+    swig_create_magic(sv, swig_variables[i].name, swig_variables[i].set, swig_variables[i].get); 
   }
   
   /* Install constant */
   for (i = 0; swig_constants[i].type; i++) {
     SV *sv;
-    sv = get_sv((char*)swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
+    sv = get_sv(swig_constants[i].name, TRUE | 0x2 | GV_ADDMULTI);
     switch(swig_constants[i].type) {
     case SWIG_INT:
       sv_setiv(sv, (IV) swig_constants[i].lvalue);
@@ -45402,7 +46280,7 @@ XS(SWIG_init) {
       sv_setnv(sv, (double) swig_constants[i].dvalue);
       break;
     case SWIG_STRING:
-      sv_setpv(sv, (char *) swig_constants[i].pvalue);
+      sv_setpv(sv, (const char *) swig_constants[i].pvalue);
       break;
     case SWIG_POINTER:
       SWIG_MakePtr(sv, swig_constants[i].pvalue, *(swig_constants[i].ptype),0);
@@ -45422,1125 +46300,1135 @@ XS(SWIG_init) {
     msSetError(MS_MISCERR, "Error initializing MapServer/Mapscript.", "msSetup()");
   }
   
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
-    SV *sv = get_sv((char*) SWIG_prefix "MS_VERSION", TRUE | 0x2 | GV_ADDMULTI);
-    sv_setsv(sv, SWIG_FromCharPtr("6.2.1"));
-    SvREADONLY_on(sv);
-  } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
-    SV *sv = get_sv((char*) SWIG_prefix "MS_VERSION_MAJOR", TRUE | 0x2 | GV_ADDMULTI);
-    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(6)));
-    SvREADONLY_on(sv);
-  } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
-    SV *sv = get_sv((char*) SWIG_prefix "MS_VERSION_MINOR", TRUE | 0x2 | GV_ADDMULTI);
-    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(2)));
-    SvREADONLY_on(sv);
-  } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
-    SV *sv = get_sv((char*) SWIG_prefix "MS_VERSION_REV", TRUE | 0x2 | GV_ADDMULTI);
-    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1)));
-    SvREADONLY_on(sv);
-  } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
-    SV *sv = get_sv((char*) SWIG_prefix "MS_VERSION_NUM", TRUE | 0x2 | GV_ADDMULTI);
-    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)((6*10000+2*100+1))));
-    SvREADONLY_on(sv);
-  } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TRUE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_FALSE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(0)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_UNKNOWN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(-1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_ON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_OFF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(0)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DEFAULT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_EMBED", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DELETE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(4)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_YES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_NO", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(0)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GD_ALPHA", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1000)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LAYER_ALLOCSIZE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(64)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CLASS_ALLOCSIZE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(8)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_ALLOCSIZE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(4)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_ALLOCSIZE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_MAX_LABEL_PRIORITY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(10)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_MAX_LABEL_FONTS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(5)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DEFAULT_LABEL_PRIORITY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_FORCE_GROUP", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_SWF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_RAWDATA", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_IMAGEMAP", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(5)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_TEMPLATE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(8)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_OGR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(16)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_PLUGIN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(100)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_CAIRO_RASTER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(101)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_CAIRO_PDF", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(102)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_CAIRO_SVG", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(103)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_OGL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(104)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_AGG", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(105)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_GD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(106)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDER_WITH_KML", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(107)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_FILE_MAP", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_FILE_MAP)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_FILE_SYMBOL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_FILE_SYMBOL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_INCHES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_INCHES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_FEET", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_FEET)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_MILES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_MILES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_METERS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_METERS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_KILOMETERS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_KILOMETERS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DD", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DD)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_PIXELS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_PIXELS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_PERCENTAGES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_PERCENTAGES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_NAUTICALMILES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_NAUTICALMILES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHAPE_POINT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SHAPE_POINT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHAPE_LINE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SHAPE_LINE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHAPE_POLYGON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SHAPE_POLYGON)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHAPE_NULL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SHAPE_NULL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LAYER_POINT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LAYER_POINT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LAYER_LINE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LAYER_LINE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LAYER_POLYGON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LAYER_POLYGON)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LAYER_RASTER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LAYER_RASTER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LAYER_ANNOTATION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LAYER_ANNOTATION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LAYER_QUERY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LAYER_QUERY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LAYER_CIRCLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LAYER_CIRCLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LAYER_TILEINDEX", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LAYER_TILEINDEX)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LAYER_CHART", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LAYER_CHART)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TRUETYPE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TRUETYPE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_BITMAP", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_BITMAP)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_POSITIONS_LENGTH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(14)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_UL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_UL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_UR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_UR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_CR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_CL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_UC", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_UC)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LC", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LC)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CC", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_CC)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_AUTO", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_AUTO)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_XY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_XY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_FOLLOW", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_FOLLOW)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_NONE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_NONE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_AUTO2", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_AUTO2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TINY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TINY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SMALL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SMALL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_MEDIUM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_MEDIUM)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LARGE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LARGE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GIANT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GIANT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_NORMAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_NORMAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_HILITE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_HILITE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SELECTED", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SELECTED)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_INLINE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_INLINE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHAPEFILE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SHAPEFILE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TILED_SHAPEFILE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TILED_SHAPEFILE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SDE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SDE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_OGR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_OGR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_UNUSED_1", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_UNUSED_1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_POSTGIS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_POSTGIS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_WMS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_WMS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_ORACLESPATIAL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_ORACLESPATIAL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_WFS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_WFS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GRATICULE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GRATICULE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_MYSQL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_MYSQL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RASTER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_RASTER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_PLUGIN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_PLUGIN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_UNION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_UNION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_UVRASTER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_UVRASTER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "MS_CONTOUR", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_CONTOUR)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DB_XBASE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DB_XBASE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DB_CSV", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DB_CSV)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DB_MYSQL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DB_MYSQL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DB_ORACLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DB_ORACLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DB_POSTGRES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DB_POSTGRES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_JOIN_ONE_TO_ONE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_JOIN_ONE_TO_ONE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_JOIN_ONE_TO_MANY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_JOIN_ONE_TO_MANY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SINGLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(0)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_MULTIPLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_QUERY_SINGLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_QUERY_SINGLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_QUERY_MULTIPLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_QUERY_MULTIPLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_QUERY_IS_NULL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_QUERY_IS_NULL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_QUERY_BY_POINT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_QUERY_BY_POINT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_QUERY_BY_RECT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_QUERY_BY_RECT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_QUERY_BY_SHAPE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_QUERY_BY_SHAPE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_QUERY_BY_ATTRIBUTE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_QUERY_BY_ATTRIBUTE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_QUERY_BY_INDEX", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_QUERY_BY_INDEX)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_QUERY_BY_FILTER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_QUERY_BY_FILTER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_ALIGN_LEFT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_ALIGN_LEFT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_ALIGN_CENTER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_ALIGN_CENTER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_ALIGN_RIGHT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_ALIGN_RIGHT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CJC_NONE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_CJC_NONE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CJC_BEVEL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_CJC_BEVEL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CJC_BUTT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_CJC_BUTT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CJC_MITER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_CJC_MITER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CJC_ROUND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_CJC_ROUND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CJC_SQUARE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_CJC_SQUARE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CJC_TRIANGLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_CJC_TRIANGLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CJC_DEFAULT_JOIN_MAXSIZE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SUCCESS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SUCCESS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_FAILURE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_FAILURE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DONE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DONE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IMAGEMODE_PC256", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_IMAGEMODE_PC256)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IMAGEMODE_RGB", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_IMAGEMODE_RGB)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IMAGEMODE_RGBA", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_IMAGEMODE_RGBA)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IMAGEMODE_INT16", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_IMAGEMODE_INT16)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IMAGEMODE_FLOAT32", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_IMAGEMODE_FLOAT32)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IMAGEMODE_BYTE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_IMAGEMODE_BYTE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IMAGEMODE_FEATURE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_IMAGEMODE_FEATURE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IMAGEMODE_NULL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_IMAGEMODE_NULL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GEOS_EQUALS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GEOS_EQUALS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GEOS_DISJOINT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GEOS_DISJOINT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GEOS_TOUCHES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GEOS_TOUCHES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GEOS_OVERLAPS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GEOS_OVERLAPS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GEOS_CROSSES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GEOS_CROSSES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GEOS_INTERSECTS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GEOS_INTERSECTS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GEOS_WITHIN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GEOS_WITHIN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GEOS_CONTAINS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GEOS_CONTAINS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GEOS_BEYOND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GEOS_BEYOND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GEOS_DWITHIN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GEOS_DWITHIN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TRANSFORM_NONE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TRANSFORM_NONE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TRANSFORM_ROUND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TRANSFORM_ROUND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TRANSFORM_SNAPTOGRID", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TRANSFORM_SNAPTOGRID)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TRANSFORM_FULLRESOLUTION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TRANSFORM_FULLRESOLUTION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TRANSFORM_SIMPLIFY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TRANSFORM_SIMPLIFY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_LENGTH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(12)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_SIZE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_SIZE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_WIDTH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_WIDTH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_ANGLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_ANGLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_COLOR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_COLOR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_OUTLINECOLOR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_OUTLINECOLOR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_SYMBOL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_SYMBOL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_OUTLINEWIDTH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_OUTLINEWIDTH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_OPACITY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_OPACITY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_OFFSET_X", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_OFFSET_X)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_OFFSET_Y", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_OFFSET_Y)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_POLAROFFSET_PIXEL", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_POLAROFFSET_PIXEL)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_STYLE_BINDING_POLAROFFSET_ANGLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_STYLE_BINDING_POLAROFFSET_ANGLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_BINDING_LENGTH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(9)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_BINDING_SIZE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LABEL_BINDING_SIZE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_BINDING_ANGLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LABEL_BINDING_ANGLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_BINDING_COLOR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LABEL_BINDING_COLOR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_BINDING_OUTLINECOLOR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LABEL_BINDING_OUTLINECOLOR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_BINDING_FONT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LABEL_BINDING_FONT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_BINDING_PRIORITY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LABEL_BINDING_PRIORITY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_BINDING_POSITION", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LABEL_BINDING_POSITION)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_BINDING_SHADOWSIZEX", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LABEL_BINDING_SHADOWSIZEX)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_LABEL_BINDING_SHADOWSIZEY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_LABEL_BINDING_SHADOWSIZEY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_fontSetObj, (void*) "mapscript::fontSetObj");
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_LOGICAL_AND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_LOGICAL_AND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_LOGICAL_OR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_LOGICAL_OR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_LOGICAL_NOT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_LOGICAL_NOT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_LITERAL_NUMBER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_LITERAL_NUMBER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_LITERAL_STRING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_LITERAL_STRING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_LITERAL_TIME", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_LITERAL_TIME)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_LITERAL_SHAPE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_LITERAL_SHAPE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_EQ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_EQ)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_NE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_NE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_GT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_GT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_LT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_LT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_LE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_LE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_GE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_GE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_IEQ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_IEQ)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_RE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_RE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_IRE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_IRE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_IN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_IN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_LIKE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_LIKE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_INTERSECTS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_INTERSECTS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_DISJOINT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_DISJOINT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_TOUCHES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_TOUCHES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_OVERLAPS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_OVERLAPS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_CROSSES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_CROSSES)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_WITHIN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_WITHIN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_CONTAINS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_CONTAINS)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_BEYOND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_BEYOND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_COMPARISON_DWITHIN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_COMPARISON_DWITHIN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_LENGTH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_LENGTH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_TOSTRING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_TOSTRING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_COMMIFY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_COMMIFY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_AREA", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_AREA)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_ROUND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_ROUND)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_FROMTEXT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_FROMTEXT)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_BUFFER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_BUFFER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_DIFFERENCE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_DIFFERENCE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_SIMPLIFY", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_SIMPLIFY)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_SIMPLIFYPT", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_SIMPLIFYPT)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_GENERALIZE", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_GENERALIZE)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_FUNCTION_SMOOTHSIA", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_FUNCTION_SMOOTHSIA)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_BINDING_DOUBLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_BINDING_DOUBLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_BINDING_INTEGER", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_BINDING_INTEGER)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_BINDING_STRING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_BINDING_STRING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_BINDING_TIME", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_BINDING_TIME)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_BINDING_SHAPE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_BINDING_SHAPE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_BINDING_MAP_CELLSIZE", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_BINDING_MAP_CELLSIZE)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+    SV *sv = get_sv((char*) SWIG_prefix "MS_TOKEN_BINDING_DATA_CELLSIZE", TRUE | 0x2 | GV_ADDMULTI);
+    sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_TOKEN_BINDING_DATA_CELLSIZE)));
+    SvREADONLY_on(sv);
+  } while(0) /*@SWIG@*/;
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_PARSE_TYPE_BOOLEAN", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_PARSE_TYPE_BOOLEAN)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_PARSE_TYPE_STRING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_PARSE_TYPE_STRING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_PARSE_TYPE_SHAPE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_PARSE_TYPE_SHAPE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_clusterObj, (void*) "mapscript::clusterObj");
   SWIG_TypeClientData(SWIGTYPE_p_outputFormatObj, (void*) "mapscript::outputFormatObj");
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_NOOVERRIDE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(-1111)));
     SvREADONLY_on(sv);
@@ -46562,6 +47450,8 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_scalebarObj, (void*) "mapscript::scalebarObj");
   SWIG_TypeClientData(SWIGTYPE_p_legendObj, (void*) "mapscript::legendObj");
   SWIG_TypeClientData(SWIGTYPE_p_imageObj, (void*) "mapscript::imageObj");
+  SWIG_TypeClientData(SWIGTYPE_p_scaleTokenEntryObj, (void*) "mapscript::scaleTokenEntryObj");
+  SWIG_TypeClientData(SWIGTYPE_p_scaleTokenObj, (void*) "mapscript::scaleTokenObj");
   SWIG_TypeClientData(SWIGTYPE_p_layerObj, (void*) "mapscript::layerObj");
   SWIG_TypeClientData(SWIGTYPE_p_mapObj, (void*) "mapscript::mapObj");
   SWIG_TypeClientData(SWIGTYPE_p_strokeStyleObj, (void*) "mapscript::strokeStyleObj");
@@ -46572,449 +47462,449 @@ XS(SWIG_init) {
   SWIG_TypeClientData(SWIGTYPE_p_pointObj, (void*) "mapscript::pointObj");
   SWIG_TypeClientData(SWIGTYPE_p_lineObj, (void*) "mapscript::lineObj");
   SWIG_TypeClientData(SWIGTYPE_p_shapeObj, (void*) "mapscript::shapeObj");
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "SHX_BUFFER_PAGE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1024)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHAPEFILE_POINT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHAPEFILE_ARC", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHAPEFILE_POLYGON", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(5)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHAPEFILE_MULTIPOINT", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(8)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHP_POINTZ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(11)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHP_ARCZ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(13)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHP_POLYGONZ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(15)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHP_MULTIPOINTZ", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(18)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHP_POINTM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(21)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHP_ARCM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(23)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHP_POLYGONM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(25)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHP_MULTIPOINTM", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(28)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_DBFInfo, (void*) "mapscript::DBFInfo");
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FTString", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(FTString)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FTInteger", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(FTInteger)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FTDouble", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(FTDouble)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "FTInvalid", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(FTInvalid)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_shapefileObj, (void*) "mapscript::shapefileObj");
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "wkp_none", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(0)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "wkp_lonlat", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "wkp_gmerc", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_projectionObj, (void*) "mapscript::projectionObj");
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SYMBOL_SIMPLE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SYMBOL_SIMPLE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SYMBOL_VECTOR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SYMBOL_VECTOR)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SYMBOL_ELLIPSE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SYMBOL_ELLIPSE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SYMBOL_PIXMAP", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SYMBOL_PIXMAP)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SYMBOL_TRUETYPE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SYMBOL_TRUETYPE)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SYMBOL_HATCH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SYMBOL_HATCH)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SYMBOL_SVG", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_SYMBOL_SVG)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SYMBOL_ALLOCSIZE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(64)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_MAXVECTORPOINTS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(100)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_MAXPATTERNLENGTH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(10)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IMAGECACHESIZE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(6)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_colorObj, (void*) "mapscript::colorObj");
   SWIG_TypeClientData(SWIGTYPE_p_symbolObj, (void*) "mapscript::symbolObj");
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_NOERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(0)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IOERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(1)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_MEMERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(2)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TYPEERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(3)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SYMERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(4)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_REGEXERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(5)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TTFERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(6)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DBFERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(7)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GDERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(8)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IDENTERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(9)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_EOFERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(10)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_PROJERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(11)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_MISCERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(12)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CGIERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(13)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_WEBERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(14)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_IMGERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(15)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_HASHERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(16)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_JOINERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(17)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_NOTFOUND", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(18)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SHPERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(19)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_PARSEERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(20)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SDEERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(21)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_OGRERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(22)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_QUERYERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(23)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_WMSERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(24)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_WMSCONNERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(25)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_ORACLESPATIALERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(26)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_WFSERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(27)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_WFSCONNERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(28)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_MAPCONTEXTERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(29)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_HTTPERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(30)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_CHILDERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(31)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_WCSERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(32)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GEOSERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(33)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RECTERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(34)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_TIMEERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(35)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GMLERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(36)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_SOSERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(37)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_NULLPARENTERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(38)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_AGGERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(39)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_OWSERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(40)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_OGLERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(42)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_RENDERERERR", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(43)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_NUMERRORCODES", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(44)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MESSAGELENGTH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(2048)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "ROUTINELENGTH", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(64)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_ERROR_LANGUAGE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_FromCharPtr("en-US"));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_errorObj, (void*) "mapscript::errorObj");
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DEBUGLEVEL_ERRORSONLY", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DEBUGLEVEL_ERRORSONLY)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DEBUGLEVEL_DEBUG", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DEBUGLEVEL_DEBUG)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DEBUGLEVEL_TUNING", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DEBUGLEVEL_TUNING)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DEBUGLEVEL_V", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DEBUGLEVEL_V)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DEBUGLEVEL_VV", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DEBUGLEVEL_VV)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DEBUGLEVEL_VVV", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_DEBUGLEVEL_VVV)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_HASHSIZE", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(41)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
   SWIG_TypeClientData(SWIGTYPE_p_hashTableObj, (void*) "mapscript::hashTableObj");
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_DEFAULT_CGI_PARAMS", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(100)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_GET_REQUEST", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_GET_REQUEST)));
     SvREADONLY_on(sv);
   } while(0) /*@SWIG@*/;
-  /*@SWIG:/usr/share/swig1.3/perl5/perltypemaps.swg,65,%set_constant@*/ do {
+  /*@SWIG:/usr/share/swig2.0/perl5/perltypemaps.swg,65,%set_constant@*/ do {
     SV *sv = get_sv((char*) SWIG_prefix "MS_POST_REQUEST", TRUE | 0x2 | GV_ADDMULTI);
     sv_setsv(sv, SWIG_From_int  SWIG_PERL_CALL_ARGS_1((int)(MS_POST_REQUEST)));
     SvREADONLY_on(sv);
diff --git a/mapscript/php/CMakeLists.txt b/mapscript/php/CMakeLists.txt
new file mode 100644
index 0000000..ab4578a
--- /dev/null
+++ b/mapscript/php/CMakeLists.txt
@@ -0,0 +1,34 @@
+FIND_PACKAGE(PHP5 REQUIRED)
+INCLUDE_DIRECTORIES(${PHP5_INCLUDES})
+
+IF(APPLE)
+  if(XCODE)
+     SET(CMAKE_C_LINK_FLAGS 
+        "${CMAKE_C_LINK_FLAGS} -undefined dynamic_lookup")
+     SET(CMAKE_CXX_LINK_FLAGS 
+        "${CMAKE_CXX_LINK_FLAGS} -undefined dynamic_lookup")
+  else(XCODE)
+     SET(CMAKE_SHARED_MODULE_CREATE_C_FLAGS 
+        "${CMAKE_SHARED_MODULE_CREATE_C_FLAGS} -undefined dynamic_lookup")
+     SET(CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS 
+        "${CMAKE_SHARED_MODULE_CREATE_CXX_FLAGS} -undefined dynamic_lookup")
+  endif(XCODE)
+ENDIF(APPLE)
+
+add_definitions(-DCOMPILE_DL=1)
+add_library(php_mapscript MODULE
+   mapscript_error.c color.c rect.c hashtable.c web.c grid.c error.c
+   referencemap.c querymap.c outputformat.c scalebar.c label.c legend.c
+   symbol.c style.c image.c class.c projection.c line.c shape.c shapefile.c
+   point.c labelcache.c labelleader.c labelcachemember.c result.c owsrequest.c cluster.c
+   layer.c map.c php_mapscript_util.c php_mapscript.c mapscript_i.c
+)
+
+
+target_link_libraries(php_mapscript ${MAPSERVER_LIBMAPSERVER})
+
+set_target_properties(php_mapscript PROPERTIES PREFIX "")
+install(TARGETS php_mapscript DESTINATION ${PHP5_EXTENSION_DIR})
+
+#install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mapscript.py DESTINATION ${PYTHON_SITE_PACKAGES})
+#install(TARGETS mapscript DESTINATION ${PYTHON_SITE_PACKAGES})
diff --git a/mapscript/php/Makefile.in b/mapscript/php/Makefile.in
deleted file mode 100644
index 0ceaa4b..0000000
--- a/mapscript/php/Makefile.in
+++ /dev/null
@@ -1,133 +0,0 @@
-# Run ./configure in the main MapServer directory to turn this Makefile.in
-# into a proper Makefile
-
-#
-# This is an adapted version of php-3.0.14/dl/Makefile.tmpl for the 
-# MapServer php_mapscript.so module.
-#
-# $Id$
-#
-
-# +----------------------------------------------------------------------+
-# | PHP HTML Embedded Scripting Language Version 3.0                     |
-# +----------------------------------------------------------------------+
-# | Copyright (c) 1997,1998 PHP Development Team (See Credits file)      |
-# +----------------------------------------------------------------------+
-# | This program is free software; you can redistribute it and/or modify |
-# | it under the terms of one of the following licenses:                 |
-# |                                                                      |
-# |  A) 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.                                               |
-# |                                                                      |
-# |  B) the PHP License as published by the PHP Development Team and     |
-# |     included in the distribution in the file: LICENSE                |
-# |                                                                      |
-# | 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 both licenses referred to here.   |
-# | If you did not, or have any questions about PHP licensing, please    |
-# | contact core at php.net.                                                |
-# +----------------------------------------------------------------------+
-
-#
-# Pick a compiler, etc. Flex and bison are only required if you need to modify the mapserver lexer (maplexer.l) or expression parser (mapparser.y).
-#
-prefix		=	@prefix@
-exec_prefix	=	@exec_prefix@
-libdir	=	@libdir@
-bindir	=	@bindir@
-top_builddir = @top_builddir@
-SHELL = @SHELL@
-CXX=	@CXX@
-CC=     @CC@
-LD=     @CXX@
-LIBTOOL=@LIBTOOL@
-INSTALL=@INSTALL@
-PHPCONFIG=@PHPCONFIG@
-
-LTCC=$(LIBTOOL) --mode=compile --tag=CC
-LTCXX=$(LIBTOOL) --mode=compile --tag=CXX
-LTLD=$(LIBTOOL) --mode=link --tag=CXX
-LTINSTALL=$(LIBTOOL) --mode=install
-
-XTRALIBS= @XTRALIBS@
-RUNPATHS= -rpath $(libdir)
-
-CFLAGS = @CFLAGS@ @USE_PHP_REGEX@ -DCOMPILE_DL=1 @PHP_VERSION_FLAG@
-
-
-PHP_INC = `$(PHPCONFIG) --includes ` @APACHE_INC@
-
-#
-# IMPORTANT NOTE ABOUT REGEX FOR PHP_MAPSCRIPT USERS:
-#
-# In order to compile the PHP_MAPSCRIPT module, we have to make MapServer
-# uses the same version of the REGEX library that PHP was compiled with:
-#
-PHP_REGEX_OBJ=@PHP_REGEX_OBJ@
-PHP_REGEX_INC=@PHP_REGEX_INC@
-
-
-#
-# Set MapServer extensions parameters.  See main MapServer Makefile for 
-# more details... 
-# Common defaults are:
-# MS_DEFINE = -DUSE_TTF -DUSE_TIFF -DUSE_EPPL -DUSE_GD_1_2
-# MS_INCLUDE = -I../.. -I../../gd-1.2 -I../../gdft
-# MS_LIBS = -L../.. -lmap -L../../gdft -lgdft -ltiff -lttf -L../../gd-1.2 -lgd
-#
-MS_DEFINE = @ALL_ENABLED@
-MS_INC =    @MS_INC@ @ALL_INC@
-MS_STATIC = @ALL_STATIC_LIB@
-MS_LIBS =   $(RUNPATHS) @MS_LIB@ @ALL_LIB@ @XTRALIBS@ $(MS_STATIC)
-PHP_EXT_DIR=`$(PHPCONFIG) --extension-dir`
-
-LT_LDFLAGS=-rpath $(PHP_EXT_DIR) -module
-OBJ_SUFFIX=lo
-LINK=$(LTLD) $(LD) $(LT_LDFLAGS)
-MS_LIBS =   ../../libmapserver.la
-
-MS_VERSION = @MS_VERSION@
-
-#
-# The rest of the file should not have to be edited...
-#
-
-CFLAGS112 = $(CFLAGS) $(MS_DEFINE) $(MS_INC) $(PHP_INC) $(PHP_REGEX_INC)
-
-.SUFFIXES:
-.SUFFIXES: .cpp .c .$(OBJ_SUFFIX)
-
-all: php_mapscript.la
-
-PHPMS_CLASS_OBJS =  mapscript_error.$(OBJ_SUFFIX) color.$(OBJ_SUFFIX) rect.$(OBJ_SUFFIX) hashtable.$(OBJ_SUFFIX) web.$(OBJ_SUFFIX) grid.$(OBJ_SUFFIX) error.$(OBJ_SUFFIX)\
-						  referencemap.$(OBJ_SUFFIX) querymap.$(OBJ_SUFFIX) outputformat.$(OBJ_SUFFIX) scalebar.$(OBJ_SUFFIX) label.$(OBJ_SUFFIX) legend.$(OBJ_SUFFIX)\
-						  symbol.$(OBJ_SUFFIX) style.$(OBJ_SUFFIX) image.$(OBJ_SUFFIX) class.$(OBJ_SUFFIX) projection.$(OBJ_SUFFIX) line.$(OBJ_SUFFIX) shape.$(OBJ_SUFFIX) shapefile.$(OBJ_SUFFIX)\
-						  point.$(OBJ_SUFFIX) labelcache.$(OBJ_SUFFIX) labelleader.$(OBJ_SUFFIX) labelcachemember.$(OBJ_SUFFIX) result.$(OBJ_SUFFIX) owsrequest.$(OBJ_SUFFIX) cluster.$(OBJ_SUFFIX)\
-						  layer.$(OBJ_SUFFIX) map.$(OBJ_SUFFIX)
-PHPMS_OBJS =  php_mapscript_util.$(OBJ_SUFFIX) $(PHPMS_CLASS_OBJS) php_mapscript.$(OBJ_SUFFIX) mapscript_i.$(OBJ_SUFFIX)\
-				  $(PHP_REGEX_OBJ)
-
-PHPPROJ_OBJS = php_mapscript_util.$(OBJ_SUFFIX) php_proj.$(OBJ_SUFFIX) $(PHP_REGEX_OBJ)
-
-
-php_mapscript.la: $(PHPMS_OBJS) ../../libmapserver.la
-	$(LINK) -release $(MS_VERSION) -o $@ $(PHPMS_OBJS) $(MS_LIBS)
-
-php_proj.la:  $(PHPPROJ_OBJS) ../libmapserver.la
-	$(LINK) -release $(MS_VERSION) -o $@ $(PHPPROJ_OBJS) $(MS_LIBS)
-
-%.lo: %.c php_mapscript_util.h php_mapscript.h
-	$(LTCC) $(CC) $(CFLAGS112) -c -o $@ $<
-
-install: php_mapscript.la
-	$(INSTALL) -d $(DESTDIR)$(PHP_EXT_DIR)
-	$(LTINSTALL) $(INSTALL) php_mapscript.la $(DESTDIR)$(PHP_EXT_DIR)
-
-clean:
-	-rm -rf .libs *.lo *.la *.so *.o perl.out
-
diff --git a/mapscript/php/class.c b/mapscript/php/class.c
index 00367fb..c0bc0a5 100644
--- a/mapscript/php/class.c
+++ b/mapscript/php/class.c
@@ -165,7 +165,7 @@ PHP_METHOD(classObj, __construct)
 PHP_METHOD(classObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_class_object *php_class;
 
@@ -201,7 +201,7 @@ PHP_METHOD(classObj, __get)
 PHP_METHOD(classObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_class_object *php_class;
@@ -338,7 +338,7 @@ PHP_METHOD(classObj, getLabel)
 PHP_METHOD(classObj, updateFromString)
 {
   char *snippet;
-  long snippet_len;
+  long snippet_len = 0;
   zval *zobj = getThis();
   php_class_object *php_class;
   int status = MS_FAILURE;
@@ -365,12 +365,39 @@ PHP_METHOD(classObj, updateFromString)
 }
 /* }}} */
 
+/* {{{ proto string convertToString()
+   Convert the class object to string. */
+PHP_METHOD(classObj, convertToString)
+{
+  zval *zobj = getThis();
+  php_class_object *php_class;
+  char *value = NULL;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_class = (php_class_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  value =  classObj_convertToString(php_class->class);
+
+  if (value == NULL)
+    RETURN_STRING("", 1);
+
+  RETVAL_STRING(value, 1);
+  free(value);
+}
+/* }}} */
+
 /* {{{ proto int setExpression(string exression)
    Set the expression string for a class object. */
 PHP_METHOD(classObj, setExpression)
 {
   char *expression;
-  long expression_len;
+  long expression_len = 0;
   zval *zobj = getThis();
   php_class_object *php_class;
   int status = MS_FAILURE;
@@ -429,7 +456,7 @@ PHP_METHOD(classObj, getExpressionString)
 PHP_METHOD(classObj, setText)
 {
   char *text;
-  long text_len;
+  long text_len = 0;
   zval *zobj = getThis();
   php_class_object *php_class;
   php_layer_object *php_layer;
@@ -855,6 +882,7 @@ zend_function_entry class_functions[] = {
   PHP_ME(classObj, removeLabel, class_removeLabel_args, ZEND_ACC_PUBLIC)
   PHP_ME(classObj, getLabel, class_getLabel_args, ZEND_ACC_PUBLIC)
   PHP_ME(classObj, updateFromString, class_updateFromString_args, ZEND_ACC_PUBLIC)
+  PHP_ME(classObj, convertToString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(classObj, setExpression, class_setExpression_args, ZEND_ACC_PUBLIC)
   PHP_ME(classObj, getExpressionString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(classObj, setText, class_setText_args, ZEND_ACC_PUBLIC)
diff --git a/mapscript/php/cluster.c b/mapscript/php/cluster.c
index c592bbb..9250023 100644
--- a/mapscript/php/cluster.c
+++ b/mapscript/php/cluster.c
@@ -66,7 +66,7 @@ PHP_METHOD(clusterObj, __construct)
 PHP_METHOD(clusterObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_cluster_object *php_cluster;
 
@@ -91,7 +91,7 @@ PHP_METHOD(clusterObj, __get)
 PHP_METHOD(clusterObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_cluster_object *php_cluster;
@@ -119,7 +119,7 @@ PHP_METHOD(clusterObj, __set)
 PHP_METHOD(clusterObj, updateFromString)
 {
   char *snippet;
-  long snippet_len;
+  long snippet_len = 0;
   zval *zobj = getThis();
   php_cluster_object *php_cluster;
   int status = MS_FAILURE;
@@ -146,12 +146,39 @@ PHP_METHOD(clusterObj, updateFromString)
 }
 /* }}} */
 
+/* {{{ proto string convertToString()
+   Convert the cluster object to string. */
+PHP_METHOD(clusterObj, convertToString)
+{
+  zval *zobj = getThis();
+  php_cluster_object *php_cluster;
+  char *value = NULL;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_cluster = (php_cluster_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  value =  classObj_convertToString(php_cluster->cluster);
+
+  if (value == NULL)
+    RETURN_STRING("", 1);
+
+  RETVAL_STRING(value, 1);
+  free(value);
+}
+/* }}} */
+
 /* {{{ proto int setGroup(string group)
    Set the group expression string.  Returns MS_SUCCESS/MS_FAILURE */
 PHP_METHOD(clusterObj, setGroup)
 {
   char *group = NULL;
-  long group_len;
+  long group_len = 0;
   zval *zobj = getThis();
   php_cluster_object *php_cluster;
   int status = MS_FAILURE;
@@ -207,7 +234,7 @@ PHP_METHOD(clusterObj, getGroupString)
 PHP_METHOD(clusterObj, setFilter)
 {
   char *filter = NULL;
-  long filter_len;
+  long filter_len = 0;
   zval *zobj = getThis();
   php_cluster_object *php_cluster;
   int status = MS_FAILURE;
@@ -263,6 +290,7 @@ zend_function_entry cluster_functions[] = {
   PHP_ME(clusterObj, __get, cluster___get_args, ZEND_ACC_PUBLIC)
   PHP_ME(clusterObj, __set, cluster___set_args, ZEND_ACC_PUBLIC)
   PHP_ME(clusterObj, updateFromString, cluster_updateFromString_args, ZEND_ACC_PUBLIC)
+  PHP_ME(clusterObj, convertToString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(clusterObj, setGroup, cluster_setGroup_args, ZEND_ACC_PUBLIC)
   PHP_ME(clusterObj, getGroupString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(clusterObj, setFilter, cluster_setFilter_args, ZEND_ACC_PUBLIC)
diff --git a/mapscript/php/color.c b/mapscript/php/color.c
index ac7a614..1a6cbaf 100644
--- a/mapscript/php/color.c
+++ b/mapscript/php/color.c
@@ -59,7 +59,7 @@ PHP_METHOD(colorObj, __construct)
 PHP_METHOD(colorObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_color_object *php_color;
 
@@ -85,7 +85,7 @@ PHP_METHOD(colorObj, __get)
 PHP_METHOD(colorObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_color_object *php_color;
diff --git a/mapscript/php/error.c b/mapscript/php/error.c
index 71f617e..a13de64 100644
--- a/mapscript/php/error.c
+++ b/mapscript/php/error.c
@@ -53,7 +53,7 @@ PHP_METHOD(errorObj, __construct)
 PHP_METHOD(errorObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_error_object *php_error;
 
@@ -79,7 +79,7 @@ PHP_METHOD(errorObj, __get)
 PHP_METHOD(errorObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_error_object *php_error;
diff --git a/mapscript/php/grid.c b/mapscript/php/grid.c
index bb25866..977b760 100644
--- a/mapscript/php/grid.c
+++ b/mapscript/php/grid.c
@@ -95,7 +95,7 @@ PHP_METHOD(gridObj, __construct)
 PHP_METHOD(gridObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_grid_object *php_grid;
 
@@ -124,7 +124,7 @@ PHP_METHOD(gridObj, __get)
 PHP_METHOD(gridObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_grid_object *php_grid;
diff --git a/mapscript/php/hashtable.c b/mapscript/php/hashtable.c
index 25ab33d..44f5680 100644
--- a/mapscript/php/hashtable.c
+++ b/mapscript/php/hashtable.c
@@ -70,7 +70,7 @@ PHP_METHOD(hashtableObj, __construct)
 PHP_METHOD(hashtableObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_hashtable_object *php_hashtable;
 
@@ -93,7 +93,7 @@ PHP_METHOD(hashtableObj, __get)
 PHP_METHOD(hashtableObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
@@ -116,7 +116,7 @@ PHP_METHOD(hashtableObj, __set)
 PHP_METHOD(hashtableObj, get)
 {
   char *key;
-  long key_len;
+  long key_len = 0;
   zval *zobj = getThis();
   const char *value = NULL;
   php_hashtable_object *php_hashtable;
@@ -145,7 +145,7 @@ PHP_METHOD(hashtableObj, get)
 PHP_METHOD(hashtableObj, set)
 {
   char *key, *value;
-  long key_len, value_len;
+  long key_len, value_len = 0;
   zval *zobj = getThis();
   int status = MS_FAILURE;
   php_hashtable_object *php_hashtable;
@@ -174,7 +174,7 @@ PHP_METHOD(hashtableObj, set)
 PHP_METHOD(hashtableObj, remove)
 {
   char *key;
-  long key_len;
+  long key_len = 0;
   zval *zobj = getThis();
   int status = MS_FAILURE;
   php_hashtable_object *php_hashtable;
@@ -224,7 +224,7 @@ PHP_METHOD(hashtableObj, clear)
 PHP_METHOD(hashtableObj, nextKey)
 {
   char *key;
-  long key_len;
+  long key_len = 0;
   zval *zobj = getThis();
   const char *value = NULL;
   php_hashtable_object *php_hashtable;
diff --git a/mapscript/php/image.c b/mapscript/php/image.c
index ae26394..9b8e4fc 100644
--- a/mapscript/php/image.c
+++ b/mapscript/php/image.c
@@ -69,7 +69,7 @@ PHP_METHOD(imageObj, __construct)
 PHP_METHOD(imageObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_image_object *php_image;
 
@@ -98,7 +98,7 @@ PHP_METHOD(imageObj, __get)
 PHP_METHOD(imageObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_image_object *php_image;
diff --git a/mapscript/php/label.c b/mapscript/php/label.c
index 7b07d97..c9c766b 100644
--- a/mapscript/php/label.c
+++ b/mapscript/php/label.c
@@ -118,7 +118,7 @@ PHP_METHOD(labelObj, __construct)
 PHP_METHOD(labelObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_label_object *php_label;
 
@@ -175,7 +175,7 @@ PHP_METHOD(labelObj, __get)
 PHP_METHOD(labelObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_label_object *php_label;
@@ -239,7 +239,7 @@ PHP_METHOD(labelObj, updateFromString)
 {
   zval *zobj = getThis();
   char *snippet;
-  long snippet_len;
+  long snippet_len = 0;
   int status = MS_FAILURE;
   php_label_object *php_label;
 
@@ -262,13 +262,40 @@ PHP_METHOD(labelObj, updateFromString)
 }
 /* }}} */
 
+/* {{{ proto string convertToString()
+   Convert the label object to string. */
+PHP_METHOD(labelObj, convertToString)
+{
+  zval *zobj = getThis();
+  php_label_object *php_label;
+  char *value = NULL;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_label = (php_label_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  value =  labelObj_convertToString(php_label->label);
+
+  if (value == NULL)
+    RETURN_STRING("", 1);
+
+  RETVAL_STRING(value, 1);
+  free(value);
+}
+/* }}} */
+
 /* {{{ proto int label.setbinding(const bindingid, string value)
    Set the attribute binding for a specfiled label property. Returns MS_SUCCESS on success. */
 PHP_METHOD(labelObj, setBinding)
 {
   zval *zobj = getThis();
   char *value;
-  long value_len;
+  long value_len = 0;
   long bindingId;
   php_label_object *php_label;
 
@@ -680,6 +707,7 @@ zend_function_entry label_functions[] = {
   PHP_ME(labelObj, __set, label___set_args, ZEND_ACC_PUBLIC)
   PHP_MALIAS(labelObj, set, __set, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(labelObj, updateFromString, label_updateFromString_args, ZEND_ACC_PUBLIC)
+  PHP_ME(labelObj, convertToString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(labelObj, setBinding, label_setBinding_args, ZEND_ACC_PUBLIC)
   PHP_ME(labelObj, getBinding, label_getBinding_args, ZEND_ACC_PUBLIC)
   PHP_ME(labelObj, removeBinding, label_removeBinding_args, ZEND_ACC_PUBLIC)
diff --git a/mapscript/php/labelcachemember.c b/mapscript/php/labelcachemember.c
index 5a876b2..83eae0e 100644
--- a/mapscript/php/labelcachemember.c
+++ b/mapscript/php/labelcachemember.c
@@ -53,7 +53,7 @@ PHP_METHOD(labelCacheMemberObj, __construct)
 PHP_METHOD(labelCacheMemberObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_labelcachemember_object *php_labelcachemember;
 
@@ -88,7 +88,7 @@ PHP_METHOD(labelCacheMemberObj, __get)
 PHP_METHOD(labelCacheMemberObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_labelcachemember_object *php_labelcachemember;
diff --git a/mapscript/php/labelleader.c b/mapscript/php/labelleader.c
index af51e2b..343a531 100644
--- a/mapscript/php/labelleader.c
+++ b/mapscript/php/labelleader.c
@@ -51,7 +51,7 @@ PHP_METHOD(labelLeaderObj, __construct)
 PHP_METHOD(labelLeaderObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_labelleader_object *php_labelleader;
 
@@ -75,7 +75,7 @@ PHP_METHOD(labelLeaderObj, __get)
 PHP_METHOD(labelLeaderObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
diff --git a/mapscript/php/layer.c b/mapscript/php/layer.c
index 59eff2f..03fa8d1 100644
--- a/mapscript/php/layer.c
+++ b/mapscript/php/layer.c
@@ -195,6 +195,10 @@ ZEND_BEGIN_ARG_INFO_EX(layer_getShape_args, 0, 0, 1)
 ZEND_ARG_OBJ_INFO(0, record, resultObj, 0)
 ZEND_END_ARG_INFO()
 
+ZEND_BEGIN_ARG_INFO_EX(layer_setGeomTransform_args, 0, 0, 1)
+ZEND_ARG_INFO(0, transform)
+ZEND_END_ARG_INFO()
+
 /* {{{ proto void __construct(mapObj map [, layerObj layer])
    Create a new layerObj instance. */
 PHP_METHOD(layerObj, __construct)
@@ -252,7 +256,7 @@ PHP_METHOD(layerObj, __construct)
 PHP_METHOD(layerObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_layer_object *php_layer;
 
@@ -328,7 +332,7 @@ PHP_METHOD(layerObj, __get)
 PHP_METHOD(layerObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_layer_object *php_layer;
@@ -633,9 +637,9 @@ PHP_METHOD(layerObj, queryByAttributes)
 {
   zval *zobj = getThis();
   char *item;
-  long item_len;
+  long item_len = 0;
   char *string;
-  long string_len;
+  long string_len = 0;
   long mode;
   int status = MS_FAILURE;
   php_layer_object *php_layer;
@@ -674,7 +678,7 @@ PHP_METHOD(layerObj, queryByFilter)
 {
   zval *zobj = getThis();
   char *string;
-  long string_len;
+  long string_len = 0;
   int status = MS_FAILURE;
   php_layer_object *php_layer;
   php_map_object *php_map;
@@ -746,7 +750,7 @@ PHP_METHOD(layerObj, updateFromString)
 {
   zval *zobj = getThis();
   char *snippet;
-  long snippet_len;
+  long snippet_len = 0;
   int status = MS_FAILURE;
   php_layer_object *php_layer;
 
@@ -769,6 +773,33 @@ PHP_METHOD(layerObj, updateFromString)
 }
 /* }}} */
 
+/* {{{ proto string convertToString()
+   Convert the layer object to string. */
+PHP_METHOD(layerObj, convertToString)
+{
+  zval *zobj = getThis();
+  php_layer_object *php_layer;
+  char *value = NULL;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_layer = (php_layer_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  value =  layerObj_convertToString(php_layer->layer);
+
+  if (value == NULL)
+    RETURN_STRING("", 1);
+
+  RETVAL_STRING(value, 1);
+  free(value);
+}
+/* }}} */
+
 /* {{{ proto int layer.getClass(int i)
    Returns a classObj from the layer given an index value (0=first class) */
 PHP_METHOD(layerObj, getClass)
@@ -863,7 +894,7 @@ PHP_METHOD(layerObj, setFilter)
 {
   zval *zobj = getThis();
   char *expression;
-  long expression_len;
+  long expression_len = 0;
   int status = MS_FAILURE;
   php_layer_object *php_layer;
 
@@ -919,7 +950,7 @@ PHP_METHOD(layerObj, setProjection)
 {
   zval *zobj = getThis();
   char *projection;
-  long projection_len;
+  long projection_len = 0;
   int status = MS_FAILURE;
   php_layer_object *php_layer;
   php_projection_object *php_projection=NULL;
@@ -981,7 +1012,7 @@ PHP_METHOD(layerObj, setWKTProjection)
 {
   zval *zobj = getThis();
   char *projection;
-  long projection_len;
+  long projection_len = 0;
   int status = MS_FAILURE;
   php_layer_object *php_layer;
   php_projection_object *php_projection=NULL;
@@ -1383,7 +1414,7 @@ PHP_METHOD(layerObj, getWMSFeatureInfoURL)
   zval *zobj = getThis();
   long clickx, clicky, featureCount;
   char *infoFormat = NULL;
-  long infoFormat_len;
+  long infoFormat_len = 0;
   char *value =  NULL;
   php_layer_object *php_layer;
   php_map_object *php_map;
@@ -1455,7 +1486,7 @@ PHP_METHOD(layerObj, setProcessing)
 {
   zval *zobj = getThis();
   char *string = NULL;
-  long string_len;
+  long string_len = 0;
   php_layer_object *php_layer;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
@@ -1487,9 +1518,9 @@ PHP_METHOD(layerObj, setProcessingKey)
 {
   zval *zobj = getThis();
   char *key = NULL;
-  long key_len;
+  long key_len = 0;
   char *value = NULL;
-  long value_len;
+  long value_len = 0;
   php_layer_object *php_layer;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
@@ -1595,9 +1626,9 @@ PHP_METHOD(layerObj, applySLD)
 {
   zval *zobj = getThis();
   char *sldxml;
-  long sldxml_len;
+  long sldxml_len = 0;
   char *namedLayer = NULL;
-  long namedLayer_len;
+  long namedLayer_len = 0;
   int status = MS_FAILURE;
   php_layer_object *php_layer;
 
@@ -1628,9 +1659,9 @@ PHP_METHOD(layerObj, applySLDURL)
 {
   zval *zobj = getThis();
   char *sldurl;
-  long sldurl_len;
+  long sldurl_len = 0;
   char *namedLayer = NULL;
-  long namedLayer_len;
+  long namedLayer_len = 0;
   int status = MS_FAILURE;
   php_layer_object *php_layer;
 
@@ -1804,7 +1835,7 @@ PHP_METHOD(layerObj, setConnectionType)
   zval *zobj = getThis();
   long type;
   char *plugin = "";
-  long plugin_len;
+  long plugin_len = 0;
   int status = MS_FAILURE;
   php_layer_object *php_layer;
 
@@ -2016,6 +2047,61 @@ PHP_METHOD(layerObj, getShape)
 }
 /* }}} */
 
+/* {{{ proto int layer.getGeomTransform()
+   return the geometry transform expression */
+PHP_METHOD(layerObj, getGeomTransform)
+{
+  zval *zobj = getThis();
+  php_layer_object *php_layer;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_layer = (php_layer_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  if (php_layer->layer->_geomtransform.type == MS_GEOMTRANSFORM_NONE ||
+      !php_layer->layer->_geomtransform.string)
+    RETURN_STRING("", 1);
+
+  RETURN_STRING(php_layer->layer->_geomtransform.string, 1);
+}
+/* }}} */
+
+/* {{{ proto int layer.setGeomTransform()
+   set the geometry transform expression */
+PHP_METHOD(layerObj, setGeomTransform)
+{
+  zval *zobj = getThis();
+  char *transform;
+  long transform_len = 0;
+  php_layer_object *php_layer;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
+                            &transform, &transform_len) == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_layer = (php_layer_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  msFree(php_layer->layer->_geomtransform.string);
+  if (transform_len > 0) {
+    php_layer->layer->_geomtransform.string = msStrdup(transform);
+    php_layer->layer->_geomtransform.type = MS_GEOMTRANSFORM_EXPRESSION;
+  }
+  else {
+    php_layer->layer->_geomtransform.type = MS_GEOMTRANSFORM_NONE;
+    php_layer->layer->_geomtransform.string = NULL;    
+  }
+
+  RETURN_LONG(MS_SUCCESS);  
+}
 
 /* {{{ proto void layer.free()
    Free the object */
@@ -2051,6 +2137,7 @@ zend_function_entry layer_functions[] = {
   PHP_ME(layerObj, draw, layer_draw_args, ZEND_ACC_PUBLIC)
   PHP_ME(layerObj, drawQuery, layer_drawQuery_args, ZEND_ACC_PUBLIC)
   PHP_ME(layerObj, updateFromString, layer_updateFromString_args, ZEND_ACC_PUBLIC)
+  PHP_ME(layerObj, convertToString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(layerObj, getClass, layer_getClass_args, ZEND_ACC_PUBLIC)
   PHP_ME(layerObj, getClassIndex, layer_getClassIndex_args, ZEND_ACC_PUBLIC)
   PHP_ME(layerObj, queryByPoint, layer_queryByPoint_args, ZEND_ACC_PUBLIC)
@@ -2095,6 +2182,8 @@ zend_function_entry layer_functions[] = {
   PHP_ME(layerObj, setConnectionType, layer_setConnectionType_args, ZEND_ACC_PUBLIC)
   PHP_ME(layerObj, getGridIntersectionCoordinates, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(layerObj, getShape, layer_getShape_args, ZEND_ACC_PUBLIC)
+  PHP_ME(layerObj, getGeomTransform, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(layerObj, setGeomTransform, layer_setGeomTransform_args, ZEND_ACC_PUBLIC)  
   PHP_ME(layerObj, free, NULL, ZEND_ACC_PUBLIC) {
     NULL, NULL, NULL
   }
diff --git a/mapscript/php/legend.c b/mapscript/php/legend.c
index a03b55c..52258fe 100644
--- a/mapscript/php/legend.c
+++ b/mapscript/php/legend.c
@@ -57,7 +57,7 @@ PHP_METHOD(legendObj, __construct)
 PHP_METHOD(legendObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_legend_object *php_legend;
 
@@ -92,7 +92,7 @@ PHP_METHOD(legendObj, __get)
 PHP_METHOD(legendObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_legend_object *php_legend;
@@ -131,7 +131,7 @@ PHP_METHOD(legendObj, __set)
 PHP_METHOD(legendObj, updateFromString)
 {
   char *snippet;
-  long snippet_len;
+  long snippet_len = 0;
   zval *zobj = getThis();
   php_legend_object *php_legend;
   int status = MS_FAILURE;
@@ -157,6 +157,33 @@ PHP_METHOD(legendObj, updateFromString)
 }
 /* }}} */
 
+/* {{{ proto string convertToString()
+   Convert the legend object to string. */
+PHP_METHOD(legendObj, convertToString)
+{
+  zval *zobj = getThis();
+  php_legend_object *php_legend;
+  char *value = NULL;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_legend = (php_legend_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  value =  legendObj_convertToString(php_legend->legend);
+
+  if (value == NULL)
+    RETURN_STRING("", 1);
+
+  RETVAL_STRING(value, 1);
+  free(value);
+}
+/* }}} */
+
 /* {{{ proto int legend.free()
    Free the object */
 PHP_METHOD(legendObj, free)
@@ -184,6 +211,7 @@ zend_function_entry legend_functions[] = {
   PHP_ME(legendObj, __get, legend___get_args, ZEND_ACC_PUBLIC)
   PHP_ME(legendObj, __set, legend___set_args, ZEND_ACC_PUBLIC)
   PHP_MALIAS(legendObj, set, __set, NULL, ZEND_ACC_PUBLIC)
+  PHP_ME(legendObj, convertToString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(legendObj, updateFromString, legend_updateFromString_args, ZEND_ACC_PUBLIC) {
     NULL, NULL, NULL
   }
diff --git a/mapscript/php/line.c b/mapscript/php/line.c
index c28df7a..9aa4620 100644
--- a/mapscript/php/line.c
+++ b/mapscript/php/line.c
@@ -99,7 +99,7 @@ PHP_METHOD(lineObj, __construct)
 PHP_METHOD(lineObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_line_object *php_line;
 
@@ -122,7 +122,7 @@ PHP_METHOD(lineObj, __get)
 PHP_METHOD(lineObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_line_object *php_line;
diff --git a/mapscript/php/map.c b/mapscript/php/map.c
index 384f491..0340cf9 100644
--- a/mapscript/php/map.c
+++ b/mapscript/php/map.c
@@ -322,9 +322,9 @@ PHP_METHOD(mapObj, __construct)
 {
   zval *zobj = getThis();
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   char *path = NULL;
-  long path_len;
+  long path_len = 0;
   mapObj *map;
   php_map_object *php_map;
 
@@ -353,7 +353,7 @@ PHP_METHOD(mapObj, __construct)
 PHP_METHOD(mapObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_map_object *php_map;
 
@@ -409,7 +409,7 @@ PHP_METHOD(mapObj, __get)
 PHP_METHOD(mapObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_map_object *php_map;
@@ -471,7 +471,7 @@ PHP_METHOD(mapObj, getSymbolByName)
 {
   zval *zobj = getThis();
   char *symbolName;
-  long symbolName_len;
+  long symbolName_len = 0;
   int symbolId = -1;
   php_map_object *php_map;
 
@@ -847,7 +847,7 @@ PHP_METHOD(mapObj, getLayerByName)
 {
   zval *zobj = getThis();
   char *layerName;
-  long layerName_len;
+  long layerName_len = 0;
   layerObj *layer = NULL;
   php_map_object *php_map;
   parent_object parent;
@@ -1917,7 +1917,7 @@ PHP_METHOD(mapObj, queryByFilter)
 {
   zval *zobj = getThis();
   char *string;
-  long string_len;
+  long string_len = 0;
   int status = MS_FAILURE;
   php_map_object *php_map;
 
@@ -1946,7 +1946,7 @@ PHP_METHOD(mapObj, saveQuery)
 {
   zval *zobj = getThis();
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   int results = MS_FALSE;
   int status = MS_FAILURE;
   php_map_object *php_map;
@@ -1973,9 +1973,9 @@ PHP_METHOD(mapObj, saveQueryAsGML)
 {
   zval *zobj = getThis();
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   char *namespace = "GOMF";
-  long namespace_len;
+  long namespace_len = 0;
   int status = MS_FAILURE;
   php_map_object *php_map;
 
@@ -2001,7 +2001,7 @@ PHP_METHOD(mapObj, loadQuery)
 {
   zval *zobj = getThis();
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   int status = MS_FAILURE;
   php_map_object *php_map;
 
@@ -2052,7 +2052,7 @@ PHP_METHOD(mapObj, save)
 {
   zval *zobj = getThis();
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   int status = MS_FAILURE;
   php_map_object *php_map;
 
@@ -2083,7 +2083,7 @@ PHP_METHOD(mapObj, setProjection)
 {
   zval *zobj = getThis();
   char *projection;
-  long projection_len;
+  long projection_len = 0;
   int status = MS_FAILURE;
   long setUnitsAndExtents = MS_FALSE;
   php_map_object *php_map;
@@ -2137,7 +2137,7 @@ PHP_METHOD(mapObj, setWKTProjection)
 {
   zval *zobj = getThis();
   char *projection;
-  long projection_len;
+  long projection_len = 0;
   int status = MS_FAILURE;
   long setUnitsAndExtents = MS_FALSE;
   php_map_object *php_map;
@@ -2242,7 +2242,7 @@ PHP_METHOD(mapObj, getLayersIndexByGroup)
 {
   zval *zobj = getThis();
   char *groupName;
-  long groupName_len;
+  long groupName_len = 0;
   int *indexes = NULL;
   int count = 0;
   int i;
@@ -2702,7 +2702,7 @@ PHP_METHOD(mapObj, setSymbolSet)
 {
   zval *zobj = getThis();
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   int status = MS_FAILURE;
   php_map_object *php_map;
 
@@ -2755,7 +2755,7 @@ PHP_METHOD(mapObj, setFontSet)
 {
   zval *zobj = getThis();
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   int status = MS_FAILURE;
   php_map_object *php_map;
 
@@ -2788,7 +2788,7 @@ PHP_METHOD(mapObj, selectOutputFormat)
 {
   zval *zobj = getThis();
   char *type;
-  long type_len;
+  long type_len = 0;
   int status = MS_FAILURE;
   php_map_object *php_map;
   php_outputformat_object *php_outputformat = NULL;
@@ -2852,7 +2852,7 @@ PHP_METHOD(mapObj, removeOutputFormat)
 {
   zval *zobj = getThis();
   char *name;
-  long name_len;
+  long name_len = 0;
   int status = MS_FAILURE;
   php_map_object *php_map;
 
@@ -2912,7 +2912,7 @@ PHP_METHOD(mapObj, saveMapContext)
 {
   zval *zobj = getThis();
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   int status = MS_FAILURE;
   php_map_object *php_map;
 
@@ -2944,7 +2944,7 @@ PHP_METHOD(mapObj, loadMapContext)
 {
   zval *zobj = getThis();
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   long unique = MS_FALSE;
   int status = MS_FAILURE;
   php_map_object *php_map;
@@ -2978,7 +2978,7 @@ PHP_METHOD(mapObj, applySLD)
 {
   zval *zobj = getThis();
   char *sldxml;
-  long sldxml_len;
+  long sldxml_len = 0;
   int status = MS_FAILURE;
   php_map_object *php_map;
 
@@ -3005,7 +3005,7 @@ PHP_METHOD(mapObj, applySLDURL)
 {
   zval *zobj = getThis();
   char *sldurl;
-  long sldurl_len;
+  long sldurl_len = 0;
   int status = MS_FAILURE;
   php_map_object *php_map;
 
@@ -3062,7 +3062,7 @@ PHP_METHOD(mapObj, getConfigOption)
 {
   zval *zobj = getThis();
   char *key;
-  long key_len;
+  long key_len = 0;
   char *value = NULL;
   php_map_object *php_map;
 
@@ -3090,9 +3090,9 @@ PHP_METHOD(mapObj, setConfigOption)
 {
   zval *zobj = getThis();
   char *key;
-  long key_len;
+  long key_len = 0;
   char *value;
-  long value_len;
+  long value_len = 0;
   php_map_object *php_map;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
@@ -3139,7 +3139,7 @@ PHP_METHOD(mapObj, loadOwsParameters)
   zval *zobj = getThis();
   zval *zrequest;
   char *version = NULL;
-  long version_len;
+  long version_len = 0;
   int isZval = 1;
   int status = MS_FAILURE;
   php_owsrequest_object *php_request;
@@ -3295,6 +3295,33 @@ PHP_METHOD(mapObj, getLabel)
 }
 /* }}} */
 
+/* {{{ proto string convertToString()
+   Convert the map object to string. */
+PHP_METHOD(mapObj, convertToString)
+{
+  zval *zobj = getThis();
+  php_map_object *php_map;
+  char *value = NULL;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_map = (php_map_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  value =  mapObj_convertToString(php_map->map);
+
+  if (value == NULL)
+    RETURN_STRING("", 1);
+
+  RETVAL_STRING(value, 1);
+  free(value);
+}
+/* }}} */
+
 /************************************************************************/
 /*                    php3_ms_map_getLatLongExtent()                    */
 /*                                                                      */
@@ -3448,6 +3475,7 @@ zend_function_entry map_functions[] = {
   PHP_ME(mapObj, insertLayer, map_insertLayer_args, ZEND_ACC_PUBLIC)
   PHP_ME(mapObj, removeLayer, map_removeLayer_args, ZEND_ACC_PUBLIC)
   PHP_ME(mapObj, getLabel, map_getLabel_args, ZEND_ACC_PUBLIC)
+  PHP_ME(mapObj, convertToString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(mapObj, getLatLongExtent, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(mapObj, free, NULL, ZEND_ACC_PUBLIC) {
     NULL, NULL, NULL
diff --git a/mapscript/php/mapscript_i.c b/mapscript/php/mapscript_i.c
index e50d3b0..c8d293b 100644
--- a/mapscript/php/mapscript_i.c
+++ b/mapscript/php/mapscript_i.c
@@ -141,7 +141,7 @@ imageObj *mapObj_drawQuery(mapObj* self)
 
 imageObj *mapObj_drawLegend(mapObj* self)
 {
-  return msDrawLegend(self, MS_FALSE);
+  return msDrawLegend(self, MS_FALSE, NULL);
 }
 
 
@@ -459,6 +459,11 @@ int mapObj_scaleExtent(mapObj *self, double zoomfactor, double minscaledenom,
   return msMapScaleExtent(self, zoomfactor, minscaledenom, maxscaledenom);
 }
 
+char *mapObj_convertToString(mapObj *self)
+{
+  return msWriteMapToString(self);
+}
+
 /**********************************************************************
  * class extensions for layerObj, always within the context of a map
  **********************************************************************/
@@ -508,6 +513,11 @@ int layerObj_updateFromString(layerObj *self, char *snippet)
   return msUpdateLayerFromString(self, snippet, MS_FALSE);
 }
 
+char *layerObj_convertToString(layerObj *self)
+{
+  return msWriteLayerToString(self);
+}
+
 int layerObj_open(layerObj *self)
 {
   return msLayerOpen(self);
@@ -894,6 +904,11 @@ int labelObj_updateFromString(labelObj *self, char *snippet)
   return msUpdateLabelFromString(self, snippet, MS_FALSE);
 }
 
+char *labelObj_convertToString(labelObj *self)
+{
+  return msWriteLabelToString(self);
+}
+
 int labelObj_moveStyleUp(labelObj *self, int index)
 {
   return msMoveLabelStyleUp(self, index);
@@ -944,6 +959,11 @@ int legendObj_updateFromString(legendObj *self, char *snippet)
   return msUpdateLegendFromString(self, snippet, MS_FALSE);
 }
 
+char *legendObj_convertToString(legendObj *self)
+{
+  return msWriteLegendToString(self);
+}
+
 /**********************************************************************
  * class extensions for queryMapObj
  **********************************************************************/
@@ -952,6 +972,11 @@ int queryMapObj_updateFromString(queryMapObj *self, char *snippet)
   return msUpdateQueryMapFromString(self, snippet, MS_FALSE);
 }
 
+char *queryMapObj_convertToString(queryMapObj *self)
+{
+  return msWriteQueryMapToString(self);
+}
+
 /**********************************************************************
  * class extensions for referenceMapObj
  **********************************************************************/
@@ -961,6 +986,11 @@ int referenceMapObj_updateFromString(referenceMapObj *self, char *snippet)
   return msUpdateReferenceMapFromString(self, snippet, MS_FALSE);
 }
 
+char *referenceMapObj_convertToString(referenceMapObj *self)
+{
+  return msWriteReferenceMapToString(self);
+}
+
 /**********************************************************************
  * class extensions for scaleBarObj
  **********************************************************************/
@@ -970,6 +1000,11 @@ int scalebarObj_updateFromString(scalebarObj *self, char *snippet)
   return msUpdateScalebarFromString(self, snippet, MS_FALSE);
 }
 
+char *scalebarObj_convertToString(scalebarObj *self)
+{
+  return msWriteScalebarToString(self);
+}
+
 /**********************************************************************
  * class extensions for webObj
  **********************************************************************/
@@ -979,6 +1014,11 @@ int webObj_updateFromString(webObj *self, char *snippet)
   return msUpdateWebFromString(self, snippet, MS_FALSE);
 }
 
+char *webObj_convertToString(webObj *self)
+{
+  return msWriteWebToString(self);
+}
+
 /**********************************************************************
  * class extensions for classObj, always within the context of a layer
  **********************************************************************/
@@ -1026,6 +1066,11 @@ int classObj_updateFromString(classObj *self, char *snippet)
   return msUpdateClassFromString(self, snippet, MS_FALSE);
 }
 
+char *classObj_convertToString(classObj *self)
+{
+  return msWriteClassToString(self);
+}
+
 void  classObj_destroy(classObj *self)
 {
   return; /* do nothing, map deconstrutor takes care of it all */
@@ -1063,12 +1108,12 @@ int classObj_drawLegendIcon(classObj *self, mapObj *map, layerObj *layer, int wi
 #ifdef USE_GD
   msClearLayerPenValues(layer); // just in case the mapfile has already been processed
 #endif
-  return msDrawLegendIcon(map, layer, self, width, height, dstImg, dstX, dstY);
+  return msDrawLegendIcon(map, layer, self, width, height, dstImg, dstX, dstY, MS_TRUE, NULL);
 }
 
 imageObj *classObj_createLegendIcon(classObj *self, mapObj *map, layerObj *layer, int width, int height)
 {
-  return msCreateLegendIcon(map, layer, self, width, height);
+  return msCreateLegendIcon(map, layer, self, width, height, MS_TRUE);
 }
 
 
@@ -1729,6 +1774,11 @@ int styleObj_updateFromString(styleObj *self, char *snippet)
   return msUpdateStyleFromString(self, snippet, MS_FALSE);
 }
 
+char *styleObj_convertToString(styleObj *self)
+{
+  return msWriteStyleToString(self);
+}
+
 int styleObj_setSymbolByName(styleObj *self, mapObj *map, char* pszSymbolName)
 {
   self->symbol = msGetSymbolIndex(&map->symbolset, pszSymbolName, MS_TRUE);
@@ -1905,6 +1955,11 @@ int clusterObj_updateFromString(clusterObj *self, char *snippet)
   return msUpdateClusterFromString(self, snippet);
 }
 
+char *clusterObj_convertToString(clusterObj *self)
+{
+  return msWriteClusterToString(self);
+}
+
 int clusterObj_setGroup(clusterObj *self, char *string)
 {
   if (!string || strlen(string) == 0) {
diff --git a/mapscript/php/outputformat.c b/mapscript/php/outputformat.c
index a2e30e5..a6dca94 100644
--- a/mapscript/php/outputformat.c
+++ b/mapscript/php/outputformat.c
@@ -67,9 +67,9 @@ PHP_METHOD(outputFormatObj, __construct)
   zval *zobj = getThis();
   php_outputformat_object *php_outputformat;
   char *driver;
-  long driver_len;
+  long driver_len = 0;
   char *name = NULL;
-  long name_len;
+  long name_len = 0;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s|s",
@@ -91,7 +91,7 @@ PHP_METHOD(outputFormatObj, __construct)
 PHP_METHOD(outputFormatObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_outputformat_object *php_outputformat;
 
@@ -123,7 +123,7 @@ PHP_METHOD(outputFormatObj, __get)
 PHP_METHOD(outputFormatObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_outputformat_object *php_outputformat;
@@ -160,9 +160,9 @@ PHP_METHOD(outputFormatObj, __set)
 PHP_METHOD(outputFormatObj, setOption)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   char *value;
-  long value_len;
+  long value_len = 0;
   zval *zobj = getThis();
   php_outputformat_object *php_outputformat;
 
@@ -188,7 +188,7 @@ PHP_METHOD(outputFormatObj, setOption)
 PHP_METHOD(outputFormatObj, getOption)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   const char *value = NULL;
   php_outputformat_object *php_outputformat;
diff --git a/mapscript/php/owsrequest.c b/mapscript/php/owsrequest.c
index 6ed943a..428c8dd 100644
--- a/mapscript/php/owsrequest.c
+++ b/mapscript/php/owsrequest.c
@@ -97,7 +97,7 @@ PHP_METHOD(OWSRequestObj, __construct)
 PHP_METHOD(OWSRequestObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_owsrequest_object *php_owsrequest;
 
@@ -125,7 +125,7 @@ PHP_METHOD(OWSRequestObj, __get)
 PHP_METHOD(OWSRequestObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_owsrequest_object *php_owsrequest;
@@ -208,9 +208,9 @@ PHP_METHOD(OWSRequestObj, loadParams)
 PHP_METHOD(OWSRequestObj, setParameter)
 {
   char *name;
-  long name_len;
+  long name_len = 0;
   char *value;
-  long value_len;
+  long value_len = 0;
   zval *zobj = getThis();
   php_owsrequest_object *php_owsrequest;
 
@@ -235,9 +235,9 @@ PHP_METHOD(OWSRequestObj, setParameter)
 PHP_METHOD(OWSRequestObj, addParameter)
 {
   char *name;
-  long name_len;
+  long name_len = 0;
   char *value;
-  long value_len;
+  long value_len = 0;
   zval *zobj = getThis();
   php_owsrequest_object *php_owsrequest;
 
@@ -316,7 +316,7 @@ PHP_METHOD(OWSRequestObj, getValue)
 PHP_METHOD(OWSRequestObj, getValueByName)
 {
   char *name;
-  long name_len;
+  long name_len = 0;
   zval *zobj = getThis();
   char *value = NULL;
   php_owsrequest_object *php_owsrequest;
diff --git a/mapscript/php/php_mapscript.c b/mapscript/php/php_mapscript.c
index f757d9f..d0599dd 100644
--- a/mapscript/php/php_mapscript.c
+++ b/mapscript/php/php_mapscript.c
@@ -122,9 +122,9 @@ ZEND_END_ARG_INFO()
 PHP_FUNCTION(ms_newMapObj)
 {
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   char *path = NULL;
-  long path_len;
+  long path_len = 0;
   mapObj *map = NULL;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
@@ -152,9 +152,9 @@ PHP_FUNCTION(ms_newMapObj)
 PHP_FUNCTION(ms_newMapObjFromString)
 {
   char *string;
-  long string_len;
+  long string_len = 0;
   char *path = NULL;
-  long path_len;
+  long path_len = 0;
   mapObj *map = NULL;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
@@ -169,7 +169,7 @@ PHP_FUNCTION(ms_newMapObjFromString)
   map = mapObj_newFromString(string, path);
 
   if (map == NULL) {
-    mapscript_throw_mapserver_exception("Failed to open map file \"%s\", or map file error." TSRMLS_CC,  string);
+    mapscript_throw_mapserver_exception("Error while loading map file from string." TSRMLS_CC);
     return;
   }
 
@@ -224,7 +224,7 @@ PHP_FUNCTION(ms_newLayerObj)
 PHP_FUNCTION(ms_newProjectionObj)
 {
   char *projString;
-  long projString_len;
+  long projString_len = 0;
   projectionObj *projection = NULL;
   parent_object parent;
 
@@ -396,7 +396,7 @@ PHP_FUNCTION(ms_newSymbolObj)
 {
   zval *zmap;
   char *symbolName;
-  long symbolName_len;
+  long symbolName_len = 0;
   int retval = 0;
   php_map_object *php_map;
 
@@ -451,7 +451,7 @@ PHP_FUNCTION(ms_shapeObjFromWkt)
 {
   php_shape_object * php_shape;
   char *wkt;
-  long str_len;
+  long str_len = 0;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s",
@@ -479,7 +479,7 @@ PHP_FUNCTION(ms_shapeObjFromWkt)
 PHP_FUNCTION(ms_newShapeFileObj)
 {
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   long type;
   shapefileObj *shapefile;
 
@@ -846,7 +846,7 @@ PHP_FUNCTION(ms_getScale)
 PHP_FUNCTION(ms_tokenizeMap)
 {
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   char  **tokens;
   int i, numtokens=0;
 
diff --git a/mapscript/php/php_mapscript.h b/mapscript/php/php_mapscript.h
index 66cb04d..1d1c39a 100644
--- a/mapscript/php/php_mapscript.h
+++ b/mapscript/php/php_mapscript.h
@@ -578,10 +578,12 @@ int             mapObj_setCenter(mapObj *self, pointObj *center);
 int             mapObj_offsetExtent(mapObj *self, double x, double y);
 int             mapObj_scaleExtent(mapObj *self, double zoomfactor, double minscaledenom,
                                    double maxscaledenom);
+char           *mapObj_convertToString(mapObj *self);
 
 layerObj       *layerObj_new(mapObj *map);
 void            layerObj_destroy(layerObj* self);
 int             layerObj_updateFromString(layerObj *self, char *snippet);
+char           *layerObj_convertToString(layerObj *self);
 int             layerObj_open(layerObj *self);
 int             layerObj_whichShapes(layerObj *self, rectObj *poRect);
 shapeObj        *layerObj_nextShape(layerObj *self);
@@ -633,6 +635,7 @@ layerObj        *layerObj_clone(layerObj *layer);
 
 labelObj        *labelObj_new();
 int             labelObj_updateFromString(labelObj *self, char *snippet);
+char           *labelObj_convertToString(labelObj *self);
 void            labelObj_destroy(labelObj *self);
 int             labelObj_moveStyleUp(labelObj *self, int index);
 int             labelObj_moveStyleDown(labelObj *self, int index);
@@ -644,20 +647,26 @@ int             labelObj_setText(labelObj *self,layerObj *layer,char *string);
 char           *labelObj_getTextString(labelObj *self);
 
 int             legendObj_updateFromString(legendObj *self, char *snippet);
+char           *legendObj_convertToString(legendObj *self);
 
 int             queryMapObj_updateFromString(queryMapObj *self, char *snippet);
+char           *queryMapObj_convertToString(queryMapObj *self);
 
 int             referenceMapObj_updateFromString(referenceMapObj *self, char *snippet);
+char           *referenceMapObj_convertToString(referenceMapObj *self);
 
 int             scalebarObj_updateFromString(scalebarObj *self, char *snippet);
+char           *scalebarObj_convertToString(scalebarObj *self);
 
 int             webObj_updateFromString(webObj *self, char *snippet);
+char           *webObj_convertToString(webObj *self);
 
 classObj       *classObj_new(layerObj *layer, classObj *class);
 labelObj       *classObj_getLabel(classObj *self, int i);
 int             classObj_addLabel(classObj *self, labelObj *label);
 labelObj       *classObj_removeLabel(classObj *self, int index);
 int             classObj_updateFromString(classObj *self, char *snippet);
+char           *classObj_convertToString(classObj *self);
 void            classObj_destroy(classObj* self);
 int             classObj_setExpression(classObj *self, char *string);
 char            *classObj_getExpressionString(classObj *self);
@@ -780,6 +789,7 @@ DBFFieldType    DBFInfo_getFieldType(DBFInfo *self, int iField);
 styleObj       *styleObj_new(classObj *class, styleObj *style);
 styleObj       *styleObj_label_new(labelObj *label, styleObj *style);
 int             styleObj_updateFromString(styleObj *self, char *snippet);
+char           *styleObj_convertToString(styleObj *self);
 int             styleObj_setSymbolByName(styleObj *self, mapObj *map,
     char* pszSymbolName);
 styleObj       *styleObj_clone(styleObj *style);
@@ -810,6 +820,7 @@ void cgirequestObj_destroy(cgiRequestObj *self);
 resultObj *resultObj_new();
 
 int clusterObj_updateFromString(clusterObj *self, char *snippet);
+char *clusterObj_convertToString(clusterObj *self);
 int clusterObj_setGroup(clusterObj *self, char *string);
 char *clusterObj_getGroupString(clusterObj *self);
 int clusterObj_setFilter(clusterObj *self, char *string);
diff --git a/mapscript/php/point.c b/mapscript/php/point.c
index 36fa01d..5e6299f 100644
--- a/mapscript/php/point.c
+++ b/mapscript/php/point.c
@@ -113,7 +113,7 @@ PHP_METHOD(pointObj, __construct)
 PHP_METHOD(pointObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_point_object *php_point;
 
@@ -141,7 +141,7 @@ PHP_METHOD(pointObj, __get)
 PHP_METHOD(pointObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_point_object *php_point;
@@ -355,7 +355,7 @@ PHP_METHOD(pointObj, draw)
   zval *zobj =  getThis();
   zval *zmap, *zlayer, *zimage;
   char *text = NULL;
-  long text_len;
+  long text_len = 0;
   long classIndex;
   int status = MS_FAILURE;
   php_point_object *php_point;
diff --git a/mapscript/php/projection.c b/mapscript/php/projection.c
index 961264a..46b74c1 100644
--- a/mapscript/php/projection.c
+++ b/mapscript/php/projection.c
@@ -47,7 +47,7 @@ ZEND_END_ARG_INFO()
 PHP_METHOD(projectionObj, __construct)
 {
   char *projString;
-  long projString_len;
+  long projString_len = 0;
   php_projection_object *php_projection;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
@@ -71,7 +71,7 @@ PHP_METHOD(projectionObj, __construct)
 PHP_METHOD(projectionObj, setWKTProjection)
 {
   char *wkt;
-  long wkt_len;
+  long wkt_len = 0;
   php_projection_object *php_projection;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
diff --git a/mapscript/php/querymap.c b/mapscript/php/querymap.c
index 7f3d532..a76962b 100644
--- a/mapscript/php/querymap.c
+++ b/mapscript/php/querymap.c
@@ -57,7 +57,7 @@ PHP_METHOD(queryMapObj, __construct)
 PHP_METHOD(queryMapObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_querymap_object *php_querymap;
 
@@ -84,7 +84,7 @@ PHP_METHOD(queryMapObj, __get)
 PHP_METHOD(queryMapObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_querymap_object *php_querymap;
@@ -115,7 +115,7 @@ PHP_METHOD(queryMapObj, __set)
 PHP_METHOD(queryMapObj, updateFromString)
 {
   char *snippet;
-  long snippet_len;
+  long snippet_len = 0;
   zval *zobj = getThis();
   php_querymap_object *php_querymap;
   int status = MS_FAILURE;
@@ -141,6 +141,33 @@ PHP_METHOD(queryMapObj, updateFromString)
 }
 /* }}} */
 
+/* {{{ proto string convertToString()
+   Convert the querymap object to string. */
+PHP_METHOD(queryMapObj, convertToString)
+{
+  zval *zobj = getThis();
+  php_querymap_object *php_querymap;
+  char *value = NULL;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_querymap = (php_querymap_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  value =  queryMapObj_convertToString(php_querymap->querymap);
+
+  if (value == NULL)
+    RETURN_STRING("", 1);
+
+  RETVAL_STRING(value, 1);
+  free(value);
+}
+/* }}} */
+
 /* {{{ proto int querymap.free()
    Free the object */
 PHP_METHOD(queryMapObj, free)
@@ -167,6 +194,7 @@ zend_function_entry querymap_functions[] = {
   PHP_ME(queryMapObj, __set, querymap___set_args, ZEND_ACC_PUBLIC)
   PHP_MALIAS(queryMapObj, set, __set, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(queryMapObj, updateFromString, querymap_updateFromString_args, ZEND_ACC_PUBLIC)
+  PHP_ME(queryMapObj, convertToString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(queryMapObj, free, NULL, ZEND_ACC_PUBLIC) {
     NULL, NULL, NULL
   }
diff --git a/mapscript/php/rect.c b/mapscript/php/rect.c
index fd7d964..abf44dc 100644
--- a/mapscript/php/rect.c
+++ b/mapscript/php/rect.c
@@ -92,7 +92,7 @@ PHP_METHOD(rectObj, __construct)
 PHP_METHOD(rectObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_rect_object *php_rect;
 
@@ -122,7 +122,7 @@ PHP_METHOD(rectObj, draw)
   zval *zobj =  getThis();
   zval *zmap, *zlayer, *zimage;
   char *text = NULL;
-  long text_len;
+  long text_len = 0;
   long classIndex;
   int status = MS_FAILURE;
   php_rect_object *php_rect;
@@ -159,7 +159,7 @@ PHP_METHOD(rectObj, draw)
 PHP_METHOD(rectObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_rect_object *php_rect;
diff --git a/mapscript/php/referencemap.c b/mapscript/php/referencemap.c
index 22958e3..bb0b707 100644
--- a/mapscript/php/referencemap.c
+++ b/mapscript/php/referencemap.c
@@ -57,7 +57,7 @@ PHP_METHOD(referenceMapObj, __construct)
 PHP_METHOD(referenceMapObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_referencemap_object *php_referencemap;
 
@@ -91,7 +91,7 @@ PHP_METHOD(referenceMapObj, __get)
 PHP_METHOD(referenceMapObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_referencemap_object *php_referencemap;
@@ -129,7 +129,7 @@ PHP_METHOD(referenceMapObj, __set)
 PHP_METHOD(referenceMapObj, updateFromString)
 {
   char *snippet;
-  long snippet_len;
+  long snippet_len = 0;
   zval *zobj = getThis();
   php_referencemap_object *php_referencemap;
   int status = MS_FAILURE;
@@ -155,6 +155,33 @@ PHP_METHOD(referenceMapObj, updateFromString)
 }
 /* }}} */
 
+/* {{{ proto string convertToString()
+   Convert the referencemap object to string. */
+PHP_METHOD(referenceMapObj, convertToString)
+{
+  zval *zobj = getThis();
+  php_referencemap_object *php_referencemap;
+  char *value = NULL;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_referencemap = (php_referencemap_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  value =  referenceMapObj_convertToString(php_referencemap->referencemap);
+
+  if (value == NULL)
+    RETURN_STRING("", 1);
+
+  RETVAL_STRING(value, 1);
+  free(value);
+}
+/* }}} */
+
 /* {{{ proto int referencemap.free()
    Free the object. */
 PHP_METHOD(referenceMapObj, free)
@@ -183,6 +210,7 @@ zend_function_entry referencemap_functions[] = {
   PHP_ME(referenceMapObj, __set, referenceMap___set_args, ZEND_ACC_PUBLIC)
   PHP_MALIAS(referenceMapObj, set, __set, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(referenceMapObj, updateFromString, referenceMap_updateFromString_args, ZEND_ACC_PUBLIC)
+  PHP_ME(referenceMapObj, convertToString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(referenceMapObj, free, NULL, ZEND_ACC_PUBLIC) {
     NULL, NULL, NULL
   }
diff --git a/mapscript/php/result.c b/mapscript/php/result.c
index 692a94d..3c18b1c 100644
--- a/mapscript/php/result.c
+++ b/mapscript/php/result.c
@@ -76,7 +76,7 @@ PHP_METHOD(resultObj, __construct)
 PHP_METHOD(resultObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_result_object *php_result;
 
@@ -102,7 +102,7 @@ PHP_METHOD(resultObj, __get)
 PHP_METHOD(resultObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_result_object *php_result;
diff --git a/mapscript/php/scalebar.c b/mapscript/php/scalebar.c
index 5a303bc..21b0466 100644
--- a/mapscript/php/scalebar.c
+++ b/mapscript/php/scalebar.c
@@ -63,7 +63,7 @@ PHP_METHOD(scalebarObj, __construct)
 PHP_METHOD(scalebarObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_scalebar_object *php_scalebar;
 
@@ -99,7 +99,7 @@ PHP_METHOD(scalebarObj, __get)
 PHP_METHOD(scalebarObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_scalebar_object *php_scalebar;
@@ -139,7 +139,7 @@ PHP_METHOD(scalebarObj, __set)
 PHP_METHOD(scalebarObj, updateFromString)
 {
   char *snippet;
-  long snippet_len;
+  long snippet_len = 0;
   zval *zobj = getThis();
   php_scalebar_object *php_scalebar;
   int status = MS_FAILURE;
@@ -165,6 +165,33 @@ PHP_METHOD(scalebarObj, updateFromString)
 }
 /* }}} */
 
+/* {{{ proto string convertToString()
+   Convert the scalebar object to string. */
+PHP_METHOD(scalebarObj, convertToString)
+{
+  zval *zobj = getThis();
+  php_scalebar_object *php_scalebar;
+  char *value = NULL;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_scalebar = (php_scalebar_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  value =  scalebarObj_convertToString(php_scalebar->scalebar);
+
+  if (value == NULL)
+    RETURN_STRING("", 1);
+
+  RETVAL_STRING(value, 1);
+  free(value);
+}
+/* }}} */
+
 /* {{{ proto int scalebar.setImageColor(int red, int green, int blue)
    Set the imagecolor property of the scalebar. Returns -1 on error. */
 PHP_METHOD(scalebarObj, setImageColor)
@@ -224,6 +251,7 @@ zend_function_entry scalebar_functions[] = {
   PHP_ME(scalebarObj, __set, scalebar___set_args, ZEND_ACC_PUBLIC)
   PHP_MALIAS(scalebarObj, set, __set, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(scalebarObj, updateFromString, scalebar_updateFromString_args, ZEND_ACC_PUBLIC)
+  PHP_ME(scalebarObj, convertToString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(scalebarObj, setImageColor, scalebar_setImageColor_args, ZEND_ACC_PUBLIC)
   PHP_ME(scalebarObj, free, NULL, ZEND_ACC_PUBLIC) {
     NULL, NULL, NULL
diff --git a/mapscript/php/shape.c b/mapscript/php/shape.c
index 28e93f9..7bf474b 100644
--- a/mapscript/php/shape.c
+++ b/mapscript/php/shape.c
@@ -181,7 +181,7 @@ PHP_METHOD(shapeObj, __construct)
 PHP_METHOD(shapeObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_shape_object *php_shape;
 
@@ -213,7 +213,7 @@ PHP_METHOD(shapeObj, __get)
 PHP_METHOD(shapeObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_shape_object *php_shape;
@@ -456,7 +456,7 @@ PHP_METHOD(shapeObj, getValue)
   zval *zobj =  getThis();
   zval *zlayer;
   char *fieldName;
-  long fieldName_len;
+  long fieldName_len = 0;
   int i;
   php_layer_object *php_layer;
   php_shape_object *php_shape;
diff --git a/mapscript/php/shapefile.c b/mapscript/php/shapefile.c
index aa654cf..7b442a8 100644
--- a/mapscript/php/shapefile.c
+++ b/mapscript/php/shapefile.c
@@ -79,7 +79,7 @@ PHP_METHOD(shapeFileObj, __construct)
   zval *zobj = getThis();
   php_shapefile_object *php_shapefile;
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   long type;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
@@ -104,7 +104,7 @@ PHP_METHOD(shapeFileObj, __construct)
 PHP_METHOD(shapeFileObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_shapefile_object *php_shapefile;
 
@@ -132,7 +132,7 @@ PHP_METHOD(shapeFileObj, __get)
 PHP_METHOD(shapeFileObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_shapefile_object *php_shapefile;
diff --git a/mapscript/php/style.c b/mapscript/php/style.c
index a2dada0..f1fb736 100644
--- a/mapscript/php/style.c
+++ b/mapscript/php/style.c
@@ -131,7 +131,7 @@ PHP_METHOD(styleObj, __construct)
 PHP_METHOD(styleObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_style_object *php_style;
 
@@ -189,7 +189,7 @@ PHP_METHOD(styleObj, __get)
 PHP_METHOD(styleObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_style_object *php_style;
@@ -304,7 +304,7 @@ PHP_METHOD(styleObj, updateFromString)
 {
   zval *zobj = getThis();
   char *snippet;
-  long snippet_len;
+  long snippet_len = 0;
   int status = MS_FAILURE;
   zval *retval;
   zval property_name, value;
@@ -338,13 +338,40 @@ PHP_METHOD(styleObj, updateFromString)
 }
 /* }}} */
 
+/* {{{ proto string convertToString()
+   Convert the style object to string. */
+PHP_METHOD(styleObj, convertToString)
+{
+  zval *zobj = getThis();
+  php_style_object *php_style;
+  char *value = NULL;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_style = (php_style_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  value =  styleObj_convertToString(php_style->style);
+
+  if (value == NULL)
+    RETURN_STRING("", 1);
+
+  RETVAL_STRING(value, 1);
+  free(value);
+}
+/* }}} */
+
 /* {{{ proto int style.setbinding(const bindingid, string value)
    Set the attribute binding for a specfiled style property. Returns MS_SUCCESS on success. */
 PHP_METHOD(styleObj, setBinding)
 {
   zval *zobj = getThis();
   char *value;
-  long value_len;
+  long value_len = 0;
   long bindingId;
   php_style_object *php_style;
 
@@ -503,7 +530,7 @@ PHP_METHOD(styleObj, setGeomTransform)
 {
   zval *zobj = getThis();
   char *transform;
-  long transform_len;
+  long transform_len = 0;
   php_style_object *php_style;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
@@ -599,6 +626,7 @@ zend_function_entry style_functions[] = {
   PHP_ME(styleObj, __set, style___set_args, ZEND_ACC_PUBLIC)
   PHP_MALIAS(styleObj, set, __set, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(styleObj, updateFromString, style_updateFromString_args, ZEND_ACC_PUBLIC)
+  PHP_ME(styleObj, convertToString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(styleObj, setBinding, style_setBinding_args, ZEND_ACC_PUBLIC)
   PHP_ME(styleObj, getBinding, style_getBinding_args, ZEND_ACC_PUBLIC)
   PHP_ME(styleObj, removeBinding, style_removeBinding_args, ZEND_ACC_PUBLIC)
diff --git a/mapscript/php/symbol.c b/mapscript/php/symbol.c
index 8a7edb2..0a31417 100644
--- a/mapscript/php/symbol.c
+++ b/mapscript/php/symbol.c
@@ -69,7 +69,7 @@ PHP_METHOD(symbolObj, __construct)
 {
   zval *zmap;
   char *symbolName;
-  long symbolName_len;
+  long symbolName_len = 0;
   int symbolId = -1;
   php_symbol_object *php_symbol;
   php_map_object *php_map;
@@ -105,7 +105,7 @@ PHP_METHOD(symbolObj, __construct)
 PHP_METHOD(symbolObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_symbol_object *php_symbol;
 
@@ -130,7 +130,6 @@ PHP_METHOD(symbolObj, __get)
                 else IF_GET_LONG("transparent", php_symbol->symbol->transparent)
                   else IF_GET_LONG("transparentcolor", php_symbol->symbol->transparentcolor)
                     else IF_GET_STRING("character", php_symbol->symbol->character)
-                      else IF_GET_STRING("svg_text", php_symbol->symbol->svg_text)
                         else IF_GET_LONG("antialias", php_symbol->symbol->antialias)
                           else IF_GET_DOUBLE("anchorpoint_y", php_symbol->symbol->anchorpoint_y)
                             else IF_GET_DOUBLE("anchorpoint_x", php_symbol->symbol->anchorpoint_x)
@@ -147,7 +146,7 @@ PHP_METHOD(symbolObj, __get)
 PHP_METHOD(symbolObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_symbol_object *php_symbol;
@@ -171,7 +170,6 @@ PHP_METHOD(symbolObj, __set)
             else IF_SET_LONG("transparent", php_symbol->symbol->transparent, value)
               else IF_SET_LONG("transparentcolor", php_symbol->symbol->transparentcolor, value)
                 else IF_SET_STRING("character", php_symbol->symbol->character, value)
-                  else IF_SET_STRING("svg_text", php_symbol->symbol->svg_text, value)
                     else IF_SET_LONG("antialias", php_symbol->symbol->antialias, value)
                       else IF_SET_STRING("font", php_symbol->symbol->font, value)
                         else IF_SET_DOUBLE("anchorpoint_y", php_symbol->symbol->anchorpoint_y, value)
@@ -280,7 +278,7 @@ PHP_METHOD(symbolObj, setImagePath)
   zval *zobj = getThis();
   php_symbol_object *php_symbol;
   char *filename;
-  long filename_len;
+  long filename_len = 0;
   int status = MS_FAILURE;
 
   PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
diff --git a/mapscript/php/web.c b/mapscript/php/web.c
index 82a96e2..51ec72f 100644
--- a/mapscript/php/web.c
+++ b/mapscript/php/web.c
@@ -57,7 +57,7 @@ PHP_METHOD(webObj, __construct)
 PHP_METHOD(webObj, __get)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *zobj = getThis();
   php_web_object *php_web;
 
@@ -98,7 +98,7 @@ PHP_METHOD(webObj, __get)
 PHP_METHOD(webObj, __set)
 {
   char *property;
-  long property_len;
+  long property_len = 0;
   zval *value;
   zval *zobj = getThis();
   php_web_object *php_web;
@@ -144,7 +144,7 @@ PHP_METHOD(webObj, __set)
 PHP_METHOD(webObj, updateFromString)
 {
   char *snippet;
-  long snippet_len;
+  long snippet_len = 0;
   zval *zobj = getThis();
   php_web_object *php_web;
   int status = MS_FAILURE;
@@ -170,6 +170,33 @@ PHP_METHOD(webObj, updateFromString)
 }
 /* }}} */
 
+/* {{{ proto string convertToString()
+   Convert the web object to string. */
+PHP_METHOD(webObj, convertToString)
+{
+  zval *zobj = getThis();
+  php_web_object *php_web;
+  char *value = NULL;
+
+  PHP_MAPSCRIPT_ERROR_HANDLING(TRUE);
+  if (zend_parse_parameters_none() == FAILURE) {
+    PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+    return;
+  }
+  PHP_MAPSCRIPT_RESTORE_ERRORS(TRUE);
+
+  php_web = (php_web_object *) zend_object_store_get_object(zobj TSRMLS_CC);
+
+  value =  webObj_convertToString(php_web->web);
+
+  if (value == NULL)
+    RETURN_STRING("", 1);
+
+  RETVAL_STRING(value, 1);
+  free(value);
+}
+/* }}} */
+
 /* {{{ proto int web.free()
    Free the object. */
 PHP_METHOD(webObj, free)
@@ -198,6 +225,7 @@ zend_function_entry web_functions[] = {
   PHP_ME(webObj, __set, web___set_args, ZEND_ACC_PUBLIC)
   PHP_MALIAS(webObj, set, __set, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(webObj, updateFromString, web_updateFromString_args, ZEND_ACC_PUBLIC)
+  PHP_ME(webObj, convertToString, NULL, ZEND_ACC_PUBLIC)
   PHP_ME(webObj, free, NULL, ZEND_ACC_PUBLIC) {
     NULL, NULL, NULL
   }
diff --git a/mapscript/python/CMakeLists.txt b/mapscript/python/CMakeLists.txt
new file mode 100644
index 0000000..33945b2
--- /dev/null
+++ b/mapscript/python/CMakeLists.txt
@@ -0,0 +1,47 @@
+FIND_PACKAGE(SWIG REQUIRED)
+INCLUDE(${SWIG_USE_FILE})
+FIND_PACKAGE(PythonInterp)
+
+
+# Python library/header finding doesn't seem to honor the python
+# interpreter that was found beforehand, and defaults to the system
+# python. We first try to find python.h and libpython.so ourselves
+# from the hints given by distutils and sys
+execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_inc; print get_python_inc(True)" OUTPUT_VARIABLE PYTHON_INC OUTPUT_STRIP_TRAILING_WHITESPACE)
+execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "import sys; print sys.prefix" OUTPUT_VARIABLE PYTHON_PREFIX OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+find_path(PYTHON_INCLUDE_PATH Python.h
+  HINTS ${PYTHON_INC}
+)
+
+find_library(PYTHON_LIBRARIES
+  NAMES python${PYTHON_VERSION_STRING} python${PYTHON_VERSION_MAJOR}.${PYTHON_VERSION_MINOR} python
+  HINTS ${PYTHON_PREFIX}/lib
+)
+
+#if that failed, fall back to the default cmake method of finding python dev files
+if(NOT PYTHON_INCLUDE_PATH OR NOT PYTHON_LIBRARIES)
+  FIND_PACKAGE(PythonLibs)
+endif(NOT PYTHON_INCLUDE_PATH OR NOT PYTHON_LIBRARIES)
+
+
+INCLUDE_DIRECTORIES(${PYTHON_INCLUDE_PATH})
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/swiginc)
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/)
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/python)
+SWIG_ADD_MODULE(pythonmapscript python ../mapscript.i pygdioctx/pygdioctx.c)
+
+SWIG_LINK_LIBRARIES(pythonmapscript ${PYTHON_LIBRARIES} ${MAPSERVER_LIBMAPSERVER})
+
+set_target_properties(${SWIG_MODULE_pythonmapscript_REAL_NAME} PROPERTIES PREFIX "")
+set_target_properties(${SWIG_MODULE_pythonmapscript_REAL_NAME} PROPERTIES OUTPUT_NAME _mapscript)
+
+
+execute_process ( COMMAND ${PYTHON_EXECUTABLE} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(True)" OUTPUT_VARIABLE PYTHON_SITE_PACKAGES OUTPUT_STRIP_TRAILING_WHITESPACE)
+
+get_target_property(LOC_MAPSCRIPT_LIB ${SWIG_MODULE_pythonmapscript_REAL_NAME} LOCATION)
+set(mapscript_files ${LOC_MAPSCRIPT_LIB} ${CMAKE_CURRENT_BINARY_DIR}/mapscript.py)
+install(FILES ${mapscript_files} DESTINATION ${PYTHON_SITE_PACKAGES})
+
+#install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mapscript.py DESTINATION ${PYTHON_SITE_PACKAGES})
+#install(TARGETS mapscript DESTINATION ${PYTHON_SITE_PACKAGES})
diff --git a/mapscript/python/Makefile.in b/mapscript/python/Makefile.in
deleted file mode 100644
index a6007ab..0000000
--- a/mapscript/python/Makefile.in
+++ /dev/null
@@ -1,63 +0,0 @@
-# Run ./configure in the main MapServer directory to turn this Makefile.in
-# into a proper Makefile
-
-prefix		=	@prefix@
-exec_prefix	=	@exec_prefix@
-libdir	=	@libdir@
-bindir	=	@bindir@
-top_builddir = @top_builddir@
-SHELL = @SHELL@
-CXX=	@CXX@
-CC=     @CC@
-LD=     @CXX@
-LIBTOOL=@LIBTOOL@
-INSTALL=@INSTALL@
-PYTHON=@PYTHON@
-SWIG=@SWIG@
-
-LTCC=$(LIBTOOL) --mode=compile --tag=CC
-LTCXX=$(LIBTOOL) --mode=compile --tag=CXX
-LTLD=$(LIBTOOL) --mode=link --tag=CXX
-LTINSTALL=$(LIBTOOL) --mode=install
-
-XTRALIBS= @XTRALIBS@
-
-
-PYLIBDIR=`$(PYTHON) -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)"`
-PYINCDIR=`$(PYTHON) -c "from distutils.sysconfig import get_python_inc; print get_python_inc(1)"`
-
-RUNPATH= -rpath $(PYLIBDIR)
-DEFINES=@ALL_ENABLED@
-CFLAGS = $(DEFINES) @CFLAGS@ -I$(PYINCDIR) @MS_INC@ @ALL_INC@
-
-LT_LDFLAGS= $(RUNPATH) -module
-OBJ_SUFFIX=lo
-LINK=$(LTLD) $(LD) $(LT_LDFLAGS)
-MS_LIB =   $(top_builddir)/libmapserver.la
-
-
-.SUFFIXES:
-.SUFFIXES: .cpp .c .$(OBJ_SUFFIX)
-
-all: _mapscript.la
-
-_mapscript.la: mapscript_wrap.lo pygdioctx/pygdioctx.lo $(MS_LIB)
-	$(LINK) -o $@ mapscript_wrap.lo pygdioctx/pygdioctx.lo $(MS_LIB)
-
-%.lo: %.c
-	$(LTCC) $(CC) $(CFLAGS) -c -o $@ $<
-
-mapscript_wrap.c: ../mapscript.i
-	@test -n "$(SWIG)" || (echo "swig binary not found, cannot procede. install swig and rerun ./configure"; exit 1;)
-	$(SWIG) -python -shadow -modern -templatereduce -fastdispatch -fvirtual -fastproxy -modernargs -castmode -dirvtable -fastinit -fastquery -noproxydel -nobuildnone $(DEFINES) -o mapscript_wrap.c ../mapscript.i
-
-install-dirs:
-	$(INSTALL) -d $(DESTDIR)$(PYLIBDIR)
-
-install: install-dirs _mapscript.la
-	$(LTINSTALL) $(INSTALL) _mapscript.la $(DESTDIR)$(PYLIBDIR)
-	$(INSTALL) -c mapscript.py $(DESTDIR)$(PYLIBDIR)
-
-clean:
-	-rm -rf .libs *.lo *.la *.so *.o pygdioctx/.libs pygdioctx/*.o pygdioctx/*.lo mapscript_wrap.c mapscript.py
-
diff --git a/mapscript/python/mapscript.py b/mapscript/python/mapscript.py
index 6b43c81..93ce560 100644
--- a/mapscript/python/mapscript.py
+++ b/mapscript/python/mapscript.py
@@ -1,9 +1,10 @@
 # This file was automatically generated by SWIG (http://www.swig.org).
-# Version 1.3.40
+# Version 2.0.7
 #
 # Do not make changes to this file unless you know what you are doing--modify
 # the SWIG interface file instead.
-# This file is compatible with both classic and new-style classes.
+
+
 
 from sys import version_info
 if version_info >= (2,6,0):
@@ -39,7 +40,7 @@ def _swig_setattr_nondynamic(self,class_type,name,value,static=1):
             return
     method = class_type.__swig_setmethods__.get(name,None)
     if method: return method(self,value)
-    if (not static) or hasattr(self,name):
+    if (not static):
         self.__dict__[name] = value
     else:
         raise AttributeError("You cannot add attributes to %s" % self)
@@ -93,11 +94,6 @@ intarray_frompointer = _mapscript.intarray_frompointer
 MapServerError = _mapscript.MapServerError
 MapServerChildError = _mapscript.MapServerChildError
 
-MS_VERSION = _mapscript.MS_VERSION
-MS_VERSION_MAJOR = _mapscript.MS_VERSION_MAJOR
-MS_VERSION_MINOR = _mapscript.MS_VERSION_MINOR
-MS_VERSION_REV = _mapscript.MS_VERSION_REV
-MS_VERSION_NUM = _mapscript.MS_VERSION_NUM
 MS_TRUE = _mapscript.MS_TRUE
 MS_FALSE = _mapscript.MS_FALSE
 MS_UNKNOWN = _mapscript.MS_UNKNOWN
@@ -195,6 +191,7 @@ MS_RASTER = _mapscript.MS_RASTER
 MS_PLUGIN = _mapscript.MS_PLUGIN
 MS_UNION = _mapscript.MS_UNION
 MS_UVRASTER = _mapscript.MS_UVRASTER
+MS_CONTOUR = _mapscript.MS_CONTOUR
 MS_DB_XBASE = _mapscript.MS_DB_XBASE
 MS_DB_CSV = _mapscript.MS_DB_CSV
 MS_DB_MYSQL = _mapscript.MS_DB_MYSQL
@@ -329,11 +326,17 @@ MS_TOKEN_FUNCTION_ROUND = _mapscript.MS_TOKEN_FUNCTION_ROUND
 MS_TOKEN_FUNCTION_FROMTEXT = _mapscript.MS_TOKEN_FUNCTION_FROMTEXT
 MS_TOKEN_FUNCTION_BUFFER = _mapscript.MS_TOKEN_FUNCTION_BUFFER
 MS_TOKEN_FUNCTION_DIFFERENCE = _mapscript.MS_TOKEN_FUNCTION_DIFFERENCE
+MS_TOKEN_FUNCTION_SIMPLIFY = _mapscript.MS_TOKEN_FUNCTION_SIMPLIFY
+MS_TOKEN_FUNCTION_SIMPLIFYPT = _mapscript.MS_TOKEN_FUNCTION_SIMPLIFYPT
+MS_TOKEN_FUNCTION_GENERALIZE = _mapscript.MS_TOKEN_FUNCTION_GENERALIZE
+MS_TOKEN_FUNCTION_SMOOTHSIA = _mapscript.MS_TOKEN_FUNCTION_SMOOTHSIA
 MS_TOKEN_BINDING_DOUBLE = _mapscript.MS_TOKEN_BINDING_DOUBLE
 MS_TOKEN_BINDING_INTEGER = _mapscript.MS_TOKEN_BINDING_INTEGER
 MS_TOKEN_BINDING_STRING = _mapscript.MS_TOKEN_BINDING_STRING
 MS_TOKEN_BINDING_TIME = _mapscript.MS_TOKEN_BINDING_TIME
 MS_TOKEN_BINDING_SHAPE = _mapscript.MS_TOKEN_BINDING_SHAPE
+MS_TOKEN_BINDING_MAP_CELLSIZE = _mapscript.MS_TOKEN_BINDING_MAP_CELLSIZE
+MS_TOKEN_BINDING_DATA_CELLSIZE = _mapscript.MS_TOKEN_BINDING_DATA_CELLSIZE
 MS_PARSE_TYPE_BOOLEAN = _mapscript.MS_PARSE_TYPE_BOOLEAN
 MS_PARSE_TYPE_STRING = _mapscript.MS_PARSE_TYPE_STRING
 MS_PARSE_TYPE_SHAPE = _mapscript.MS_PARSE_TYPE_SHAPE
@@ -353,6 +356,7 @@ class clusterObj(_object):
     __swig_getmethods__["region"] = _mapscript.clusterObj_region_get
     if _newclass:region = _swig_property(_mapscript.clusterObj_region_get, _mapscript.clusterObj_region_set)
     def updateFromString(self, *args): return _mapscript.clusterObj_updateFromString(self, *args)
+    def convertToString(self): return _mapscript.clusterObj_convertToString(self)
     def setGroup(self, *args): return _mapscript.clusterObj_setGroup(self, *args)
     def getGroupString(self): return _mapscript.clusterObj_getGroupString(self)
     def setFilter(self, *args): return _mapscript.clusterObj_setFilter(self, *args)
@@ -372,6 +376,8 @@ class outputFormatObj(_object):
     __swig_getmethods__ = {}
     __getattr__ = lambda self, name: _swig_getattr(self, outputFormatObj, name)
     __repr__ = _swig_repr
+    __swig_getmethods__["numformatoptions"] = _mapscript.outputFormatObj_numformatoptions_get
+    if _newclass:numformatoptions = _swig_property(_mapscript.outputFormatObj_numformatoptions_get)
     __swig_setmethods__["name"] = _mapscript.outputFormatObj_name_set
     __swig_getmethods__["name"] = _mapscript.outputFormatObj_name_get
     if _newclass:name = _swig_property(_mapscript.outputFormatObj_name_get, _mapscript.outputFormatObj_name_set)
@@ -396,15 +402,6 @@ class outputFormatObj(_object):
     __swig_setmethods__["bands"] = _mapscript.outputFormatObj_bands_set
     __swig_getmethods__["bands"] = _mapscript.outputFormatObj_bands_get
     if _newclass:bands = _swig_property(_mapscript.outputFormatObj_bands_get, _mapscript.outputFormatObj_bands_set)
-    __swig_setmethods__["numformatoptions"] = _mapscript.outputFormatObj_numformatoptions_set
-    __swig_getmethods__["numformatoptions"] = _mapscript.outputFormatObj_numformatoptions_get
-    if _newclass:numformatoptions = _swig_property(_mapscript.outputFormatObj_numformatoptions_get, _mapscript.outputFormatObj_numformatoptions_set)
-    __swig_setmethods__["formatoptions"] = _mapscript.outputFormatObj_formatoptions_set
-    __swig_getmethods__["formatoptions"] = _mapscript.outputFormatObj_formatoptions_get
-    if _newclass:formatoptions = _swig_property(_mapscript.outputFormatObj_formatoptions_get, _mapscript.outputFormatObj_formatoptions_set)
-    __swig_setmethods__["refcount"] = _mapscript.outputFormatObj_refcount_set
-    __swig_getmethods__["refcount"] = _mapscript.outputFormatObj_refcount_get
-    if _newclass:refcount = _swig_property(_mapscript.outputFormatObj_refcount_get, _mapscript.outputFormatObj_refcount_set)
     __swig_setmethods__["inmapfile"] = _mapscript.outputFormatObj_inmapfile_set
     __swig_getmethods__["inmapfile"] = _mapscript.outputFormatObj_inmapfile_get
     if _newclass:inmapfile = _swig_property(_mapscript.outputFormatObj_inmapfile_get, _mapscript.outputFormatObj_inmapfile_set)
@@ -419,6 +416,7 @@ class outputFormatObj(_object):
     def setOption(self, *args): return _mapscript.outputFormatObj_setOption(self, *args)
     def validate(self): return _mapscript.outputFormatObj_validate(self)
     def getOption(self, *args): return _mapscript.outputFormatObj_getOption(self, *args)
+    def getOptionAt(self, *args): return _mapscript.outputFormatObj_getOptionAt(self, *args)
     def attachDevice(self, *args): return _mapscript.outputFormatObj_attachDevice(self, *args)
 outputFormatObj_swigregister = _mapscript.outputFormatObj_swigregister
 outputFormatObj_swigregister(outputFormatObj)
@@ -446,6 +444,7 @@ class queryMapObj(_object):
     __swig_getmethods__["color"] = _mapscript.queryMapObj_color_get
     if _newclass:color = _swig_property(_mapscript.queryMapObj_color_get, _mapscript.queryMapObj_color_set)
     def updateFromString(self, *args): return _mapscript.queryMapObj_updateFromString(self, *args)
+    def convertToString(self): return _mapscript.queryMapObj_convertToString(self)
     def __init__(self): 
         this = _mapscript.new_queryMapObj()
         try: self.this.append(this)
@@ -525,6 +524,7 @@ class webObj(_object):
     __swig_destroy__ = _mapscript.delete_webObj
     __del__ = lambda self : None;
     def updateFromString(self, *args): return _mapscript.webObj_updateFromString(self, *args)
+    def convertToString(self): return _mapscript.webObj_convertToString(self)
 webObj_swigregister = _mapscript.webObj_swigregister
 webObj_swigregister(webObj)
 
@@ -644,13 +644,14 @@ class styleObj(_object):
     __swig_setmethods__["maxscaledenom"] = _mapscript.styleObj_maxscaledenom_set
     __swig_getmethods__["maxscaledenom"] = _mapscript.styleObj_maxscaledenom_get
     if _newclass:maxscaledenom = _swig_property(_mapscript.styleObj_maxscaledenom_get, _mapscript.styleObj_maxscaledenom_set)
-    def __init__(self, parent_class = None): 
+    def __init__(self, parent_class=None): 
         this = _mapscript.new_styleObj(parent_class)
         try: self.this.append(this)
         except: self.this = this
     __swig_destroy__ = _mapscript.delete_styleObj
     __del__ = lambda self : None;
     def updateFromString(self, *args): return _mapscript.styleObj_updateFromString(self, *args)
+    def convertToString(self): return _mapscript.styleObj_convertToString(self)
     def clone(self): return _mapscript.styleObj_clone(self)
     def setSymbolByName(self, *args): return _mapscript.styleObj_setSymbolByName(self, *args)
     def removeBinding(self, *args): return _mapscript.styleObj_removeBinding(self, *args)
@@ -819,6 +820,7 @@ class labelObj(_object):
     __swig_destroy__ = _mapscript.delete_labelObj
     __del__ = lambda self : None;
     def updateFromString(self, *args): return _mapscript.labelObj_updateFromString(self, *args)
+    def convertToString(self): return _mapscript.labelObj_convertToString(self)
     def removeBinding(self, *args): return _mapscript.labelObj_removeBinding(self, *args)
     def getBinding(self, *args): return _mapscript.labelObj_getBinding(self, *args)
     def setBinding(self, *args): return _mapscript.labelObj_setBinding(self, *args)
@@ -889,7 +891,7 @@ class classObj(_object):
     __swig_setmethods__["leader"] = _mapscript.classObj_leader_set
     __swig_getmethods__["leader"] = _mapscript.classObj_leader_get
     if _newclass:leader = _swig_property(_mapscript.classObj_leader_get, _mapscript.classObj_leader_set)
-    def __init__(self, layer = None): 
+    def __init__(self, layer=None): 
         this = _mapscript.new_classObj(layer)
         try: self.this.append(this)
         except: self.this = this
@@ -909,6 +911,7 @@ class classObj(_object):
     __swig_destroy__ = _mapscript.delete_classObj
     __del__ = lambda self : None;
     def updateFromString(self, *args): return _mapscript.classObj_updateFromString(self, *args)
+    def convertToString(self): return _mapscript.classObj_convertToString(self)
     def clone(self): return _mapscript.classObj_clone(self)
     def setExpression(self, *args): return _mapscript.classObj_setExpression(self, *args)
     def getExpressionString(self): return _mapscript.classObj_getExpressionString(self)
@@ -1104,7 +1107,7 @@ class symbolSetObj(_object):
     if _newclass:numsymbols = _swig_property(_mapscript.symbolSetObj_numsymbols_get)
     __swig_getmethods__["maxsymbols"] = _mapscript.symbolSetObj_maxsymbols_get
     if _newclass:maxsymbols = _swig_property(_mapscript.symbolSetObj_maxsymbols_get)
-    def __init__(self, symbolfile = None): 
+    def __init__(self, symbolfile=None): 
         this = _mapscript.new_symbolSetObj(symbolfile)
         try: self.this.append(this)
         except: self.this = this
@@ -1164,6 +1167,7 @@ class referenceMapObj(_object):
     __swig_getmethods__["map"] = _mapscript.referenceMapObj_map_get
     if _newclass:map = _swig_property(_mapscript.referenceMapObj_map_get)
     def updateFromString(self, *args): return _mapscript.referenceMapObj_updateFromString(self, *args)
+    def convertToString(self): return _mapscript.referenceMapObj_convertToString(self)
     def __init__(self): 
         this = _mapscript.new_referenceMapObj()
         try: self.this.append(this)
@@ -1222,6 +1226,7 @@ class scalebarObj(_object):
     __swig_getmethods__["align"] = _mapscript.scalebarObj_align_get
     if _newclass:align = _swig_property(_mapscript.scalebarObj_align_get, _mapscript.scalebarObj_align_set)
     def updateFromString(self, *args): return _mapscript.scalebarObj_updateFromString(self, *args)
+    def convertToString(self): return _mapscript.scalebarObj_convertToString(self)
     def __init__(self): 
         this = _mapscript.new_scalebarObj()
         try: self.this.append(this)
@@ -1278,6 +1283,7 @@ class legendObj(_object):
     __swig_getmethods__["map"] = _mapscript.legendObj_map_get
     if _newclass:map = _swig_property(_mapscript.legendObj_map_get)
     def updateFromString(self, *args): return _mapscript.legendObj_updateFromString(self, *args)
+    def convertToString(self): return _mapscript.legendObj_convertToString(self)
     def __init__(self): 
         this = _mapscript.new_legendObj()
         try: self.this.append(this)
@@ -1321,6 +1327,54 @@ class imageObj(_object):
 imageObj_swigregister = _mapscript.imageObj_swigregister
 imageObj_swigregister(imageObj)
 
+class scaleTokenEntryObj(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, scaleTokenEntryObj, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, scaleTokenEntryObj, name)
+    __repr__ = _swig_repr
+    __swig_setmethods__["minscale"] = _mapscript.scaleTokenEntryObj_minscale_set
+    __swig_getmethods__["minscale"] = _mapscript.scaleTokenEntryObj_minscale_get
+    if _newclass:minscale = _swig_property(_mapscript.scaleTokenEntryObj_minscale_get, _mapscript.scaleTokenEntryObj_minscale_set)
+    __swig_setmethods__["maxscale"] = _mapscript.scaleTokenEntryObj_maxscale_set
+    __swig_getmethods__["maxscale"] = _mapscript.scaleTokenEntryObj_maxscale_get
+    if _newclass:maxscale = _swig_property(_mapscript.scaleTokenEntryObj_maxscale_get, _mapscript.scaleTokenEntryObj_maxscale_set)
+    __swig_setmethods__["value"] = _mapscript.scaleTokenEntryObj_value_set
+    __swig_getmethods__["value"] = _mapscript.scaleTokenEntryObj_value_get
+    if _newclass:value = _swig_property(_mapscript.scaleTokenEntryObj_value_get, _mapscript.scaleTokenEntryObj_value_set)
+    def __init__(self): 
+        this = _mapscript.new_scaleTokenEntryObj()
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _mapscript.delete_scaleTokenEntryObj
+    __del__ = lambda self : None;
+scaleTokenEntryObj_swigregister = _mapscript.scaleTokenEntryObj_swigregister
+scaleTokenEntryObj_swigregister(scaleTokenEntryObj)
+
+class scaleTokenObj(_object):
+    __swig_setmethods__ = {}
+    __setattr__ = lambda self, name, value: _swig_setattr(self, scaleTokenObj, name, value)
+    __swig_getmethods__ = {}
+    __getattr__ = lambda self, name: _swig_getattr(self, scaleTokenObj, name)
+    __repr__ = _swig_repr
+    __swig_setmethods__["name"] = _mapscript.scaleTokenObj_name_set
+    __swig_getmethods__["name"] = _mapscript.scaleTokenObj_name_get
+    if _newclass:name = _swig_property(_mapscript.scaleTokenObj_name_get, _mapscript.scaleTokenObj_name_set)
+    __swig_setmethods__["n_entries"] = _mapscript.scaleTokenObj_n_entries_set
+    __swig_getmethods__["n_entries"] = _mapscript.scaleTokenObj_n_entries_get
+    if _newclass:n_entries = _swig_property(_mapscript.scaleTokenObj_n_entries_get, _mapscript.scaleTokenObj_n_entries_set)
+    __swig_setmethods__["tokens"] = _mapscript.scaleTokenObj_tokens_set
+    __swig_getmethods__["tokens"] = _mapscript.scaleTokenObj_tokens_get
+    if _newclass:tokens = _swig_property(_mapscript.scaleTokenObj_tokens_get, _mapscript.scaleTokenObj_tokens_set)
+    def __init__(self): 
+        this = _mapscript.new_scaleTokenObj()
+        try: self.this.append(this)
+        except: self.this = this
+    __swig_destroy__ = _mapscript.delete_scaleTokenObj
+    __del__ = lambda self : None;
+scaleTokenObj_swigregister = _mapscript.scaleTokenObj_swigregister
+scaleTokenObj_swigregister(scaleTokenObj)
+
 class layerObj(_object):
     __swig_setmethods__ = {}
     __setattr__ = lambda self, name, value: _swig_setattr(self, layerObj, name, value)
@@ -1424,6 +1478,9 @@ class layerObj(_object):
     __swig_setmethods__["tileindex"] = _mapscript.layerObj_tileindex_set
     __swig_getmethods__["tileindex"] = _mapscript.layerObj_tileindex_get
     if _newclass:tileindex = _swig_property(_mapscript.layerObj_tileindex_get, _mapscript.layerObj_tileindex_set)
+    __swig_setmethods__["tilesrs"] = _mapscript.layerObj_tilesrs_set
+    __swig_getmethods__["tilesrs"] = _mapscript.layerObj_tilesrs_get
+    if _newclass:tilesrs = _swig_property(_mapscript.layerObj_tilesrs_get, _mapscript.layerObj_tilesrs_set)
     __swig_setmethods__["units"] = _mapscript.layerObj_units_set
     __swig_getmethods__["units"] = _mapscript.layerObj_units_get
     if _newclass:units = _swig_property(_mapscript.layerObj_units_get, _mapscript.layerObj_units_set)
@@ -1485,7 +1542,7 @@ class layerObj(_object):
     __swig_setmethods__["mask"] = _mapscript.layerObj_mask_set
     __swig_getmethods__["mask"] = _mapscript.layerObj_mask_get
     if _newclass:mask = _swig_property(_mapscript.layerObj_mask_get, _mapscript.layerObj_mask_set)
-    def __init__(self, map = None): 
+    def __init__(self, map=None): 
         this = _mapscript.new_layerObj(map)
         try: self.this.append(this)
         except: self.this = this
@@ -1506,6 +1563,7 @@ class layerObj(_object):
     __del__ = lambda self : None;
     def clone(self): return _mapscript.layerObj_clone(self)
     def updateFromString(self, *args): return _mapscript.layerObj_updateFromString(self, *args)
+    def convertToString(self): return _mapscript.layerObj_convertToString(self)
     def insertClass(*args):
            actualIndex=_mapscript.layerObj_insertClass(*args)
            args[1].p_layer=args[0]
@@ -1571,6 +1629,8 @@ class layerObj(_object):
     def clearProcessing(self): return _mapscript.layerObj_clearProcessing(self)
     def setConnectionType(self, *args): return _mapscript.layerObj_setConnectionType(self, *args)
     def getClassIndex(self, *args): return _mapscript.layerObj_getClassIndex(self, *args)
+    def getGeomTransform(self): return _mapscript.layerObj_getGeomTransform(self)
+    def setGeomTransform(self, *args): return _mapscript.layerObj_setGeomTransform(self, *args)
 layerObj_swigregister = _mapscript.layerObj_swigregister
 layerObj_swigregister(layerObj)
 
@@ -1645,8 +1705,6 @@ class mapObj(_object):
     if _newclass:imagecolor = _swig_property(_mapscript.mapObj_imagecolor_get, _mapscript.mapObj_imagecolor_set)
     __swig_getmethods__["numoutputformats"] = _mapscript.mapObj_numoutputformats_get
     if _newclass:numoutputformats = _swig_property(_mapscript.mapObj_numoutputformats_get)
-    __swig_getmethods__["outputformatlist"] = _mapscript.mapObj_outputformatlist_get
-    if _newclass:outputformatlist = _swig_property(_mapscript.mapObj_outputformatlist_get)
     __swig_getmethods__["outputformat"] = _mapscript.mapObj_outputformat_get
     if _newclass:outputformat = _swig_property(_mapscript.mapObj_outputformat_get)
     __swig_getmethods__["imagetype"] = _mapscript.mapObj_imagetype_get
@@ -1675,7 +1733,7 @@ class mapObj(_object):
     if _newclass:templatepattern = _swig_property(_mapscript.mapObj_templatepattern_get, _mapscript.mapObj_templatepattern_set)
     __swig_getmethods__["configoptions"] = _mapscript.mapObj_configoptions_get
     if _newclass:configoptions = _swig_property(_mapscript.mapObj_configoptions_get)
-    def __init__(self, filename = ""): 
+    def __init__(self, filename=""): 
         this = _mapscript.new_mapObj(filename)
         try: self.this.append(this)
         except: self.this = this
@@ -1717,6 +1775,7 @@ class mapObj(_object):
     def prepareImage(self): return _mapscript.mapObj_prepareImage(self)
     def setImageType(self, *args): return _mapscript.mapObj_setImageType(self, *args)
     def selectOutputFormat(self, *args): return _mapscript.mapObj_selectOutputFormat(self, *args)
+    def getOutputFormat(self, *args): return _mapscript.mapObj_getOutputFormat(self, *args)
     def setOutputFormat(self, *args): return _mapscript.mapObj_setOutputFormat(self, *args)
     def draw(self): return _mapscript.mapObj_draw(self)
     def drawQuery(self): return _mapscript.mapObj_drawQuery(self)
@@ -1769,6 +1828,7 @@ class mapObj(_object):
     def removeOutputFormat(self, *args): return _mapscript.mapObj_removeOutputFormat(self, *args)
     def loadOWSParameters(self, *args): return _mapscript.mapObj_loadOWSParameters(self, *args)
     def OWSDispatch(self, *args): return _mapscript.mapObj_OWSDispatch(self, *args)
+    def convertToString(self): return _mapscript.mapObj_convertToString(self)
     def zoomPoint(self, *args): return _mapscript.mapObj_zoomPoint(self, *args)
     def zoomRectangle(self, *args): return _mapscript.mapObj_zoomRectangle(self, *args)
     def zoomScale(self, *args): return _mapscript.mapObj_zoomScale(self, *args)
@@ -2403,9 +2463,6 @@ class symbolObj(_object):
     __swig_setmethods__["font"] = _mapscript.symbolObj_font_set
     __swig_getmethods__["font"] = _mapscript.symbolObj_font_get
     if _newclass:font = _swig_property(_mapscript.symbolObj_font_get, _mapscript.symbolObj_font_set)
-    __swig_setmethods__["svg_text"] = _mapscript.symbolObj_svg_text_set
-    __swig_getmethods__["svg_text"] = _mapscript.symbolObj_svg_text_get
-    if _newclass:svg_text = _swig_property(_mapscript.symbolObj_svg_text_get, _mapscript.symbolObj_svg_text_set)
     def __init__(self, *args): 
         this = _mapscript.new_symbolObj(*args)
         try: self.this.append(this)
@@ -2540,7 +2597,7 @@ class hashTableObj(_object):
     def get(self, *args): return _mapscript.hashTableObj_get(self, *args)
     def remove(self, *args): return _mapscript.hashTableObj_remove(self, *args)
     def clear(self, *args): return _mapscript.hashTableObj_clear(self, *args)
-    def nextKey(self, prevkey = None): return _mapscript.hashTableObj_nextKey(self, prevkey)
+    def nextKey(self, prevkey=None): return _mapscript.hashTableObj_nextKey(self, prevkey)
 hashTableObj_swigregister = _mapscript.hashTableObj_swigregister
 hashTableObj_swigregister(hashTableObj)
 
@@ -2649,5 +2706,6 @@ def fromstring(data, mappath=None):
     else:
         raise ValueError, "No map, layer, class, or style found. Can not load from provided string"
 
+# This file is compatible with both classic and new-style classes.
 
 
diff --git a/mapscript/python/mapscript_wrap.c b/mapscript/python/mapscript_wrap.c
index 23b718d..68ba3c4 100644
--- a/mapscript/python/mapscript_wrap.c
+++ b/mapscript/python/mapscript_wrap.c
@@ -1,6 +1,6 @@
 /* ----------------------------------------------------------------------------
  * This file was automatically generated by SWIG (http://www.swig.org).
- * Version 1.3.40
+ * Version 2.0.7
  * 
  * This file is not intended to be easily readable and contains a number of 
  * coding conventions designed to improve portability and efficiency. Do not make
@@ -177,7 +177,7 @@
 /* 
    Flags/methods for returning states.
    
-   The SWIG conversion methods, as ConvertPtr, return and integer 
+   The SWIG conversion methods, as ConvertPtr, return an integer 
    that tells if the conversion was successful or not. And if not,
    an error code can be returned (see swigerrors.swg for the codes).
    
@@ -732,7 +732,16 @@ SWIG_UnpackDataName(const char *c, void *ptr, size_t sz, const char *name) {
 #define PyInt_Check(x) PyLong_Check(x)
 #define PyInt_AsLong(x) PyLong_AsLong(x)
 #define PyInt_FromLong(x) PyLong_FromLong(x)
+#define PyInt_FromSize_t(x) PyLong_FromSize_t(x)
+#define PyString_Check(name) PyBytes_Check(name)
+#define PyString_FromString(x) PyUnicode_FromString(x)
 #define PyString_Format(fmt, args)  PyUnicode_Format(fmt, args)
+#define PyString_AsString(str) PyBytes_AsString(str)
+#define PyString_Size(str) PyBytes_Size(str)	
+#define PyString_InternFromString(key) PyUnicode_InternFromString(key)
+#define Py_TPFLAGS_HAVE_CLASS Py_TPFLAGS_BASETYPE
+#define PyString_AS_STRING(x) PyUnicode_AS_STRING(x)
+#define _PyLong_FromSsize_t(x) PyLong_FromSsize_t(x)
 
 #endif
 
@@ -872,6 +881,63 @@ PyObject *PyBool_FromLong(long ok)
 typedef int Py_ssize_t;
 # define PY_SSIZE_T_MAX INT_MAX
 # define PY_SSIZE_T_MIN INT_MIN
+typedef inquiry lenfunc;
+typedef intargfunc ssizeargfunc;
+typedef intintargfunc ssizessizeargfunc;
+typedef intobjargproc ssizeobjargproc;
+typedef intintobjargproc ssizessizeobjargproc;
+typedef getreadbufferproc readbufferproc;
+typedef getwritebufferproc writebufferproc;
+typedef getsegcountproc segcountproc;
+typedef getcharbufferproc charbufferproc;
+static long PyNumber_AsSsize_t (PyObject *x, void *SWIGUNUSEDPARM(exc))
+{
+  long result = 0;
+  PyObject *i = PyNumber_Int(x);
+  if (i) {
+    result = PyInt_AsLong(i);
+    Py_DECREF(i);
+  }
+  return result;
+}
+#endif
+
+#if PY_VERSION_HEX < 0x02040000
+#define Py_VISIT(op)				\
+  do { 						\
+    if (op) {					\
+      int vret = visit((op), arg);		\
+      if (vret)					\
+        return vret;				\
+    }						\
+  } while (0)
+#endif
+
+#if PY_VERSION_HEX < 0x02030000
+typedef struct {
+  PyTypeObject type;
+  PyNumberMethods as_number;
+  PyMappingMethods as_mapping;
+  PySequenceMethods as_sequence;
+  PyBufferProcs as_buffer;
+  PyObject *name, *slots;
+} PyHeapTypeObject;
+#endif
+
+#if PY_VERSION_HEX < 0x02030000
+typedef destructor freefunc;
+#endif
+
+#if ((PY_MAJOR_VERSION == 2 && PY_MINOR_VERSION > 6) || \
+     (PY_MAJOR_VERSION == 3 && PY_MINOR_VERSION > 0) || \
+     (PY_MAJOR_VERSION > 3))
+# define SWIGPY_USE_CAPSULE
+# define SWIGPY_CAPSULE_NAME ((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION ".type_pointer_capsule" SWIG_TYPE_TABLE_NAME)
+#endif
+
+#if PY_VERSION_HEX < 0x03020000
+#define PyDescr_TYPE(x) (((PyDescrObject *)(x))->d_type)
+#define PyDescr_NAME(x) (((PyDescrObject *)(x))->d_name)
 #endif
 
 /* -----------------------------------------------------------------------------
@@ -1018,9 +1084,6 @@ SWIG_Python_AddErrorMsg(const char* mesg)
 
 #ifdef __cplusplus
 extern "C" {
-#if 0
-} /* cc-mode */
-#endif
 #endif
 
 /* -----------------------------------------------------------------------------
@@ -1046,27 +1109,24 @@ typedef struct swig_const_info {
  * Wrapper of PyInstanceMethod_New() used in Python 3
  * It is exported to the generated module, used for -fastproxy
  * ----------------------------------------------------------------------------- */
-SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *self, PyObject *func)
-{
 #if PY_VERSION_HEX >= 0x03000000
+SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *func)
+{
   return PyInstanceMethod_New(func);
+}
 #else
+SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *SWIGUNUSEDPARM(self), PyObject *SWIGUNUSEDPARM(func))
+{
   return NULL;
-#endif
 }
+#endif
 
 #ifdef __cplusplus
-#if 0
-{ /* cc-mode */
-#endif
 }
 #endif
 
 
 /* -----------------------------------------------------------------------------
- * See the LICENSE file for information on copyright, usage and redistribution
- * of SWIG, and the README file for authors - http://www.swig.org/release.html.
- *
  * pyrun.swg
  *
  * This file contains the runtime support for Python modules
@@ -1081,7 +1141,15 @@ SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *self, PyObject *func)
 #define SWIG_Python_ConvertPtr(obj, pptr, type, flags)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, 0)
 #define SWIG_ConvertPtr(obj, pptr, type, flags)         SWIG_Python_ConvertPtr(obj, pptr, type, flags)
 #define SWIG_ConvertPtrAndOwn(obj,pptr,type,flags,own)  SWIG_Python_ConvertPtrAndOwn(obj, pptr, type, flags, own)
-#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(ptr, type, flags)
+
+#ifdef SWIGPYTHON_BUILTIN
+#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(self, ptr, type, flags)
+#else
+#define SWIG_NewPointerObj(ptr, type, flags)            SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
+#endif
+
+#define SWIG_InternalNewPointerObj(ptr, type, flags)	SWIG_Python_NewPointerObj(NULL, ptr, type, flags)
+
 #define SWIG_CheckImplicit(ty)                          SWIG_Python_CheckImplicit(ty) 
 #define SWIG_AcquirePtr(ptr, src)                       SWIG_Python_AcquirePtr(ptr, src)
 #define swig_owntype                                    int
@@ -1096,7 +1164,7 @@ SWIGRUNTIME PyObject* SWIG_PyInstanceMethod_New(PyObject *self, PyObject *func)
 
 /* for C or C++ function pointers */
 #define SWIG_ConvertFunctionPtr(obj, pptr, type)        SWIG_Python_ConvertFunctionPtr(obj, pptr, type)
-#define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_Python_NewPointerObj(ptr, type, 0)
+#define SWIG_NewFunctionPtrObj(ptr, type)               SWIG_Python_NewPointerObj(NULL, ptr, type, 0)
 
 /* for C++ member pointers, ie, member methods */
 #define SWIG_ConvertMember(obj, ptr, sz, ty)            SWIG_Python_ConvertPacked(obj, ptr, sz, ty)
@@ -1131,7 +1199,7 @@ SWIG_Python_SetErrorObj(PyObject *errtype, PyObject *obj) {
 SWIGINTERN void 
 SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
   SWIG_PYTHON_THREAD_BEGIN_BLOCK;
-  PyErr_SetString(errtype, (char *) msg);
+  PyErr_SetString(errtype, msg);
   SWIG_PYTHON_THREAD_END_BLOCK;
 }
 
@@ -1139,12 +1207,41 @@ SWIG_Python_SetErrorMsg(PyObject *errtype, const char *msg) {
 
 /* Set a constant value */
 
+#if defined(SWIGPYTHON_BUILTIN)
+
+SWIGINTERN void
+SwigPyBuiltin_AddPublicSymbol(PyObject *seq, const char *key) {
+  PyObject *s = PyString_InternFromString(key);
+  PyList_Append(seq, s);
+  Py_DECREF(s);
+}
+
+SWIGINTERN void
+SWIG_Python_SetConstant(PyObject *d, PyObject *public_interface, const char *name, PyObject *obj) {   
+#if PY_VERSION_HEX < 0x02030000
+  PyDict_SetItemString(d, (char *)name, obj);
+#else
+  PyDict_SetItemString(d, name, obj);
+#endif
+  Py_DECREF(obj);
+  if (public_interface)
+    SwigPyBuiltin_AddPublicSymbol(public_interface, name);
+}
+
+#else
+
 SWIGINTERN void
 SWIG_Python_SetConstant(PyObject *d, const char *name, PyObject *obj) {   
-  PyDict_SetItemString(d, (char*) name, obj);
+#if PY_VERSION_HEX < 0x02030000
+  PyDict_SetItemString(d, (char *)name, obj);
+#else
+  PyDict_SetItemString(d, name, obj);
+#endif
   Py_DECREF(obj);                            
 }
 
+#endif
+
 /* Append a value to the result obj */
 
 SWIGINTERN PyObject*
@@ -1205,6 +1302,14 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi
     }
   }  
   if (!PyTuple_Check(args)) {
+    if (min <= 1 && max >= 1) {
+      register int i;
+      objs[0] = args;
+      for (i = 1; i < max; ++i) {
+	objs[i] = 0;
+      }
+      return 2;
+    }
     PyErr_SetString(PyExc_SystemError, "UnpackTuple() argument list is not a tuple");
     return 0;
   } else {
@@ -1257,11 +1362,11 @@ SWIG_Python_UnpackTuple(PyObject *args, const char *name, Py_ssize_t min, Py_ssi
 
 #define SWIG_POINTER_IMPLICIT_CONV  (SWIG_POINTER_DISOWN   << 1)
 
+#define SWIG_BUILTIN_TP_INIT	    (SWIG_POINTER_OWN << 2)
+#define SWIG_BUILTIN_INIT	    (SWIG_BUILTIN_TP_INIT | SWIG_POINTER_OWN)
+
 #ifdef __cplusplus
 extern "C" {
-#if 0
-} /* cc-mode */
-#endif
 #endif
 
 /*  How to access Py_None */
@@ -1312,6 +1417,7 @@ typedef struct {
   PyObject *destroy;
   int delargs;
   int implicitconv;
+  PyTypeObject *pytype;
 } SwigPyClientData;
 
 SWIGRUNTIMEINLINE int 
@@ -1378,13 +1484,13 @@ SwigPyClientData_New(PyObject* obj)
       data->delargs = 0;
     }
     data->implicitconv = 0;
+    data->pytype = 0;
     return data;
   }
 }
 
 SWIGRUNTIME void 
-SwigPyClientData_Del(SwigPyClientData* data)
-{
+SwigPyClientData_Del(SwigPyClientData *data) {
   Py_XDECREF(data->newraw);
   Py_XDECREF(data->newargs);
   Py_XDECREF(data->destroy);
@@ -1398,6 +1504,9 @@ typedef struct {
   swig_type_info *ty;
   int own;
   PyObject *next;
+#ifdef SWIGPYTHON_BUILTIN
+  PyObject *dict;
+#endif
 } SwigPyObject;
 
 SWIGRUNTIME PyObject *
@@ -1448,21 +1557,21 @@ SwigPyObject_repr(SwigPyObject *v, PyObject *args)
 #endif
 {
   const char *name = SWIG_TypePrettyName(v->ty);
-  PyObject *repr = SWIG_Python_str_FromFormat("<Swig Object of type '%s' at %p>", name, v);
+  PyObject *repr = SWIG_Python_str_FromFormat("<Swig Object of type '%s' at %p>", (name ? name : "unknown"), (void *)v);
   if (v->next) {
-#ifdef METH_NOARGS
+# ifdef METH_NOARGS
     PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next);
-#else
+# else
     PyObject *nrep = SwigPyObject_repr((SwigPyObject *)v->next, args);
-#endif
-#if PY_VERSION_HEX >= 0x03000000
+# endif
+# if PY_VERSION_HEX >= 0x03000000
     PyObject *joined = PyUnicode_Concat(repr, nrep);
     Py_DecRef(repr);
     Py_DecRef(nrep);
     repr = joined;
-#else
+# else
     PyString_ConcatAndDel(&repr,nrep);
-#endif
+# endif
   }
   return repr;  
 }
@@ -1512,27 +1621,43 @@ SwigPyObject_richcompare(SwigPyObject *v, SwigPyObject *w, int op)
     Py_INCREF(Py_NotImplemented);
     return Py_NotImplemented;
   }
-  if( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) )
-    res = Py_True;
-  else
-    res = Py_False;
-  Py_INCREF(res);
+  res = PyBool_FromLong( (SwigPyObject_compare(v, w)==0) == (op == Py_EQ) ? 1 : 0);
   return res;  
 }
 
 
-SWIGRUNTIME PyTypeObject* _PySwigObject_type(void);
+SWIGRUNTIME PyTypeObject* SwigPyObject_TypeOnce(void);
 
+#ifdef SWIGPYTHON_BUILTIN
+static swig_type_info *SwigPyObject_stype = 0;
 SWIGRUNTIME PyTypeObject*
 SwigPyObject_type(void) {
-  static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigObject_type();
+    SwigPyClientData *cd;
+    assert(SwigPyObject_stype);
+    cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
+    assert(cd);
+    assert(cd->pytype);
+    return cd->pytype;
+}
+#else
+SWIGRUNTIME PyTypeObject*
+SwigPyObject_type(void) {
+  static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyObject_TypeOnce();
   return type;
 }
+#endif
 
 SWIGRUNTIMEINLINE int
 SwigPyObject_Check(PyObject *op) {
+#ifdef SWIGPYTHON_BUILTIN
+  PyTypeObject *target_tp = SwigPyObject_type();
+  if (PyType_IsSubtype(op->ob_type, target_tp))
+    return 1;
+  return (strcmp(op->ob_type->tp_name, "SwigPyObject") == 0);
+#else
   return (Py_TYPE(op) == SwigPyObject_type())
     || (strcmp(Py_TYPE(op)->tp_name,"SwigPyObject") == 0);
+#endif
 }
 
 SWIGRUNTIME PyObject *
@@ -1636,8 +1761,10 @@ SwigPyObject_own(PyObject *v, PyObject *args)
   PyObject *val = 0;
 #if (PY_VERSION_HEX < 0x02020000)
   if (!PyArg_ParseTuple(args,(char *)"|O:own",&val))
-#else
+#elif (PY_VERSION_HEX < 0x02050000)
   if (!PyArg_UnpackTuple(args, (char *)"own", 0, 1, &val)) 
+#else
+  if (!PyArg_UnpackTuple(args, "own", 0, 1, &val)) 
 #endif
     {
       return NULL;
@@ -1698,9 +1825,9 @@ SwigPyObject_getattr(SwigPyObject *sobj,char *name)
 #endif
 
 SWIGRUNTIME PyTypeObject*
-_PySwigObject_type(void) {
+SwigPyObject_TypeOnce(void) {
   static char swigobject_doc[] = "Swig object carries a C/C++ instance pointer";
-  
+
   static PyNumberMethods SwigPyObject_as_number = {
     (binaryfunc)0, /*nb_add*/
     (binaryfunc)0, /*nb_subtract*/
@@ -1747,85 +1874,89 @@ _PySwigObject_type(void) {
 #endif
   };
 
-  static PyTypeObject swigpyobject_type;  
+  static PyTypeObject swigpyobject_type;
   static int type_init = 0;
   if (!type_init) {
-    const PyTypeObject tmp
-      = {
-	/* PyObject header changed in Python 3 */
+    const PyTypeObject tmp = {
+      /* PyObject header changed in Python 3 */
 #if PY_VERSION_HEX >= 0x03000000
-	PyVarObject_HEAD_INIT(&PyType_Type, 0)
-#else    
-	PyObject_HEAD_INIT(NULL)
-	0,				    /* ob_size */
+      PyVarObject_HEAD_INIT(NULL, 0)
+#else
+      PyObject_HEAD_INIT(NULL)
+      0,                                    /* ob_size */
 #endif
-	(char *)"SwigPyObject",		    /* tp_name */
-	sizeof(SwigPyObject),		    /* tp_basicsize */
-	0,			            /* tp_itemsize */
-	(destructor)SwigPyObject_dealloc,   /* tp_dealloc */
-	(printfunc)SwigPyObject_print,	    /* tp_print */
+      (char *)"SwigPyObject",               /* tp_name */
+      sizeof(SwigPyObject),                 /* tp_basicsize */
+      0,                                    /* tp_itemsize */
+      (destructor)SwigPyObject_dealloc,     /* tp_dealloc */
+      (printfunc)SwigPyObject_print,        /* tp_print */
 #if PY_VERSION_HEX < 0x02020000
-	(getattrfunc)SwigPyObject_getattr,  /* tp_getattr */ 
+      (getattrfunc)SwigPyObject_getattr,    /* tp_getattr */
 #else
-	(getattrfunc)0,			    /* tp_getattr */ 
+      (getattrfunc)0,                       /* tp_getattr */
 #endif
-	(setattrfunc)0,			    /* tp_setattr */ 
+      (setattrfunc)0,                       /* tp_setattr */
 #if PY_VERSION_HEX >= 0x03000000
     0, /* tp_reserved in 3.0.1, tp_compare in 3.0.0 but not used */
 #else
-	(cmpfunc)SwigPyObject_compare,	    /* tp_compare */
+      (cmpfunc)SwigPyObject_compare,        /* tp_compare */
 #endif
-	(reprfunc)SwigPyObject_repr,	    /* tp_repr */    
-	&SwigPyObject_as_number,	    /* tp_as_number */
-	0,				    /* tp_as_sequence */
-	0,				    /* tp_as_mapping */
-	(hashfunc)0,			    /* tp_hash */
-	(ternaryfunc)0,			    /* tp_call */
-	(reprfunc)SwigPyObject_str,	    /* tp_str */
-	PyObject_GenericGetAttr,            /* tp_getattro */
-	0,				    /* tp_setattro */
-	0,		                    /* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT,	            /* tp_flags */
-	swigobject_doc, 	            /* tp_doc */        
-	0,                                  /* tp_traverse */
-	0,                                  /* tp_clear */
-	(richcmpfunc)SwigPyObject_richcompare,           /* tp_richcompare */
-	0,                                  /* tp_weaklistoffset */
+      (reprfunc)SwigPyObject_repr,          /* tp_repr */
+      &SwigPyObject_as_number,              /* tp_as_number */
+      0,                                    /* tp_as_sequence */
+      0,                                    /* tp_as_mapping */
+      (hashfunc)0,                          /* tp_hash */
+      (ternaryfunc)0,                       /* tp_call */
+      (reprfunc)SwigPyObject_str,           /* tp_str */
+      PyObject_GenericGetAttr,              /* tp_getattro */
+      0,                                    /* tp_setattro */
+      0,                                    /* tp_as_buffer */
+      Py_TPFLAGS_DEFAULT,                   /* tp_flags */
+      swigobject_doc,                       /* tp_doc */
+      0,                                    /* tp_traverse */
+      0,                                    /* tp_clear */
+      (richcmpfunc)SwigPyObject_richcompare,/* tp_richcompare */
+      0,                                    /* tp_weaklistoffset */
 #if PY_VERSION_HEX >= 0x02020000
-	0,                                  /* tp_iter */
-	0,                                  /* tp_iternext */
-	swigobject_methods,		    /* tp_methods */ 
-	0,			            /* tp_members */
-	0,				    /* tp_getset */	    	
-	0,			            /* tp_base */	        
-	0,				    /* tp_dict */	    	
-	0,				    /* tp_descr_get */  	
-	0,				    /* tp_descr_set */  	
-	0,				    /* tp_dictoffset */ 	
-	0,				    /* tp_init */	    	
-	0,				    /* tp_alloc */	    	
-	0,			            /* tp_new */	    	
-	0,	                            /* tp_free */	   
-	0,                                  /* tp_is_gc */  
-	0,				    /* tp_bases */   
-	0,				    /* tp_mro */
-	0,				    /* tp_cache */   
-	0,				    /* tp_subclasses */
-	0,				    /* tp_weaklist */
+      0,                                    /* tp_iter */
+      0,                                    /* tp_iternext */
+      swigobject_methods,                   /* tp_methods */
+      0,                                    /* tp_members */
+      0,                                    /* tp_getset */
+      0,                                    /* tp_base */
+      0,                                    /* tp_dict */
+      0,                                    /* tp_descr_get */
+      0,                                    /* tp_descr_set */
+      0,                                    /* tp_dictoffset */
+      0,                                    /* tp_init */
+      0,                                    /* tp_alloc */
+      0,                                    /* tp_new */
+      0,                                    /* tp_free */
+      0,                                    /* tp_is_gc */
+      0,                                    /* tp_bases */
+      0,                                    /* tp_mro */
+      0,                                    /* tp_cache */
+      0,                                    /* tp_subclasses */
+      0,                                    /* tp_weaklist */
 #endif
 #if PY_VERSION_HEX >= 0x02030000
-	0,                                  /* tp_del */
+      0,                                    /* tp_del */
+#endif
+#if PY_VERSION_HEX >= 0x02060000
+      0,                                    /* tp_version */
 #endif
 #ifdef COUNT_ALLOCS
-	0,0,0,0                             /* tp_alloc -> tp_next */
+      0,0,0,0                               /* tp_alloc -> tp_next */
 #endif
-      };
+    };
     swigpyobject_type = tmp;
-    /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */
-#if PY_VERSION_HEX < 0x03000000
+    type_init = 1;
+#if PY_VERSION_HEX < 0x02020000
     swigpyobject_type.ob_type = &PyType_Type;
+#else
+    if (PyType_Ready(&swigpyobject_type) < 0)
+      return NULL;
 #endif
-    type_init = 1;
   }
   return &swigpyobject_type;
 }
@@ -1899,17 +2030,17 @@ SwigPyPacked_compare(SwigPyPacked *v, SwigPyPacked *w)
   return s ? s : strncmp((char *)v->pack, (char *)w->pack, 2*v->size);
 }
 
-SWIGRUNTIME PyTypeObject* _PySwigPacked_type(void);
+SWIGRUNTIME PyTypeObject* SwigPyPacked_TypeOnce(void);
 
 SWIGRUNTIME PyTypeObject*
 SwigPyPacked_type(void) {
-  static PyTypeObject *SWIG_STATIC_POINTER(type) = _PySwigPacked_type();
+  static PyTypeObject *SWIG_STATIC_POINTER(type) = SwigPyPacked_TypeOnce();
   return type;
 }
 
 SWIGRUNTIMEINLINE int
 SwigPyPacked_Check(PyObject *op) {
-  return ((op)->ob_type == _PySwigPacked_type()) 
+  return ((op)->ob_type == SwigPyPacked_TypeOnce()) 
     || (strcmp((op)->ob_type->tp_name,"SwigPyPacked") == 0);
 }
 
@@ -1924,83 +2055,87 @@ SwigPyPacked_dealloc(PyObject *v)
 }
 
 SWIGRUNTIME PyTypeObject*
-_PySwigPacked_type(void) {
+SwigPyPacked_TypeOnce(void) {
   static char swigpacked_doc[] = "Swig object carries a C/C++ instance pointer";
   static PyTypeObject swigpypacked_type;
-  static int type_init = 0;  
+  static int type_init = 0;
   if (!type_init) {
-    const PyTypeObject tmp
-      = {
-    /* PyObject header changed in Python 3 */
+    const PyTypeObject tmp = {
+      /* PyObject header changed in Python 3 */
 #if PY_VERSION_HEX>=0x03000000
-    PyVarObject_HEAD_INIT(&PyType_Type, 0)
+      PyVarObject_HEAD_INIT(NULL, 0)
 #else
-	PyObject_HEAD_INIT(NULL)
-    0,				    /* ob_size */	
+      PyObject_HEAD_INIT(NULL)
+      0,                                    /* ob_size */
 #endif
-	(char *)"SwigPyPacked",		    /* tp_name */	
-	sizeof(SwigPyPacked),		    /* tp_basicsize */	
-	0,				    /* tp_itemsize */	
-	(destructor)SwigPyPacked_dealloc,   /* tp_dealloc */	
-	(printfunc)SwigPyPacked_print,	    /* tp_print */   	
-	(getattrfunc)0,			    /* tp_getattr */ 	
-	(setattrfunc)0,			    /* tp_setattr */ 	
+      (char *)"SwigPyPacked",               /* tp_name */
+      sizeof(SwigPyPacked),                 /* tp_basicsize */
+      0,                                    /* tp_itemsize */
+      (destructor)SwigPyPacked_dealloc,     /* tp_dealloc */
+      (printfunc)SwigPyPacked_print,        /* tp_print */
+      (getattrfunc)0,                       /* tp_getattr */
+      (setattrfunc)0,                       /* tp_setattr */
 #if PY_VERSION_HEX>=0x03000000
-    0, /* tp_reserved in 3.0.1 */
+      0, /* tp_reserved in 3.0.1 */
 #else
-    (cmpfunc)SwigPyPacked_compare,	    /* tp_compare */
+      (cmpfunc)SwigPyPacked_compare,        /* tp_compare */
 #endif
-	(reprfunc)SwigPyPacked_repr,	    /* tp_repr */
-	0,	                            /* tp_as_number */
-	0,				    /* tp_as_sequence */
-	0,				    /* tp_as_mapping */
-	(hashfunc)0,			    /* tp_hash */
-	(ternaryfunc)0,			    /* tp_call */
-	(reprfunc)SwigPyPacked_str,	    /* tp_str */
-	PyObject_GenericGetAttr,            /* tp_getattro */
-	0,				    /* tp_setattro */
-	0,		                    /* tp_as_buffer */
-	Py_TPFLAGS_DEFAULT,	            /* tp_flags */
-	swigpacked_doc, 	            /* tp_doc */
-	0,                                  /* tp_traverse */
-	0,                                  /* tp_clear */
-	0,                                  /* tp_richcompare */
-	0,                                  /* tp_weaklistoffset */
+      (reprfunc)SwigPyPacked_repr,          /* tp_repr */
+      0,                                    /* tp_as_number */
+      0,                                    /* tp_as_sequence */
+      0,                                    /* tp_as_mapping */
+      (hashfunc)0,                          /* tp_hash */
+      (ternaryfunc)0,                       /* tp_call */
+      (reprfunc)SwigPyPacked_str,           /* tp_str */
+      PyObject_GenericGetAttr,              /* tp_getattro */
+      0,                                    /* tp_setattro */
+      0,                                    /* tp_as_buffer */
+      Py_TPFLAGS_DEFAULT,                   /* tp_flags */
+      swigpacked_doc,                       /* tp_doc */
+      0,                                    /* tp_traverse */
+      0,                                    /* tp_clear */
+      0,                                    /* tp_richcompare */
+      0,                                    /* tp_weaklistoffset */
 #if PY_VERSION_HEX >= 0x02020000
-	0,                                  /* tp_iter */
-	0,                                  /* tp_iternext */
-	0,		                    /* tp_methods */ 
-	0,			            /* tp_members */
-	0,				    /* tp_getset */	    	
-	0,			            /* tp_base */	        
-	0,				    /* tp_dict */	    	
-	0,				    /* tp_descr_get */  	
-	0,				    /* tp_descr_set */  	
-	0,				    /* tp_dictoffset */ 	
-	0,				    /* tp_init */	    	
-	0,				    /* tp_alloc */	    	
-	0,			            /* tp_new */	    	
-	0, 	                            /* tp_free */	   
-        0,                                  /* tp_is_gc */  
-	0,				    /* tp_bases */   
-	0,				    /* tp_mro */
-	0,				    /* tp_cache */   
- 	0,				    /* tp_subclasses */
-	0,				    /* tp_weaklist */
+      0,                                    /* tp_iter */
+      0,                                    /* tp_iternext */
+      0,                                    /* tp_methods */
+      0,                                    /* tp_members */
+      0,                                    /* tp_getset */
+      0,                                    /* tp_base */
+      0,                                    /* tp_dict */
+      0,                                    /* tp_descr_get */
+      0,                                    /* tp_descr_set */
+      0,                                    /* tp_dictoffset */
+      0,                                    /* tp_init */
+      0,                                    /* tp_alloc */
+      0,                                    /* tp_new */
+      0,                                    /* tp_free */
+      0,                                    /* tp_is_gc */
+      0,                                    /* tp_bases */
+      0,                                    /* tp_mro */
+      0,                                    /* tp_cache */
+      0,                                    /* tp_subclasses */
+      0,                                    /* tp_weaklist */
 #endif
 #if PY_VERSION_HEX >= 0x02030000
-	0,                                  /* tp_del */
+      0,                                    /* tp_del */
+#endif
+#if PY_VERSION_HEX >= 0x02060000
+      0,                                    /* tp_version */
 #endif
 #ifdef COUNT_ALLOCS
-	0,0,0,0                             /* tp_alloc -> tp_next */
+      0,0,0,0                               /* tp_alloc -> tp_next */
 #endif
-      };
+    };
     swigpypacked_type = tmp;
-    /* for Python 3 the ob_type already assigned in PyVarObject_HEAD_INIT() */
-#if PY_VERSION_HEX < 0x03000000
+    type_init = 1;
+#if PY_VERSION_HEX < 0x02020000
     swigpypacked_type.ob_type = &PyType_Type;
+#else
+    if (PyType_Ready(&swigpypacked_type) < 0)
+      return NULL;
 #endif
-    type_init = 1;
   }
   return &swigpypacked_type;
 }
@@ -2047,10 +2182,13 @@ _SWIG_This(void)
     return SWIG_Python_str_FromChar("this");
 }
 
+static PyObject *swig_this = NULL;
+
 SWIGRUNTIME PyObject *
 SWIG_This(void)
 {
-  static PyObject *SWIG_STATIC_POINTER(swig_this) = _SWIG_This();
+  if (swig_this == NULL)
+    swig_this = _SWIG_This();
   return swig_this;
 }
 
@@ -2064,50 +2202,65 @@ SWIG_This(void)
 SWIGRUNTIME SwigPyObject *
 SWIG_Python_GetSwigThis(PyObject *pyobj) 
 {
-  if (SwigPyObject_Check(pyobj)) {
+  PyObject *obj;
+
+  if (SwigPyObject_Check(pyobj))
     return (SwigPyObject *) pyobj;
-  } else {
-    PyObject *obj = 0;
+
+#ifdef SWIGPYTHON_BUILTIN
+  (void)obj;
+# ifdef PyWeakref_CheckProxy
+  if (PyWeakref_CheckProxy(pyobj)) {
+    pyobj = PyWeakref_GET_OBJECT(pyobj);
+    if (pyobj && SwigPyObject_Check(pyobj))
+      return (SwigPyObject*) pyobj;
+  }
+# endif
+  return NULL;
+#else
+
+  obj = 0;
+
 #if (!defined(SWIG_PYTHON_SLOW_GETSET_THIS) && (PY_VERSION_HEX >= 0x02030000))
-    if (PyInstance_Check(pyobj)) {
-      obj = _PyInstance_Lookup(pyobj, SWIG_This());      
+  if (PyInstance_Check(pyobj)) {
+    obj = _PyInstance_Lookup(pyobj, SWIG_This());      
+  } else {
+    PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
+    if (dictptr != NULL) {
+      PyObject *dict = *dictptr;
+      obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
     } else {
-      PyObject **dictptr = _PyObject_GetDictPtr(pyobj);
-      if (dictptr != NULL) {
-	PyObject *dict = *dictptr;
-	obj = dict ? PyDict_GetItem(dict, SWIG_This()) : 0;
-      } else {
 #ifdef PyWeakref_CheckProxy
-	if (PyWeakref_CheckProxy(pyobj)) {
-	  PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
-	  return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
-	}
+      if (PyWeakref_CheckProxy(pyobj)) {
+	PyObject *wobj = PyWeakref_GET_OBJECT(pyobj);
+	return wobj ? SWIG_Python_GetSwigThis(wobj) : 0;
+      }
 #endif
-	obj = PyObject_GetAttr(pyobj,SWIG_This());
-	if (obj) {
-	  Py_DECREF(obj);
-	} else {
-	  if (PyErr_Occurred()) PyErr_Clear();
-	  return 0;
-	}
+      obj = PyObject_GetAttr(pyobj,SWIG_This());
+      if (obj) {
+	Py_DECREF(obj);
+      } else {
+	if (PyErr_Occurred()) PyErr_Clear();
+	return 0;
       }
     }
+  }
 #else
-    obj = PyObject_GetAttr(pyobj,SWIG_This());
-    if (obj) {
-      Py_DECREF(obj);
-    } else {
-      if (PyErr_Occurred()) PyErr_Clear();
-      return 0;
-    }
+  obj = PyObject_GetAttr(pyobj,SWIG_This());
+  if (obj) {
+    Py_DECREF(obj);
+  } else {
+    if (PyErr_Occurred()) PyErr_Clear();
+    return 0;
+  }
 #endif
-    if (obj && !SwigPyObject_Check(obj)) {
-      /* a PyObject is called 'this', try to get the 'real this'
-	 SwigPyObject from it */ 
-      return SWIG_Python_GetSwigThis(obj);
-    }
-    return (SwigPyObject *)obj;
+  if (obj && !SwigPyObject_Check(obj)) {
+    /* a PyObject is called 'this', try to get the 'real this'
+       SwigPyObject from it */ 
+    return SWIG_Python_GetSwigThis(obj);
   }
+  return (SwigPyObject *)obj;
+#endif
 }
 
 /* Acquire a pointer value */
@@ -2129,91 +2282,97 @@ SWIG_Python_AcquirePtr(PyObject *obj, int own) {
 
 SWIGRUNTIME int
 SWIG_Python_ConvertPtrAndOwn(PyObject *obj, void **ptr, swig_type_info *ty, int flags, int *own) {
-  if (!obj) return SWIG_ERROR;
+  int res;
+  SwigPyObject *sobj;
+
+  if (!obj)
+    return SWIG_ERROR;
   if (obj == Py_None) {
-    if (ptr) *ptr = 0;
+    if (ptr)
+      *ptr = 0;
     return SWIG_OK;
-  } else {
-    SwigPyObject *sobj = SWIG_Python_GetSwigThis(obj);
-    if (own)
-      *own = 0;
-    while (sobj) {
-      void *vptr = sobj->ptr;
-      if (ty) {
-	swig_type_info *to = sobj->ty;
-	if (to == ty) {
-	  /* no type cast needed */
-	  if (ptr) *ptr = vptr;
-	  break;
-	} else {
-	  swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
-	  if (!tc) {
-	    sobj = (SwigPyObject *)sobj->next;
-	  } else {
-	    if (ptr) {
-              int newmemory = 0;
-              *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
-              if (newmemory == SWIG_CAST_NEW_MEMORY) {
-                assert(own);
-                if (own)
-                  *own = *own | SWIG_CAST_NEW_MEMORY;
-              }
-            }
-	    break;
-	  }
-	}
+  }
+
+  res = SWIG_ERROR;
+
+  sobj = SWIG_Python_GetSwigThis(obj);
+  if (own)
+    *own = 0;
+  while (sobj) {
+    void *vptr = sobj->ptr;
+    if (ty) {
+      swig_type_info *to = sobj->ty;
+      if (to == ty) {
+        /* no type cast needed */
+        if (ptr) *ptr = vptr;
+        break;
       } else {
-	if (ptr) *ptr = vptr;
-	break;
-      }
-    }
-    if (sobj) {
-      if (own)
-        *own = *own | sobj->own;
-      if (flags & SWIG_POINTER_DISOWN) {
-	sobj->own = 0;
+        swig_cast_info *tc = SWIG_TypeCheck(to->name,ty);
+        if (!tc) {
+          sobj = (SwigPyObject *)sobj->next;
+        } else {
+          if (ptr) {
+            int newmemory = 0;
+            *ptr = SWIG_TypeCast(tc,vptr,&newmemory);
+            if (newmemory == SWIG_CAST_NEW_MEMORY) {
+              assert(own); /* badly formed typemap which will lead to a memory leak - it must set and use own to delete *ptr */
+              if (own)
+                *own = *own | SWIG_CAST_NEW_MEMORY;
+            }
+          }
+          break;
+        }
       }
-      return SWIG_OK;
     } else {
-      int res = SWIG_ERROR;
-      if (flags & SWIG_POINTER_IMPLICIT_CONV) {
-	SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
-	if (data && !data->implicitconv) {
-	  PyObject *klass = data->klass;
-	  if (klass) {
-	    PyObject *impconv;
-	    data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
-	    impconv = SWIG_Python_CallFunctor(klass, obj);
-	    data->implicitconv = 0;
-	    if (PyErr_Occurred()) {
-	      PyErr_Clear();
-	      impconv = 0;
-	    }
-	    if (impconv) {
-	      SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv);
-	      if (iobj) {
-		void *vptr;
-		res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
-		if (SWIG_IsOK(res)) {
-		  if (ptr) {
-		    *ptr = vptr;
-		    /* transfer the ownership to 'ptr' */
-		    iobj->own = 0;
-		    res = SWIG_AddCast(res);
-		    res = SWIG_AddNewMask(res);
-		  } else {
-		    res = SWIG_AddCast(res);		    
-		  }
-		}
-	      }
-	      Py_DECREF(impconv);
-	    }
-	  }
-	}
+      if (ptr) *ptr = vptr;
+      break;
+    }
+  }
+  if (sobj) {
+    if (own)
+      *own = *own | sobj->own;
+    if (flags & SWIG_POINTER_DISOWN) {
+      sobj->own = 0;
+    }
+    res = SWIG_OK;
+  } else {
+    if (flags & SWIG_POINTER_IMPLICIT_CONV) {
+      SwigPyClientData *data = ty ? (SwigPyClientData *) ty->clientdata : 0;
+      if (data && !data->implicitconv) {
+        PyObject *klass = data->klass;
+        if (klass) {
+          PyObject *impconv;
+          data->implicitconv = 1; /* avoid recursion and call 'explicit' constructors*/
+          impconv = SWIG_Python_CallFunctor(klass, obj);
+          data->implicitconv = 0;
+          if (PyErr_Occurred()) {
+            PyErr_Clear();
+            impconv = 0;
+          }
+          if (impconv) {
+            SwigPyObject *iobj = SWIG_Python_GetSwigThis(impconv);
+            if (iobj) {
+              void *vptr;
+              res = SWIG_Python_ConvertPtrAndOwn((PyObject*)iobj, &vptr, ty, 0, 0);
+              if (SWIG_IsOK(res)) {
+                if (ptr) {
+                  *ptr = vptr;
+                  /* transfer the ownership to 'ptr' */
+                  iobj->own = 0;
+                  res = SWIG_AddCast(res);
+                  res = SWIG_AddNewMask(res);
+                } else {
+                  res = SWIG_AddCast(res);		    
+                }
+              }
+            }
+            Py_DECREF(impconv);
+          }
+        }
       }
-      return res;
     }
   }
+  return res;
 }
 
 /* Convert a function ptr value */
@@ -2367,7 +2526,7 @@ SWIG_Python_SetSwigThis(PyObject *inst, PyObject *swig_this)
 SWIGINTERN PyObject *
 SWIG_Python_InitShadowInstance(PyObject *args) {
   PyObject *obj[2];
-  if (!SWIG_Python_UnpackTuple(args,(char*)"swiginit", 2, 2, obj)) {
+  if (!SWIG_Python_UnpackTuple(args, "swiginit", 2, 2, obj)) {
     return NULL;
   } else {
     SwigPyObject *sthis = SWIG_Python_GetSwigThis(obj[0]);
@@ -2383,22 +2542,54 @@ SWIG_Python_InitShadowInstance(PyObject *args) {
 /* Create a new pointer object */
 
 SWIGRUNTIME PyObject *
-SWIG_Python_NewPointerObj(void *ptr, swig_type_info *type, int flags) {
-  if (!ptr) {
+SWIG_Python_NewPointerObj(PyObject *self, void *ptr, swig_type_info *type, int flags) {
+  SwigPyClientData *clientdata;
+  PyObject * robj;
+  int own;
+
+  if (!ptr)
     return SWIG_Py_Void();
-  } else {
-    int own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
-    PyObject *robj = SwigPyObject_New(ptr, type, own);
-    SwigPyClientData *clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0;
-    if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
-      PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
-      if (inst) {
-	Py_DECREF(robj);
-	robj = inst;
+
+  clientdata = type ? (SwigPyClientData *)(type->clientdata) : 0;
+  own = (flags & SWIG_POINTER_OWN) ? SWIG_POINTER_OWN : 0;
+  if (clientdata && clientdata->pytype) {
+    SwigPyObject *newobj;
+    if (flags & SWIG_BUILTIN_TP_INIT) {
+      newobj = (SwigPyObject*) self;
+      if (newobj->ptr) {
+        PyObject *next_self = clientdata->pytype->tp_alloc(clientdata->pytype, 0);
+        while (newobj->next)
+	  newobj = (SwigPyObject *) newobj->next;
+        newobj->next = next_self;
+        newobj = (SwigPyObject *)next_self;
       }
+    } else {
+      newobj = PyObject_New(SwigPyObject, clientdata->pytype);
+    }
+    if (newobj) {
+      newobj->ptr = ptr;
+      newobj->ty = type;
+      newobj->own = own;
+      newobj->next = 0;
+#ifdef SWIGPYTHON_BUILTIN
+      newobj->dict = 0;
+#endif
+      return (PyObject*) newobj;
+    }
+    return SWIG_Py_Void();
+  }
+
+  assert(!(flags & SWIG_BUILTIN_TP_INIT));
+
+  robj = SwigPyObject_New(ptr, type, own);
+  if (clientdata && !(flags & SWIG_POINTER_NOSHADOW)) {
+    PyObject *inst = SWIG_Python_NewShadowInstance(clientdata, robj);
+    if (inst) {
+      Py_DECREF(robj);
+      robj = inst;
     }
-    return robj;
   }
+  return robj;
 }
 
 /* Create a new packed object */
@@ -2424,8 +2615,12 @@ SWIG_Python_GetModule(void) {
 #ifdef SWIG_LINK_RUNTIME
     type_pointer = SWIG_ReturnGlobalTypeList((void *)0);
 #else
+# ifdef SWIGPY_USE_CAPSULE
+    type_pointer = PyCapsule_Import(SWIGPY_CAPSULE_NAME, 0);
+# else
     type_pointer = PyCObject_Import((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
 				    (char*)"type_pointer" SWIG_TYPE_TABLE_NAME);
+# endif
     if (PyErr_Occurred()) {
       PyErr_Clear();
       type_pointer = (void *)0;
@@ -2468,9 +2663,17 @@ PyModule_AddObject(PyObject *m, char *name, PyObject *o)
 #endif
 
 SWIGRUNTIME void
+#ifdef SWIGPY_USE_CAPSULE
+SWIG_Python_DestroyModule(PyObject *obj)
+#else
 SWIG_Python_DestroyModule(void *vptr)
+#endif
 {
+#ifdef SWIGPY_USE_CAPSULE
+  swig_module_info *swig_module = (swig_module_info *) PyCapsule_GetPointer(obj, SWIGPY_CAPSULE_NAME);
+#else
   swig_module_info *swig_module = (swig_module_info *) vptr;
+#endif
   swig_type_info **types = swig_module->types;
   size_t i;
   for (i =0; i < swig_module->size; ++i) {
@@ -2481,25 +2684,33 @@ SWIG_Python_DestroyModule(void *vptr)
     }
   }
   Py_DECREF(SWIG_This());
+  swig_this = NULL;
 }
 
 SWIGRUNTIME void
 SWIG_Python_SetModule(swig_module_info *swig_module) {
-  static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} };/* Sentinel */
-
 #if PY_VERSION_HEX >= 0x03000000
  /* Add a dummy module object into sys.modules */
   PyObject *module = PyImport_AddModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION);
 #else
-  PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION,
-				   swig_empty_runtime_method_table);
+  static PyMethodDef swig_empty_runtime_method_table[] = { {NULL, NULL, 0, NULL} }; /* Sentinel */
+  PyObject *module = Py_InitModule((char*)"swig_runtime_data" SWIG_RUNTIME_VERSION, swig_empty_runtime_method_table);
 #endif
+#ifdef SWIGPY_USE_CAPSULE
+  PyObject *pointer = PyCapsule_New((void *) swig_module, SWIGPY_CAPSULE_NAME, SWIG_Python_DestroyModule);
+  if (pointer && module) {
+    PyModule_AddObject(module, (char*)"type_pointer_capsule" SWIG_TYPE_TABLE_NAME, pointer);
+  } else {
+    Py_XDECREF(pointer);
+  }
+#else
   PyObject *pointer = PyCObject_FromVoidPtr((void *) swig_module, SWIG_Python_DestroyModule);
   if (pointer && module) {
     PyModule_AddObject(module, (char*)"type_pointer" SWIG_TYPE_TABLE_NAME, pointer);
   } else {
     Py_XDECREF(pointer);
   }
+#endif
 }
 
 /* The python cached type query */
@@ -2517,12 +2728,20 @@ SWIG_Python_TypeQuery(const char *type)
   PyObject *obj = PyDict_GetItem(cache, key);
   swig_type_info *descriptor;
   if (obj) {
+#ifdef SWIGPY_USE_CAPSULE
+    descriptor = (swig_type_info *) PyCapsule_GetPointer(obj, NULL);
+#else
     descriptor = (swig_type_info *) PyCObject_AsVoidPtr(obj);
+#endif
   } else {
     swig_module_info *swig_module = SWIG_Python_GetModule();
     descriptor = SWIG_TypeQueryModule(swig_module, swig_module, type);
     if (descriptor) {
+#ifdef SWIGPY_USE_CAPSULE
+      obj = PyCapsule_New((void*) descriptor, NULL, NULL);
+#else
       obj = PyCObject_FromVoidPtr(descriptor, NULL);
+#endif
       PyDict_SetItem(cache, key, obj);
       Py_DECREF(obj);
     }
@@ -2583,7 +2802,7 @@ SwigPyObject_GetDesc(PyObject *self)
 {
   SwigPyObject *v = (SwigPyObject *)self;
   swig_type_info *ty = v ? v->ty : 0;
-  return ty ? ty->str : (char*)"";
+  return ty ? ty->str : "";
 }
 
 SWIGRUNTIME void
@@ -2626,7 +2845,7 @@ SWIG_Python_TypeError(const char *type, PyObject *obj)
 
 /* Convert a pointer value, signal an exception on a type mismatch */
 SWIGRUNTIME void *
-SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags) {
+SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int SWIGUNUSEDPARM(argnum), int flags) {
   void *result;
   if (SWIG_Python_ConvertPtr(obj, &result, ty, flags) == -1) {
     PyErr_Clear();
@@ -2640,11 +2859,62 @@ SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags)
   return result;
 }
 
+#ifdef SWIGPYTHON_BUILTIN
+SWIGRUNTIME int
+SWIG_Python_NonDynamicSetAttr(PyObject *obj, PyObject *name, PyObject *value) {
+  PyTypeObject *tp = obj->ob_type;
+  PyObject *descr;
+  PyObject *encoded_name;
+  descrsetfunc f;
+  int res;
 
-#ifdef __cplusplus
-#if 0
-{ /* cc-mode */
+# ifdef Py_USING_UNICODE
+  if (PyString_Check(name)) {
+    name = PyUnicode_Decode(PyString_AsString(name), PyString_Size(name), NULL, NULL);
+    if (!name)
+      return -1;
+  } else if (!PyUnicode_Check(name))
+# else
+  if (!PyString_Check(name))
+# endif
+  {
+    PyErr_Format(PyExc_TypeError, "attribute name must be string, not '%.200s'", name->ob_type->tp_name);
+    return -1;
+  } else {
+    Py_INCREF(name);
+  }
+
+  if (!tp->tp_dict) {
+    if (PyType_Ready(tp) < 0)
+      goto done;
+  }
+
+  res = -1;
+  descr = _PyType_Lookup(tp, name);
+  f = NULL;
+  if (descr != NULL)
+    f = descr->ob_type->tp_descr_set;
+  if (!f) {
+    if (PyString_Check(name)) {
+      encoded_name = name;
+      Py_INCREF(name);
+    } else {
+      encoded_name = PyUnicode_AsUTF8String(name);
+    }
+    PyErr_Format(PyExc_AttributeError, "'%.100s' object has no attribute '%.200s'", tp->tp_name, PyString_AsString(encoded_name));
+    Py_DECREF(encoded_name);
+  } else {
+    res = f(descr, obj, value);
+  }
+  
+  done:
+  Py_DECREF(name);
+  return res;
+}
 #endif
+
+
+#ifdef __cplusplus
 }
 #endif
 
@@ -2691,29 +2961,30 @@ SWIG_Python_MustGetPtr(PyObject *obj, swig_type_info *ty, int argnum, int flags)
 #define SWIGTYPE_p_markerCacheMemberObj swig_types[27]
 #define SWIGTYPE_p_outputFormatObj swig_types[28]
 #define SWIGTYPE_p_p_char swig_types[29]
-#define SWIGTYPE_p_p_outputFormatObj swig_types[30]
-#define SWIGTYPE_p_pointObj swig_types[31]
-#define SWIGTYPE_p_projectionObj swig_types[32]
-#define SWIGTYPE_p_queryMapObj swig_types[33]
-#define SWIGTYPE_p_rectObj swig_types[34]
-#define SWIGTYPE_p_referenceMapObj swig_types[35]
-#define SWIGTYPE_p_rendererVTableObj swig_types[36]
-#define SWIGTYPE_p_resultCacheObj swig_types[37]
-#define SWIGTYPE_p_resultObj swig_types[38]
-#define SWIGTYPE_p_scalebarObj swig_types[39]
-#define SWIGTYPE_p_shapeObj swig_types[40]
-#define SWIGTYPE_p_shapefileObj swig_types[41]
-#define SWIGTYPE_p_strokeStyleObj swig_types[42]
-#define SWIGTYPE_p_styleObj swig_types[43]
-#define SWIGTYPE_p_symbolObj swig_types[44]
-#define SWIGTYPE_p_symbolSetObj swig_types[45]
-#define SWIGTYPE_p_symbolStyleObj swig_types[46]
-#define SWIGTYPE_p_tileCacheObj swig_types[47]
-#define SWIGTYPE_p_uint32_t swig_types[48]
-#define SWIGTYPE_p_void swig_types[49]
-#define SWIGTYPE_p_webObj swig_types[50]
-static swig_type_info *swig_types[52];
-static swig_module_info swig_module = {swig_types, 51, 0, 0, 0, 0};
+#define SWIGTYPE_p_pointObj swig_types[30]
+#define SWIGTYPE_p_projectionObj swig_types[31]
+#define SWIGTYPE_p_queryMapObj swig_types[32]
+#define SWIGTYPE_p_rectObj swig_types[33]
+#define SWIGTYPE_p_referenceMapObj swig_types[34]
+#define SWIGTYPE_p_rendererVTableObj swig_types[35]
+#define SWIGTYPE_p_resultCacheObj swig_types[36]
+#define SWIGTYPE_p_resultObj swig_types[37]
+#define SWIGTYPE_p_scaleTokenEntryObj swig_types[38]
+#define SWIGTYPE_p_scaleTokenObj swig_types[39]
+#define SWIGTYPE_p_scalebarObj swig_types[40]
+#define SWIGTYPE_p_shapeObj swig_types[41]
+#define SWIGTYPE_p_shapefileObj swig_types[42]
+#define SWIGTYPE_p_strokeStyleObj swig_types[43]
+#define SWIGTYPE_p_styleObj swig_types[44]
+#define SWIGTYPE_p_symbolObj swig_types[45]
+#define SWIGTYPE_p_symbolSetObj swig_types[46]
+#define SWIGTYPE_p_symbolStyleObj swig_types[47]
+#define SWIGTYPE_p_tileCacheObj swig_types[48]
+#define SWIGTYPE_p_uint32_t swig_types[49]
+#define SWIGTYPE_p_void swig_types[50]
+#define SWIGTYPE_p_webObj swig_types[51]
+static swig_type_info *swig_types[53];
+static swig_module_info swig_module = {swig_types, 52, 0, 0, 0, 0};
 #define SWIG_TypeQuery(name) SWIG_TypeQueryModule(&swig_module, &swig_module, name)
 #define SWIG_MangledTypeQuery(name) SWIG_MangledTypeQueryModule(&swig_module, &swig_module, name)
 
@@ -2737,7 +3008,7 @@ static swig_module_info swig_module = {swig_types, 51, 0, 0, 0, 0};
 #endif
 #define SWIG_name    "_mapscript"
 
-#define SWIGVERSION 0x010340 
+#define SWIGVERSION 0x020007 
 #define SWIG_VERSION SWIGVERSION
 
 
@@ -2907,13 +3178,10 @@ SWIGINTERN int intarray___getitem__(intarray *self,size_t index){
     return self[index];
   }
 
-  #define SWIG_From_long   PyInt_FromLong 
-
-
-SWIGINTERNINLINE PyObject *
-SWIG_From_int  (int value)
-{    
-  return SWIG_From_long  (value);
+SWIGINTERNINLINE PyObject*
+  SWIG_From_int  (int value)
+{
+  return PyInt_FromLong((long) value);
 }
 
 
@@ -3067,7 +3335,7 @@ SWIG_FromCharPtrAndSize(const char* carray, size_t size)
     if (size > INT_MAX) {
       swig_type_info* pchar_descriptor = SWIG_pchar_descriptor();
       return pchar_descriptor ? 
-	SWIG_NewPointerObj((char *)(carray), pchar_descriptor, 0) : SWIG_Py_Void();
+	SWIG_InternalNewPointerObj((char *)(carray), pchar_descriptor, 0) : SWIG_Py_Void();
     } else {
 #if PY_VERSION_HEX >= 0x03000000
       return PyUnicode_FromStringAndSize(carray, (int)(size));
@@ -3172,6 +3440,9 @@ SWIG_AsCharPtrAndSize(PyObject *obj, char** cptr, size_t* psize, int *alloc)
 SWIGINTERN int clusterObj_updateFromString(clusterObj *self,char *snippet){
     return msUpdateClusterFromString(self, snippet);
   }
+SWIGINTERN char *clusterObj_convertToString(clusterObj *self){
+    return msWriteClusterToString(self);
+  }
 SWIGINTERN int clusterObj_setGroup(clusterObj *self,char *group){
     if (!group || strlen(group) == 0) {
        freeExpression(&self->group);
@@ -3208,15 +3479,13 @@ SWIGINTERN outputFormatObj *new_outputFormatObj(char const *driver,char *name){
         
         msInitializeRendererVTable(format);
 
-        /* Else, continue */
-        format->refcount++;
+        MS_REFCNT_INIT(format);
 	format->inmapfile = 1;
 
         return format;
     }
 SWIGINTERN void delete_outputFormatObj(outputFormatObj *self){
-        if ( --self->refcount < 1 )
-            msFreeOutputFormat( self );
+        msFreeOutputFormat( self );
     }
 SWIGINTERN void outputFormatObj_setExtension(outputFormatObj *self,char const *extension){
         msFree( self->extension );
@@ -3233,9 +3502,13 @@ SWIGINTERN int outputFormatObj_validate(outputFormatObj *self){
        	return msOutputFormatValidate( self, 0 );
     }
 SWIGINTERN char *outputFormatObj_getOption(outputFormatObj *self,char const *key,char const *value){
-        const char *retval;
-        retval = msGetOutputFormatOption(self, key, value);
-        return strdup(retval);
+        return strdup(msGetOutputFormatOption(self, key, value));
+    }
+SWIGINTERN char *outputFormatObj_getOptionAt(outputFormatObj *self,int i){
+       if( i >= 0 && i < self->numformatoptions ) {
+          return strdup(self->formatoptions[i]);
+       }
+       return NULL;
     }
 SWIGINTERN void outputFormatObj_attachDevice(outputFormatObj *self,void *device){
         self->device = device;
@@ -3243,6 +3516,9 @@ SWIGINTERN void outputFormatObj_attachDevice(outputFormatObj *self,void *device)
 SWIGINTERN int queryMapObj_updateFromString(queryMapObj *self,char *snippet){
     return msUpdateQueryMapFromString(self, snippet, 0);
   }
+SWIGINTERN char *queryMapObj_convertToString(queryMapObj *self){
+    return msWriteQueryMapToString(self);
+  }
 SWIGINTERN webObj *new_webObj(){
         webObj *web;
         web = (webObj *) malloc(sizeof(webObj));
@@ -3257,7 +3533,10 @@ SWIGINTERN void delete_webObj(webObj *self){
 SWIGINTERN int webObj_updateFromString(webObj *self,char *snippet){
         return msUpdateWebFromString(self, snippet, 0);
     }
-SWIGINTERN styleObj *new_styleObj(classObj *parent_class){
+SWIGINTERN char *webObj_convertToString(webObj *self){
+        return msWriteWebToString(self);
+    }
+SWIGINTERN struct styleObj *new_styleObj(classObj *parent_class){
     
         styleObj *style = NULL;
         
@@ -3288,7 +3567,7 @@ SWIGINTERN styleObj *new_styleObj(classObj *parent_class){
         }
         return style;
     }
-SWIGINTERN void delete_styleObj(styleObj *self){
+SWIGINTERN void delete_styleObj(struct styleObj *self){
         if (self) { 
 		if ( freeStyle(self) == MS_SUCCESS ) {
             		free(self);
@@ -3296,10 +3575,13 @@ SWIGINTERN void delete_styleObj(styleObj *self){
 		}
 	}
     }
-SWIGINTERN int styleObj_updateFromString(styleObj *self,char *snippet){
+SWIGINTERN int styleObj_updateFromString(struct styleObj *self,char *snippet){
         return msUpdateStyleFromString(self, snippet, 0);
     }
-SWIGINTERN styleObj *styleObj_clone(styleObj *self){
+SWIGINTERN char *styleObj_convertToString(struct styleObj *self){
+        return msWriteStyleToString(self);
+    }
+SWIGINTERN styleObj *styleObj_clone(struct styleObj *self){
         styleObj *style;
 
         style = (styleObj *) malloc(sizeof(styleObj));
@@ -3325,14 +3607,14 @@ SWIGINTERN styleObj *styleObj_clone(styleObj *self){
         
         return style;
     }
-SWIGINTERN int styleObj_setSymbolByName(styleObj *self,mapObj *map,char *symbolname){
+SWIGINTERN int styleObj_setSymbolByName(struct styleObj *self,mapObj *map,char *symbolname){
         self->symbol = msGetSymbolIndex(&map->symbolset, symbolname, 1);
         if (self->symbolname) free((char*)self->symbolname);
         if (symbolname) self->symbolname = strdup(symbolname);
         else self->symbolname = 0;
         return self->symbol;
     }
-SWIGINTERN int styleObj_removeBinding(styleObj *self,int binding){
+SWIGINTERN int styleObj_removeBinding(struct styleObj *self,int binding){
     if(binding < 0 || binding >= 12) return MS_FAILURE;
 
     if(self->bindings[binding].item) {
@@ -3344,7 +3626,7 @@ SWIGINTERN int styleObj_removeBinding(styleObj *self,int binding){
 
     return MS_SUCCESS;
   }
-SWIGINTERN int styleObj_setBinding(styleObj *self,int binding,char *item){
+SWIGINTERN int styleObj_setBinding(struct styleObj *self,int binding,char *item){
     if(!item) return MS_FAILURE;
     if(binding < 0 || binding >= 12) return MS_FAILURE;
 
@@ -3360,15 +3642,15 @@ SWIGINTERN int styleObj_setBinding(styleObj *self,int binding,char *item){
 
     return MS_SUCCESS;
   }
-SWIGINTERN char *styleObj_getBinding(styleObj *self,int binding){
+SWIGINTERN char *styleObj_getBinding(struct styleObj *self,int binding){
     if(binding < 0 || binding >= 12) return NULL;
 
     return self->bindings[binding].item;
   }
-SWIGINTERN char *styleObj_getGeomTransform(styleObj *self){
+SWIGINTERN char *styleObj_getGeomTransform(struct styleObj *self){
     return self->_geomtransform.string;
   }
-SWIGINTERN void styleObj_setGeomTransform(styleObj *self,char *transform){
+SWIGINTERN void styleObj_setGeomTransform(struct styleObj *self,char *transform){
     msStyleSetGeomTransform(self, transform);
   }
 
@@ -3421,7 +3703,7 @@ SWIG_From_char  (char c)
   return SWIG_FromCharPtrAndSize(&c,1);
 }
 
-SWIGINTERN labelObj *new_labelObj(){
+SWIGINTERN struct labelObj *new_labelObj(){
       labelObj *label;
         
       label = (labelObj *)calloc(1, sizeof(labelObj));
@@ -3432,13 +3714,16 @@ SWIGINTERN labelObj *new_labelObj(){
       
       return(label);    	
     }
-SWIGINTERN void delete_labelObj(labelObj *self){
+SWIGINTERN void delete_labelObj(struct labelObj *self){
       freeLabel(self);
     }
-SWIGINTERN int labelObj_updateFromString(labelObj *self,char *snippet){
+SWIGINTERN int labelObj_updateFromString(struct labelObj *self,char *snippet){
     return msUpdateLabelFromString(self, snippet,0);
   }
-SWIGINTERN int labelObj_removeBinding(labelObj *self,int binding){
+SWIGINTERN char *labelObj_convertToString(struct labelObj *self){
+    return msWriteLabelToString(self);
+  }
+SWIGINTERN int labelObj_removeBinding(struct labelObj *self,int binding){
     if(binding < 0 || binding >= 9) return MS_FAILURE;
 
     if(self->bindings[binding].item) {
@@ -3450,12 +3735,12 @@ SWIGINTERN int labelObj_removeBinding(labelObj *self,int binding){
 
     return MS_SUCCESS;
   }
-SWIGINTERN char *labelObj_getBinding(labelObj *self,int binding){
+SWIGINTERN char *labelObj_getBinding(struct labelObj *self,int binding){
     if(binding < 0 || binding >= 9) return NULL;
 
     return self->bindings[binding].item;
   }
-SWIGINTERN int labelObj_setBinding(labelObj *self,int binding,char *item){
+SWIGINTERN int labelObj_setBinding(struct labelObj *self,int binding,char *item){
     if(!item) return MS_FAILURE;
     if(binding < 0 || binding >= 9) return MS_FAILURE;
 
@@ -3471,27 +3756,27 @@ SWIGINTERN int labelObj_setBinding(labelObj *self,int binding,char *item){
 
     return MS_SUCCESS;
   }
-SWIGINTERN int labelObj_setExpression(labelObj *self,char *expression){
+SWIGINTERN int labelObj_setExpression(struct labelObj *self,char *expression){
     if (!expression || strlen(expression) == 0) {
        freeExpression(&self->expression);
        return MS_SUCCESS;
     }
     else return msLoadExpressionString(&self->expression, expression);
   }
-SWIGINTERN char *labelObj_getExpressionString(labelObj *self){
+SWIGINTERN char *labelObj_getExpressionString(struct labelObj *self){
     return msGetExpressionString(&(self->expression));
   }
-SWIGINTERN int labelObj_setText(labelObj *self,char *text){
+SWIGINTERN int labelObj_setText(struct labelObj *self,char *text){
     if (!text || strlen(text) == 0) {
       freeExpression(&self->text);
       return MS_SUCCESS;
     }	
     else return msLoadExpressionString(&self->text, text);
   }
-SWIGINTERN char *labelObj_getTextString(labelObj *self){
+SWIGINTERN char *labelObj_getTextString(struct labelObj *self){
     return msGetExpressionString(&(self->text));
   }
-SWIGINTERN styleObj *labelObj_getStyle(labelObj *self,int i){
+SWIGINTERN styleObj *labelObj_getStyle(struct labelObj *self,int i){
       if (i >= 0 && i < self->numstyles) {
           MS_REFCNT_INCR(self->styles[i]);
           return self->styles[i];
@@ -3500,22 +3785,22 @@ SWIGINTERN styleObj *labelObj_getStyle(labelObj *self,int i){
           return NULL;
       }
   }
-SWIGINTERN int labelObj_insertStyle(labelObj *self,styleObj *style,int index){
+SWIGINTERN int labelObj_insertStyle(struct labelObj *self,styleObj *style,int index){
         return msInsertLabelStyle(self, style, index);
     }
-SWIGINTERN styleObj *labelObj_removeStyle(labelObj *self,int index){
+SWIGINTERN styleObj *labelObj_removeStyle(struct labelObj *self,int index){
 	styleObj* style = (styleObj *) msRemoveLabelStyle(self, index);
 	if (style)
 		MS_REFCNT_INCR(style);
         return style;
     }
-SWIGINTERN int labelObj_moveStyleUp(labelObj *self,int index){
+SWIGINTERN int labelObj_moveStyleUp(struct labelObj *self,int index){
         return msMoveLabelStyleUp(self, index);
     }
-SWIGINTERN int labelObj_moveStyleDown(labelObj *self,int index){
+SWIGINTERN int labelObj_moveStyleDown(struct labelObj *self,int index){
        return msMoveLabelStyleDown(self, index);
     }
-SWIGINTERN classObj *new_classObj(layerObj *layer){
+SWIGINTERN struct classObj *new_classObj(layerObj *layer){
         classObj *new_class=NULL;
         
         if (!layer)
@@ -3547,7 +3832,7 @@ SWIGINTERN classObj *new_classObj(layerObj *layer){
 
         return NULL;
     }
-SWIGINTERN void delete_classObj(classObj *self){
+SWIGINTERN void delete_classObj(struct classObj *self){
         if (self)
         {
             if (freeClass(self)==MS_SUCCESS) {
@@ -3556,10 +3841,13 @@ SWIGINTERN void delete_classObj(classObj *self){
 	    }
         }
     }
-SWIGINTERN int classObj_updateFromString(classObj *self,char *snippet){
+SWIGINTERN int classObj_updateFromString(struct classObj *self,char *snippet){
         return msUpdateClassFromString(self, snippet, 0);
     }
-SWIGINTERN classObj *classObj_clone(classObj *self){
+SWIGINTERN char *classObj_convertToString(struct classObj *self){
+        return msWriteClassToString(self);
+    }
+SWIGINTERN classObj *classObj_clone(struct classObj *self){
         classObj *new_class;
 
         new_class = (classObj *) malloc(sizeof(classObj));
@@ -3586,27 +3874,27 @@ SWIGINTERN classObj *classObj_clone(classObj *self){
         
         return new_class;
     }
-SWIGINTERN int classObj_setExpression(classObj *self,char *expression){
+SWIGINTERN int classObj_setExpression(struct classObj *self,char *expression){
     if (!expression || strlen(expression) == 0) {
        freeExpression(&self->expression);
        return MS_SUCCESS;
     }
     else return msLoadExpressionString(&self->expression, expression);
   }
-SWIGINTERN char *classObj_getExpressionString(classObj *self){
+SWIGINTERN char *classObj_getExpressionString(struct classObj *self){
     return msGetExpressionString(&(self->expression));
   }
-SWIGINTERN int classObj_setText(classObj *self,char *text){
+SWIGINTERN int classObj_setText(struct classObj *self,char *text){
     if (!text || strlen(text) == 0) {
       freeExpression(&self->text);
       return MS_SUCCESS;
     }	
     else return msLoadExpressionString(&self->text, text);
   }
-SWIGINTERN char *classObj_getTextString(classObj *self){
+SWIGINTERN char *classObj_getTextString(struct classObj *self){
     return msGetExpressionString(&(self->text));
   }
-SWIGINTERN char *classObj_getMetaData(classObj *self,char *name){
+SWIGINTERN char *classObj_getMetaData(struct classObj *self,char *name){
     char *value = NULL;
     if (!name) {
       msSetError(16, "NULL key", "getMetaData");
@@ -3619,24 +3907,24 @@ SWIGINTERN char *classObj_getMetaData(classObj *self,char *name){
     }
     return value;
   }
-SWIGINTERN int classObj_setMetaData(classObj *self,char *name,char *value){
+SWIGINTERN int classObj_setMetaData(struct classObj *self,char *name,char *value){
     if (msInsertHashTable(&(self->metadata), name, value) == NULL)
         return MS_FAILURE;
     return MS_SUCCESS;
   }
-SWIGINTERN char *classObj_getFirstMetaDataKey(classObj *self){
+SWIGINTERN char *classObj_getFirstMetaDataKey(struct classObj *self){
     return (char *) msFirstKeyFromHashTable(&(self->metadata));
   }
-SWIGINTERN char *classObj_getNextMetaDataKey(classObj *self,char *lastkey){
+SWIGINTERN char *classObj_getNextMetaDataKey(struct classObj *self,char *lastkey){
     return (char *) msNextKeyFromHashTable(&(self->metadata), lastkey);
   }
-SWIGINTERN int classObj_drawLegendIcon(classObj *self,mapObj *map,layerObj *layer,int width,int height,imageObj *dstImage,int dstX,int dstY){
-    return msDrawLegendIcon(map, layer, self, width, height, dstImage, dstX, dstY);
+SWIGINTERN int classObj_drawLegendIcon(struct classObj *self,mapObj *map,layerObj *layer,int width,int height,imageObj *dstImage,int dstX,int dstY){
+    return msDrawLegendIcon(map, layer, self, width, height, dstImage, dstX, dstY, 1, NULL);
   }
-SWIGINTERN imageObj *classObj_createLegendIcon(classObj *self,mapObj *map,layerObj *layer,int width,int height){
-    return msCreateLegendIcon(map, layer, self, width, height);
+SWIGINTERN imageObj *classObj_createLegendIcon(struct classObj *self,mapObj *map,layerObj *layer,int width,int height){
+    return msCreateLegendIcon(map, layer, self, width, height, 1);
   }
-SWIGINTERN labelObj *classObj_getLabel(classObj *self,int i){
+SWIGINTERN labelObj *classObj_getLabel(struct classObj *self,int i){
     if (i >= 0 && i < self->numlabels) {
       MS_REFCNT_INCR(self->labels[i]);
       return self->labels[i];
@@ -3645,15 +3933,15 @@ SWIGINTERN labelObj *classObj_getLabel(classObj *self,int i){
       return NULL;
     }
   }
-SWIGINTERN int classObj_addLabel(classObj *self,labelObj *label){
+SWIGINTERN int classObj_addLabel(struct classObj *self,labelObj *label){
     return msAddLabelToClass(self, label);
   }
-SWIGINTERN labelObj *classObj_removeLabel(classObj *self,int index){
+SWIGINTERN labelObj *classObj_removeLabel(struct classObj *self,int index){
     labelObj* label = (labelObj *) msRemoveLabelFromClass(self, index);
     if (label) MS_REFCNT_INCR(label);
     return label;
   }
-SWIGINTERN styleObj *classObj_getStyle(classObj *self,int i){
+SWIGINTERN styleObj *classObj_getStyle(struct classObj *self,int i){
     if (i >= 0 && i < self->numstyles) {
       MS_REFCNT_INCR(self->styles[i]);
       return self->styles[i];
@@ -3662,23 +3950,26 @@ SWIGINTERN styleObj *classObj_getStyle(classObj *self,int i){
       return NULL;
     }
   }
-SWIGINTERN int classObj_insertStyle(classObj *self,styleObj *style,int index){
+SWIGINTERN int classObj_insertStyle(struct classObj *self,styleObj *style,int index){
     return msInsertStyle(self, style, index);
   }
-SWIGINTERN styleObj *classObj_removeStyle(classObj *self,int index){
+SWIGINTERN styleObj *classObj_removeStyle(struct classObj *self,int index){
     styleObj* style = (styleObj *) msRemoveStyle(self, index);
     if (style) MS_REFCNT_INCR(style);
     return style;
   }
-SWIGINTERN int classObj_moveStyleUp(classObj *self,int index){
+SWIGINTERN int classObj_moveStyleUp(struct classObj *self,int index){
     return msMoveStyleUp(self, index);
   }
-SWIGINTERN int classObj_moveStyleDown(classObj *self,int index){
+SWIGINTERN int classObj_moveStyleDown(struct classObj *self,int index){
     return msMoveStyleDown(self, index);
   }
 SWIGINTERN void labelCacheObj_freeCache(labelCacheObj *self){
         msFreeLabelCache(self);    
     }
+
+  #define SWIG_From_long   PyLong_FromLong 
+
 SWIGINTERN resultObj *new_resultObj(long shapeindex){
         resultObj *result = (resultObj *) msSmallMalloc(sizeof(resultObj));
 
@@ -3756,19 +4047,28 @@ SWIGINTERN int symbolSetObj_save(symbolSetObj *self,char const *filename){
 SWIGINTERN int referenceMapObj_updateFromString(referenceMapObj *self,char *snippet){
     return msUpdateReferenceMapFromString(self, snippet, 0);
   }
+SWIGINTERN char *referenceMapObj_convertToString(referenceMapObj *self){
+    return msWriteReferenceMapToString(self);
+  }
 SWIGINTERN int scalebarObj_updateFromString(scalebarObj *self,char *snippet){
     return msUpdateScalebarFromString(self, snippet, 0);
   }
+SWIGINTERN char *scalebarObj_convertToString(scalebarObj *self){
+    return msWriteScalebarToString(self);
+  }
 SWIGINTERN int legendObj_updateFromString(legendObj *self,char *snippet){
     return msUpdateLegendFromString(self, snippet, 0);
   }
-SWIGINTERN void delete_imageObj(imageObj *self){
+SWIGINTERN char *legendObj_convertToString(legendObj *self){
+    return msWriteLegendToString(self);
+  }
+SWIGINTERN void delete_imageObj(struct imageObj *self){
         msFreeImage(self);    
     }
-SWIGINTERN void imageObj_save(imageObj *self,char *filename,mapObj *map){
+SWIGINTERN void imageObj_save(struct imageObj *self,char *filename,mapObj *map){
         msSaveImage(map, self, filename );
     }
-SWIGINTERN gdBuffer imageObj_getBytes(imageObj *self){
+SWIGINTERN gdBuffer imageObj_getBytes(struct imageObj *self){
         gdBuffer buffer;
         
         buffer.owns_data = 1;
@@ -3784,7 +4084,7 @@ SWIGINTERN gdBuffer imageObj_getBytes(imageObj *self){
 
         return buffer;
     }
-SWIGINTERN int imageObj_getSize(imageObj *self){
+SWIGINTERN int imageObj_getSize(struct imageObj *self){
         gdBuffer buffer;
 	int size=0;
         
@@ -3798,7 +4098,7 @@ SWIGINTERN int imageObj_getSize(imageObj *self){
 	free(buffer.data);
         return size;
     }
-SWIGINTERN imageObj *new_imageObj(PyObject *arg1,PyObject *arg2,PyObject *input_format,PyObject *input_resolution,PyObject *input_defresolution){
+SWIGINTERN struct imageObj *new_imageObj(PyObject *arg1,PyObject *arg2,PyObject *input_format,PyObject *input_resolution,PyObject *input_defresolution){
 
 
 
@@ -3955,7 +4255,7 @@ SWIGINTERN imageObj *new_imageObj(PyObject *arg1,PyObject *arg2,PyObject *input_
          return NULL;
 
     }
-SWIGINTERN int imageObj_write(imageObj *self,PyObject *file){
+SWIGINTERN int imageObj_write(struct imageObj *self,PyObject *file){
         unsigned char *imgbuffer=NULL;
         int imgsize;
         PyObject *noerr;
@@ -4001,7 +4301,7 @@ SWIGINTERN int imageObj_write(imageObj *self,PyObject *file){
 
         return retval;
     }
-SWIGINTERN PyObject *imageObj_saveToString(imageObj *self){
+SWIGINTERN PyObject *imageObj_saveToString(struct imageObj *self){
         int size=0;
         unsigned char *imgbytes;
         PyObject *imgstring; 
@@ -4016,7 +4316,7 @@ SWIGINTERN PyObject *imageObj_saveToString(imageObj *self){
         free(imgbytes);
         return imgstring;
     }
-SWIGINTERN layerObj *new_layerObj(mapObj *map){
+SWIGINTERN struct layerObj *new_layerObj(mapObj *map){
         layerObj *layer;
         int result;
         
@@ -4053,7 +4353,7 @@ SWIGINTERN layerObj *new_layerObj(mapObj *map){
             return (map->layers[map->numlayers-1]);
         }
     }
-SWIGINTERN void delete_layerObj(layerObj *self){
+SWIGINTERN void delete_layerObj(struct layerObj *self){
         /*if (!self->map) {*/
         if (self) {
             if(freeLayer(self)==MS_SUCCESS) {
@@ -4061,7 +4361,7 @@ SWIGINTERN void delete_layerObj(layerObj *self){
 	    }
         }
     }
-SWIGINTERN layerObj *layerObj_clone(layerObj *self){
+SWIGINTERN layerObj *layerObj_clone(struct layerObj *self){
         layerObj *layer;
         int result;
 
@@ -4088,20 +4388,23 @@ SWIGINTERN layerObj *layerObj_clone(layerObj *self){
         
         return layer;
     }
-SWIGINTERN int layerObj_updateFromString(layerObj *self,char *snippet){
+SWIGINTERN int layerObj_updateFromString(struct layerObj *self,char *snippet){
         return msUpdateLayerFromString(self, snippet, 0);
     }
-SWIGINTERN int layerObj_insertClass(layerObj *self,classObj *classobj,int index){
+SWIGINTERN char *layerObj_convertToString(struct layerObj *self){
+        return msWriteLayerToString(self);
+    }
+SWIGINTERN int layerObj_insertClass(struct layerObj *self,classObj *classobj,int index){
         return msInsertClass(self, classobj, index);
     }
-SWIGINTERN classObj *layerObj_removeClass(layerObj *self,int index){
+SWIGINTERN classObj *layerObj_removeClass(struct layerObj *self,int index){
         classObj* c = msRemoveClass(self, index);
 	if (c != NULL) {
 		MS_REFCNT_INCR(c);
 	}
 	return c;
     }
-SWIGINTERN int layerObj_open(layerObj *self){
+SWIGINTERN int layerObj_open(struct layerObj *self){
         int status;
         status =  msLayerOpen(self);
         if (status == MS_SUCCESS) {
@@ -4109,7 +4412,7 @@ SWIGINTERN int layerObj_open(layerObj *self){
         }
         return status;
     }
-SWIGINTERN int layerObj_whichShapes(layerObj *self,rectObj rect){
+SWIGINTERN int layerObj_whichShapes(struct layerObj *self,rectObj rect){
         int oldconnectiontype = self->connectiontype;
         self->connectiontype = MS_INLINE;
 
@@ -4121,7 +4424,7 @@ SWIGINTERN int layerObj_whichShapes(layerObj *self,rectObj rect){
 
         return msLayerWhichShapes(self, rect, 0);
     }
-SWIGINTERN shapeObj *layerObj_nextShape(layerObj *self){
+SWIGINTERN shapeObj *layerObj_nextShape(struct layerObj *self){
        int status;
        shapeObj *shape;
 
@@ -4137,10 +4440,10 @@ SWIGINTERN shapeObj *layerObj_nextShape(layerObj *self){
        } else
          return shape;
     }
-SWIGINTERN void layerObj_close(layerObj *self){
+SWIGINTERN void layerObj_close(struct layerObj *self){
         msLayerClose(self);
     }
-SWIGINTERN shapeObj *layerObj_getShape(layerObj *self,resultObj *record){
+SWIGINTERN shapeObj *layerObj_getShape(struct layerObj *self,resultObj *record){
         int retval;
         shapeObj *shape;
 
@@ -4155,25 +4458,25 @@ SWIGINTERN shapeObj *layerObj_getShape(layerObj *self,resultObj *record){
         retval = msLayerGetShape(self, shape, record);
         return shape;
     }
-SWIGINTERN int layerObj_getNumResults(layerObj *self){
+SWIGINTERN int layerObj_getNumResults(struct layerObj *self){
         if (!self->resultcache) return 0;
         return self->resultcache->numresults;
     }
-SWIGINTERN rectObj *layerObj_getResultsBounds(layerObj *self){
+SWIGINTERN rectObj *layerObj_getResultsBounds(struct layerObj *self){
         rectObj *bounds;
         if (!self->resultcache) return NULL;
         bounds = (rectObj *) malloc(sizeof(rectObj));
         MS_COPYRECT(bounds, &self->resultcache->bounds);
         return bounds;
     }
-SWIGINTERN resultObj *layerObj_getResult(layerObj *self,int i){
+SWIGINTERN resultObj *layerObj_getResult(struct layerObj *self,int i){
         if (!self->resultcache) return NULL;
         if (i >= 0 && i < self->resultcache->numresults)
             return &self->resultcache->results[i]; 
         else
             return NULL;
     }
-SWIGINTERN classObj *layerObj_getClass(layerObj *self,int i){
+SWIGINTERN classObj *layerObj_getClass(struct layerObj *self,int i){
 	classObj *result=NULL;
         if (i >= 0 && i < self->numclasses) {
             result=self->class[i]; 
@@ -4181,23 +4484,23 @@ SWIGINTERN classObj *layerObj_getClass(layerObj *self,int i){
 	}
 	return result;
     }
-SWIGINTERN char *layerObj_getItem(layerObj *self,int i){
+SWIGINTERN char *layerObj_getItem(struct layerObj *self,int i){
   
         if (i >= 0 && i < self->numitems)
             return (char *) (self->items[i]);
         else
             return NULL;
     }
-SWIGINTERN int layerObj_setItems(layerObj *self,char **items,int numitems){
+SWIGINTERN int layerObj_setItems(struct layerObj *self,char **items,int numitems){
         return msLayerSetItems(self, items, numitems);
     }
-SWIGINTERN int layerObj_draw(layerObj *self,mapObj *map,imageObj *image){
+SWIGINTERN int layerObj_draw(struct layerObj *self,mapObj *map,imageObj *image){
         return msDrawLayer(map, self, image);    
     }
-SWIGINTERN int layerObj_drawQuery(layerObj *self,mapObj *map,imageObj *image){
+SWIGINTERN int layerObj_drawQuery(struct layerObj *self,mapObj *map,imageObj *image){
         return msDrawQueryLayer(map, self, image);    
     }
-SWIGINTERN int layerObj_queryByFilter(layerObj *self,mapObj *map,char *string){
+SWIGINTERN int layerObj_queryByFilter(struct layerObj *self,mapObj *map,char *string){
         int status;
         int retval;
 
@@ -4221,7 +4524,7 @@ SWIGINTERN int layerObj_queryByFilter(layerObj *self,mapObj *map,char *string){
         self->status = status;
 	return retval;
     }
-SWIGINTERN int layerObj_queryByAttributes(layerObj *self,mapObj *map,char *qitem,char *qstring,int mode){
+SWIGINTERN int layerObj_queryByAttributes(struct layerObj *self,mapObj *map,char *qitem,char *qstring,int mode){
         int status;
         int retval;
 
@@ -4241,7 +4544,7 @@ SWIGINTERN int layerObj_queryByAttributes(layerObj *self,mapObj *map,char *qitem
 
         return retval;
     }
-SWIGINTERN int layerObj_queryByPoint(layerObj *self,mapObj *map,pointObj *point,int mode,double buffer){
+SWIGINTERN int layerObj_queryByPoint(struct layerObj *self,mapObj *map,pointObj *point,int mode,double buffer){
         int status;
         int retval;
 
@@ -4260,7 +4563,7 @@ SWIGINTERN int layerObj_queryByPoint(layerObj *self,mapObj *map,pointObj *point,
 
         return retval;
     }
-SWIGINTERN int layerObj_queryByRect(layerObj *self,mapObj *map,rectObj rect){
+SWIGINTERN int layerObj_queryByRect(struct layerObj *self,mapObj *map,rectObj rect){
         int status;
         int retval;
 
@@ -4278,7 +4581,7 @@ SWIGINTERN int layerObj_queryByRect(layerObj *self,mapObj *map,rectObj rect){
 
         return retval;
     }
-SWIGINTERN int layerObj_queryByFeatures(layerObj *self,mapObj *map,int slayer){
+SWIGINTERN int layerObj_queryByFeatures(struct layerObj *self,mapObj *map,int slayer){
         int status;
         int retval;
 
@@ -4291,7 +4594,7 @@ SWIGINTERN int layerObj_queryByFeatures(layerObj *self,mapObj *map,int slayer){
         self->status = status;
         return retval;
     }
-SWIGINTERN int layerObj_queryByShape(layerObj *self,mapObj *map,shapeObj *shape){
+SWIGINTERN int layerObj_queryByShape(struct layerObj *self,mapObj *map,shapeObj *shape){
         int status;
         int retval;
         
@@ -4310,7 +4613,7 @@ SWIGINTERN int layerObj_queryByShape(layerObj *self,mapObj *map,shapeObj *shape)
         self->status = status;
         return retval;
     }
-SWIGINTERN int layerObj_queryByIndex(layerObj *self,mapObj *map,int tileindex,int shapeindex,int bAddToQuery){
+SWIGINTERN int layerObj_queryByIndex(struct layerObj *self,mapObj *map,int tileindex,int shapeindex,int bAddToQuery){
         int status;
         int retval;
         
@@ -4329,31 +4632,31 @@ SWIGINTERN int layerObj_queryByIndex(layerObj *self,mapObj *map,int tileindex,in
         self->status = status;
         return retval;
     }
-SWIGINTERN resultCacheObj *layerObj_getResults(layerObj *self){
+SWIGINTERN resultCacheObj *layerObj_getResults(struct layerObj *self){
         return self->resultcache;
     }
-SWIGINTERN int layerObj_setFilter(layerObj *self,char *filter){
+SWIGINTERN int layerObj_setFilter(struct layerObj *self,char *filter){
         if (!filter || strlen(filter) == 0) {
             freeExpression(&self->filter);
             return MS_SUCCESS;
         }
         else return msLoadExpressionString(&self->filter, filter);
     }
-SWIGINTERN char *layerObj_getFilterString(layerObj *self){
+SWIGINTERN char *layerObj_getFilterString(struct layerObj *self){
         return msGetExpressionString(&(self->filter));
     }
-SWIGINTERN int layerObj_setWKTProjection(layerObj *self,char *wkt){
+SWIGINTERN int layerObj_setWKTProjection(struct layerObj *self,char *wkt){
         self->project = 1;
         return msOGCWKT2ProjectionObj(wkt, &(self->projection), self->debug);
     }
-SWIGINTERN char *layerObj_getProjection(layerObj *self){    
+SWIGINTERN char *layerObj_getProjection(struct layerObj *self){    
         return (char *) msGetProjectionString(&(self->projection));
     }
-SWIGINTERN int layerObj_setProjection(layerObj *self,char *proj4){
+SWIGINTERN int layerObj_setProjection(struct layerObj *self,char *proj4){
         self->project = 1;
         return msLoadProjectionString(&(self->projection), proj4);
     }
-SWIGINTERN int layerObj_addFeature(layerObj *self,shapeObj *shape){    
+SWIGINTERN int layerObj_addFeature(struct layerObj *self,shapeObj *shape){    
         self->connectiontype = MS_INLINE;
         if(self->features != NULL && self->features->tailifhead != NULL) 
             shape->index = self->features->tailifhead->shape.index + 1;
@@ -4363,16 +4666,16 @@ SWIGINTERN int layerObj_addFeature(layerObj *self,shapeObj *shape){
         return MS_FAILURE;
         return MS_SUCCESS;
     }
-SWIGINTERN int layerObj_getNumFeatures(layerObj *self){
+SWIGINTERN int layerObj_getNumFeatures(struct layerObj *self){
         return msLayerGetNumFeatures(self);
     }
-SWIGINTERN rectObj *layerObj_getExtent(layerObj *self){
+SWIGINTERN rectObj *layerObj_getExtent(struct layerObj *self){
         rectObj *extent;
         extent = (rectObj *) malloc(sizeof(rectObj));
         msLayerGetExtent(self, extent);
         return extent;
     }
-SWIGINTERN int layerObj_setExtent(layerObj *self,double minx,double miny,double maxx,double maxy){
+SWIGINTERN int layerObj_setExtent(struct layerObj *self,double minx,double miny,double maxx,double maxy){
         if (minx > maxx || miny > maxy) {
             msSetError(34,
                 "{ 'minx': %f , 'miny': %f , 'maxx': %f , 'maxy': %f }",
@@ -4382,7 +4685,7 @@ SWIGINTERN int layerObj_setExtent(layerObj *self,double minx,double miny,double
 
         return msLayerSetExtent(self, minx, miny, maxx, maxy);
     }
-SWIGINTERN char *layerObj_getMetaData(layerObj *self,char *name){
+SWIGINTERN char *layerObj_getMetaData(struct layerObj *self,char *name){
         char *value = NULL;
         if (!name) {
             msSetError(16, "NULL key", "getMetaData");
@@ -4403,37 +4706,37 @@ SWIGINTERN char *layerObj_getMetaData(layerObj *self,char *name){
 
         return value;
     }
-SWIGINTERN int layerObj_setMetaData(layerObj *self,char *name,char *value){
+SWIGINTERN int layerObj_setMetaData(struct layerObj *self,char *name,char *value){
         if (msInsertHashTable(&(self->metadata), name, value) == NULL)
         return MS_FAILURE;
         return MS_SUCCESS;
     }
-SWIGINTERN int layerObj_removeMetaData(layerObj *self,char *name){
+SWIGINTERN int layerObj_removeMetaData(struct layerObj *self,char *name){
         return(msRemoveHashTable(&(self->metadata), name));
     }
-SWIGINTERN char *layerObj_getFirstMetaDataKey(layerObj *self){
+SWIGINTERN char *layerObj_getFirstMetaDataKey(struct layerObj *self){
         return (char *) msFirstKeyFromHashTable(&(self->metadata));
     }
-SWIGINTERN char *layerObj_getNextMetaDataKey(layerObj *self,char *lastkey){
+SWIGINTERN char *layerObj_getNextMetaDataKey(struct layerObj *self,char *lastkey){
         return (char *) msNextKeyFromHashTable(&(self->metadata), lastkey);
     }
-SWIGINTERN char *layerObj_getWMSFeatureInfoURL(layerObj *self,mapObj *map,int click_x,int click_y,int feature_count,char *info_format){
+SWIGINTERN char *layerObj_getWMSFeatureInfoURL(struct layerObj *self,mapObj *map,int click_x,int click_y,int feature_count,char *info_format){
         return (char *) msWMSGetFeatureInfoURL(map, self, click_x, click_y,
                feature_count, info_format);
     }
-SWIGINTERN char *layerObj_executeWFSGetFeature(layerObj *self,layerObj *layer){
+SWIGINTERN char *layerObj_executeWFSGetFeature(struct layerObj *self,layerObj *layer){
         return (char *) msWFSExecuteGetFeature(layer);
     }
-SWIGINTERN int layerObj_applySLD(layerObj *self,char *sld,char *stylelayer){
+SWIGINTERN int layerObj_applySLD(struct layerObj *self,char *sld,char *stylelayer){
       return msSLDApplySLD(self->map, sld, self->index, stylelayer, NULL);
     }
-SWIGINTERN int layerObj_applySLDURL(layerObj *self,char *sld,char *stylelayer){
+SWIGINTERN int layerObj_applySLDURL(struct layerObj *self,char *sld,char *stylelayer){
       return msSLDApplySLDURL(self->map, sld, self->index, stylelayer, NULL);
     }
-SWIGINTERN char *layerObj_generateSLD(layerObj *self){
+SWIGINTERN char *layerObj_generateSLD(struct layerObj *self){
         return (char *) msSLDGenerateSLD(self->map, self->index, NULL);
     }
-SWIGINTERN int layerObj_isVisible(layerObj *self){
+SWIGINTERN int layerObj_isVisible(struct layerObj *self){
         if (!self->map)
         {
             msSetError(12,
@@ -4443,31 +4746,31 @@ SWIGINTERN int layerObj_isVisible(layerObj *self){
         }
         return msLayerIsVisible(self->map, self);
     }
-SWIGINTERN int layerObj_moveClassUp(layerObj *self,int index){
+SWIGINTERN int layerObj_moveClassUp(struct layerObj *self,int index){
         return msMoveClassUp(self, index);
     }
-SWIGINTERN int layerObj_moveClassDown(layerObj *self,int index){
+SWIGINTERN int layerObj_moveClassDown(struct layerObj *self,int index){
         return msMoveClassDown(self, index);
     }
-SWIGINTERN void layerObj_setProcessingKey(layerObj *self,char const *key,char const *value){
+SWIGINTERN void layerObj_setProcessingKey(struct layerObj *self,char const *key,char const *value){
 	   msLayerSetProcessingKey( self, key, value );
     }
-SWIGINTERN void layerObj_setProcessing(layerObj *self,char const *directive){
+SWIGINTERN void layerObj_setProcessing(struct layerObj *self,char const *directive){
         msLayerAddProcessing( self, directive );
     }
-SWIGINTERN void layerObj_addProcessing(layerObj *self,char const *directive){
+SWIGINTERN void layerObj_addProcessing(struct layerObj *self,char const *directive){
         msLayerAddProcessing( self, directive );
     }
-SWIGINTERN char *layerObj_getProcessing(layerObj *self,int index){
+SWIGINTERN char *layerObj_getProcessing(struct layerObj *self,int index){
         return (char *) msLayerGetProcessing(self, index);
     }
-SWIGINTERN char *layerObj_getProcessingKey(layerObj *self,char const *key){
+SWIGINTERN char *layerObj_getProcessingKey(struct layerObj *self,char const *key){
       return (char *) msLayerGetProcessingKey(self, key);
     }
-SWIGINTERN int layerObj_clearProcessing(layerObj *self){
+SWIGINTERN int layerObj_clearProcessing(struct layerObj *self){
         return msLayerClearProcessing(self);
     }
-SWIGINTERN int layerObj_setConnectionType(layerObj *self,int connectiontype,char const *library_str){    
+SWIGINTERN int layerObj_setConnectionType(struct layerObj *self,int connectiontype,char const *library_str){    
         /* Caller is responsible to close previous layer correctly before
          * calling msConnectLayer() 
          */
@@ -4475,20 +4778,34 @@ SWIGINTERN int layerObj_setConnectionType(layerObj *self,int connectiontype,char
           msLayerClose(self);
         return msConnectLayer(self, connectiontype, library_str);
     }
-SWIGINTERN int layerObj_getClassIndex(layerObj *self,mapObj *map,shapeObj *shape,int *classgroup,int numclasses){
+SWIGINTERN int layerObj_getClassIndex(struct layerObj *self,mapObj *map,shapeObj *shape,int *classgroup,int numclasses){
         return msShapeGetClass(self, map, shape, classgroup, numclasses);
     }
-SWIGINTERN mapObj *new_mapObj(char *filename){
+SWIGINTERN char *layerObj_getGeomTransform(struct layerObj *self){
+      return self->_geomtransform.string;
+    }
+SWIGINTERN void layerObj_setGeomTransform(struct layerObj *self,char *transform){
+      msFree(self->_geomtransform.string);
+      if (!transform || strlen(transform) > 0) {
+        self->_geomtransform.string = msStrdup(transform);
+        self->_geomtransform.type = MS_GEOMTRANSFORM_EXPRESSION;
+      }
+      else {
+        self->_geomtransform.type = MS_GEOMTRANSFORM_NONE;
+        self->_geomtransform.string = NULL;
+      }
+    }
+SWIGINTERN struct mapObj *new_mapObj(char *filename){
         if (filename && strlen(filename))
             return msLoadMap(filename, NULL);
         else { /* create an empty map, no layers etc... */
             return msNewMapObj();
         }      
     }
-SWIGINTERN void delete_mapObj(mapObj *self){
+SWIGINTERN void delete_mapObj(struct mapObj *self){
         msFreeMap(self);
     }
-SWIGINTERN mapObj *mapObj_clone(mapObj *self){
+SWIGINTERN mapObj *mapObj_clone(struct mapObj *self){
         mapObj *dstMap;
         dstMap = msNewMapObj();
         if (msCopyMap(dstMap, self) != MS_SUCCESS) {
@@ -4497,33 +4814,33 @@ SWIGINTERN mapObj *mapObj_clone(mapObj *self){
         }
         return dstMap;
     }
-SWIGINTERN int mapObj_insertLayer(mapObj *self,layerObj *layer,int index){
+SWIGINTERN int mapObj_insertLayer(struct mapObj *self,layerObj *layer,int index){
         return msInsertLayer(self, layer, index);  
     }
-SWIGINTERN layerObj *mapObj_removeLayer(mapObj *self,int index){
+SWIGINTERN layerObj *mapObj_removeLayer(struct mapObj *self,int index){
     	layerObj *layer=msRemoveLayer(self, index);
 	MS_REFCNT_INCR(layer);
         return layer;
     }
-SWIGINTERN int mapObj_setExtent(mapObj *self,double minx,double miny,double maxx,double maxy){	
+SWIGINTERN int mapObj_setExtent(struct mapObj *self,double minx,double miny,double maxx,double maxy){	
 	return msMapSetExtent( self, minx, miny, maxx, maxy );
     }
-SWIGINTERN int mapObj_offsetExtent(mapObj *self,double x,double y){	
+SWIGINTERN int mapObj_offsetExtent(struct mapObj *self,double x,double y){	
 	return msMapOffsetExtent( self, x, y );
     }
-SWIGINTERN int mapObj_scaleExtent(mapObj *self,double zoomfactor,double minscaledenom,double maxscaledenom){	
+SWIGINTERN int mapObj_scaleExtent(struct mapObj *self,double zoomfactor,double minscaledenom,double maxscaledenom){	
 	return msMapScaleExtent( self, zoomfactor, minscaledenom, maxscaledenom );
     }
-SWIGINTERN int mapObj_setCenter(mapObj *self,pointObj *center){	
+SWIGINTERN int mapObj_setCenter(struct mapObj *self,pointObj *center){	
 	return msMapSetCenter( self, center );
     }
-SWIGINTERN int mapObj_setSize(mapObj *self,int width,int height){
+SWIGINTERN int mapObj_setSize(struct mapObj *self,int width,int height){
         return msMapSetSize(self, width, height);
     }
-SWIGINTERN int mapObj_setRotation(mapObj *self,double rotation_angle){
+SWIGINTERN int mapObj_setRotation(struct mapObj *self,double rotation_angle){
         return msMapSetRotation( self, rotation_angle );
     }
-SWIGINTERN layerObj *mapObj_getLayer(mapObj *self,int i){
+SWIGINTERN layerObj *mapObj_getLayer(struct mapObj *self,int i){
     if(i >= 0 && i < self->numlayers) {
     	MS_REFCNT_INCR(self->layers[i]);
       	return (self->layers[i]); /* returns an EXISTING layer */
@@ -4531,7 +4848,7 @@ SWIGINTERN layerObj *mapObj_getLayer(mapObj *self,int i){
       return NULL;
     }
   }
-SWIGINTERN layerObj *mapObj_getLayerByName(mapObj *self,char *name){
+SWIGINTERN layerObj *mapObj_getLayerByName(struct mapObj *self,char *name){
     int i;
 
     i = msGetLayerIndex(self, name);
@@ -4543,19 +4860,19 @@ SWIGINTERN layerObj *mapObj_getLayerByName(mapObj *self,char *name){
     else
       return NULL;
   }
-SWIGINTERN int mapObj_getSymbolByName(mapObj *self,char *name){
+SWIGINTERN int mapObj_getSymbolByName(struct mapObj *self,char *name){
     return msGetSymbolIndex(&self->symbolset, name, 1);
   }
-SWIGINTERN void mapObj_prepareQuery(mapObj *self){
+SWIGINTERN void mapObj_prepareQuery(struct mapObj *self){
     int status;
 
     status = msCalculateScale(self->extent, self->units, self->width, self->height, self->resolution, &self->scaledenom);
     if(status != MS_SUCCESS) self->scaledenom = -1;
   }
-SWIGINTERN imageObj *mapObj_prepareImage(mapObj *self){
+SWIGINTERN imageObj *mapObj_prepareImage(struct mapObj *self){
     return msPrepareImage(self, 0);
   }
-SWIGINTERN void mapObj_setImageType(mapObj *self,char *imagetype){
+SWIGINTERN void mapObj_setImageType(struct mapObj *self,char *imagetype){
       outputFormatObj *format;
 
       format = msSelectOutputFormat( self, imagetype );
@@ -4570,7 +4887,7 @@ SWIGINTERN void mapObj_setImageType(mapObj *self,char *imagetype){
                                -1111, -1111 );
       }
   }
-SWIGINTERN void mapObj_selectOutputFormat(mapObj *self,char *imagetype){
+SWIGINTERN void mapObj_selectOutputFormat(struct mapObj *self,char *imagetype){
         outputFormatObj *format;
 
         format = msSelectOutputFormat( self, imagetype );
@@ -4585,38 +4902,46 @@ SWIGINTERN void mapObj_selectOutputFormat(mapObj *self,char *imagetype){
                                  -1111, -1111 );
         }
     }
-SWIGINTERN void mapObj_setOutputFormat(mapObj *self,outputFormatObj *format){
+SWIGINTERN outputFormatObj *mapObj_getOutputFormat(struct mapObj *self,int i){
+    if(i >= 0 && i < self->numoutputformats) {
+    	MS_REFCNT_INCR(self->outputformatlist[i]);
+        return (self->outputformatlist[i]); 
+    } else {
+      return NULL;
+    }
+  }
+SWIGINTERN void mapObj_setOutputFormat(struct mapObj *self,outputFormatObj *format){
       msApplyOutputFormat( &(self->outputformat), format, -1111, 
                            -1111, -1111 );
   }
-SWIGINTERN imageObj *mapObj_draw(mapObj *self){
+SWIGINTERN imageObj *mapObj_draw(struct mapObj *self){
     return msDrawMap(self, 0);
   }
-SWIGINTERN imageObj *mapObj_drawQuery(mapObj *self){
+SWIGINTERN imageObj *mapObj_drawQuery(struct mapObj *self){
     return msDrawMap(self, 1);
   }
-SWIGINTERN imageObj *mapObj_drawLegend(mapObj *self){
-    return msDrawLegend(self, 0);
+SWIGINTERN imageObj *mapObj_drawLegend(struct mapObj *self){
+    return msDrawLegend(self, 0, NULL);
   }
-SWIGINTERN imageObj *mapObj_drawScalebar(mapObj *self){
+SWIGINTERN imageObj *mapObj_drawScalebar(struct mapObj *self){
     return msDrawScalebar(self);
   }
-SWIGINTERN imageObj *mapObj_drawReferenceMap(mapObj *self){
+SWIGINTERN imageObj *mapObj_drawReferenceMap(struct mapObj *self){
     return msDrawReferenceMap(self);
   }
-SWIGINTERN int mapObj_embedScalebar(mapObj *self,imageObj *image){	
+SWIGINTERN int mapObj_embedScalebar(struct mapObj *self,imageObj *image){	
     return msEmbedScalebar(self, image);
   }
-SWIGINTERN int mapObj_embedLegend(mapObj *self,imageObj *image){	
+SWIGINTERN int mapObj_embedLegend(struct mapObj *self,imageObj *image){	
     return msEmbedLegend(self, image);
   }
-SWIGINTERN int mapObj_drawLabelCache(mapObj *self,imageObj *image){
+SWIGINTERN int mapObj_drawLabelCache(struct mapObj *self,imageObj *image){
     return msDrawLabelCache(image, self);
   }
-SWIGINTERN labelCacheMemberObj *mapObj_getLabel(mapObj *self,int i){
+SWIGINTERN labelCacheMemberObj *mapObj_getLabel(struct mapObj *self,int i){
     return msGetLabelCacheMember(&(self->labelcache), i);
   }
-SWIGINTERN labelCacheMemberObj *mapObj_nextLabel(mapObj *self){
+SWIGINTERN labelCacheMemberObj *mapObj_nextLabel(struct mapObj *self){
     static int i=0;
 
     if(i<self->labelcache.numlabels)
@@ -4624,7 +4949,7 @@ SWIGINTERN labelCacheMemberObj *mapObj_nextLabel(mapObj *self){
     else
       return NULL;	
   }
-SWIGINTERN int mapObj_queryByFilter(mapObj *self,char *string){
+SWIGINTERN int mapObj_queryByFilter(struct mapObj *self,char *string){
     msInitQuery(&(self->query));
 
     self->query.type = MS_QUERY_BY_FILTER;
@@ -4640,7 +4965,7 @@ SWIGINTERN int mapObj_queryByFilter(mapObj *self,char *string){
 
     return msQueryByFilter(self);
   }
-SWIGINTERN int mapObj_queryByPoint(mapObj *self,pointObj *point,int mode,double buffer){
+SWIGINTERN int mapObj_queryByPoint(struct mapObj *self,pointObj *point,int mode,double buffer){
     msInitQuery(&(self->query));
 
     self->query.type = MS_QUERY_BY_POINT;
@@ -4650,7 +4975,7 @@ SWIGINTERN int mapObj_queryByPoint(mapObj *self,pointObj *point,int mode,double
 
     return msQueryByPoint(self);
   }
-SWIGINTERN int mapObj_queryByRect(mapObj *self,rectObj rect){
+SWIGINTERN int mapObj_queryByRect(struct mapObj *self,rectObj rect){
     msInitQuery(&(self->query));
 
     self->query.type = MS_QUERY_BY_RECT;
@@ -4659,11 +4984,11 @@ SWIGINTERN int mapObj_queryByRect(mapObj *self,rectObj rect){
 
     return msQueryByRect(self);
   }
-SWIGINTERN int mapObj_queryByFeatures(mapObj *self,int slayer){
+SWIGINTERN int mapObj_queryByFeatures(struct mapObj *self,int slayer){
     self->query.slayer = slayer;
     return msQueryByFeatures(self);
   }
-SWIGINTERN int mapObj_queryByShape(mapObj *self,shapeObj *shape){
+SWIGINTERN int mapObj_queryByShape(struct mapObj *self,shapeObj *shape){
     msInitQuery(&(self->query));
     
     self->query.type = MS_QUERY_BY_SHAPE;
@@ -4674,31 +4999,31 @@ SWIGINTERN int mapObj_queryByShape(mapObj *self,shapeObj *shape){
 
     return msQueryByShape(self);
   }
-SWIGINTERN int mapObj_setWKTProjection(mapObj *self,char *wkt){
+SWIGINTERN int mapObj_setWKTProjection(struct mapObj *self,char *wkt){
     return msOGCWKT2ProjectionObj(wkt, &(self->projection), self->debug);
   }
-SWIGINTERN char *mapObj_getProjection(mapObj *self){
+SWIGINTERN char *mapObj_getProjection(struct mapObj *self){
     return msGetProjectionString(&(self->projection));
   }
-SWIGINTERN int mapObj_setProjection(mapObj *self,char *proj4){
+SWIGINTERN int mapObj_setProjection(struct mapObj *self,char *proj4){
     return msLoadProjectionString(&(self->projection), proj4);
   }
-SWIGINTERN int mapObj_save(mapObj *self,char *filename){
+SWIGINTERN int mapObj_save(struct mapObj *self,char *filename){
     return msSaveMap(self, filename);
   }
-SWIGINTERN int mapObj_saveQuery(mapObj *self,char *filename,int results){
+SWIGINTERN int mapObj_saveQuery(struct mapObj *self,char *filename,int results){
     return msSaveQuery(self, filename, results);
   }
-SWIGINTERN int mapObj_loadQuery(mapObj *self,char *filename){
+SWIGINTERN int mapObj_loadQuery(struct mapObj *self,char *filename){
     return msLoadQuery(self, filename);
   }
-SWIGINTERN void mapObj_freeQuery(mapObj *self,int qlayer){
+SWIGINTERN void mapObj_freeQuery(struct mapObj *self,int qlayer){
     msQueryFree(self, qlayer);
   }
-SWIGINTERN int mapObj_saveQueryAsGML(mapObj *self,char *filename,char const *ns){
+SWIGINTERN int mapObj_saveQueryAsGML(struct mapObj *self,char *filename,char const *ns){
     return msGMLWriteQuery(self, filename, ns);
   }
-SWIGINTERN char *mapObj_getMetaData(mapObj *self,char *name){
+SWIGINTERN char *mapObj_getMetaData(struct mapObj *self,char *name){
     char *value = NULL;
     if (!name) {
       msSetError(16, "NULL key", "getMetaData");
@@ -4711,21 +5036,21 @@ SWIGINTERN char *mapObj_getMetaData(mapObj *self,char *name){
     }
     return value;
   }
-SWIGINTERN int mapObj_setMetaData(mapObj *self,char *name,char *value){
+SWIGINTERN int mapObj_setMetaData(struct mapObj *self,char *name,char *value){
     if (msInsertHashTable(&(self->web.metadata), name, value) == NULL)
 	return MS_FAILURE;
     return MS_SUCCESS;
   }
-SWIGINTERN int mapObj_removeMetaData(mapObj *self,char *name){
+SWIGINTERN int mapObj_removeMetaData(struct mapObj *self,char *name){
     return(msRemoveHashTable(&(self->web.metadata), name));
   }
-SWIGINTERN char *mapObj_getFirstMetaDataKey(mapObj *self){
+SWIGINTERN char *mapObj_getFirstMetaDataKey(struct mapObj *self){
     return (char *) msFirstKeyFromHashTable(&(self->web.metadata));
   }
-SWIGINTERN char *mapObj_getNextMetaDataKey(mapObj *self,char *lastkey){
+SWIGINTERN char *mapObj_getNextMetaDataKey(struct mapObj *self,char *lastkey){
     return (char *) msNextKeyFromHashTable(&(self->web.metadata), lastkey);
   }
-SWIGINTERN int mapObj_setSymbolSet(mapObj *self,char *szFileName){
+SWIGINTERN int mapObj_setSymbolSet(struct mapObj *self,char *szFileName){
     msFreeSymbolSet(&self->symbolset);
     msInitSymbolSet(&self->symbolset);
    
@@ -4736,10 +5061,10 @@ SWIGINTERN int mapObj_setSymbolSet(mapObj *self,char *szFileName){
 
     return msLoadSymbolSet(&self->symbolset, self);
   }
-SWIGINTERN int mapObj_getNumSymbols(mapObj *self){
+SWIGINTERN int mapObj_getNumSymbols(struct mapObj *self){
     return self->symbolset.numsymbols;
   }
-SWIGINTERN int mapObj_setFontSet(mapObj *self,char *filename){
+SWIGINTERN int mapObj_setFontSet(struct mapObj *self,char *filename){
     msFreeFontSet(&(self->fontset));
     msInitFontSet(&(self->fontset));
    
@@ -4747,19 +5072,19 @@ SWIGINTERN int mapObj_setFontSet(mapObj *self,char *filename){
 
     return msLoadFontSet(&(self->fontset), self);
   }
-SWIGINTERN int mapObj_saveMapContext(mapObj *self,char *szFileName){
+SWIGINTERN int mapObj_saveMapContext(struct mapObj *self,char *szFileName){
     return msSaveMapContext(self, szFileName);
   }
-SWIGINTERN int mapObj_loadMapContext(mapObj *self,char *szFileName,int useUniqueNames){
+SWIGINTERN int mapObj_loadMapContext(struct mapObj *self,char *szFileName,int useUniqueNames){
     return msLoadMapContext(self, szFileName, useUniqueNames);
   }
-SWIGINTERN int mapObj_moveLayerUp(mapObj *self,int layerindex){
+SWIGINTERN int mapObj_moveLayerUp(struct mapObj *self,int layerindex){
     return msMoveLayerUp(self, layerindex);
   }
-SWIGINTERN int mapObj_moveLayerDown(mapObj *self,int layerindex){
+SWIGINTERN int mapObj_moveLayerDown(struct mapObj *self,int layerindex){
     return msMoveLayerDown(self, layerindex);
   }
-SWIGINTERN intarray *mapObj_getLayersDrawingOrder(mapObj *self){
+SWIGINTERN intarray *mapObj_getLayersDrawingOrder(struct mapObj *self){
     int i;
     intarray *order;
     order = new_intarray(self->numlayers);
@@ -4771,53 +5096,56 @@ SWIGINTERN intarray *mapObj_getLayersDrawingOrder(mapObj *self){
 
     return order;
   }
-SWIGINTERN int mapObj_setLayersDrawingOrder(mapObj *self,int *panIndexes){
+SWIGINTERN int mapObj_setLayersDrawingOrder(struct mapObj *self,int *panIndexes){
     return  msSetLayersdrawingOrder(self, panIndexes); 
   }
-SWIGINTERN void mapObj_setConfigOption(mapObj *self,char *key,char *value){
+SWIGINTERN void mapObj_setConfigOption(struct mapObj *self,char *key,char *value){
     msSetConfigOption(self,key,value);
   }
-SWIGINTERN char *mapObj_getConfigOption(mapObj *self,char *key){
+SWIGINTERN char *mapObj_getConfigOption(struct mapObj *self,char *key){
     return (char *) msGetConfigOption(self,key);
   }
-SWIGINTERN void mapObj_applyConfigOptions(mapObj *self){
+SWIGINTERN void mapObj_applyConfigOptions(struct mapObj *self){
     msApplyMapConfigOptions( self );
   }
-SWIGINTERN int mapObj_applySLD(mapObj *self,char *sld){
+SWIGINTERN int mapObj_applySLD(struct mapObj *self,char *sld){
       return msSLDApplySLD(self, sld, -1, NULL, NULL);
     }
-SWIGINTERN int mapObj_applySLDURL(mapObj *self,char *sld){
+SWIGINTERN int mapObj_applySLDURL(struct mapObj *self,char *sld){
       return msSLDApplySLDURL(self, sld, -1, NULL, NULL);
     }
-SWIGINTERN char *mapObj_generateSLD(mapObj *self){
+SWIGINTERN char *mapObj_generateSLD(struct mapObj *self){
         return (char *) msSLDGenerateSLD(self, -1, NULL);
     }
-SWIGINTERN char *mapObj_processTemplate(mapObj *self,int bGenerateImages,char **names,char **values,int numentries){
+SWIGINTERN char *mapObj_processTemplate(struct mapObj *self,int bGenerateImages,char **names,char **values,int numentries){
         return msProcessTemplate(self, bGenerateImages, names, values,
                                  numentries);
     }
-SWIGINTERN char *mapObj_processLegendTemplate(mapObj *self,char **names,char **values,int numentries){
+SWIGINTERN char *mapObj_processLegendTemplate(struct mapObj *self,char **names,char **values,int numentries){
         return msProcessLegendTemplate(self, names, values, numentries);
     }
-SWIGINTERN char *mapObj_processQueryTemplate(mapObj *self,char **names,char **values,int numentries){
+SWIGINTERN char *mapObj_processQueryTemplate(struct mapObj *self,char **names,char **values,int numentries){
         return msProcessQueryTemplate(self, 1, names, values, numentries);
     }
-SWIGINTERN outputFormatObj *mapObj_getOutputFormatByName(mapObj *self,char *name){
+SWIGINTERN outputFormatObj *mapObj_getOutputFormatByName(struct mapObj *self,char *name){
         return msSelectOutputFormat(self, name); 
     }
-SWIGINTERN int mapObj_appendOutputFormat(mapObj *self,outputFormatObj *format){
+SWIGINTERN int mapObj_appendOutputFormat(struct mapObj *self,outputFormatObj *format){
         return msAppendOutputFormat(self, format);
     }
-SWIGINTERN int mapObj_removeOutputFormat(mapObj *self,char *name){
+SWIGINTERN int mapObj_removeOutputFormat(struct mapObj *self,char *name){
         return msRemoveOutputFormat(self, name);
     }
-SWIGINTERN int mapObj_loadOWSParameters(mapObj *self,cgiRequestObj *request,char *wmtver_string){
+SWIGINTERN int mapObj_loadOWSParameters(struct mapObj *self,cgiRequestObj *request,char *wmtver_string){
         return msMapLoadOWSParameters(self, request, wmtver_string);
     }
-SWIGINTERN int mapObj_OWSDispatch(mapObj *self,cgiRequestObj *req){
+SWIGINTERN int mapObj_OWSDispatch(struct mapObj *self,cgiRequestObj *req){
 	return msOWSDispatch( self, req, 1 );
     }
-SWIGINTERN int mapObj_zoomPoint(mapObj *self,int zoomfactor,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
+SWIGINTERN char *mapObj_convertToString(struct mapObj *self){
+        return msWriteMapToString(self);
+    }
+SWIGINTERN int mapObj_zoomPoint(struct mapObj *self,int zoomfactor,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
         double      dfGeoPosX, dfGeoPosY;
         double      dfDeltaX, dfDeltaY;
         rectObj     oNewGeorefExt;    
@@ -4993,7 +5321,7 @@ SWIGINTERN int mapObj_zoomPoint(mapObj *self,int zoomfactor,pointObj *poPixPos,i
 
         return MS_SUCCESS;
     }
-SWIGINTERN int mapObj_zoomRectangle(mapObj *self,rectObj *poPixRect,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
+SWIGINTERN int mapObj_zoomRectangle(struct mapObj *self,rectObj *poPixRect,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
         double      dfDeltaX, dfDeltaY;
         rectObj     oNewGeorefExt;    
         double      dfNewScale;
@@ -5158,7 +5486,7 @@ SWIGINTERN int mapObj_zoomRectangle(mapObj *self,rectObj *poPixRect,int width,in
 
         return MS_SUCCESS;
     }
-SWIGINTERN int mapObj_zoomScale(mapObj *self,double scale,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
+SWIGINTERN int mapObj_zoomScale(struct mapObj *self,double scale,pointObj *poPixPos,int width,int height,rectObj *poGeorefExt,rectObj *poMaxGeorefExt){
         double      dfGeoPosX, dfGeoPosY;
         double      dfDeltaX, dfDeltaY;
         rectObj     oNewGeorefExt;    
@@ -5343,7 +5671,7 @@ SWIGINTERN int mapObj_zoomScale(mapObj *self,double scale,pointObj *poPixPos,int
 
         return MS_SUCCESS;
     }
-SWIGINTERN PyObject *mapObj_getLayerOrder(mapObj *self){
+SWIGINTERN PyObject *mapObj_getLayerOrder(struct mapObj *self){
         int i;
         PyObject *order;
         order = PyTuple_New(self->numlayers);
@@ -5352,7 +5680,7 @@ SWIGINTERN PyObject *mapObj_getLayerOrder(mapObj *self){
         }
         return order;
     }
-SWIGINTERN int mapObj_setLayerOrder(mapObj *self,PyObject *order){
+SWIGINTERN int mapObj_setLayerOrder(struct mapObj *self,PyObject *order){
         int i, size;
         size = PyTuple_Size(order);
         for (i = 0; i < size; i++) {
@@ -5360,7 +5688,7 @@ SWIGINTERN int mapObj_setLayerOrder(mapObj *self,PyObject *order){
         }
         return MS_SUCCESS;
     }
-SWIGINTERN PyObject *mapObj_getSize(mapObj *self){
+SWIGINTERN PyObject *mapObj_getSize(struct mapObj *self){
         PyObject* output ;
         output = PyTuple_New(2);
         PyTuple_SetItem(output,0,PyInt_FromLong((long)self->width));
@@ -5776,18 +6104,10 @@ SWIGINTERN void shapeObj_initValues(shapeObj *self,int numvalues){
         }
     }
 
-SWIGINTERNINLINE PyObject* 
-SWIG_From_unsigned_SS_long  (unsigned long value)
+SWIGINTERNINLINE PyObject*
+  SWIG_From_unsigned_SS_int  (unsigned int value)
 {
-  return (value > LONG_MAX) ?
-    PyLong_FromUnsignedLong(value) : PyInt_FromLong((long)(value)); 
-}
-
-
-SWIGINTERNINLINE PyObject *
-SWIG_From_unsigned_SS_int  (unsigned int value)
-{    
-  return SWIG_From_unsigned_SS_long  (value);
+  return PyInt_FromSize_t((size_t) value);
 }
 
 SWIGINTERN char *DBFInfo_getFieldName(DBFInfo *self,int iField){
@@ -6001,7 +6321,7 @@ SWIGINTERN char *colorObj_toHex(colorObj *self){
                  self->red, self->green, self->blue);
         return strdup(hexcolor);
     }
-SWIGINTERN symbolObj *new_symbolObj(char *symbolname,char const *imagefile){
+SWIGINTERN struct symbolObj *new_symbolObj(char *symbolname,char const *imagefile){
         symbolObj *symbol;
         symbol = (symbolObj *) malloc(sizeof(symbolObj));
         initSymbol(symbol);
@@ -6011,7 +6331,7 @@ SWIGINTERN symbolObj *new_symbolObj(char *symbolname,char const *imagefile){
         }
         return symbol;
     }
-SWIGINTERN void delete_symbolObj(symbolObj *self){
+SWIGINTERN void delete_symbolObj(struct symbolObj *self){
 		if (self) {
             if (msFreeSymbol(self)==MS_SUCCESS) {
             	free(self);
@@ -6019,10 +6339,10 @@ SWIGINTERN void delete_symbolObj(symbolObj *self){
 			}
         }
     }
-SWIGINTERN int symbolObj_setImagepath(symbolObj *self,char const *imagefile){
+SWIGINTERN int symbolObj_setImagepath(struct symbolObj *self,char const *imagefile){
 	return msLoadImageSymbol(self, imagefile);
     }
-SWIGINTERN int symbolObj_setPoints(symbolObj *self,lineObj *line){
+SWIGINTERN int symbolObj_setPoints(struct symbolObj *self,lineObj *line){
         int i;
 	self->sizex = 0;
 	self->sizey = 0;
@@ -6034,7 +6354,7 @@ SWIGINTERN int symbolObj_setPoints(symbolObj *self,lineObj *line){
         self->numpoints = line->numpoints;
         return self->numpoints;
     }
-SWIGINTERN lineObj *symbolObj_getPoints(symbolObj *self){
+SWIGINTERN lineObj *symbolObj_getPoints(struct symbolObj *self){
         int i;
         lineObj *line;
         line = (lineObj *) malloc(sizeof(lineObj));
@@ -6046,7 +6366,7 @@ SWIGINTERN lineObj *symbolObj_getPoints(symbolObj *self){
         line->numpoints = self->numpoints;
         return line;
     }
-SWIGINTERN imageObj *symbolObj_getImage(symbolObj *self,outputFormatObj *input_format){
+SWIGINTERN imageObj *symbolObj_getImage(struct symbolObj *self,outputFormatObj *input_format){
         imageObj *image = NULL;
         outputFormatObj *format = NULL;
         rendererVTableObj *renderer = NULL;
@@ -6091,7 +6411,7 @@ SWIGINTERN imageObj *symbolObj_getImage(symbolObj *self,outputFormatObj *input_f
 
         return image;
     }
-SWIGINTERN int symbolObj_setImage(symbolObj *self,imageObj *image){
+SWIGINTERN int symbolObj_setImage(struct symbolObj *self,imageObj *image){
         rendererVTableObj *renderer = NULL;
         
         renderer = image->format->vtable;
@@ -6111,11 +6431,11 @@ SWIGINTERN int symbolObj_setImage(symbolObj *self,imageObj *image){
 
         return MS_SUCCESS;
     }
-SWIGINTERN errorObj *new_errorObj(){    
+SWIGINTERN struct errorObj *new_errorObj(){    
         return msGetErrorObj();
     }
-SWIGINTERN void delete_errorObj(errorObj *self){}
-SWIGINTERN errorObj *errorObj_next(errorObj *self){
+SWIGINTERN void delete_errorObj(struct errorObj *self){}
+SWIGINTERN errorObj *errorObj_next(struct errorObj *self){
         errorObj *ep;	
 
         if (self == NULL || self->next == NULL) return NULL;
@@ -6840,6 +7160,54 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_clusterObj_convertToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  clusterObj *arg1 = (clusterObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:clusterObj_convertToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_clusterObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "clusterObj_convertToString" "', argument " "1"" of type '" "clusterObj *""'"); 
+  }
+  arg1 = (clusterObj *)(argp1);
+  {
+    result = (char *)clusterObj_convertToString(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_clusterObj_setGroup(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   clusterObj *arg1 = (clusterObj *) 0 ;
@@ -7123,6 +7491,28 @@ SWIGINTERN PyObject *clusterObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyO
   return SWIG_Py_Void();
 }
 
+SWIGINTERN PyObject *_wrap_outputFormatObj_numformatoptions_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:outputFormatObj_numformatoptions_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_numformatoptions_get" "', argument " "1"" of type '" "outputFormatObj *""'"); 
+  }
+  arg1 = (outputFormatObj *)(argp1);
+  result = (int) ((arg1)->numformatoptions);
+  resultobj = SWIG_From_int((int)(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_outputFormatObj_name_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   outputFormatObj *arg1 = (outputFormatObj *) 0 ;
@@ -7539,162 +7929,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_outputFormatObj_numformatoptions_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  int arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OO:outputFormatObj_numformatoptions_set",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_numformatoptions_set" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-  }
-  arg1 = (outputFormatObj *)(argp1);
-  ecode2 = SWIG_AsVal_int(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "outputFormatObj_numformatoptions_set" "', argument " "2"" of type '" "int""'");
-  } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->numformatoptions = arg2;
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_outputFormatObj_numformatoptions_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  int result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:outputFormatObj_numformatoptions_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_numformatoptions_get" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-  }
-  arg1 = (outputFormatObj *)(argp1);
-  result = (int) ((arg1)->numformatoptions);
-  resultobj = SWIG_From_int((int)(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_outputFormatObj_formatoptions_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  char **arg2 = (char **) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OO:outputFormatObj_formatoptions_set",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_formatoptions_set" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-  }
-  arg1 = (outputFormatObj *)(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_char, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "outputFormatObj_formatoptions_set" "', argument " "2"" of type '" "char **""'"); 
-  }
-  arg2 = (char **)(argp2);
-  if (arg1) (arg1)->formatoptions = arg2;
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_outputFormatObj_formatoptions_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  char **result = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:outputFormatObj_formatoptions_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_formatoptions_get" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-  }
-  arg1 = (outputFormatObj *)(argp1);
-  result = (char **) ((arg1)->formatoptions);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_char, 0 |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_outputFormatObj_refcount_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  int arg2 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
-  PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"OO:outputFormatObj_refcount_set",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_refcount_set" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-  }
-  arg1 = (outputFormatObj *)(argp1);
-  ecode2 = SWIG_AsVal_int(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "outputFormatObj_refcount_set" "', argument " "2"" of type '" "int""'");
-  } 
-  arg2 = (int)(val2);
-  if (arg1) (arg1)->refcount = arg2;
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_outputFormatObj_refcount_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  int result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:outputFormatObj_refcount_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_refcount_get" "', argument " "1"" of type '" "outputFormatObj *""'"); 
-  }
-  arg1 = (outputFormatObj *)(argp1);
-  result = (int) ((arg1)->refcount);
-  resultobj = SWIG_From_int((int)(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_outputFormatObj_inmapfile_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   outputFormatObj *arg1 = (outputFormatObj *) 0 ;
@@ -8151,6 +8385,63 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_outputFormatObj_getOptionAt(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  outputFormatObj *arg1 = (outputFormatObj *) 0 ;
+  int arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:outputFormatObj_getOptionAt",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_outputFormatObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "outputFormatObj_getOptionAt" "', argument " "1"" of type '" "outputFormatObj *""'"); 
+  }
+  arg1 = (outputFormatObj *)(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "outputFormatObj_getOptionAt" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  {
+    result = (char *)outputFormatObj_getOptionAt(arg1,arg2); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_outputFormatObj_attachDevice(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   outputFormatObj *arg1 = (outputFormatObj *) 0 ;
@@ -8519,13 +8810,61 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_queryMapObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_queryMapObj_convertToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  queryMapObj *result = 0 ;
+  queryMapObj *arg1 = (queryMapObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)":new_queryMapObj")) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"O:queryMapObj_convertToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_queryMapObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "queryMapObj_convertToString" "', argument " "1"" of type '" "queryMapObj *""'"); 
+  }
+  arg1 = (queryMapObj *)(argp1);
   {
-    result = (queryMapObj *)calloc(1, sizeof(queryMapObj)); {
+    result = (char *)queryMapObj_convertToString(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_queryMapObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  queryMapObj *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)":new_queryMapObj")) SWIG_fail;
+  {
+    result = (queryMapObj *)calloc(1, sizeof(queryMapObj)); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -9692,6 +10031,54 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_webObj_convertToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  webObj *arg1 = (webObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:webObj_convertToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_webObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "webObj_convertToString" "', argument " "1"" of type '" "webObj *""'"); 
+  }
+  arg1 = (webObj *)(argp1);
+  {
+    result = (char *)webObj_convertToString(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *webObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
   if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
@@ -9701,7 +10088,7 @@ SWIGINTERN PyObject *webObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObjec
 
 SWIGINTERN PyObject *_wrap_styleObj_refcount_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -9710,9 +10097,9 @@ SWIGINTERN PyObject *_wrap_styleObj_refcount_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_refcount_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_refcount_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_refcount_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (int) ((arg1)->refcount);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -9723,7 +10110,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_autoangle_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9735,9 +10122,9 @@ SWIGINTERN PyObject *_wrap_styleObj_autoangle_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_autoangle_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_autoangle_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_autoangle_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_autoangle_set" "', argument " "2"" of type '" "int""'");
@@ -9753,7 +10140,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_autoangle_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -9762,9 +10149,9 @@ SWIGINTERN PyObject *_wrap_styleObj_autoangle_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_autoangle_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_autoangle_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_autoangle_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (int) ((arg1)->autoangle);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -9775,7 +10162,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_color_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9787,9 +10174,9 @@ SWIGINTERN PyObject *_wrap_styleObj_color_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_color_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_color_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_color_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_color_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -9805,7 +10192,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_color_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -9814,9 +10201,9 @@ SWIGINTERN PyObject *_wrap_styleObj_color_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_color_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_color_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_color_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (colorObj *)& ((arg1)->color);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 |  0 );
   return resultobj;
@@ -9827,7 +10214,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_backgroundcolor_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9839,9 +10226,9 @@ SWIGINTERN PyObject *_wrap_styleObj_backgroundcolor_set(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_backgroundcolor_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_backgroundcolor_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_backgroundcolor_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_backgroundcolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -9857,7 +10244,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_backgroundcolor_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -9866,9 +10253,9 @@ SWIGINTERN PyObject *_wrap_styleObj_backgroundcolor_get(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_backgroundcolor_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_backgroundcolor_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_backgroundcolor_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (colorObj *)& ((arg1)->backgroundcolor);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 |  0 );
   return resultobj;
@@ -9879,7 +10266,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_outlinecolor_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9891,9 +10278,9 @@ SWIGINTERN PyObject *_wrap_styleObj_outlinecolor_set(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_outlinecolor_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinecolor_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinecolor_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_outlinecolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -9909,7 +10296,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_outlinecolor_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -9918,9 +10305,9 @@ SWIGINTERN PyObject *_wrap_styleObj_outlinecolor_get(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_outlinecolor_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinecolor_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinecolor_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (colorObj *)& ((arg1)->outlinecolor);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 |  0 );
   return resultobj;
@@ -9931,7 +10318,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_opacity_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9943,9 +10330,9 @@ SWIGINTERN PyObject *_wrap_styleObj_opacity_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_opacity_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_opacity_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_opacity_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_opacity_set" "', argument " "2"" of type '" "int""'");
@@ -9961,7 +10348,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_opacity_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -9970,9 +10357,9 @@ SWIGINTERN PyObject *_wrap_styleObj_opacity_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_opacity_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_opacity_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_opacity_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (int) ((arg1)->opacity);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -9983,7 +10370,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_mincolor_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -9995,9 +10382,9 @@ SWIGINTERN PyObject *_wrap_styleObj_mincolor_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_mincolor_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_mincolor_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_mincolor_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_mincolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -10013,7 +10400,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_mincolor_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10022,9 +10409,9 @@ SWIGINTERN PyObject *_wrap_styleObj_mincolor_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_mincolor_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_mincolor_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_mincolor_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (colorObj *)& ((arg1)->mincolor);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 |  0 );
   return resultobj;
@@ -10035,7 +10422,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_maxcolor_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10047,9 +10434,9 @@ SWIGINTERN PyObject *_wrap_styleObj_maxcolor_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_maxcolor_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxcolor_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxcolor_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_maxcolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -10065,7 +10452,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_maxcolor_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10074,9 +10461,9 @@ SWIGINTERN PyObject *_wrap_styleObj_maxcolor_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_maxcolor_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxcolor_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxcolor_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (colorObj *)& ((arg1)->maxcolor);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 |  0 );
   return resultobj;
@@ -10087,7 +10474,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_minvalue_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10099,9 +10486,9 @@ SWIGINTERN PyObject *_wrap_styleObj_minvalue_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_minvalue_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minvalue_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minvalue_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_minvalue_set" "', argument " "2"" of type '" "double""'");
@@ -10117,7 +10504,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_minvalue_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10126,9 +10513,9 @@ SWIGINTERN PyObject *_wrap_styleObj_minvalue_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_minvalue_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minvalue_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minvalue_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->minvalue);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -10139,7 +10526,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_maxvalue_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10151,9 +10538,9 @@ SWIGINTERN PyObject *_wrap_styleObj_maxvalue_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_maxvalue_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxvalue_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxvalue_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_maxvalue_set" "', argument " "2"" of type '" "double""'");
@@ -10169,7 +10556,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_maxvalue_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10178,9 +10565,9 @@ SWIGINTERN PyObject *_wrap_styleObj_maxvalue_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_maxvalue_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxvalue_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxvalue_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->maxvalue);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -10191,7 +10578,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_rangeitem_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10200,9 +10587,9 @@ SWIGINTERN PyObject *_wrap_styleObj_rangeitem_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:styleObj_rangeitem_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitem_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitem_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   {
     if (arg1->rangeitem) free((char*)arg1->rangeitem);
     if (arg2) {
@@ -10221,7 +10608,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_rangeitem_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10230,9 +10617,9 @@ SWIGINTERN PyObject *_wrap_styleObj_rangeitem_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_rangeitem_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitem_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitem_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (char *) ((arg1)->rangeitem);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -10243,7 +10630,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_rangeitemindex_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10255,9 +10642,9 @@ SWIGINTERN PyObject *_wrap_styleObj_rangeitemindex_set(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_rangeitemindex_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitemindex_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitemindex_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_rangeitemindex_set" "', argument " "2"" of type '" "int""'");
@@ -10273,7 +10660,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_rangeitemindex_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10282,9 +10669,9 @@ SWIGINTERN PyObject *_wrap_styleObj_rangeitemindex_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_rangeitemindex_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitemindex_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_rangeitemindex_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (int) ((arg1)->rangeitemindex);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -10295,7 +10682,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_symbol_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10307,9 +10694,9 @@ SWIGINTERN PyObject *_wrap_styleObj_symbol_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_symbol_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbol_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbol_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_symbol_set" "', argument " "2"" of type '" "int""'");
@@ -10325,7 +10712,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_symbol_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10334,9 +10721,9 @@ SWIGINTERN PyObject *_wrap_styleObj_symbol_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_symbol_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbol_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbol_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (int) ((arg1)->symbol);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -10347,7 +10734,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_symbolname_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10356,9 +10743,9 @@ SWIGINTERN PyObject *_wrap_styleObj_symbolname_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"Oz:styleObj_symbolname_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbolname_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbolname_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   {
     if (arg1->symbolname) free((char*)arg1->symbolname);
     if (arg2) {
@@ -10377,7 +10764,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_symbolname_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10386,9 +10773,9 @@ SWIGINTERN PyObject *_wrap_styleObj_symbolname_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_symbolname_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbolname_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_symbolname_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (char *) ((arg1)->symbolname);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -10399,7 +10786,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_size_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10411,9 +10798,9 @@ SWIGINTERN PyObject *_wrap_styleObj_size_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_size_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_size_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_size_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_size_set" "', argument " "2"" of type '" "double""'");
@@ -10429,7 +10816,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_size_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10438,9 +10825,9 @@ SWIGINTERN PyObject *_wrap_styleObj_size_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_size_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_size_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_size_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->size);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -10451,7 +10838,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_minsize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10463,9 +10850,9 @@ SWIGINTERN PyObject *_wrap_styleObj_minsize_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_minsize_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minsize_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minsize_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_minsize_set" "', argument " "2"" of type '" "double""'");
@@ -10481,7 +10868,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_minsize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10490,9 +10877,9 @@ SWIGINTERN PyObject *_wrap_styleObj_minsize_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_minsize_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minsize_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minsize_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->minsize);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -10503,7 +10890,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_maxsize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10515,9 +10902,9 @@ SWIGINTERN PyObject *_wrap_styleObj_maxsize_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_maxsize_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxsize_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxsize_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_maxsize_set" "', argument " "2"" of type '" "double""'");
@@ -10533,7 +10920,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_maxsize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10542,9 +10929,9 @@ SWIGINTERN PyObject *_wrap_styleObj_maxsize_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_maxsize_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxsize_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxsize_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->maxsize);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -10555,7 +10942,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_patternlength_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10567,9 +10954,9 @@ SWIGINTERN PyObject *_wrap_styleObj_patternlength_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_patternlength_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_patternlength_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_patternlength_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_patternlength_set" "', argument " "2"" of type '" "int""'");
@@ -10585,7 +10972,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_patternlength_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10594,9 +10981,9 @@ SWIGINTERN PyObject *_wrap_styleObj_patternlength_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_patternlength_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_patternlength_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_patternlength_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (int) ((arg1)->patternlength);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -10607,7 +10994,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_pattern_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10619,9 +11006,9 @@ SWIGINTERN PyObject *_wrap_styleObj_pattern_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_pattern_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_pattern_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_pattern_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_double, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_pattern_set" "', argument " "2"" of type '" "double [MS_MAXPATTERNLENGTH]""'"); 
@@ -10644,7 +11031,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_pattern_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10653,9 +11040,9 @@ SWIGINTERN PyObject *_wrap_styleObj_pattern_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_pattern_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_pattern_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_pattern_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double *)(double *) ((arg1)->pattern);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_double, 0 |  0 );
   return resultobj;
@@ -10666,7 +11053,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_gap_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10678,9 +11065,9 @@ SWIGINTERN PyObject *_wrap_styleObj_gap_set(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_gap_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_gap_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_gap_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_gap_set" "', argument " "2"" of type '" "double""'");
@@ -10696,7 +11083,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_gap_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10705,9 +11092,9 @@ SWIGINTERN PyObject *_wrap_styleObj_gap_get(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_gap_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_gap_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_gap_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->gap);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -10718,7 +11105,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_initialgap_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10730,9 +11117,9 @@ SWIGINTERN PyObject *_wrap_styleObj_initialgap_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_initialgap_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_initialgap_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_initialgap_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_initialgap_set" "', argument " "2"" of type '" "double""'");
@@ -10748,7 +11135,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_initialgap_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10757,9 +11144,9 @@ SWIGINTERN PyObject *_wrap_styleObj_initialgap_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_initialgap_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_initialgap_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_initialgap_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->initialgap);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -10770,7 +11157,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_position_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10782,9 +11169,9 @@ SWIGINTERN PyObject *_wrap_styleObj_position_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_position_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_position_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_position_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_position_set" "', argument " "2"" of type '" "int""'");
@@ -10800,7 +11187,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_position_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10809,9 +11196,9 @@ SWIGINTERN PyObject *_wrap_styleObj_position_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_position_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_position_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_position_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (int) ((arg1)->position);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -10822,7 +11209,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_linecap_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10834,9 +11221,9 @@ SWIGINTERN PyObject *_wrap_styleObj_linecap_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_linecap_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linecap_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linecap_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_linecap_set" "', argument " "2"" of type '" "int""'");
@@ -10852,7 +11239,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_linecap_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10861,9 +11248,9 @@ SWIGINTERN PyObject *_wrap_styleObj_linecap_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_linecap_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linecap_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linecap_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (int) ((arg1)->linecap);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -10874,7 +11261,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_linejoin_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10886,9 +11273,9 @@ SWIGINTERN PyObject *_wrap_styleObj_linejoin_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_linejoin_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoin_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoin_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_linejoin_set" "', argument " "2"" of type '" "int""'");
@@ -10904,7 +11291,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_linejoin_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10913,9 +11300,9 @@ SWIGINTERN PyObject *_wrap_styleObj_linejoin_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_linejoin_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoin_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoin_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (int) ((arg1)->linejoin);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -10926,7 +11313,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_linejoinmaxsize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10938,9 +11325,9 @@ SWIGINTERN PyObject *_wrap_styleObj_linejoinmaxsize_set(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_linejoinmaxsize_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoinmaxsize_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoinmaxsize_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_linejoinmaxsize_set" "', argument " "2"" of type '" "double""'");
@@ -10956,7 +11343,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_linejoinmaxsize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -10965,9 +11352,9 @@ SWIGINTERN PyObject *_wrap_styleObj_linejoinmaxsize_get(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_linejoinmaxsize_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoinmaxsize_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_linejoinmaxsize_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->linejoinmaxsize);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -10978,7 +11365,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_width_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -10990,9 +11377,9 @@ SWIGINTERN PyObject *_wrap_styleObj_width_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_width_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_width_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_width_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_width_set" "', argument " "2"" of type '" "double""'");
@@ -11008,7 +11395,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_width_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11017,9 +11404,9 @@ SWIGINTERN PyObject *_wrap_styleObj_width_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_width_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_width_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_width_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->width);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -11030,7 +11417,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_outlinewidth_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11042,9 +11429,9 @@ SWIGINTERN PyObject *_wrap_styleObj_outlinewidth_set(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_outlinewidth_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinewidth_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinewidth_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_outlinewidth_set" "', argument " "2"" of type '" "double""'");
@@ -11060,7 +11447,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_outlinewidth_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11069,9 +11456,9 @@ SWIGINTERN PyObject *_wrap_styleObj_outlinewidth_get(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_outlinewidth_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinewidth_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_outlinewidth_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->outlinewidth);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -11082,7 +11469,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_minwidth_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11094,9 +11481,9 @@ SWIGINTERN PyObject *_wrap_styleObj_minwidth_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_minwidth_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minwidth_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minwidth_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_minwidth_set" "', argument " "2"" of type '" "double""'");
@@ -11112,7 +11499,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_minwidth_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11121,9 +11508,9 @@ SWIGINTERN PyObject *_wrap_styleObj_minwidth_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_minwidth_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minwidth_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minwidth_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->minwidth);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -11134,7 +11521,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_maxwidth_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11146,9 +11533,9 @@ SWIGINTERN PyObject *_wrap_styleObj_maxwidth_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_maxwidth_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxwidth_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxwidth_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_maxwidth_set" "', argument " "2"" of type '" "double""'");
@@ -11164,7 +11551,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_maxwidth_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11173,9 +11560,9 @@ SWIGINTERN PyObject *_wrap_styleObj_maxwidth_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_maxwidth_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxwidth_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxwidth_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->maxwidth);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -11186,7 +11573,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_offsetx_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11198,9 +11585,9 @@ SWIGINTERN PyObject *_wrap_styleObj_offsetx_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_offsetx_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsetx_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsetx_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_offsetx_set" "', argument " "2"" of type '" "double""'");
@@ -11216,7 +11603,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_offsetx_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11225,9 +11612,9 @@ SWIGINTERN PyObject *_wrap_styleObj_offsetx_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_offsetx_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsetx_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsetx_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->offsetx);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -11238,7 +11625,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_offsety_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11250,9 +11637,9 @@ SWIGINTERN PyObject *_wrap_styleObj_offsety_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_offsety_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsety_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsety_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_offsety_set" "', argument " "2"" of type '" "double""'");
@@ -11268,7 +11655,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_offsety_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11277,9 +11664,9 @@ SWIGINTERN PyObject *_wrap_styleObj_offsety_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_offsety_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsety_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_offsety_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->offsety);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -11290,7 +11677,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_polaroffsetpixel_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11302,9 +11689,9 @@ SWIGINTERN PyObject *_wrap_styleObj_polaroffsetpixel_set(PyObject *SWIGUNUSEDPAR
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_polaroffsetpixel_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetpixel_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetpixel_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_polaroffsetpixel_set" "', argument " "2"" of type '" "double""'");
@@ -11320,7 +11707,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_polaroffsetpixel_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11329,9 +11716,9 @@ SWIGINTERN PyObject *_wrap_styleObj_polaroffsetpixel_get(PyObject *SWIGUNUSEDPAR
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_polaroffsetpixel_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetpixel_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetpixel_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->polaroffsetpixel);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -11342,7 +11729,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_polaroffsetangle_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11354,9 +11741,9 @@ SWIGINTERN PyObject *_wrap_styleObj_polaroffsetangle_set(PyObject *SWIGUNUSEDPAR
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_polaroffsetangle_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetangle_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetangle_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_polaroffsetangle_set" "', argument " "2"" of type '" "double""'");
@@ -11372,7 +11759,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_polaroffsetangle_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11381,9 +11768,9 @@ SWIGINTERN PyObject *_wrap_styleObj_polaroffsetangle_get(PyObject *SWIGUNUSEDPAR
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_polaroffsetangle_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetangle_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_polaroffsetangle_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->polaroffsetangle);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -11394,7 +11781,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_angle_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11406,9 +11793,9 @@ SWIGINTERN PyObject *_wrap_styleObj_angle_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_angle_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_angle_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_angle_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_angle_set" "', argument " "2"" of type '" "double""'");
@@ -11424,7 +11811,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_angle_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11433,9 +11820,9 @@ SWIGINTERN PyObject *_wrap_styleObj_angle_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_angle_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_angle_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_angle_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->angle);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -11446,7 +11833,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_antialias_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11458,9 +11845,9 @@ SWIGINTERN PyObject *_wrap_styleObj_antialias_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_antialias_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_antialias_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_antialias_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_antialias_set" "', argument " "2"" of type '" "int""'");
@@ -11476,7 +11863,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_antialias_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11485,9 +11872,9 @@ SWIGINTERN PyObject *_wrap_styleObj_antialias_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_antialias_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_antialias_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_antialias_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (int) ((arg1)->antialias);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -11498,7 +11885,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_minscaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11510,9 +11897,9 @@ SWIGINTERN PyObject *_wrap_styleObj_minscaledenom_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_minscaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minscaledenom_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minscaledenom_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_minscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -11528,7 +11915,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_minscaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11537,9 +11924,9 @@ SWIGINTERN PyObject *_wrap_styleObj_minscaledenom_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_minscaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minscaledenom_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_minscaledenom_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->minscaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -11550,7 +11937,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_maxscaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11562,9 +11949,9 @@ SWIGINTERN PyObject *_wrap_styleObj_maxscaledenom_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_maxscaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxscaledenom_set" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxscaledenom_set" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_maxscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -11580,7 +11967,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_maxscaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11589,9 +11976,9 @@ SWIGINTERN PyObject *_wrap_styleObj_maxscaledenom_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_maxscaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxscaledenom_get" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_maxscaledenom_get" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   result = (double) ((arg1)->maxscaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -11606,7 +11993,7 @@ SWIGINTERN PyObject *_wrap_new_styleObj(PyObject *SWIGUNUSEDPARM(self), PyObject
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  styleObj *result = 0 ;
+  struct styleObj *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"|O:new_styleObj",&obj0)) SWIG_fail;
   if (obj0) {
@@ -11617,7 +12004,7 @@ SWIGINTERN PyObject *_wrap_new_styleObj(PyObject *SWIGUNUSEDPARM(self), PyObject
     arg1 = (classObj *)(argp1);
   }
   {
-    result = (styleObj *)new_styleObj(arg1); {
+    result = (struct styleObj *)new_styleObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -11651,7 +12038,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_delete_styleObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11659,9 +12046,9 @@ SWIGINTERN PyObject *_wrap_delete_styleObj(PyObject *SWIGUNUSEDPARM(self), PyObj
   if (!PyArg_ParseTuple(args,(char *)"O:delete_styleObj",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_styleObj" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_styleObj" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   {
     delete_styleObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -11697,7 +12084,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_updateFromString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11707,9 +12094,9 @@ SWIGINTERN PyObject *_wrap_styleObj_updateFromString(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"Oz:styleObj_updateFromString",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_updateFromString" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_updateFromString" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   {
     result = (int)styleObj_updateFromString(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -11743,9 +12130,57 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_styleObj_convertToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:styleObj_convertToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_convertToString" "', argument " "1"" of type '" "struct styleObj *""'"); 
+  }
+  arg1 = (struct styleObj *)(argp1);
+  {
+    result = (char *)styleObj_convertToString(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_styleObj_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -11754,9 +12189,9 @@ SWIGINTERN PyObject *_wrap_styleObj_clone(PyObject *SWIGUNUSEDPARM(self), PyObje
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_clone",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_clone" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_clone" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   {
     result = (styleObj *)styleObj_clone(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -11792,7 +12227,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_setSymbolByName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   char *arg3 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -11806,9 +12241,9 @@ SWIGINTERN PyObject *_wrap_styleObj_setSymbolByName(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"OOz:styleObj_setSymbolByName",&obj0,&obj1,&arg3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setSymbolByName" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setSymbolByName" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "styleObj_setSymbolByName" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -11849,7 +12284,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_removeBinding(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11862,9 +12297,9 @@ SWIGINTERN PyObject *_wrap_styleObj_removeBinding(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_removeBinding",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_removeBinding" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_removeBinding" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_removeBinding" "', argument " "2"" of type '" "int""'");
@@ -11905,7 +12340,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_setBinding(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   char *arg3 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -11919,9 +12354,9 @@ SWIGINTERN PyObject *_wrap_styleObj_setBinding(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OOz:styleObj_setBinding",&obj0,&obj1,&arg3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setBinding" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setBinding" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_setBinding" "', argument " "2"" of type '" "int""'");
@@ -11962,7 +12397,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_getBinding(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -11975,9 +12410,9 @@ SWIGINTERN PyObject *_wrap_styleObj_getBinding(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:styleObj_getBinding",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_getBinding" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_getBinding" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "styleObj_getBinding" "', argument " "2"" of type '" "int""'");
@@ -12018,7 +12453,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_getGeomTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12027,9 +12462,9 @@ SWIGINTERN PyObject *_wrap_styleObj_getGeomTransform(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"O:styleObj_getGeomTransform",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_getGeomTransform" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_getGeomTransform" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   {
     result = (char *)styleObj_getGeomTransform(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -12065,7 +12500,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_styleObj_setGeomTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  styleObj *arg1 = (styleObj *) 0 ;
+  struct styleObj *arg1 = (struct styleObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12074,9 +12509,9 @@ SWIGINTERN PyObject *_wrap_styleObj_setGeomTransform(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"Oz:styleObj_setGeomTransform",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setGeomTransform" "', argument " "1"" of type '" "styleObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "styleObj_setGeomTransform" "', argument " "1"" of type '" "struct styleObj *""'"); 
   }
-  arg1 = (styleObj *)(argp1);
+  arg1 = (struct styleObj *)(argp1);
   {
     styleObj_setGeomTransform(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -12336,7 +12771,7 @@ SWIGINTERN PyObject *labelLeaderObj_swigregister(PyObject *SWIGUNUSEDPARM(self),
 
 SWIGINTERN PyObject *_wrap_labelObj_refcount_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12345,9 +12780,9 @@ SWIGINTERN PyObject *_wrap_labelObj_refcount_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_refcount_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_refcount_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_refcount_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->refcount);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -12358,7 +12793,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_font_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12367,9 +12802,9 @@ SWIGINTERN PyObject *_wrap_labelObj_font_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"Oz:labelObj_font_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_font_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_font_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   {
     if (arg1->font) free((char*)arg1->font);
     if (arg2) {
@@ -12388,7 +12823,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_font_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12397,9 +12832,9 @@ SWIGINTERN PyObject *_wrap_labelObj_font_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_font_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_font_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_font_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (char *) ((arg1)->font);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -12410,7 +12845,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_type_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   enum MS_FONT_TYPE arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12422,9 +12857,9 @@ SWIGINTERN PyObject *_wrap_labelObj_type_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_type_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_type_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_type_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_type_set" "', argument " "2"" of type '" "enum MS_FONT_TYPE""'");
@@ -12440,7 +12875,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_type_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12449,9 +12884,9 @@ SWIGINTERN PyObject *_wrap_labelObj_type_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_type_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_type_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_type_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (enum MS_FONT_TYPE) ((arg1)->type);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -12462,7 +12897,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_color_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12474,9 +12909,9 @@ SWIGINTERN PyObject *_wrap_labelObj_color_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_color_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_color_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_color_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_color_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -12492,7 +12927,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_color_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12501,9 +12936,9 @@ SWIGINTERN PyObject *_wrap_labelObj_color_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_color_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_color_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_color_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (colorObj *)& ((arg1)->color);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 |  0 );
   return resultobj;
@@ -12514,7 +12949,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_outlinecolor_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12526,9 +12961,9 @@ SWIGINTERN PyObject *_wrap_labelObj_outlinecolor_set(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_outlinecolor_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinecolor_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinecolor_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_outlinecolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -12544,7 +12979,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_outlinecolor_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12553,9 +12988,9 @@ SWIGINTERN PyObject *_wrap_labelObj_outlinecolor_get(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_outlinecolor_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinecolor_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinecolor_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (colorObj *)& ((arg1)->outlinecolor);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 |  0 );
   return resultobj;
@@ -12566,7 +13001,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_outlinewidth_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12578,9 +13013,9 @@ SWIGINTERN PyObject *_wrap_labelObj_outlinewidth_set(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_outlinewidth_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinewidth_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinewidth_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_outlinewidth_set" "', argument " "2"" of type '" "int""'");
@@ -12596,7 +13031,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_outlinewidth_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12605,9 +13040,9 @@ SWIGINTERN PyObject *_wrap_labelObj_outlinewidth_get(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_outlinewidth_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinewidth_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_outlinewidth_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->outlinewidth);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -12618,7 +13053,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_shadowcolor_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12630,9 +13065,9 @@ SWIGINTERN PyObject *_wrap_labelObj_shadowcolor_set(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_shadowcolor_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowcolor_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowcolor_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_shadowcolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -12648,7 +13083,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_shadowcolor_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12657,9 +13092,9 @@ SWIGINTERN PyObject *_wrap_labelObj_shadowcolor_get(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_shadowcolor_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowcolor_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowcolor_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (colorObj *)& ((arg1)->shadowcolor);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 |  0 );
   return resultobj;
@@ -12670,7 +13105,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_shadowsizex_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12682,9 +13117,9 @@ SWIGINTERN PyObject *_wrap_labelObj_shadowsizex_set(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_shadowsizex_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizex_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizex_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_shadowsizex_set" "', argument " "2"" of type '" "int""'");
@@ -12700,7 +13135,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_shadowsizex_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12709,9 +13144,9 @@ SWIGINTERN PyObject *_wrap_labelObj_shadowsizex_get(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_shadowsizex_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizex_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizex_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->shadowsizex);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -12722,7 +13157,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_shadowsizey_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12734,9 +13169,9 @@ SWIGINTERN PyObject *_wrap_labelObj_shadowsizey_set(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_shadowsizey_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizey_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizey_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_shadowsizey_set" "', argument " "2"" of type '" "int""'");
@@ -12752,7 +13187,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_shadowsizey_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12761,9 +13196,9 @@ SWIGINTERN PyObject *_wrap_labelObj_shadowsizey_get(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_shadowsizey_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizey_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_shadowsizey_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->shadowsizey);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -12774,7 +13209,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_size_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12786,9 +13221,9 @@ SWIGINTERN PyObject *_wrap_labelObj_size_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_size_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_size_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_size_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_size_set" "', argument " "2"" of type '" "double""'");
@@ -12804,7 +13239,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_size_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12813,9 +13248,9 @@ SWIGINTERN PyObject *_wrap_labelObj_size_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_size_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_size_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_size_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (double) ((arg1)->size);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -12826,7 +13261,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_minsize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12838,9 +13273,9 @@ SWIGINTERN PyObject *_wrap_labelObj_minsize_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_minsize_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minsize_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minsize_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_minsize_set" "', argument " "2"" of type '" "double""'");
@@ -12856,7 +13291,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_minsize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12865,9 +13300,9 @@ SWIGINTERN PyObject *_wrap_labelObj_minsize_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_minsize_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minsize_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minsize_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (double) ((arg1)->minsize);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -12878,7 +13313,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_maxsize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12890,9 +13325,9 @@ SWIGINTERN PyObject *_wrap_labelObj_maxsize_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_maxsize_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxsize_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxsize_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_maxsize_set" "', argument " "2"" of type '" "double""'");
@@ -12908,7 +13343,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_maxsize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12917,9 +13352,9 @@ SWIGINTERN PyObject *_wrap_labelObj_maxsize_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_maxsize_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxsize_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxsize_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (double) ((arg1)->maxsize);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -12930,7 +13365,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_position_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12942,9 +13377,9 @@ SWIGINTERN PyObject *_wrap_labelObj_position_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_position_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_position_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_position_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_position_set" "', argument " "2"" of type '" "int""'");
@@ -12960,7 +13395,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_position_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -12969,9 +13404,9 @@ SWIGINTERN PyObject *_wrap_labelObj_position_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_position_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_position_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_position_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->position);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -12982,7 +13417,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_offsetx_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -12994,9 +13429,9 @@ SWIGINTERN PyObject *_wrap_labelObj_offsetx_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_offsetx_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsetx_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsetx_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_offsetx_set" "', argument " "2"" of type '" "int""'");
@@ -13012,7 +13447,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_offsetx_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13021,9 +13456,9 @@ SWIGINTERN PyObject *_wrap_labelObj_offsetx_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_offsetx_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsetx_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsetx_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->offsetx);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13034,7 +13469,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_offsety_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13046,9 +13481,9 @@ SWIGINTERN PyObject *_wrap_labelObj_offsety_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_offsety_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsety_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsety_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_offsety_set" "', argument " "2"" of type '" "int""'");
@@ -13064,7 +13499,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_offsety_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13073,9 +13508,9 @@ SWIGINTERN PyObject *_wrap_labelObj_offsety_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_offsety_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsety_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_offsety_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->offsety);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13086,7 +13521,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_angle_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13098,9 +13533,9 @@ SWIGINTERN PyObject *_wrap_labelObj_angle_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_angle_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_angle_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_angle_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_angle_set" "', argument " "2"" of type '" "double""'");
@@ -13116,7 +13551,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_angle_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13125,9 +13560,9 @@ SWIGINTERN PyObject *_wrap_labelObj_angle_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_angle_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_angle_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_angle_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (double) ((arg1)->angle);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -13138,7 +13573,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_anglemode_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13150,9 +13585,9 @@ SWIGINTERN PyObject *_wrap_labelObj_anglemode_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_anglemode_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_anglemode_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_anglemode_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_anglemode_set" "', argument " "2"" of type '" "int""'");
@@ -13168,7 +13603,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_anglemode_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13177,9 +13612,9 @@ SWIGINTERN PyObject *_wrap_labelObj_anglemode_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_anglemode_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_anglemode_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_anglemode_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->anglemode);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13190,7 +13625,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_buffer_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13202,9 +13637,9 @@ SWIGINTERN PyObject *_wrap_labelObj_buffer_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_buffer_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_buffer_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_buffer_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_buffer_set" "', argument " "2"" of type '" "int""'");
@@ -13220,7 +13655,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_buffer_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13229,9 +13664,9 @@ SWIGINTERN PyObject *_wrap_labelObj_buffer_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_buffer_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_buffer_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_buffer_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->buffer);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13242,7 +13677,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_antialias_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13254,9 +13689,9 @@ SWIGINTERN PyObject *_wrap_labelObj_antialias_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_antialias_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_antialias_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_antialias_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_antialias_set" "', argument " "2"" of type '" "int""'");
@@ -13272,7 +13707,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_antialias_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13281,9 +13716,9 @@ SWIGINTERN PyObject *_wrap_labelObj_antialias_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_antialias_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_antialias_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_antialias_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->antialias);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13294,7 +13729,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_align_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13306,9 +13741,9 @@ SWIGINTERN PyObject *_wrap_labelObj_align_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_align_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_align_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_align_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_align_set" "', argument " "2"" of type '" "int""'");
@@ -13324,7 +13759,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_align_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13333,9 +13768,9 @@ SWIGINTERN PyObject *_wrap_labelObj_align_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_align_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_align_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_align_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->align);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13346,7 +13781,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_wrap_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13358,9 +13793,9 @@ SWIGINTERN PyObject *_wrap_labelObj_wrap_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_wrap_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_wrap_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_wrap_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_char(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_wrap_set" "', argument " "2"" of type '" "char""'");
@@ -13376,7 +13811,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_wrap_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13385,9 +13820,9 @@ SWIGINTERN PyObject *_wrap_labelObj_wrap_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_wrap_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_wrap_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_wrap_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (char) ((arg1)->wrap);
   resultobj = SWIG_From_char((char)(result));
   return resultobj;
@@ -13398,7 +13833,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_maxlength_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13410,9 +13845,9 @@ SWIGINTERN PyObject *_wrap_labelObj_maxlength_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_maxlength_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxlength_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxlength_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_maxlength_set" "', argument " "2"" of type '" "int""'");
@@ -13428,7 +13863,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_maxlength_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13437,9 +13872,9 @@ SWIGINTERN PyObject *_wrap_labelObj_maxlength_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_maxlength_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxlength_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxlength_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->maxlength);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13450,7 +13885,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_minlength_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13462,9 +13897,9 @@ SWIGINTERN PyObject *_wrap_labelObj_minlength_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_minlength_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minlength_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minlength_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_minlength_set" "', argument " "2"" of type '" "int""'");
@@ -13480,7 +13915,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_minlength_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13489,9 +13924,9 @@ SWIGINTERN PyObject *_wrap_labelObj_minlength_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_minlength_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minlength_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minlength_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->minlength);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13502,7 +13937,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_space_size_10_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13514,9 +13949,9 @@ SWIGINTERN PyObject *_wrap_labelObj_space_size_10_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_space_size_10_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_space_size_10_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_space_size_10_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_space_size_10_set" "', argument " "2"" of type '" "double""'");
@@ -13532,7 +13967,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_space_size_10_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13541,9 +13976,9 @@ SWIGINTERN PyObject *_wrap_labelObj_space_size_10_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_space_size_10_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_space_size_10_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_space_size_10_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (double) ((arg1)->space_size_10);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -13554,7 +13989,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_minfeaturesize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13566,9 +14001,9 @@ SWIGINTERN PyObject *_wrap_labelObj_minfeaturesize_set(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_minfeaturesize_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minfeaturesize_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minfeaturesize_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_minfeaturesize_set" "', argument " "2"" of type '" "int""'");
@@ -13584,7 +14019,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_minfeaturesize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13593,9 +14028,9 @@ SWIGINTERN PyObject *_wrap_labelObj_minfeaturesize_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_minfeaturesize_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minfeaturesize_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minfeaturesize_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->minfeaturesize);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13606,7 +14041,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_autominfeaturesize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13618,9 +14053,9 @@ SWIGINTERN PyObject *_wrap_labelObj_autominfeaturesize_set(PyObject *SWIGUNUSEDP
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_autominfeaturesize_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_autominfeaturesize_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_autominfeaturesize_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_autominfeaturesize_set" "', argument " "2"" of type '" "int""'");
@@ -13636,7 +14071,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_autominfeaturesize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13645,9 +14080,9 @@ SWIGINTERN PyObject *_wrap_labelObj_autominfeaturesize_get(PyObject *SWIGUNUSEDP
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_autominfeaturesize_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_autominfeaturesize_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_autominfeaturesize_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->autominfeaturesize);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13658,7 +14093,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_minscaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13670,9 +14105,9 @@ SWIGINTERN PyObject *_wrap_labelObj_minscaledenom_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_minscaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minscaledenom_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minscaledenom_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_minscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -13688,7 +14123,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_minscaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13697,9 +14132,9 @@ SWIGINTERN PyObject *_wrap_labelObj_minscaledenom_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_minscaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minscaledenom_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_minscaledenom_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (double) ((arg1)->minscaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -13710,7 +14145,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_maxscaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13722,9 +14157,9 @@ SWIGINTERN PyObject *_wrap_labelObj_maxscaledenom_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_maxscaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxscaledenom_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxscaledenom_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_maxscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -13740,7 +14175,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_maxscaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13749,9 +14184,9 @@ SWIGINTERN PyObject *_wrap_labelObj_maxscaledenom_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_maxscaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxscaledenom_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxscaledenom_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (double) ((arg1)->maxscaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -13762,7 +14197,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_mindistance_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13774,9 +14209,9 @@ SWIGINTERN PyObject *_wrap_labelObj_mindistance_set(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_mindistance_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_mindistance_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_mindistance_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_mindistance_set" "', argument " "2"" of type '" "int""'");
@@ -13792,7 +14227,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_mindistance_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13801,9 +14236,9 @@ SWIGINTERN PyObject *_wrap_labelObj_mindistance_get(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_mindistance_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_mindistance_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_mindistance_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->mindistance);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13814,7 +14249,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_repeatdistance_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13826,9 +14261,9 @@ SWIGINTERN PyObject *_wrap_labelObj_repeatdistance_set(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_repeatdistance_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_repeatdistance_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_repeatdistance_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_repeatdistance_set" "', argument " "2"" of type '" "int""'");
@@ -13844,7 +14279,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_repeatdistance_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13853,9 +14288,9 @@ SWIGINTERN PyObject *_wrap_labelObj_repeatdistance_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_repeatdistance_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_repeatdistance_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_repeatdistance_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->repeatdistance);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13866,7 +14301,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_maxoverlapangle_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13878,9 +14313,9 @@ SWIGINTERN PyObject *_wrap_labelObj_maxoverlapangle_set(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_maxoverlapangle_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxoverlapangle_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxoverlapangle_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_maxoverlapangle_set" "', argument " "2"" of type '" "double""'");
@@ -13896,7 +14331,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_maxoverlapangle_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13905,9 +14340,9 @@ SWIGINTERN PyObject *_wrap_labelObj_maxoverlapangle_get(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_maxoverlapangle_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxoverlapangle_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_maxoverlapangle_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (double) ((arg1)->maxoverlapangle);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -13918,7 +14353,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_partials_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13930,9 +14365,9 @@ SWIGINTERN PyObject *_wrap_labelObj_partials_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_partials_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_partials_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_partials_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_partials_set" "', argument " "2"" of type '" "int""'");
@@ -13948,7 +14383,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_partials_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -13957,9 +14392,9 @@ SWIGINTERN PyObject *_wrap_labelObj_partials_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_partials_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_partials_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_partials_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->partials);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -13970,7 +14405,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_force_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -13982,9 +14417,9 @@ SWIGINTERN PyObject *_wrap_labelObj_force_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_force_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_force_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_force_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_force_set" "', argument " "2"" of type '" "int""'");
@@ -14000,7 +14435,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_force_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14009,9 +14444,9 @@ SWIGINTERN PyObject *_wrap_labelObj_force_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_force_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_force_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_force_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->force);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -14022,7 +14457,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_encoding_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14031,9 +14466,9 @@ SWIGINTERN PyObject *_wrap_labelObj_encoding_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:labelObj_encoding_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_encoding_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_encoding_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   {
     if (arg1->encoding) free((char*)arg1->encoding);
     if (arg2) {
@@ -14052,7 +14487,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_encoding_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14061,9 +14496,9 @@ SWIGINTERN PyObject *_wrap_labelObj_encoding_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_encoding_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_encoding_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_encoding_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (char *) ((arg1)->encoding);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -14074,7 +14509,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_priority_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14086,9 +14521,9 @@ SWIGINTERN PyObject *_wrap_labelObj_priority_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_priority_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_priority_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_priority_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_priority_set" "', argument " "2"" of type '" "int""'");
@@ -14104,7 +14539,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_priority_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14113,9 +14548,9 @@ SWIGINTERN PyObject *_wrap_labelObj_priority_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_priority_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_priority_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_priority_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->priority);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -14126,7 +14561,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_status_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14138,9 +14573,9 @@ SWIGINTERN PyObject *_wrap_labelObj_status_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_status_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_status_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_status_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_status_set" "', argument " "2"" of type '" "int""'");
@@ -14156,7 +14591,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_status_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14165,9 +14600,9 @@ SWIGINTERN PyObject *_wrap_labelObj_status_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_status_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_status_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_status_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->status);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -14178,7 +14613,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_numstyles_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14190,9 +14625,9 @@ SWIGINTERN PyObject *_wrap_labelObj_numstyles_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_numstyles_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_numstyles_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_numstyles_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_numstyles_set" "', argument " "2"" of type '" "int""'");
@@ -14208,7 +14643,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_numstyles_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14217,9 +14652,9 @@ SWIGINTERN PyObject *_wrap_labelObj_numstyles_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_numstyles_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_numstyles_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_numstyles_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (int) ((arg1)->numstyles);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -14230,7 +14665,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_annotext_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14239,9 +14674,9 @@ SWIGINTERN PyObject *_wrap_labelObj_annotext_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:labelObj_annotext_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annotext_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annotext_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   {
     if (arg1->annotext) free((char*)arg1->annotext);
     if (arg2) {
@@ -14260,7 +14695,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_annotext_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14269,9 +14704,9 @@ SWIGINTERN PyObject *_wrap_labelObj_annotext_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_annotext_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annotext_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annotext_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (char *) ((arg1)->annotext);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -14282,7 +14717,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_annopoint_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   pointObj *arg2 = (pointObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14294,9 +14729,9 @@ SWIGINTERN PyObject *_wrap_labelObj_annopoint_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_annopoint_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoint_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoint_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_pointObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_annopoint_set" "', argument " "2"" of type '" "pointObj *""'"); 
@@ -14312,7 +14747,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_annopoint_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14321,9 +14756,9 @@ SWIGINTERN PyObject *_wrap_labelObj_annopoint_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_annopoint_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoint_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoint_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (pointObj *)& ((arg1)->annopoint);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_pointObj, 0 |  0 );
   return resultobj;
@@ -14334,7 +14769,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_annopoly_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   shapeObj *arg2 = (shapeObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14346,9 +14781,9 @@ SWIGINTERN PyObject *_wrap_labelObj_annopoly_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_annopoly_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoly_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoly_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_shapeObj, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_annopoly_set" "', argument " "2"" of type '" "shapeObj *""'"); 
@@ -14364,7 +14799,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_annopoly_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14373,9 +14808,9 @@ SWIGINTERN PyObject *_wrap_labelObj_annopoly_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_annopoly_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoly_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_annopoly_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (shapeObj *) ((arg1)->annopoly);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_shapeObj, 0 |  0 );
   return resultobj;
@@ -14386,7 +14821,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_leader_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   labelLeaderObj *arg2 = (labelLeaderObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14398,9 +14833,9 @@ SWIGINTERN PyObject *_wrap_labelObj_leader_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_leader_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_leader_set" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_leader_set" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_labelLeaderObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_leader_set" "', argument " "2"" of type '" "labelLeaderObj *""'"); 
@@ -14416,7 +14851,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_leader_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14425,9 +14860,9 @@ SWIGINTERN PyObject *_wrap_labelObj_leader_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_leader_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_leader_get" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_leader_get" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   result = (labelLeaderObj *)& ((arg1)->leader);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelLeaderObj, 0 |  0 );
   return resultobj;
@@ -14438,11 +14873,11 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_labelObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *result = 0 ;
+  struct labelObj *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_labelObj")) SWIG_fail;
   {
-    result = (labelObj *)new_labelObj(); {
+    result = (struct labelObj *)new_labelObj(); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -14476,7 +14911,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_delete_labelObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14484,9 +14919,9 @@ SWIGINTERN PyObject *_wrap_delete_labelObj(PyObject *SWIGUNUSEDPARM(self), PyObj
   if (!PyArg_ParseTuple(args,(char *)"O:delete_labelObj",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_labelObj" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_labelObj" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   {
     delete_labelObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -14522,7 +14957,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_updateFromString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14532,9 +14967,9 @@ SWIGINTERN PyObject *_wrap_labelObj_updateFromString(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"Oz:labelObj_updateFromString",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_updateFromString" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_updateFromString" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   {
     result = (int)labelObj_updateFromString(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -14568,9 +15003,57 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_labelObj_convertToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:labelObj_convertToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_convertToString" "', argument " "1"" of type '" "struct labelObj *""'"); 
+  }
+  arg1 = (struct labelObj *)(argp1);
+  {
+    result = (char *)labelObj_convertToString(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_labelObj_removeBinding(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14583,9 +15066,9 @@ SWIGINTERN PyObject *_wrap_labelObj_removeBinding(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_removeBinding",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_removeBinding" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_removeBinding" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_removeBinding" "', argument " "2"" of type '" "int""'");
@@ -14626,7 +15109,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_getBinding(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14639,9 +15122,9 @@ SWIGINTERN PyObject *_wrap_labelObj_getBinding(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_getBinding",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getBinding" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getBinding" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_getBinding" "', argument " "2"" of type '" "int""'");
@@ -14682,7 +15165,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_setBinding(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   char *arg3 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -14696,9 +15179,9 @@ SWIGINTERN PyObject *_wrap_labelObj_setBinding(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OOz:labelObj_setBinding",&obj0,&obj1,&arg3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setBinding" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setBinding" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_setBinding" "', argument " "2"" of type '" "int""'");
@@ -14739,7 +15222,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_setExpression(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14749,9 +15232,9 @@ SWIGINTERN PyObject *_wrap_labelObj_setExpression(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:labelObj_setExpression",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setExpression" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setExpression" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   {
     result = (int)labelObj_setExpression(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -14787,7 +15270,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_getExpressionString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14796,9 +15279,9 @@ SWIGINTERN PyObject *_wrap_labelObj_getExpressionString(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_getExpressionString",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getExpressionString" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getExpressionString" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   {
     result = (char *)labelObj_getExpressionString(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -14835,7 +15318,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_setText(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14845,9 +15328,9 @@ SWIGINTERN PyObject *_wrap_labelObj_setText(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"Oz:labelObj_setText",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setText" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_setText" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   {
     result = (int)labelObj_setText(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -14883,7 +15366,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_getTextString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -14892,9 +15375,9 @@ SWIGINTERN PyObject *_wrap_labelObj_getTextString(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:labelObj_getTextString",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getTextString" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getTextString" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   {
     result = (char *)labelObj_getTextString(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -14931,7 +15414,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_getStyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -14944,9 +15427,9 @@ SWIGINTERN PyObject *_wrap_labelObj_getStyle(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_getStyle",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getStyle" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_getStyle" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_getStyle" "', argument " "2"" of type '" "int""'");
@@ -14987,7 +15470,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_insertStyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   styleObj *arg2 = (styleObj *) 0 ;
   int arg3 = (int) -1 ;
   void *argp1 = 0 ;
@@ -15004,9 +15487,9 @@ SWIGINTERN PyObject *_wrap_labelObj_insertStyle(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO|O:labelObj_insertStyle",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_insertStyle" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_insertStyle" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "labelObj_insertStyle" "', argument " "2"" of type '" "styleObj *""'"); 
@@ -15054,7 +15537,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_removeStyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15067,9 +15550,9 @@ SWIGINTERN PyObject *_wrap_labelObj_removeStyle(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_removeStyle",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_removeStyle" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_removeStyle" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_removeStyle" "', argument " "2"" of type '" "int""'");
@@ -15110,7 +15593,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_moveStyleUp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15123,9 +15606,9 @@ SWIGINTERN PyObject *_wrap_labelObj_moveStyleUp(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_moveStyleUp",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_moveStyleUp" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_moveStyleUp" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_moveStyleUp" "', argument " "2"" of type '" "int""'");
@@ -15166,7 +15649,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_labelObj_moveStyleDown(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  labelObj *arg1 = (labelObj *) 0 ;
+  struct labelObj *arg1 = (struct labelObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15179,9 +15662,9 @@ SWIGINTERN PyObject *_wrap_labelObj_moveStyleDown(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:labelObj_moveStyleDown",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_moveStyleDown" "', argument " "1"" of type '" "labelObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "labelObj_moveStyleDown" "', argument " "1"" of type '" "struct labelObj *""'"); 
   }
-  arg1 = (labelObj *)(argp1);
+  arg1 = (struct labelObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "labelObj_moveStyleDown" "', argument " "2"" of type '" "int""'");
@@ -15229,7 +15712,7 @@ SWIGINTERN PyObject *labelObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObj
 
 SWIGINTERN PyObject *_wrap_classObj_status_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15241,9 +15724,9 @@ SWIGINTERN PyObject *_wrap_classObj_status_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_status_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_status_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_status_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_status_set" "', argument " "2"" of type '" "int""'");
@@ -15259,7 +15742,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_status_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15268,9 +15751,9 @@ SWIGINTERN PyObject *_wrap_classObj_status_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_status_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_status_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_status_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (int) ((arg1)->status);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -15281,7 +15764,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_numstyles_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15290,9 +15773,9 @@ SWIGINTERN PyObject *_wrap_classObj_numstyles_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_numstyles_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numstyles_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numstyles_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (int) ((arg1)->numstyles);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -15303,7 +15786,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_numlabels_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15315,9 +15798,9 @@ SWIGINTERN PyObject *_wrap_classObj_numlabels_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_numlabels_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numlabels_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numlabels_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_numlabels_set" "', argument " "2"" of type '" "int""'");
@@ -15333,7 +15816,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_numlabels_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15342,9 +15825,9 @@ SWIGINTERN PyObject *_wrap_classObj_numlabels_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_numlabels_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numlabels_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_numlabels_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (int) ((arg1)->numlabels);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -15355,7 +15838,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_name_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15364,9 +15847,9 @@ SWIGINTERN PyObject *_wrap_classObj_name_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"Oz:classObj_name_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_name_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_name_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     if (arg1->name) free((char*)arg1->name);
     if (arg2) {
@@ -15385,7 +15868,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_name_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15394,9 +15877,9 @@ SWIGINTERN PyObject *_wrap_classObj_name_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_name_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_name_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_name_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (char *) ((arg1)->name);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -15407,7 +15890,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_title_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15416,9 +15899,9 @@ SWIGINTERN PyObject *_wrap_classObj_title_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"Oz:classObj_title_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_title_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_title_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     if (arg1->title) free((char*)arg1->title);
     if (arg2) {
@@ -15437,7 +15920,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_title_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15446,9 +15929,9 @@ SWIGINTERN PyObject *_wrap_classObj_title_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_title_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_title_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_title_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (char *) ((arg1)->title);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -15459,7 +15942,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_template_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15468,9 +15951,9 @@ SWIGINTERN PyObject *_wrap_classObj_template_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:classObj_template_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_template_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_template_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     if (arg1->template) free((char*)arg1->template);
     if (arg2) {
@@ -15489,7 +15972,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_template_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15498,9 +15981,9 @@ SWIGINTERN PyObject *_wrap_classObj_template_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_template_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_template_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_template_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (char *) ((arg1)->template);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -15511,7 +15994,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_type_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15523,9 +16006,9 @@ SWIGINTERN PyObject *_wrap_classObj_type_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_type_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_type_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_type_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_type_set" "', argument " "2"" of type '" "int""'");
@@ -15541,7 +16024,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_type_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15550,9 +16033,9 @@ SWIGINTERN PyObject *_wrap_classObj_type_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_type_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_type_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_type_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (int) ((arg1)->type);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -15563,7 +16046,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_metadata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15572,9 +16055,9 @@ SWIGINTERN PyObject *_wrap_classObj_metadata_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_metadata_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_metadata_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_metadata_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (hashTableObj *)& ((arg1)->metadata);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 |  0 );
   return resultobj;
@@ -15585,7 +16068,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_validation_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15594,9 +16077,9 @@ SWIGINTERN PyObject *_wrap_classObj_validation_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_validation_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_validation_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_validation_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (hashTableObj *)& ((arg1)->validation);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 |  0 );
   return resultobj;
@@ -15607,7 +16090,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_minscaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15619,9 +16102,9 @@ SWIGINTERN PyObject *_wrap_classObj_minscaledenom_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_minscaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minscaledenom_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minscaledenom_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_minscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -15637,7 +16120,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_minscaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15646,9 +16129,9 @@ SWIGINTERN PyObject *_wrap_classObj_minscaledenom_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_minscaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minscaledenom_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minscaledenom_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (double) ((arg1)->minscaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -15659,7 +16142,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_maxscaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15671,9 +16154,9 @@ SWIGINTERN PyObject *_wrap_classObj_maxscaledenom_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_maxscaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_maxscaledenom_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_maxscaledenom_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_maxscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -15689,7 +16172,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_maxscaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15698,9 +16181,9 @@ SWIGINTERN PyObject *_wrap_classObj_maxscaledenom_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_maxscaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_maxscaledenom_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_maxscaledenom_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (double) ((arg1)->maxscaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -15711,7 +16194,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_minfeaturesize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15723,9 +16206,9 @@ SWIGINTERN PyObject *_wrap_classObj_minfeaturesize_set(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_minfeaturesize_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minfeaturesize_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minfeaturesize_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_minfeaturesize_set" "', argument " "2"" of type '" "int""'");
@@ -15741,7 +16224,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_minfeaturesize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15750,9 +16233,9 @@ SWIGINTERN PyObject *_wrap_classObj_minfeaturesize_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_minfeaturesize_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minfeaturesize_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_minfeaturesize_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (int) ((arg1)->minfeaturesize);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -15763,7 +16246,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_refcount_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15772,9 +16255,9 @@ SWIGINTERN PyObject *_wrap_classObj_refcount_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_refcount_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_refcount_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_refcount_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (int) ((arg1)->refcount);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -15785,7 +16268,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_layer_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15794,9 +16277,9 @@ SWIGINTERN PyObject *_wrap_classObj_layer_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_layer_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_layer_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_layer_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (struct layerObj *) ((arg1)->layer);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_layerObj, 0 |  0 );
   return resultobj;
@@ -15807,7 +16290,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_debug_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15819,9 +16302,9 @@ SWIGINTERN PyObject *_wrap_classObj_debug_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_debug_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_debug_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_debug_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_debug_set" "', argument " "2"" of type '" "int""'");
@@ -15837,7 +16320,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_debug_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15846,9 +16329,9 @@ SWIGINTERN PyObject *_wrap_classObj_debug_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_debug_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_debug_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_debug_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (int) ((arg1)->debug);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -15859,7 +16342,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_keyimage_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15868,9 +16351,9 @@ SWIGINTERN PyObject *_wrap_classObj_keyimage_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:classObj_keyimage_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_keyimage_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_keyimage_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     if (arg1->keyimage) free((char*)arg1->keyimage);
     if (arg2) {
@@ -15889,7 +16372,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_keyimage_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15898,9 +16381,9 @@ SWIGINTERN PyObject *_wrap_classObj_keyimage_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_keyimage_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_keyimage_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_keyimage_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (char *) ((arg1)->keyimage);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -15911,7 +16394,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_group_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15920,9 +16403,9 @@ SWIGINTERN PyObject *_wrap_classObj_group_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"Oz:classObj_group_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_group_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_group_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     if (arg1->group) free((char*)arg1->group);
     if (arg2) {
@@ -15941,7 +16424,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_group_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -15950,9 +16433,9 @@ SWIGINTERN PyObject *_wrap_classObj_group_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_group_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_group_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_group_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (char *) ((arg1)->group);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -15963,7 +16446,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_leader_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   labelLeaderObj *arg2 = (labelLeaderObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -15975,9 +16458,9 @@ SWIGINTERN PyObject *_wrap_classObj_leader_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_leader_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_leader_set" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_leader_set" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_labelLeaderObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_leader_set" "', argument " "2"" of type '" "labelLeaderObj *""'"); 
@@ -15993,7 +16476,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_leader_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -16002,9 +16485,9 @@ SWIGINTERN PyObject *_wrap_classObj_leader_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_leader_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_leader_get" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_leader_get" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   result = (labelLeaderObj *)& ((arg1)->leader);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelLeaderObj, 0 |  0 );
   return resultobj;
@@ -16019,7 +16502,7 @@ SWIGINTERN PyObject *_wrap_new_classObj(PyObject *SWIGUNUSEDPARM(self), PyObject
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  classObj *result = 0 ;
+  struct classObj *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"|O:new_classObj",&obj0)) SWIG_fail;
   if (obj0) {
@@ -16030,7 +16513,7 @@ SWIGINTERN PyObject *_wrap_new_classObj(PyObject *SWIGUNUSEDPARM(self), PyObject
     arg1 = (layerObj *)(argp1);
   }
   {
-    result = (classObj *)new_classObj(arg1); {
+    result = (struct classObj *)new_classObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -16064,7 +16547,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_delete_classObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -16072,9 +16555,9 @@ SWIGINTERN PyObject *_wrap_delete_classObj(PyObject *SWIGUNUSEDPARM(self), PyObj
   if (!PyArg_ParseTuple(args,(char *)"O:delete_classObj",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_classObj" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_classObj" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     delete_classObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -16110,7 +16593,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_updateFromString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16120,9 +16603,9 @@ SWIGINTERN PyObject *_wrap_classObj_updateFromString(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"Oz:classObj_updateFromString",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_updateFromString" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_updateFromString" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     result = (int)classObj_updateFromString(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -16156,9 +16639,57 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_classObj_convertToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct classObj *arg1 = (struct classObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:classObj_convertToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_convertToString" "', argument " "1"" of type '" "struct classObj *""'"); 
+  }
+  arg1 = (struct classObj *)(argp1);
+  {
+    result = (char *)classObj_convertToString(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_classObj_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -16167,9 +16698,9 @@ SWIGINTERN PyObject *_wrap_classObj_clone(PyObject *SWIGUNUSEDPARM(self), PyObje
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_clone",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_clone" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_clone" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     result = (classObj *)classObj_clone(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -16205,7 +16736,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_setExpression(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16215,9 +16746,9 @@ SWIGINTERN PyObject *_wrap_classObj_setExpression(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:classObj_setExpression",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setExpression" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setExpression" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     result = (int)classObj_setExpression(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -16253,7 +16784,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_getExpressionString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -16262,9 +16793,9 @@ SWIGINTERN PyObject *_wrap_classObj_getExpressionString(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_getExpressionString",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getExpressionString" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getExpressionString" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     result = (char *)classObj_getExpressionString(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -16301,7 +16832,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_setText(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16311,9 +16842,9 @@ SWIGINTERN PyObject *_wrap_classObj_setText(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"Oz:classObj_setText",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setText" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setText" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     result = (int)classObj_setText(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -16349,7 +16880,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_getTextString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -16358,9 +16889,9 @@ SWIGINTERN PyObject *_wrap_classObj_getTextString(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_getTextString",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getTextString" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getTextString" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     result = (char *)classObj_getTextString(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -16397,7 +16928,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_getMetaData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16407,9 +16938,9 @@ SWIGINTERN PyObject *_wrap_classObj_getMetaData(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:classObj_getMetaData",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getMetaData" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getMetaData" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     result = (char *)classObj_getMetaData(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -16445,7 +16976,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_setMetaData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -16456,9 +16987,9 @@ SWIGINTERN PyObject *_wrap_classObj_setMetaData(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Ozz:classObj_setMetaData",&obj0,&arg2,&arg3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setMetaData" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_setMetaData" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     result = (int)classObj_setMetaData(arg1,arg2,arg3); {
       errorObj *ms_error = msGetErrorObj();
@@ -16494,7 +17025,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_getFirstMetaDataKey(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -16503,9 +17034,9 @@ SWIGINTERN PyObject *_wrap_classObj_getFirstMetaDataKey(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"O:classObj_getFirstMetaDataKey",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getFirstMetaDataKey" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getFirstMetaDataKey" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     result = (char *)classObj_getFirstMetaDataKey(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -16541,7 +17072,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_getNextMetaDataKey(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16551,9 +17082,9 @@ SWIGINTERN PyObject *_wrap_classObj_getNextMetaDataKey(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"Oz:classObj_getNextMetaDataKey",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getNextMetaDataKey" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getNextMetaDataKey" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   {
     result = (char *)classObj_getNextMetaDataKey(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -16589,7 +17120,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_drawLegendIcon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   layerObj *arg3 = (layerObj *) 0 ;
   int arg4 ;
@@ -16626,9 +17157,9 @@ SWIGINTERN PyObject *_wrap_classObj_drawLegendIcon(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOOO:classObj_drawLegendIcon",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6,&obj7)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_drawLegendIcon" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_drawLegendIcon" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_drawLegendIcon" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -16699,7 +17230,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_createLegendIcon(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   layerObj *arg3 = (layerObj *) 0 ;
   int arg4 ;
@@ -16724,9 +17255,9 @@ SWIGINTERN PyObject *_wrap_classObj_createLegendIcon(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:classObj_createLegendIcon",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_createLegendIcon" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_createLegendIcon" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_createLegendIcon" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -16782,7 +17313,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_getLabel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16795,9 +17326,9 @@ SWIGINTERN PyObject *_wrap_classObj_getLabel(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_getLabel",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getLabel" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getLabel" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_getLabel" "', argument " "2"" of type '" "int""'");
@@ -16838,7 +17369,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_addLabel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   labelObj *arg2 = (labelObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16851,9 +17382,9 @@ SWIGINTERN PyObject *_wrap_classObj_addLabel(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_addLabel",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_addLabel" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_addLabel" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_labelObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_addLabel" "', argument " "2"" of type '" "labelObj *""'"); 
@@ -16894,7 +17425,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_removeLabel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16907,9 +17438,9 @@ SWIGINTERN PyObject *_wrap_classObj_removeLabel(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_removeLabel",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_removeLabel" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_removeLabel" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_removeLabel" "', argument " "2"" of type '" "int""'");
@@ -16950,7 +17481,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_getStyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -16963,9 +17494,9 @@ SWIGINTERN PyObject *_wrap_classObj_getStyle(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_getStyle",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getStyle" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_getStyle" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_getStyle" "', argument " "2"" of type '" "int""'");
@@ -17006,7 +17537,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_insertStyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   styleObj *arg2 = (styleObj *) 0 ;
   int arg3 = (int) -1 ;
   void *argp1 = 0 ;
@@ -17023,9 +17554,9 @@ SWIGINTERN PyObject *_wrap_classObj_insertStyle(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO|O:classObj_insertStyle",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_insertStyle" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_insertStyle" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_styleObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "classObj_insertStyle" "', argument " "2"" of type '" "styleObj *""'"); 
@@ -17073,7 +17604,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_removeStyle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -17086,9 +17617,9 @@ SWIGINTERN PyObject *_wrap_classObj_removeStyle(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_removeStyle",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_removeStyle" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_removeStyle" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_removeStyle" "', argument " "2"" of type '" "int""'");
@@ -17129,7 +17660,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_moveStyleUp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -17142,9 +17673,9 @@ SWIGINTERN PyObject *_wrap_classObj_moveStyleUp(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_moveStyleUp",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_moveStyleUp" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_moveStyleUp" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_moveStyleUp" "', argument " "2"" of type '" "int""'");
@@ -17185,7 +17716,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_classObj_moveStyleDown(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  classObj *arg1 = (classObj *) 0 ;
+  struct classObj *arg1 = (struct classObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -17198,9 +17729,9 @@ SWIGINTERN PyObject *_wrap_classObj_moveStyleDown(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:classObj_moveStyleDown",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_moveStyleDown" "', argument " "1"" of type '" "classObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "classObj_moveStyleDown" "', argument " "1"" of type '" "struct classObj *""'"); 
   }
-  arg1 = (classObj *)(argp1);
+  arg1 = (struct classObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "classObj_moveStyleDown" "', argument " "2"" of type '" "int""'");
@@ -19907,59 +20438,107 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_referenceMapObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  referenceMapObj *result = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)":new_referenceMapObj")) SWIG_fail;
-  {
-    result = (referenceMapObj *)calloc(1, sizeof(referenceMapObj)); {
-      errorObj *ms_error = msGetErrorObj();
-      
-      switch(ms_error->code) {
-      case MS_NOERR:
-        break;
-      case MS_NOTFOUND:
-        msResetErrorList();
-        break;
-      case -1:
-        break;
-      case MS_IOERR:
-        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
-          _raise_ms_exception();
-          msResetErrorList();
-          return NULL;
-        }
-      default:
-        _raise_ms_exception();
-        msResetErrorList();
-        return NULL;
-      }
-      
-    }
-  }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_referenceMapObj, SWIG_POINTER_NEW |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_delete_referenceMapObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_referenceMapObj_convertToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   referenceMapObj *arg1 = (referenceMapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
+  char *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:delete_referenceMapObj",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_referenceMapObj, SWIG_POINTER_DISOWN |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:referenceMapObj_convertToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_referenceMapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_referenceMapObj" "', argument " "1"" of type '" "referenceMapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "referenceMapObj_convertToString" "', argument " "1"" of type '" "referenceMapObj *""'"); 
   }
   arg1 = (referenceMapObj *)(argp1);
   {
-    free((char *) arg1); {
+    result = (char *)referenceMapObj_convertToString(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_referenceMapObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  referenceMapObj *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)":new_referenceMapObj")) SWIG_fail;
+  {
+    result = (referenceMapObj *)calloc(1, sizeof(referenceMapObj)); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_referenceMapObj, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_referenceMapObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  referenceMapObj *arg1 = (referenceMapObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_referenceMapObj",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_referenceMapObj, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_referenceMapObj" "', argument " "1"" of type '" "referenceMapObj *""'"); 
+  }
+  arg1 = (referenceMapObj *)(argp1);
+  {
+    free((char *) arg1); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -20261,10 +20840,10 @@ fail:
 SWIGINTERN PyObject *_wrap_scalebarObj_label_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   scalebarObj *arg1 = (scalebarObj *) 0 ;
-  labelObj *arg2 = (labelObj *) 0 ;
+  labelObj arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
+  void *argp2 ;
   int res2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
@@ -20275,12 +20854,18 @@ SWIGINTERN PyObject *_wrap_scalebarObj_label_set(PyObject *SWIGUNUSEDPARM(self),
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scalebarObj_label_set" "', argument " "1"" of type '" "scalebarObj *""'"); 
   }
   arg1 = (scalebarObj *)(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_labelObj, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "scalebarObj_label_set" "', argument " "2"" of type '" "labelObj *""'"); 
+  {
+    res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_labelObj,  0 );
+    if (!SWIG_IsOK(res2)) {
+      SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "scalebarObj_label_set" "', argument " "2"" of type '" "labelObj""'"); 
+    }  
+    if (!argp2) {
+      SWIG_exception_fail(SWIG_ValueError, "invalid null reference " "in method '" "scalebarObj_label_set" "', argument " "2"" of type '" "labelObj""'");
+    } else {
+      arg2 = *((labelObj *)(argp2));
+    }
   }
-  arg2 = (labelObj *)(argp2);
-  if (arg1) (arg1)->label = *arg2;
+  if (arg1) (arg1)->label = arg2;
   resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
@@ -20294,7 +20879,7 @@ SWIGINTERN PyObject *_wrap_scalebarObj_label_get(PyObject *SWIGUNUSEDPARM(self),
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  labelObj *result = 0 ;
+  labelObj result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:scalebarObj_label_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scalebarObj, 0 |  0 );
@@ -20302,8 +20887,8 @@ SWIGINTERN PyObject *_wrap_scalebarObj_label_get(PyObject *SWIGUNUSEDPARM(self),
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scalebarObj_label_get" "', argument " "1"" of type '" "scalebarObj *""'"); 
   }
   arg1 = (scalebarObj *)(argp1);
-  result = (labelObj *)& ((arg1)->label);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelObj, 0 |  0 );
+  result =  ((arg1)->label);
+  resultobj = SWIG_NewPointerObj((labelObj *)memcpy((labelObj *)malloc(sizeof(labelObj)),&result,sizeof(labelObj)), SWIGTYPE_p_labelObj, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -20774,6 +21359,54 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_scalebarObj_convertToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scalebarObj *arg1 = (scalebarObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:scalebarObj_convertToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scalebarObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scalebarObj_convertToString" "', argument " "1"" of type '" "scalebarObj *""'"); 
+  }
+  arg1 = (scalebarObj *)(argp1);
+  {
+    result = (char *)scalebarObj_convertToString(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_new_scalebarObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   scalebarObj *result = 0 ;
@@ -20923,7 +21556,7 @@ SWIGINTERN PyObject *_wrap_legendObj_label_get(PyObject *SWIGUNUSEDPARM(self), P
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  labelObj *result = 0 ;
+  labelObj result;
   
   if (!PyArg_ParseTuple(args,(char *)"O:legendObj_label_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_legendObj, 0 |  0 );
@@ -20931,8 +21564,8 @@ SWIGINTERN PyObject *_wrap_legendObj_label_get(PyObject *SWIGUNUSEDPARM(self), P
     SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "legendObj_label_get" "', argument " "1"" of type '" "legendObj *""'"); 
   }
   arg1 = (legendObj *)(argp1);
-  result = (labelObj *)& ((arg1)->label);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelObj, 0 |  0 );
+  result =  ((arg1)->label);
+  resultobj = SWIG_NewPointerObj((labelObj *)memcpy((labelObj *)malloc(sizeof(labelObj)),&result,sizeof(labelObj)), SWIGTYPE_p_labelObj, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -21581,13 +22214,22 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_new_legendObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_legendObj_convertToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  legendObj *result = 0 ;
+  legendObj *arg1 = (legendObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)":new_legendObj")) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"O:legendObj_convertToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_legendObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "legendObj_convertToString" "', argument " "1"" of type '" "legendObj *""'"); 
+  }
+  arg1 = (legendObj *)(argp1);
   {
-    result = (legendObj *)calloc(1, sizeof(legendObj)); {
+    result = (char *)legendObj_convertToString(arg1); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -21612,28 +22254,21 @@ SWIGINTERN PyObject *_wrap_new_legendObj(PyObject *SWIGUNUSEDPARM(self), PyObjec
       
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_legendObj, SWIG_POINTER_NEW |  0 );
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_delete_legendObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_new_legendObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  legendObj *arg1 = (legendObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
+  legendObj *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:delete_legendObj",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_legendObj, SWIG_POINTER_DISOWN |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_legendObj" "', argument " "1"" of type '" "legendObj *""'"); 
-  }
-  arg1 = (legendObj *)(argp1);
+  if (!PyArg_ParseTuple(args,(char *)":new_legendObj")) SWIG_fail;
   {
-    free((char *) arg1); {
+    result = (legendObj *)calloc(1, sizeof(legendObj)); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -21658,189 +22293,235 @@ SWIGINTERN PyObject *_wrap_delete_legendObj(PyObject *SWIGUNUSEDPARM(self), PyOb
       
     }
   }
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *legendObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *obj;
-  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_legendObj, SWIG_NewClientData(obj));
-  return SWIG_Py_Void();
-}
-
-SWIGINTERN PyObject *_wrap_imageObj_width_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  int result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_width_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_width_get" "', argument " "1"" of type '" "imageObj *""'"); 
-  }
-  arg1 = (imageObj *)(argp1);
-  result = (int) ((arg1)->width);
-  resultobj = SWIG_From_int((int)(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_imageObj_height_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  int result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_height_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_height_get" "', argument " "1"" of type '" "imageObj *""'"); 
-  }
-  arg1 = (imageObj *)(argp1);
-  result = (int) ((arg1)->height);
-  resultobj = SWIG_From_int((int)(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_imageObj_resolution_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  double result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_resolution_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_resolution_get" "', argument " "1"" of type '" "imageObj *""'"); 
-  }
-  arg1 = (imageObj *)(argp1);
-  result = (double) ((arg1)->resolution);
-  resultobj = SWIG_From_double((double)(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_imageObj_resolutionfactor_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  double result;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_resolutionfactor_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_resolutionfactor_get" "', argument " "1"" of type '" "imageObj *""'"); 
-  }
-  arg1 = (imageObj *)(argp1);
-  result = (double) ((arg1)->resolutionfactor);
-  resultobj = SWIG_From_double((double)(result));
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_imageObj_imagepath_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  char *result = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_imagepath_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_imagepath_get" "', argument " "1"" of type '" "imageObj *""'"); 
-  }
-  arg1 = (imageObj *)(argp1);
-  result = (char *) ((arg1)->imagepath);
-  resultobj = SWIG_FromCharPtr((const char *)result);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_imageObj_imageurl_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  char *result = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_imageurl_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_imageurl_get" "', argument " "1"" of type '" "imageObj *""'"); 
-  }
-  arg1 = (imageObj *)(argp1);
-  result = (char *) ((arg1)->imageurl);
-  resultobj = SWIG_FromCharPtr((const char *)result);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_imageObj_format_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  outputFormatObj *result = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_format_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_format_get" "', argument " "1"" of type '" "imageObj *""'"); 
-  }
-  arg1 = (imageObj *)(argp1);
-  result = (outputFormatObj *) ((arg1)->format);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_outputFormatObj, 0 |  0 );
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_legendObj, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_delete_imageObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_legendObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
+  legendObj *arg1 = (legendObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:delete_imageObj",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, SWIG_POINTER_DISOWN |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_legendObj",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_legendObj, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_imageObj" "', argument " "1"" of type '" "imageObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_legendObj" "', argument " "1"" of type '" "legendObj *""'"); 
   }
-  arg1 = (imageObj *)(argp1);
+  arg1 = (legendObj *)(argp1);
   {
-    delete_imageObj(arg1); {
+    free((char *) arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *legendObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_legendObj, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_imageObj_width_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_width_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_width_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
+  }
+  arg1 = (struct imageObj *)(argp1);
+  result = (int) ((arg1)->width);
+  resultobj = SWIG_From_int((int)(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_imageObj_height_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_height_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_height_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
+  }
+  arg1 = (struct imageObj *)(argp1);
+  result = (int) ((arg1)->height);
+  resultobj = SWIG_From_int((int)(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_imageObj_resolution_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_resolution_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_resolution_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
+  }
+  arg1 = (struct imageObj *)(argp1);
+  result = (double) ((arg1)->resolution);
+  resultobj = SWIG_From_double((double)(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_imageObj_resolutionfactor_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_resolutionfactor_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_resolutionfactor_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
+  }
+  arg1 = (struct imageObj *)(argp1);
+  result = (double) ((arg1)->resolutionfactor);
+  resultobj = SWIG_From_double((double)(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_imageObj_imagepath_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_imagepath_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_imagepath_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
+  }
+  arg1 = (struct imageObj *)(argp1);
+  result = (char *) ((arg1)->imagepath);
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_imageObj_imageurl_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_imageurl_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_imageurl_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
+  }
+  arg1 = (struct imageObj *)(argp1);
+  result = (char *) ((arg1)->imageurl);
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_imageObj_format_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  outputFormatObj *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_format_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_format_get" "', argument " "1"" of type '" "struct imageObj *""'"); 
+  }
+  arg1 = (struct imageObj *)(argp1);
+  result = (outputFormatObj *) ((arg1)->format);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_outputFormatObj, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_imageObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_imageObj",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_imageObj" "', argument " "1"" of type '" "struct imageObj *""'"); 
+  }
+  arg1 = (struct imageObj *)(argp1);
+  {
+    delete_imageObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -21874,7 +22555,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_imageObj_save(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   char *arg2 = (char *) 0 ;
   mapObj *arg3 = (mapObj *) NULL ;
   void *argp1 = 0 ;
@@ -21887,9 +22568,9 @@ SWIGINTERN PyObject *_wrap_imageObj_save(PyObject *SWIGUNUSEDPARM(self), PyObjec
   if (!PyArg_ParseTuple(args,(char *)"Oz|O:imageObj_save",&obj0,&arg2,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_save" "', argument " "1"" of type '" "imageObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_save" "', argument " "1"" of type '" "struct imageObj *""'"); 
   }
-  arg1 = (imageObj *)(argp1);
+  arg1 = (struct imageObj *)(argp1);
   if (obj2) {
     res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_mapObj, 0 |  0 );
     if (!SWIG_IsOK(res3)) {
@@ -21932,7 +22613,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_imageObj_getBytes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -21941,9 +22622,9 @@ SWIGINTERN PyObject *_wrap_imageObj_getBytes(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:imageObj_getBytes",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_getBytes" "', argument " "1"" of type '" "imageObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_getBytes" "', argument " "1"" of type '" "struct imageObj *""'"); 
   }
-  arg1 = (imageObj *)(argp1);
+  arg1 = (struct imageObj *)(argp1);
   {
     result = imageObj_getBytes(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -21983,7 +22664,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_imageObj_getSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -21992,9 +22673,9 @@ SWIGINTERN PyObject *_wrap_imageObj_getSize(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"O:imageObj_getSize",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_getSize" "', argument " "1"" of type '" "imageObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_getSize" "', argument " "1"" of type '" "struct imageObj *""'"); 
   }
-  arg1 = (imageObj *)(argp1);
+  arg1 = (struct imageObj *)(argp1);
   {
     result = (int)imageObj_getSize(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -22040,7 +22721,7 @@ SWIGINTERN PyObject *_wrap_new_imageObj(PyObject *SWIGUNUSEDPARM(self), PyObject
   PyObject * obj2 = 0 ;
   PyObject * obj3 = 0 ;
   PyObject * obj4 = 0 ;
-  imageObj *result = 0 ;
+  struct imageObj *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"|OOOOO:new_imageObj",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   if (obj0) {
@@ -22059,7 +22740,353 @@ SWIGINTERN PyObject *_wrap_new_imageObj(PyObject *SWIGUNUSEDPARM(self), PyObject
     arg5 = obj4;
   }
   {
-    result = (imageObj *)new_imageObj(arg1,arg2,arg3,arg4,arg5); {
+    result = (struct imageObj *)new_imageObj(arg1,arg2,arg3,arg4,arg5); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_imageObj, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_imageObj_write(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
+  PyObject *arg2 = (PyObject *) Py_None ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O|O:imageObj_write",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_write" "', argument " "1"" of type '" "struct imageObj *""'"); 
+  }
+  arg1 = (struct imageObj *)(argp1);
+  if (obj1) {
+    arg2 = obj1;
+  }
+  {
+    result = (int)imageObj_write(arg1,arg2); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_From_int((int)(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_imageObj_saveToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct imageObj *arg1 = (struct imageObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_saveToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_saveToString" "', argument " "1"" of type '" "struct imageObj *""'"); 
+  }
+  arg1 = (struct imageObj *)(argp1);
+  {
+    result = (PyObject *)imageObj_saveToString(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = result;
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *imageObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_imageObj, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_scaleTokenEntryObj_minscale_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:scaleTokenEntryObj_minscale_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_minscale_set" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+  }
+  arg1 = (scaleTokenEntryObj *)(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "scaleTokenEntryObj_minscale_set" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->minscale = arg2;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_scaleTokenEntryObj_minscale_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:scaleTokenEntryObj_minscale_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_minscale_get" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+  }
+  arg1 = (scaleTokenEntryObj *)(argp1);
+  result = (double) ((arg1)->minscale);
+  resultobj = SWIG_From_double((double)(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_scaleTokenEntryObj_maxscale_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  double arg2 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  double val2 ;
+  int ecode2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:scaleTokenEntryObj_maxscale_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_maxscale_set" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+  }
+  arg1 = (scaleTokenEntryObj *)(argp1);
+  ecode2 = SWIG_AsVal_double(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "scaleTokenEntryObj_maxscale_set" "', argument " "2"" of type '" "double""'");
+  } 
+  arg2 = (double)(val2);
+  if (arg1) (arg1)->maxscale = arg2;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_scaleTokenEntryObj_maxscale_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  double result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:scaleTokenEntryObj_maxscale_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_maxscale_get" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+  }
+  arg1 = (scaleTokenEntryObj *)(argp1);
+  result = (double) ((arg1)->maxscale);
+  resultobj = SWIG_From_double((double)(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_scaleTokenEntryObj_value_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"Oz:scaleTokenEntryObj_value_set",&obj0,&arg2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_value_set" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+  }
+  arg1 = (scaleTokenEntryObj *)(argp1);
+  {
+    if (arg1->value) free((char*)arg1->value);
+    if (arg2) {
+      arg1->value = (char *) malloc(strlen(arg2)+1);
+      strcpy((char*)arg1->value,arg2);
+    } else {
+      arg1->value = 0;
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_scaleTokenEntryObj_value_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:scaleTokenEntryObj_value_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenEntryObj_value_get" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+  }
+  arg1 = (scaleTokenEntryObj *)(argp1);
+  result = (char *) ((arg1)->value);
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_scaleTokenEntryObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenEntryObj *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)":new_scaleTokenEntryObj")) SWIG_fail;
+  {
+    result = (scaleTokenEntryObj *)calloc(1, sizeof(scaleTokenEntryObj)); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_scaleTokenEntryObj, SWIG_POINTER_NEW |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_delete_scaleTokenEntryObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenEntryObj *arg1 = (scaleTokenEntryObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_scaleTokenEntryObj",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenEntryObj, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_scaleTokenEntryObj" "', argument " "1"" of type '" "scaleTokenEntryObj *""'"); 
+  }
+  arg1 = (scaleTokenEntryObj *)(argp1);
+  {
+    free((char *) arg1); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -22084,34 +23111,183 @@ SWIGINTERN PyObject *_wrap_new_imageObj(PyObject *SWIGUNUSEDPARM(self), PyObject
       
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_imageObj, SWIG_POINTER_NEW |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_imageObj_write(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *scaleTokenEntryObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *obj;
+  if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
+  SWIG_TypeNewClientData(SWIGTYPE_p_scaleTokenEntryObj, SWIG_NewClientData(obj));
+  return SWIG_Py_Void();
+}
+
+SWIGINTERN PyObject *_wrap_scaleTokenObj_name_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
-  PyObject *arg2 = (PyObject *) Py_None ;
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"Oz:scaleTokenObj_name_set",&obj0,&arg2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_name_set" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+  }
+  arg1 = (scaleTokenObj *)(argp1);
+  {
+    if (arg1->name) free((char*)arg1->name);
+    if (arg2) {
+      arg1->name = (char *) malloc(strlen(arg2)+1);
+      strcpy((char*)arg1->name,arg2);
+    } else {
+      arg1->name = 0;
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_scaleTokenObj_name_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:scaleTokenObj_name_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_name_get" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+  }
+  arg1 = (scaleTokenObj *)(argp1);
+  result = (char *) ((arg1)->name);
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_scaleTokenObj_n_entries_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
   PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:scaleTokenObj_n_entries_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_n_entries_set" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+  }
+  arg1 = (scaleTokenObj *)(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "scaleTokenObj_n_entries_set" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  if (arg1) (arg1)->n_entries = arg2;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_scaleTokenObj_n_entries_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
   int result;
   
-  if (!PyArg_ParseTuple(args,(char *)"O|O:imageObj_write",&obj0,&obj1)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:scaleTokenObj_n_entries_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_write" "', argument " "1"" of type '" "imageObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_n_entries_get" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
   }
-  arg1 = (imageObj *)(argp1);
-  if (obj1) {
-    arg2 = obj1;
+  arg1 = (scaleTokenObj *)(argp1);
+  result = (int) ((arg1)->n_entries);
+  resultobj = SWIG_From_int((int)(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_scaleTokenObj_tokens_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  scaleTokenEntryObj *arg2 = (scaleTokenEntryObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OO:scaleTokenObj_tokens_set",&obj0,&obj1)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_tokens_set" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+  }
+  arg1 = (scaleTokenObj *)(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_scaleTokenEntryObj, SWIG_POINTER_DISOWN |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "scaleTokenObj_tokens_set" "', argument " "2"" of type '" "scaleTokenEntryObj *""'"); 
   }
+  arg2 = (scaleTokenEntryObj *)(argp2);
+  if (arg1) (arg1)->tokens = arg2;
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_scaleTokenObj_tokens_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  scaleTokenEntryObj *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:scaleTokenObj_tokens_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "scaleTokenObj_tokens_get" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
+  }
+  arg1 = (scaleTokenObj *)(argp1);
+  result = (scaleTokenEntryObj *) ((arg1)->tokens);
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_scaleTokenEntryObj, 0 |  0 );
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_new_scaleTokenObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  scaleTokenObj *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)":new_scaleTokenObj")) SWIG_fail;
   {
-    result = (int)imageObj_write(arg1,arg2); {
+    result = (scaleTokenObj *)calloc(1, sizeof(scaleTokenObj)); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -22136,29 +23312,28 @@ SWIGINTERN PyObject *_wrap_imageObj_write(PyObject *SWIGUNUSEDPARM(self), PyObje
       
     }
   }
-  resultobj = SWIG_From_int((int)(result));
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_scaleTokenObj, SWIG_POINTER_NEW |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_imageObj_saveToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_delete_scaleTokenObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  imageObj *arg1 = (imageObj *) 0 ;
+  scaleTokenObj *arg1 = (scaleTokenObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:imageObj_saveToString",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_imageObj, 0 |  0 );
+  if (!PyArg_ParseTuple(args,(char *)"O:delete_scaleTokenObj",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_scaleTokenObj, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "imageObj_saveToString" "', argument " "1"" of type '" "imageObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_scaleTokenObj" "', argument " "1"" of type '" "scaleTokenObj *""'"); 
   }
-  arg1 = (imageObj *)(argp1);
+  arg1 = (scaleTokenObj *)(argp1);
   {
-    result = (PyObject *)imageObj_saveToString(arg1); {
+    free((char *) arg1); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -22183,23 +23358,23 @@ SWIGINTERN PyObject *_wrap_imageObj_saveToString(PyObject *SWIGUNUSEDPARM(self),
       
     }
   }
-  resultobj = result;
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *imageObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *scaleTokenObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *obj;
   if (!PyArg_ParseTuple(args,(char*)"O:swigregister", &obj)) return NULL;
-  SWIG_TypeNewClientData(SWIGTYPE_p_imageObj, SWIG_NewClientData(obj));
+  SWIG_TypeNewClientData(SWIGTYPE_p_scaleTokenObj, SWIG_NewClientData(obj));
   return SWIG_Py_Void();
 }
 
 SWIGINTERN PyObject *_wrap_layerObj_classitem_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22208,9 +23383,9 @@ SWIGINTERN PyObject *_wrap_layerObj_classitem_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_classitem_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classitem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classitem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->classitem) free((char*)arg1->classitem);
     if (arg2) {
@@ -22229,7 +23404,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_classitem_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22238,9 +23413,9 @@ SWIGINTERN PyObject *_wrap_layerObj_classitem_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_classitem_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classitem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classitem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->classitem);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -22251,7 +23426,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_refcount_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22260,9 +23435,9 @@ SWIGINTERN PyObject *_wrap_layerObj_refcount_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_refcount_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_refcount_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_refcount_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->refcount);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -22273,7 +23448,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_numclasses_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22282,9 +23457,9 @@ SWIGINTERN PyObject *_wrap_layerObj_numclasses_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_numclasses_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numclasses_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numclasses_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->numclasses);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -22295,7 +23470,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_maxclasses_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22304,9 +23479,9 @@ SWIGINTERN PyObject *_wrap_layerObj_maxclasses_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_maxclasses_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxclasses_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxclasses_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->maxclasses);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -22317,7 +23492,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_index_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22326,9 +23501,9 @@ SWIGINTERN PyObject *_wrap_layerObj_index_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_index_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_index_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_index_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->index);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -22339,7 +23514,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_map_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22348,9 +23523,9 @@ SWIGINTERN PyObject *_wrap_layerObj_map_get(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_map_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_map_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_map_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (struct mapObj *) ((arg1)->map);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_mapObj, 0 |  0 );
   return resultobj;
@@ -22361,7 +23536,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_header_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22370,9 +23545,9 @@ SWIGINTERN PyObject *_wrap_layerObj_header_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_header_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_header_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_header_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->header) free((char*)arg1->header);
     if (arg2) {
@@ -22391,7 +23566,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_header_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22400,9 +23575,9 @@ SWIGINTERN PyObject *_wrap_layerObj_header_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_header_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_header_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_header_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->header);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -22413,7 +23588,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_footer_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22422,9 +23597,9 @@ SWIGINTERN PyObject *_wrap_layerObj_footer_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_footer_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_footer_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_footer_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->footer) free((char*)arg1->footer);
     if (arg2) {
@@ -22443,7 +23618,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_footer_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22452,9 +23627,9 @@ SWIGINTERN PyObject *_wrap_layerObj_footer_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_footer_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_footer_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_footer_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->footer);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -22465,7 +23640,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_template_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22474,9 +23649,9 @@ SWIGINTERN PyObject *_wrap_layerObj_template_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_template_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_template_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_template_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->template) free((char*)arg1->template);
     if (arg2) {
@@ -22495,7 +23670,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_template_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22504,9 +23679,9 @@ SWIGINTERN PyObject *_wrap_layerObj_template_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_template_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_template_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_template_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->template);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -22517,7 +23692,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_name_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22526,9 +23701,9 @@ SWIGINTERN PyObject *_wrap_layerObj_name_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_name_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_name_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_name_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->name) free((char*)arg1->name);
     if (arg2) {
@@ -22547,7 +23722,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_name_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22556,9 +23731,9 @@ SWIGINTERN PyObject *_wrap_layerObj_name_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_name_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_name_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_name_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->name);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -22569,7 +23744,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_group_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22578,9 +23753,9 @@ SWIGINTERN PyObject *_wrap_layerObj_group_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_group_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_group_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_group_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->group) free((char*)arg1->group);
     if (arg2) {
@@ -22599,7 +23774,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_group_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22608,9 +23783,9 @@ SWIGINTERN PyObject *_wrap_layerObj_group_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_group_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_group_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_group_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->group);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -22621,7 +23796,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_status_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22633,9 +23808,9 @@ SWIGINTERN PyObject *_wrap_layerObj_status_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_status_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_status_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_status_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_status_set" "', argument " "2"" of type '" "int""'");
@@ -22651,7 +23826,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_status_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22660,9 +23835,9 @@ SWIGINTERN PyObject *_wrap_layerObj_status_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_status_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_status_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_status_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->status);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -22673,7 +23848,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_data_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22682,9 +23857,9 @@ SWIGINTERN PyObject *_wrap_layerObj_data_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_data_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_data_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_data_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->data) free((char*)arg1->data);
     if (arg2) {
@@ -22703,7 +23878,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_data_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22712,9 +23887,9 @@ SWIGINTERN PyObject *_wrap_layerObj_data_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_data_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_data_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_data_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->data);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -22725,7 +23900,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_type_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   enum MS_LAYER_TYPE arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22737,9 +23912,9 @@ SWIGINTERN PyObject *_wrap_layerObj_type_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_type_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_type_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_type_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_type_set" "', argument " "2"" of type '" "enum MS_LAYER_TYPE""'");
@@ -22755,7 +23930,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_type_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22764,9 +23939,9 @@ SWIGINTERN PyObject *_wrap_layerObj_type_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_type_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_type_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_type_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (enum MS_LAYER_TYPE) ((arg1)->type);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -22777,7 +23952,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_tolerance_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22789,9 +23964,9 @@ SWIGINTERN PyObject *_wrap_layerObj_tolerance_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_tolerance_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tolerance_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tolerance_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_tolerance_set" "', argument " "2"" of type '" "double""'");
@@ -22807,7 +23982,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_tolerance_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22816,9 +23991,9 @@ SWIGINTERN PyObject *_wrap_layerObj_tolerance_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_tolerance_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tolerance_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tolerance_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (double) ((arg1)->tolerance);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -22829,7 +24004,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_toleranceunits_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22841,9 +24016,9 @@ SWIGINTERN PyObject *_wrap_layerObj_toleranceunits_set(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_toleranceunits_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_toleranceunits_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_toleranceunits_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_toleranceunits_set" "', argument " "2"" of type '" "int""'");
@@ -22859,7 +24034,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_toleranceunits_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22868,9 +24043,9 @@ SWIGINTERN PyObject *_wrap_layerObj_toleranceunits_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_toleranceunits_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_toleranceunits_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_toleranceunits_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->toleranceunits);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -22881,7 +24056,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_symbolscaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22893,9 +24068,9 @@ SWIGINTERN PyObject *_wrap_layerObj_symbolscaledenom_set(PyObject *SWIGUNUSEDPAR
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_symbolscaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_symbolscaledenom_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_symbolscaledenom_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_symbolscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -22911,7 +24086,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_symbolscaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22920,9 +24095,9 @@ SWIGINTERN PyObject *_wrap_layerObj_symbolscaledenom_get(PyObject *SWIGUNUSEDPAR
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_symbolscaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_symbolscaledenom_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_symbolscaledenom_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (double) ((arg1)->symbolscaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -22933,7 +24108,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_minscaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22945,9 +24120,9 @@ SWIGINTERN PyObject *_wrap_layerObj_minscaledenom_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_minscaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minscaledenom_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minscaledenom_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_minscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -22963,7 +24138,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_minscaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -22972,9 +24147,9 @@ SWIGINTERN PyObject *_wrap_layerObj_minscaledenom_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_minscaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minscaledenom_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minscaledenom_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (double) ((arg1)->minscaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -22985,7 +24160,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_maxscaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -22997,9 +24172,9 @@ SWIGINTERN PyObject *_wrap_layerObj_maxscaledenom_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_maxscaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxscaledenom_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxscaledenom_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_maxscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -23015,7 +24190,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_maxscaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23024,9 +24199,9 @@ SWIGINTERN PyObject *_wrap_layerObj_maxscaledenom_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_maxscaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxscaledenom_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxscaledenom_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (double) ((arg1)->maxscaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -23037,7 +24212,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_minfeaturesize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23049,9 +24224,9 @@ SWIGINTERN PyObject *_wrap_layerObj_minfeaturesize_set(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_minfeaturesize_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minfeaturesize_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minfeaturesize_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_minfeaturesize_set" "', argument " "2"" of type '" "int""'");
@@ -23067,7 +24242,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_minfeaturesize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23076,9 +24251,9 @@ SWIGINTERN PyObject *_wrap_layerObj_minfeaturesize_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_minfeaturesize_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minfeaturesize_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_minfeaturesize_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->minfeaturesize);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -23089,7 +24264,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_labelminscaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23101,9 +24276,9 @@ SWIGINTERN PyObject *_wrap_layerObj_labelminscaledenom_set(PyObject *SWIGUNUSEDP
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_labelminscaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelminscaledenom_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelminscaledenom_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_labelminscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -23119,7 +24294,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_labelminscaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23128,9 +24303,9 @@ SWIGINTERN PyObject *_wrap_layerObj_labelminscaledenom_get(PyObject *SWIGUNUSEDP
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_labelminscaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelminscaledenom_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelminscaledenom_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (double) ((arg1)->labelminscaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -23141,7 +24316,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_labelmaxscaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23153,9 +24328,9 @@ SWIGINTERN PyObject *_wrap_layerObj_labelmaxscaledenom_set(PyObject *SWIGUNUSEDP
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_labelmaxscaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelmaxscaledenom_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelmaxscaledenom_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_labelmaxscaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -23171,7 +24346,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_labelmaxscaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23180,9 +24355,9 @@ SWIGINTERN PyObject *_wrap_layerObj_labelmaxscaledenom_get(PyObject *SWIGUNUSEDP
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_labelmaxscaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelmaxscaledenom_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelmaxscaledenom_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (double) ((arg1)->labelmaxscaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -23193,7 +24368,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_mingeowidth_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23205,9 +24380,9 @@ SWIGINTERN PyObject *_wrap_layerObj_mingeowidth_set(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_mingeowidth_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mingeowidth_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mingeowidth_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_mingeowidth_set" "', argument " "2"" of type '" "double""'");
@@ -23223,7 +24398,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_mingeowidth_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23232,9 +24407,9 @@ SWIGINTERN PyObject *_wrap_layerObj_mingeowidth_get(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_mingeowidth_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mingeowidth_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mingeowidth_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (double) ((arg1)->mingeowidth);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -23245,7 +24420,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_maxgeowidth_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23257,9 +24432,9 @@ SWIGINTERN PyObject *_wrap_layerObj_maxgeowidth_set(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_maxgeowidth_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxgeowidth_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxgeowidth_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_maxgeowidth_set" "', argument " "2"" of type '" "double""'");
@@ -23275,7 +24450,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_maxgeowidth_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23284,9 +24459,9 @@ SWIGINTERN PyObject *_wrap_layerObj_maxgeowidth_get(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_maxgeowidth_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxgeowidth_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxgeowidth_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (double) ((arg1)->maxgeowidth);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -23297,7 +24472,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_sizeunits_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23309,9 +24484,9 @@ SWIGINTERN PyObject *_wrap_layerObj_sizeunits_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_sizeunits_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_sizeunits_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_sizeunits_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_sizeunits_set" "', argument " "2"" of type '" "int""'");
@@ -23327,7 +24502,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_sizeunits_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23336,9 +24511,9 @@ SWIGINTERN PyObject *_wrap_layerObj_sizeunits_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_sizeunits_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_sizeunits_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_sizeunits_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->sizeunits);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -23349,7 +24524,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_maxfeatures_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23361,9 +24536,9 @@ SWIGINTERN PyObject *_wrap_layerObj_maxfeatures_set(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_maxfeatures_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxfeatures_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxfeatures_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_maxfeatures_set" "', argument " "2"" of type '" "int""'");
@@ -23379,7 +24554,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_maxfeatures_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23388,9 +24563,9 @@ SWIGINTERN PyObject *_wrap_layerObj_maxfeatures_get(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_maxfeatures_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxfeatures_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_maxfeatures_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->maxfeatures);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -23401,7 +24576,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_startindex_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23413,9 +24588,9 @@ SWIGINTERN PyObject *_wrap_layerObj_startindex_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_startindex_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_startindex_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_startindex_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_startindex_set" "', argument " "2"" of type '" "int""'");
@@ -23431,7 +24606,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_startindex_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23440,9 +24615,9 @@ SWIGINTERN PyObject *_wrap_layerObj_startindex_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_startindex_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_startindex_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_startindex_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->startindex);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -23453,7 +24628,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_offsite_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23465,9 +24640,9 @@ SWIGINTERN PyObject *_wrap_layerObj_offsite_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_offsite_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_offsite_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_offsite_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_offsite_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -23483,7 +24658,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_offsite_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23492,9 +24667,9 @@ SWIGINTERN PyObject *_wrap_layerObj_offsite_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_offsite_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_offsite_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_offsite_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (colorObj *)& ((arg1)->offsite);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 |  0 );
   return resultobj;
@@ -23505,7 +24680,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_transform_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23517,9 +24692,9 @@ SWIGINTERN PyObject *_wrap_layerObj_transform_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_transform_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_transform_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_transform_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_transform_set" "', argument " "2"" of type '" "int""'");
@@ -23535,7 +24710,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_transform_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23544,9 +24719,9 @@ SWIGINTERN PyObject *_wrap_layerObj_transform_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_transform_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_transform_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_transform_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->transform);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -23557,7 +24732,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_labelcache_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23569,9 +24744,9 @@ SWIGINTERN PyObject *_wrap_layerObj_labelcache_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_labelcache_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelcache_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelcache_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_labelcache_set" "', argument " "2"" of type '" "int""'");
@@ -23587,7 +24762,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_labelcache_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23596,9 +24771,9 @@ SWIGINTERN PyObject *_wrap_layerObj_labelcache_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_labelcache_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelcache_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelcache_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->labelcache);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -23609,7 +24784,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_postlabelcache_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23621,9 +24796,9 @@ SWIGINTERN PyObject *_wrap_layerObj_postlabelcache_set(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_postlabelcache_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_postlabelcache_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_postlabelcache_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_postlabelcache_set" "', argument " "2"" of type '" "int""'");
@@ -23639,7 +24814,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_postlabelcache_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23648,9 +24823,9 @@ SWIGINTERN PyObject *_wrap_layerObj_postlabelcache_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_postlabelcache_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_postlabelcache_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_postlabelcache_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->postlabelcache);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -23661,7 +24836,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_labelitem_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23670,9 +24845,9 @@ SWIGINTERN PyObject *_wrap_layerObj_labelitem_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_labelitem_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelitem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelitem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->labelitem) free((char*)arg1->labelitem);
     if (arg2) {
@@ -23691,7 +24866,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_labelitem_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23700,9 +24875,9 @@ SWIGINTERN PyObject *_wrap_layerObj_labelitem_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_labelitem_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelitem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelitem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->labelitem);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -23713,7 +24888,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_tileitem_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23722,9 +24897,9 @@ SWIGINTERN PyObject *_wrap_layerObj_tileitem_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_tileitem_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileitem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileitem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->tileitem) free((char*)arg1->tileitem);
     if (arg2) {
@@ -23743,7 +24918,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_tileitem_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23752,9 +24927,9 @@ SWIGINTERN PyObject *_wrap_layerObj_tileitem_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_tileitem_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileitem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileitem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->tileitem);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -23765,7 +24940,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_tileindex_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23774,9 +24949,9 @@ SWIGINTERN PyObject *_wrap_layerObj_tileindex_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_tileindex_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileindex_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileindex_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->tileindex) free((char*)arg1->tileindex);
     if (arg2) {
@@ -23795,7 +24970,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_tileindex_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23804,9 +24979,9 @@ SWIGINTERN PyObject *_wrap_layerObj_tileindex_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_tileindex_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileindex_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tileindex_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->tileindex);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -23815,9 +24990,61 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_layerObj_tilesrs_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
+  char *arg2 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_tilesrs_set",&obj0,&arg2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tilesrs_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
+  }
+  arg1 = (struct layerObj *)(argp1);
+  {
+    if (arg1->tilesrs) free((char*)arg1->tilesrs);
+    if (arg2) {
+      arg1->tilesrs = (char *) malloc(strlen(arg2)+1);
+      strcpy((char*)arg1->tilesrs,arg2);
+    } else {
+      arg1->tilesrs = 0;
+    }
+  }
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_layerObj_tilesrs_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:layerObj_tilesrs_get",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_tilesrs_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
+  }
+  arg1 = (struct layerObj *)(argp1);
+  result = (char *) ((arg1)->tilesrs);
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_layerObj_units_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23829,9 +25056,9 @@ SWIGINTERN PyObject *_wrap_layerObj_units_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_units_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_units_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_units_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_units_set" "', argument " "2"" of type '" "int""'");
@@ -23847,7 +25074,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_units_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23856,9 +25083,9 @@ SWIGINTERN PyObject *_wrap_layerObj_units_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_units_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_units_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_units_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->units);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -23869,7 +25096,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_connection_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23878,9 +25105,9 @@ SWIGINTERN PyObject *_wrap_layerObj_connection_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_connection_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connection_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connection_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->connection) free((char*)arg1->connection);
     if (arg2) {
@@ -23899,7 +25126,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_connection_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23908,9 +25135,9 @@ SWIGINTERN PyObject *_wrap_layerObj_connection_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_connection_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connection_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connection_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->connection);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -23921,7 +25148,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_plugin_library_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23930,9 +25157,9 @@ SWIGINTERN PyObject *_wrap_layerObj_plugin_library_set(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_plugin_library_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->plugin_library) free((char*)arg1->plugin_library);
     if (arg2) {
@@ -23951,7 +25178,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_plugin_library_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -23960,9 +25187,9 @@ SWIGINTERN PyObject *_wrap_layerObj_plugin_library_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_plugin_library_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->plugin_library);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -23973,7 +25200,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_plugin_library_original_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -23982,9 +25209,9 @@ SWIGINTERN PyObject *_wrap_layerObj_plugin_library_original_set(PyObject *SWIGUN
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_plugin_library_original_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_original_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_original_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->plugin_library_original) free((char*)arg1->plugin_library_original);
     if (arg2) {
@@ -24003,7 +25230,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_plugin_library_original_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24012,9 +25239,9 @@ SWIGINTERN PyObject *_wrap_layerObj_plugin_library_original_get(PyObject *SWIGUN
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_plugin_library_original_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_original_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_plugin_library_original_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->plugin_library_original);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -24025,7 +25252,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_connectiontype_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   enum MS_CONNECTION_TYPE arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24037,9 +25264,9 @@ SWIGINTERN PyObject *_wrap_layerObj_connectiontype_set(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_connectiontype_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connectiontype_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connectiontype_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_connectiontype_set" "', argument " "2"" of type '" "enum MS_CONNECTION_TYPE""'");
@@ -24055,7 +25282,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_connectiontype_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24064,9 +25291,9 @@ SWIGINTERN PyObject *_wrap_layerObj_connectiontype_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_connectiontype_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connectiontype_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_connectiontype_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (enum MS_CONNECTION_TYPE) ((arg1)->connectiontype);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -24077,7 +25304,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_numitems_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24086,9 +25313,9 @@ SWIGINTERN PyObject *_wrap_layerObj_numitems_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_numitems_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numitems_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numitems_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->numitems);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -24099,7 +25326,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_bandsitem_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24108,9 +25335,9 @@ SWIGINTERN PyObject *_wrap_layerObj_bandsitem_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_bandsitem_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bandsitem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bandsitem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->bandsitem) free((char*)arg1->bandsitem);
     if (arg2) {
@@ -24129,7 +25356,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_bandsitem_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24138,9 +25365,9 @@ SWIGINTERN PyObject *_wrap_layerObj_bandsitem_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_bandsitem_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bandsitem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bandsitem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->bandsitem);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -24151,7 +25378,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_filteritem_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24160,9 +25387,9 @@ SWIGINTERN PyObject *_wrap_layerObj_filteritem_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_filteritem_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_filteritem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_filteritem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->filteritem) free((char*)arg1->filteritem);
     if (arg2) {
@@ -24181,7 +25408,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_filteritem_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24190,9 +25417,9 @@ SWIGINTERN PyObject *_wrap_layerObj_filteritem_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_filteritem_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_filteritem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_filteritem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->filteritem);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -24203,7 +25430,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_styleitem_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24212,9 +25439,9 @@ SWIGINTERN PyObject *_wrap_layerObj_styleitem_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_styleitem_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_styleitem_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_styleitem_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->styleitem) free((char*)arg1->styleitem);
     if (arg2) {
@@ -24233,7 +25460,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_styleitem_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24242,9 +25469,9 @@ SWIGINTERN PyObject *_wrap_layerObj_styleitem_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_styleitem_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_styleitem_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_styleitem_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->styleitem);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -24255,7 +25482,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_requires_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24264,9 +25491,9 @@ SWIGINTERN PyObject *_wrap_layerObj_requires_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_requires_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_requires_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_requires_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->requires) free((char*)arg1->requires);
     if (arg2) {
@@ -24285,7 +25512,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_requires_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24294,9 +25521,9 @@ SWIGINTERN PyObject *_wrap_layerObj_requires_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_requires_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_requires_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_requires_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->requires);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -24307,7 +25534,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_labelrequires_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24316,9 +25543,9 @@ SWIGINTERN PyObject *_wrap_layerObj_labelrequires_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_labelrequires_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelrequires_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelrequires_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->labelrequires) free((char*)arg1->labelrequires);
     if (arg2) {
@@ -24337,7 +25564,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_labelrequires_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24346,9 +25573,9 @@ SWIGINTERN PyObject *_wrap_layerObj_labelrequires_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_labelrequires_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelrequires_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_labelrequires_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->labelrequires);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -24359,7 +25586,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_metadata_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24368,9 +25595,9 @@ SWIGINTERN PyObject *_wrap_layerObj_metadata_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_metadata_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_metadata_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_metadata_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (hashTableObj *)& ((arg1)->metadata);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 |  0 );
   return resultobj;
@@ -24381,7 +25608,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_validation_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24390,9 +25617,9 @@ SWIGINTERN PyObject *_wrap_layerObj_validation_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_validation_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_validation_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_validation_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (hashTableObj *)& ((arg1)->validation);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 |  0 );
   return resultobj;
@@ -24403,7 +25630,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_bindvals_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24412,9 +25639,9 @@ SWIGINTERN PyObject *_wrap_layerObj_bindvals_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_bindvals_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bindvals_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_bindvals_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (hashTableObj *)& ((arg1)->bindvals);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 |  0 );
   return resultobj;
@@ -24425,7 +25652,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_cluster_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24434,9 +25661,9 @@ SWIGINTERN PyObject *_wrap_layerObj_cluster_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_cluster_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_cluster_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_cluster_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (clusterObj *)& ((arg1)->cluster);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_clusterObj, 0 |  0 );
   return resultobj;
@@ -24447,7 +25674,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_opacity_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24459,9 +25686,9 @@ SWIGINTERN PyObject *_wrap_layerObj_opacity_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_opacity_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_opacity_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_opacity_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_opacity_set" "', argument " "2"" of type '" "int""'");
@@ -24477,7 +25704,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_opacity_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24486,9 +25713,9 @@ SWIGINTERN PyObject *_wrap_layerObj_opacity_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_opacity_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_opacity_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_opacity_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->opacity);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -24499,7 +25726,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_dump_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24511,9 +25738,9 @@ SWIGINTERN PyObject *_wrap_layerObj_dump_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_dump_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_dump_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_dump_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_dump_set" "', argument " "2"" of type '" "int""'");
@@ -24529,7 +25756,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_dump_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24538,9 +25765,9 @@ SWIGINTERN PyObject *_wrap_layerObj_dump_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_dump_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_dump_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_dump_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->dump);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -24551,7 +25778,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_debug_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24563,9 +25790,9 @@ SWIGINTERN PyObject *_wrap_layerObj_debug_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_debug_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_debug_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_debug_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_debug_set" "', argument " "2"" of type '" "int""'");
@@ -24581,7 +25808,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_debug_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24590,9 +25817,9 @@ SWIGINTERN PyObject *_wrap_layerObj_debug_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_debug_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_debug_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_debug_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->debug);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -24603,7 +25830,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_extent_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24612,9 +25839,9 @@ SWIGINTERN PyObject *_wrap_layerObj_extent_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_extent_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_extent_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_extent_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (rectObj *)& ((arg1)->extent);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_rectObj, 0 |  0 );
   return resultobj;
@@ -24625,7 +25852,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_numprocessing_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24634,9 +25861,9 @@ SWIGINTERN PyObject *_wrap_layerObj_numprocessing_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_numprocessing_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numprocessing_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numprocessing_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->numprocessing);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -24647,7 +25874,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_numjoins_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24656,9 +25883,9 @@ SWIGINTERN PyObject *_wrap_layerObj_numjoins_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_numjoins_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numjoins_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_numjoins_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (int) ((arg1)->numjoins);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -24669,7 +25896,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_classgroup_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24678,9 +25905,9 @@ SWIGINTERN PyObject *_wrap_layerObj_classgroup_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_classgroup_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classgroup_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classgroup_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->classgroup) free((char*)arg1->classgroup);
     if (arg2) {
@@ -24699,7 +25926,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_classgroup_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24708,9 +25935,9 @@ SWIGINTERN PyObject *_wrap_layerObj_classgroup_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_classgroup_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classgroup_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_classgroup_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->classgroup);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -24721,7 +25948,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_mask_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24730,9 +25957,9 @@ SWIGINTERN PyObject *_wrap_layerObj_mask_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_mask_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mask_set" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mask_set" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     if (arg1->mask) free((char*)arg1->mask);
     if (arg2) {
@@ -24751,7 +25978,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_mask_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24760,9 +25987,9 @@ SWIGINTERN PyObject *_wrap_layerObj_mask_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_mask_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mask_get" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_mask_get" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   result = (char *) ((arg1)->mask);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -24777,7 +26004,7 @@ SWIGINTERN PyObject *_wrap_new_layerObj(PyObject *SWIGUNUSEDPARM(self), PyObject
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  layerObj *result = 0 ;
+  struct layerObj *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"|O:new_layerObj",&obj0)) SWIG_fail;
   if (obj0) {
@@ -24788,7 +26015,7 @@ SWIGINTERN PyObject *_wrap_new_layerObj(PyObject *SWIGUNUSEDPARM(self), PyObject
     arg1 = (mapObj *)(argp1);
   }
   {
-    result = (layerObj *)new_layerObj(arg1); {
+    result = (struct layerObj *)new_layerObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -24822,7 +26049,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_delete_layerObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24830,9 +26057,9 @@ SWIGINTERN PyObject *_wrap_delete_layerObj(PyObject *SWIGUNUSEDPARM(self), PyObj
   if (!PyArg_ParseTuple(args,(char *)"O:delete_layerObj",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_layerObj" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_layerObj" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     delete_layerObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -24868,7 +26095,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -24877,9 +26104,9 @@ SWIGINTERN PyObject *_wrap_layerObj_clone(PyObject *SWIGUNUSEDPARM(self), PyObje
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_clone",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_clone" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_clone" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (layerObj *)layerObj_clone(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -24915,7 +26142,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_updateFromString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -24925,9 +26152,9 @@ SWIGINTERN PyObject *_wrap_layerObj_updateFromString(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_updateFromString",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_updateFromString" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_updateFromString" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_updateFromString(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -24961,9 +26188,57 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_layerObj_convertToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:layerObj_convertToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_convertToString" "', argument " "1"" of type '" "struct layerObj *""'"); 
+  }
+  arg1 = (struct layerObj *)(argp1);
+  {
+    result = (char *)layerObj_convertToString(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_layerObj_insertClass(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   classObj *arg2 = (classObj *) 0 ;
   int arg3 = (int) -1 ;
   void *argp1 = 0 ;
@@ -24980,9 +26255,9 @@ SWIGINTERN PyObject *_wrap_layerObj_insertClass(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO|O:layerObj_insertClass",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_insertClass" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_insertClass" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_classObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_insertClass" "', argument " "2"" of type '" "classObj *""'"); 
@@ -25030,7 +26305,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_removeClass(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25043,9 +26318,9 @@ SWIGINTERN PyObject *_wrap_layerObj_removeClass(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_removeClass",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_removeClass" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_removeClass" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_removeClass" "', argument " "2"" of type '" "int""'");
@@ -25086,7 +26361,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_open(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -25095,9 +26370,9 @@ SWIGINTERN PyObject *_wrap_layerObj_open(PyObject *SWIGUNUSEDPARM(self), PyObjec
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_open",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_open" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_open" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_open(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -25133,7 +26408,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_whichShapes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   rectObj arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25146,9 +26421,9 @@ SWIGINTERN PyObject *_wrap_layerObj_whichShapes(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_whichShapes",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_whichShapes" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_whichShapes" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_rectObj,  0 );
     if (!SWIG_IsOK(res2)) {
@@ -25195,7 +26470,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_nextShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -25204,9 +26479,9 @@ SWIGINTERN PyObject *_wrap_layerObj_nextShape(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_nextShape",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_nextShape" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_nextShape" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (shapeObj *)layerObj_nextShape(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -25242,7 +26517,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_close(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -25250,9 +26525,9 @@ SWIGINTERN PyObject *_wrap_layerObj_close(PyObject *SWIGUNUSEDPARM(self), PyObje
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_close",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_close" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_close" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     layerObj_close(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -25288,7 +26563,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   resultObj *arg2 = (resultObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25301,9 +26576,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getShape(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_getShape",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getShape" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getShape" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_resultObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_getShape" "', argument " "2"" of type '" "resultObj *""'"); 
@@ -25344,7 +26619,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getNumResults(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -25353,9 +26628,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getNumResults(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_getNumResults",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNumResults" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNumResults" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_getNumResults(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -25391,7 +26666,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getResultsBounds(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -25400,9 +26675,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getResultsBounds(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_getResultsBounds",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResultsBounds" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResultsBounds" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (rectObj *)layerObj_getResultsBounds(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -25438,7 +26713,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getResult(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25451,9 +26726,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getResult(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_getResult",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResult" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResult" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_getResult" "', argument " "2"" of type '" "int""'");
@@ -25494,7 +26769,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getClass(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25507,9 +26782,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getClass(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_getClass",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getClass" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getClass" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_getClass" "', argument " "2"" of type '" "int""'");
@@ -25550,7 +26825,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getItem(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -25563,9 +26838,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getItem(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_getItem",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getItem" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getItem" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_getItem" "', argument " "2"" of type '" "int""'");
@@ -25606,7 +26881,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_setItems(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char **arg2 = (char **) 0 ;
   int arg3 ;
   void *argp1 = 0 ;
@@ -25623,9 +26898,9 @@ SWIGINTERN PyObject *_wrap_layerObj_setItems(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OOO:layerObj_setItems",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setItems" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setItems" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_char, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_setItems" "', argument " "2"" of type '" "char **""'"); 
@@ -25671,7 +26946,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_draw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   imageObj *arg3 = (imageObj *) 0 ;
   void *argp1 = 0 ;
@@ -25688,9 +26963,9 @@ SWIGINTERN PyObject *_wrap_layerObj_draw(PyObject *SWIGUNUSEDPARM(self), PyObjec
   if (!PyArg_ParseTuple(args,(char *)"OOO:layerObj_draw",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_draw" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_draw" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_draw" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -25736,7 +27011,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_drawQuery(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   imageObj *arg3 = (imageObj *) 0 ;
   void *argp1 = 0 ;
@@ -25753,9 +27028,9 @@ SWIGINTERN PyObject *_wrap_layerObj_drawQuery(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OOO:layerObj_drawQuery",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_drawQuery" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_drawQuery" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_drawQuery" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -25801,7 +27076,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_queryByFilter(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   char *arg3 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -25815,9 +27090,9 @@ SWIGINTERN PyObject *_wrap_layerObj_queryByFilter(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OOz:layerObj_queryByFilter",&obj0,&obj1,&arg3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByFilter" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByFilter" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByFilter" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -25858,7 +27133,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_queryByAttributes(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   char *arg3 = (char *) 0 ;
   char *arg4 = (char *) 0 ;
@@ -25877,9 +27152,9 @@ SWIGINTERN PyObject *_wrap_layerObj_queryByAttributes(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"OOzzO:layerObj_queryByAttributes",&obj0,&obj1,&arg3,&arg4,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByAttributes" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByAttributes" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByAttributes" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -25925,7 +27200,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_queryByPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   pointObj *arg3 = (pointObj *) 0 ;
   int arg4 ;
@@ -25950,9 +27225,9 @@ SWIGINTERN PyObject *_wrap_layerObj_queryByPoint(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:layerObj_queryByPoint",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByPoint" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByPoint" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByPoint" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -26008,7 +27283,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_queryByRect(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   rectObj arg3 ;
   void *argp1 = 0 ;
@@ -26025,9 +27300,9 @@ SWIGINTERN PyObject *_wrap_layerObj_queryByRect(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OOO:layerObj_queryByRect",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByRect" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByRect" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByRect" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -26079,7 +27354,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_queryByFeatures(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   int arg3 ;
   void *argp1 = 0 ;
@@ -26096,9 +27371,9 @@ SWIGINTERN PyObject *_wrap_layerObj_queryByFeatures(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"OOO:layerObj_queryByFeatures",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByFeatures" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByFeatures" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByFeatures" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -26144,7 +27419,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_queryByShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   shapeObj *arg3 = (shapeObj *) 0 ;
   void *argp1 = 0 ;
@@ -26161,9 +27436,9 @@ SWIGINTERN PyObject *_wrap_layerObj_queryByShape(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OOO:layerObj_queryByShape",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByShape" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByShape" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByShape" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -26209,7 +27484,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_queryByIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   int arg3 ;
   int arg4 ;
@@ -26234,9 +27509,9 @@ SWIGINTERN PyObject *_wrap_layerObj_queryByIndex(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OOOO|O:layerObj_queryByIndex",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByIndex" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_queryByIndex" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_queryByIndex" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -26294,7 +27569,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getResults(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -26303,9 +27578,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getResults(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_getResults",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResults" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getResults" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (resultCacheObj *)layerObj_getResults(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -26341,7 +27616,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_setFilter(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26351,9 +27626,9 @@ SWIGINTERN PyObject *_wrap_layerObj_setFilter(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_setFilter",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setFilter" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setFilter" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_setFilter(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -26389,7 +27664,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getFilterString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -26398,9 +27673,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getFilterString(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_getFilterString",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getFilterString" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getFilterString" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (char *)layerObj_getFilterString(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -26437,7 +27712,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_setWKTProjection(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26447,9 +27722,9 @@ SWIGINTERN PyObject *_wrap_layerObj_setWKTProjection(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_setWKTProjection",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setWKTProjection" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setWKTProjection" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_setWKTProjection(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -26485,7 +27760,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getProjection(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -26494,9 +27769,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getProjection(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_getProjection",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProjection" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProjection" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (char *)layerObj_getProjection(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -26533,7 +27808,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_setProjection(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26543,9 +27818,9 @@ SWIGINTERN PyObject *_wrap_layerObj_setProjection(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_setProjection",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProjection" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProjection" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_setProjection(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -26581,7 +27856,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_addFeature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   shapeObj *arg2 = (shapeObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26594,9 +27869,9 @@ SWIGINTERN PyObject *_wrap_layerObj_addFeature(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_addFeature",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_addFeature" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_addFeature" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_shapeObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_addFeature" "', argument " "2"" of type '" "shapeObj *""'"); 
@@ -26637,7 +27912,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getNumFeatures(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -26646,9 +27921,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getNumFeatures(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_getNumFeatures",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNumFeatures" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNumFeatures" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_getNumFeatures(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -26684,7 +27959,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getExtent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -26693,9 +27968,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getExtent(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_getExtent",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getExtent" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getExtent" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (rectObj *)layerObj_getExtent(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -26731,7 +28006,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_setExtent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   double arg2 = (double) -1.0 ;
   double arg3 = (double) -1.0 ;
   double arg4 = (double) -1.0 ;
@@ -26756,9 +28031,9 @@ SWIGINTERN PyObject *_wrap_layerObj_setExtent(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O|OOOO:layerObj_setExtent",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setExtent" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setExtent" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   if (obj1) {
     ecode2 = SWIG_AsVal_double(obj1, &val2);
     if (!SWIG_IsOK(ecode2)) {
@@ -26822,7 +28097,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getMetaData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26832,9 +28107,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getMetaData(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_getMetaData",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getMetaData" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getMetaData" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (char *)layerObj_getMetaData(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -26870,7 +28145,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_setMetaData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -26881,9 +28156,9 @@ SWIGINTERN PyObject *_wrap_layerObj_setMetaData(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Ozz:layerObj_setMetaData",&obj0,&arg2,&arg3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setMetaData" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setMetaData" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_setMetaData(arg1,arg2,arg3); {
       errorObj *ms_error = msGetErrorObj();
@@ -26919,7 +28194,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_removeMetaData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -26929,9 +28204,9 @@ SWIGINTERN PyObject *_wrap_layerObj_removeMetaData(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_removeMetaData",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_removeMetaData" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_removeMetaData" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_removeMetaData(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -26967,7 +28242,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getFirstMetaDataKey(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -26976,9 +28251,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getFirstMetaDataKey(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_getFirstMetaDataKey",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getFirstMetaDataKey" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getFirstMetaDataKey" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (char *)layerObj_getFirstMetaDataKey(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -27014,7 +28289,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getNextMetaDataKey(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27024,9 +28299,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getNextMetaDataKey(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_getNextMetaDataKey",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNextMetaDataKey" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getNextMetaDataKey" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (char *)layerObj_getNextMetaDataKey(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -27062,7 +28337,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getWMSFeatureInfoURL(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   mapObj *arg2 = (mapObj *) 0 ;
   int arg3 ;
   int arg4 ;
@@ -27088,9 +28363,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getWMSFeatureInfoURL(PyObject *SWIGUNUSEDPAR
   if (!PyArg_ParseTuple(args,(char *)"OOOOOz:layerObj_getWMSFeatureInfoURL",&obj0,&obj1,&obj2,&obj3,&obj4,&arg6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getWMSFeatureInfoURL" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getWMSFeatureInfoURL" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_getWMSFeatureInfoURL" "', argument " "2"" of type '" "mapObj *""'"); 
@@ -27147,7 +28422,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_executeWFSGetFeature(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   layerObj *arg2 = (layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27160,9 +28435,9 @@ SWIGINTERN PyObject *_wrap_layerObj_executeWFSGetFeature(PyObject *SWIGUNUSEDPAR
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_executeWFSGetFeature",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_executeWFSGetFeature" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_executeWFSGetFeature" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_executeWFSGetFeature" "', argument " "2"" of type '" "layerObj *""'"); 
@@ -27204,7 +28479,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_applySLD(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -27215,9 +28490,9 @@ SWIGINTERN PyObject *_wrap_layerObj_applySLD(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"Ozz:layerObj_applySLD",&obj0,&arg2,&arg3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_applySLD" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_applySLD" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_applySLD(arg1,arg2,arg3); {
       errorObj *ms_error = msGetErrorObj();
@@ -27253,7 +28528,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_applySLDURL(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -27264,9 +28539,9 @@ SWIGINTERN PyObject *_wrap_layerObj_applySLDURL(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Ozz:layerObj_applySLDURL",&obj0,&arg2,&arg3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_applySLDURL" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_applySLDURL" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_applySLDURL(arg1,arg2,arg3); {
       errorObj *ms_error = msGetErrorObj();
@@ -27302,7 +28577,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_generateSLD(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -27311,9 +28586,9 @@ SWIGINTERN PyObject *_wrap_layerObj_generateSLD(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_generateSLD",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_generateSLD" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_generateSLD" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (char *)layerObj_generateSLD(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -27350,7 +28625,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_isVisible(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -27359,9 +28634,9 @@ SWIGINTERN PyObject *_wrap_layerObj_isVisible(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_isVisible",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_isVisible" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_isVisible" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_isVisible(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -27397,7 +28672,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_moveClassUp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27410,9 +28685,9 @@ SWIGINTERN PyObject *_wrap_layerObj_moveClassUp(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_moveClassUp",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_moveClassUp" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_moveClassUp" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_moveClassUp" "', argument " "2"" of type '" "int""'");
@@ -27453,7 +28728,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_moveClassDown(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27466,9 +28741,9 @@ SWIGINTERN PyObject *_wrap_layerObj_moveClassDown(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_moveClassDown",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_moveClassDown" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_moveClassDown" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_moveClassDown" "', argument " "2"" of type '" "int""'");
@@ -27509,7 +28784,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_setProcessingKey(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -27527,9 +28802,9 @@ SWIGINTERN PyObject *_wrap_layerObj_setProcessingKey(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"OOO:layerObj_setProcessingKey",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProcessingKey" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProcessingKey" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_setProcessingKey" "', argument " "2"" of type '" "char const *""'");
@@ -27579,7 +28854,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_setProcessing(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27592,9 +28867,9 @@ SWIGINTERN PyObject *_wrap_layerObj_setProcessing(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_setProcessing",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProcessing" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setProcessing" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_setProcessing" "', argument " "2"" of type '" "char const *""'");
@@ -27637,7 +28912,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_addProcessing(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27650,9 +28925,9 @@ SWIGINTERN PyObject *_wrap_layerObj_addProcessing(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_addProcessing",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_addProcessing" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_addProcessing" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_addProcessing" "', argument " "2"" of type '" "char const *""'");
@@ -27695,7 +28970,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getProcessing(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27708,9 +28983,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getProcessing(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_getProcessing",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProcessing" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProcessing" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_getProcessing" "', argument " "2"" of type '" "int""'");
@@ -27751,7 +29026,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_getProcessingKey(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -27765,9 +29040,9 @@ SWIGINTERN PyObject *_wrap_layerObj_getProcessingKey(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"OO:layerObj_getProcessingKey",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProcessingKey" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getProcessingKey" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_getProcessingKey" "', argument " "2"" of type '" "char const *""'");
@@ -27810,7 +29085,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_layerObj_clearProcessing(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -27819,9 +29094,9 @@ SWIGINTERN PyObject *_wrap_layerObj_clearProcessing(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:layerObj_clearProcessing",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_clearProcessing" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_clearProcessing" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
+  arg1 = (struct layerObj *)(argp1);
   {
     result = (int)layerObj_clearProcessing(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -27855,41 +29130,177 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_layerObj_setConnectionType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_layerObj_setConnectionType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
+  int arg2 ;
+  char *arg3 = (char *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
+  int res3 ;
+  char *buf3 = 0 ;
+  int alloc3 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO:layerObj_setConnectionType",&obj0,&obj1,&obj2)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setConnectionType" "', argument " "1"" of type '" "struct layerObj *""'"); 
+  }
+  arg1 = (struct layerObj *)(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_setConnectionType" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
+  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "layerObj_setConnectionType" "', argument " "3"" of type '" "char const *""'");
+  }
+  arg3 = (char *)(buf3);
+  {
+    result = (int)layerObj_setConnectionType(arg1,arg2,(char const *)arg3); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_From_int((int)(result));
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return resultobj;
+fail:
+  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_layerObj_getClassIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
+  mapObj *arg2 = (mapObj *) 0 ;
+  shapeObj *arg3 = (shapeObj *) 0 ;
+  int *arg4 = (int *) NULL ;
+  int arg5 = (int) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  void *argp2 = 0 ;
+  int res2 = 0 ;
+  void *argp3 = 0 ;
+  int res3 = 0 ;
+  void *argp4 = 0 ;
+  int res4 = 0 ;
+  int val5 ;
+  int ecode5 = 0 ;
+  PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  PyObject * obj2 = 0 ;
+  PyObject * obj3 = 0 ;
+  PyObject * obj4 = 0 ;
+  int result;
+  
+  if (!PyArg_ParseTuple(args,(char *)"OOO|OO:layerObj_getClassIndex",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getClassIndex" "', argument " "1"" of type '" "struct layerObj *""'"); 
+  }
+  arg1 = (struct layerObj *)(argp1);
+  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
+  if (!SWIG_IsOK(res2)) {
+    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_getClassIndex" "', argument " "2"" of type '" "mapObj *""'"); 
+  }
+  arg2 = (mapObj *)(argp2);
+  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_shapeObj, 0 |  0 );
+  if (!SWIG_IsOK(res3)) {
+    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "layerObj_getClassIndex" "', argument " "3"" of type '" "shapeObj *""'"); 
+  }
+  arg3 = (shapeObj *)(argp3);
+  if (obj3) {
+    res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_int, 0 |  0 );
+    if (!SWIG_IsOK(res4)) {
+      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "layerObj_getClassIndex" "', argument " "4"" of type '" "int *""'"); 
+    }
+    arg4 = (int *)(argp4);
+  }
+  if (obj4) {
+    ecode5 = SWIG_AsVal_int(obj4, &val5);
+    if (!SWIG_IsOK(ecode5)) {
+      SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "layerObj_getClassIndex" "', argument " "5"" of type '" "int""'");
+    } 
+    arg5 = (int)(val5);
+  }
+  {
+    result = (int)layerObj_getClassIndex(arg1,arg2,arg3,arg4,arg5); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_From_int((int)(result));
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_layerObj_getGeomTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
-  int arg2 ;
-  char *arg3 = (char *) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  int val2 ;
-  int ecode2 = 0 ;
-  int res3 ;
-  char *buf3 = 0 ;
-  int alloc3 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  int result;
+  char *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO:layerObj_setConnectionType",&obj0,&obj1,&obj2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"O:layerObj_getGeomTransform",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setConnectionType" "', argument " "1"" of type '" "layerObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getGeomTransform" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
-  arg1 = (layerObj *)(argp1);
-  ecode2 = SWIG_AsVal_int(obj1, &val2);
-  if (!SWIG_IsOK(ecode2)) {
-    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "layerObj_setConnectionType" "', argument " "2"" of type '" "int""'");
-  } 
-  arg2 = (int)(val2);
-  res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "layerObj_setConnectionType" "', argument " "3"" of type '" "char const *""'");
-  }
-  arg3 = (char *)(buf3);
+  arg1 = (struct layerObj *)(argp1);
   {
-    result = (int)layerObj_setConnectionType(arg1,arg2,(char const *)arg3); {
+    result = (char *)layerObj_getGeomTransform(arg1); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -27914,71 +29325,29 @@ SWIGINTERN PyObject *_wrap_layerObj_setConnectionType(PyObject *SWIGUNUSEDPARM(s
       
     }
   }
-  resultobj = SWIG_From_int((int)(result));
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
+  resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
 fail:
-  if (alloc3 == SWIG_NEWOBJ) free((char*)buf3);
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_layerObj_getClassIndex(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_layerObj_setGeomTransform(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  layerObj *arg1 = (layerObj *) 0 ;
-  mapObj *arg2 = (mapObj *) 0 ;
-  shapeObj *arg3 = (shapeObj *) 0 ;
-  int *arg4 = (int *) NULL ;
-  int arg5 = (int) 0 ;
+  struct layerObj *arg1 = (struct layerObj *) 0 ;
+  char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
-  void *argp2 = 0 ;
-  int res2 = 0 ;
-  void *argp3 = 0 ;
-  int res3 = 0 ;
-  void *argp4 = 0 ;
-  int res4 = 0 ;
-  int val5 ;
-  int ecode5 = 0 ;
   PyObject * obj0 = 0 ;
-  PyObject * obj1 = 0 ;
-  PyObject * obj2 = 0 ;
-  PyObject * obj3 = 0 ;
-  PyObject * obj4 = 0 ;
-  int result;
   
-  if (!PyArg_ParseTuple(args,(char *)"OOO|OO:layerObj_getClassIndex",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"Oz:layerObj_setGeomTransform",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_getClassIndex" "', argument " "1"" of type '" "layerObj *""'"); 
-  }
-  arg1 = (layerObj *)(argp1);
-  res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_mapObj, 0 |  0 );
-  if (!SWIG_IsOK(res2)) {
-    SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "layerObj_getClassIndex" "', argument " "2"" of type '" "mapObj *""'"); 
-  }
-  arg2 = (mapObj *)(argp2);
-  res3 = SWIG_ConvertPtr(obj2, &argp3,SWIGTYPE_p_shapeObj, 0 |  0 );
-  if (!SWIG_IsOK(res3)) {
-    SWIG_exception_fail(SWIG_ArgError(res3), "in method '" "layerObj_getClassIndex" "', argument " "3"" of type '" "shapeObj *""'"); 
-  }
-  arg3 = (shapeObj *)(argp3);
-  if (obj3) {
-    res4 = SWIG_ConvertPtr(obj3, &argp4,SWIGTYPE_p_int, 0 |  0 );
-    if (!SWIG_IsOK(res4)) {
-      SWIG_exception_fail(SWIG_ArgError(res4), "in method '" "layerObj_getClassIndex" "', argument " "4"" of type '" "int *""'"); 
-    }
-    arg4 = (int *)(argp4);
-  }
-  if (obj4) {
-    ecode5 = SWIG_AsVal_int(obj4, &val5);
-    if (!SWIG_IsOK(ecode5)) {
-      SWIG_exception_fail(SWIG_ArgError(ecode5), "in method '" "layerObj_getClassIndex" "', argument " "5"" of type '" "int""'");
-    } 
-    arg5 = (int)(val5);
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "layerObj_setGeomTransform" "', argument " "1"" of type '" "struct layerObj *""'"); 
   }
+  arg1 = (struct layerObj *)(argp1);
   {
-    result = (int)layerObj_getClassIndex(arg1,arg2,arg3,arg4,arg5); {
+    layerObj_setGeomTransform(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -28003,7 +29372,7 @@ SWIGINTERN PyObject *_wrap_layerObj_getClassIndex(PyObject *SWIGUNUSEDPARM(self)
       
     }
   }
-  resultobj = SWIG_From_int((int)(result));
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
@@ -28019,7 +29388,7 @@ SWIGINTERN PyObject *layerObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObj
 
 SWIGINTERN PyObject *_wrap_mapObj_name_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28028,9 +29397,9 @@ SWIGINTERN PyObject *_wrap_mapObj_name_set(PyObject *SWIGUNUSEDPARM(self), PyObj
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_name_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_name_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_name_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     if (arg1->name) free((char*)arg1->name);
     if (arg2) {
@@ -28049,7 +29418,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_name_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28058,9 +29427,9 @@ SWIGINTERN PyObject *_wrap_mapObj_name_get(PyObject *SWIGUNUSEDPARM(self), PyObj
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_name_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_name_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_name_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (char *) ((arg1)->name);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -28071,7 +29440,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_status_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28083,9 +29452,9 @@ SWIGINTERN PyObject *_wrap_mapObj_status_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_status_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_status_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_status_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_status_set" "', argument " "2"" of type '" "int""'");
@@ -28101,7 +29470,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_status_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28110,9 +29479,9 @@ SWIGINTERN PyObject *_wrap_mapObj_status_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_status_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_status_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_status_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->status);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -28123,7 +29492,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_height_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28135,9 +29504,9 @@ SWIGINTERN PyObject *_wrap_mapObj_height_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_height_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_height_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_height_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_height_set" "', argument " "2"" of type '" "int""'");
@@ -28153,7 +29522,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_height_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28162,9 +29531,9 @@ SWIGINTERN PyObject *_wrap_mapObj_height_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_height_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_height_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_height_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->height);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -28175,7 +29544,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_width_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28187,9 +29556,9 @@ SWIGINTERN PyObject *_wrap_mapObj_width_set(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_width_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_width_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_width_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_width_set" "', argument " "2"" of type '" "int""'");
@@ -28205,7 +29574,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_width_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28214,9 +29583,9 @@ SWIGINTERN PyObject *_wrap_mapObj_width_get(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_width_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_width_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_width_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->width);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -28227,7 +29596,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_maxsize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28239,9 +29608,9 @@ SWIGINTERN PyObject *_wrap_mapObj_maxsize_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_maxsize_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxsize_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxsize_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_maxsize_set" "', argument " "2"" of type '" "int""'");
@@ -28257,7 +29626,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_maxsize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28266,9 +29635,9 @@ SWIGINTERN PyObject *_wrap_mapObj_maxsize_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_maxsize_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxsize_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxsize_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->maxsize);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -28279,7 +29648,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_refcount_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28288,9 +29657,9 @@ SWIGINTERN PyObject *_wrap_mapObj_refcount_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_refcount_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_refcount_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_refcount_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->refcount);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -28301,7 +29670,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_numlayers_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28310,9 +29679,9 @@ SWIGINTERN PyObject *_wrap_mapObj_numlayers_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_numlayers_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_numlayers_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_numlayers_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->numlayers);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -28323,7 +29692,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_maxlayers_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28332,9 +29701,9 @@ SWIGINTERN PyObject *_wrap_mapObj_maxlayers_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_maxlayers_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxlayers_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_maxlayers_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->maxlayers);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -28345,7 +29714,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_symbolset_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28354,9 +29723,9 @@ SWIGINTERN PyObject *_wrap_mapObj_symbolset_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_symbolset_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_symbolset_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_symbolset_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (symbolSetObj *)& ((arg1)->symbolset);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_symbolSetObj, 0 |  0 );
   return resultobj;
@@ -28367,7 +29736,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_fontset_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28376,9 +29745,9 @@ SWIGINTERN PyObject *_wrap_mapObj_fontset_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_fontset_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_fontset_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_fontset_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (fontSetObj *)& ((arg1)->fontset);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_fontSetObj, 0 |  0 );
   return resultobj;
@@ -28389,7 +29758,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_labelcache_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28398,9 +29767,9 @@ SWIGINTERN PyObject *_wrap_mapObj_labelcache_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_labelcache_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_labelcache_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_labelcache_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (labelCacheObj *)& ((arg1)->labelcache);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_labelCacheObj, 0 |  0 );
   return resultobj;
@@ -28411,7 +29780,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_transparent_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28423,9 +29792,9 @@ SWIGINTERN PyObject *_wrap_mapObj_transparent_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_transparent_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_transparent_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_transparent_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_transparent_set" "', argument " "2"" of type '" "int""'");
@@ -28441,7 +29810,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_transparent_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28450,9 +29819,9 @@ SWIGINTERN PyObject *_wrap_mapObj_transparent_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_transparent_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_transparent_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_transparent_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->transparent);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -28463,7 +29832,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_interlace_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28475,9 +29844,9 @@ SWIGINTERN PyObject *_wrap_mapObj_interlace_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_interlace_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_interlace_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_interlace_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_interlace_set" "', argument " "2"" of type '" "int""'");
@@ -28493,7 +29862,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_interlace_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28502,9 +29871,9 @@ SWIGINTERN PyObject *_wrap_mapObj_interlace_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_interlace_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_interlace_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_interlace_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->interlace);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -28515,7 +29884,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_imagequality_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28527,9 +29896,9 @@ SWIGINTERN PyObject *_wrap_mapObj_imagequality_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_imagequality_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagequality_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagequality_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_imagequality_set" "', argument " "2"" of type '" "int""'");
@@ -28545,7 +29914,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_imagequality_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28554,9 +29923,9 @@ SWIGINTERN PyObject *_wrap_mapObj_imagequality_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_imagequality_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagequality_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagequality_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->imagequality);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -28567,7 +29936,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_extent_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   rectObj *arg2 = (rectObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28579,9 +29948,9 @@ SWIGINTERN PyObject *_wrap_mapObj_extent_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_extent_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_extent_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_extent_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_rectObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_extent_set" "', argument " "2"" of type '" "rectObj *""'"); 
@@ -28597,7 +29966,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_extent_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28606,9 +29975,9 @@ SWIGINTERN PyObject *_wrap_mapObj_extent_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_extent_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_extent_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_extent_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (rectObj *)& ((arg1)->extent);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_rectObj, 0 |  0 );
   return resultobj;
@@ -28619,7 +29988,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_cellsize_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28631,9 +30000,9 @@ SWIGINTERN PyObject *_wrap_mapObj_cellsize_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_cellsize_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_cellsize_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_cellsize_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_cellsize_set" "', argument " "2"" of type '" "double""'");
@@ -28649,7 +30018,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_cellsize_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28658,9 +30027,9 @@ SWIGINTERN PyObject *_wrap_mapObj_cellsize_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_cellsize_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_cellsize_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_cellsize_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (double) ((arg1)->cellsize);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -28671,7 +30040,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_units_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   enum MS_UNITS arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28683,9 +30052,9 @@ SWIGINTERN PyObject *_wrap_mapObj_units_set(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_units_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_units_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_units_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_units_set" "', argument " "2"" of type '" "enum MS_UNITS""'");
@@ -28701,7 +30070,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_units_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28710,9 +30079,9 @@ SWIGINTERN PyObject *_wrap_mapObj_units_get(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_units_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_units_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_units_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (enum MS_UNITS) ((arg1)->units);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -28723,7 +30092,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_scaledenom_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28735,9 +30104,9 @@ SWIGINTERN PyObject *_wrap_mapObj_scaledenom_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_scaledenom_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaledenom_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaledenom_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_scaledenom_set" "', argument " "2"" of type '" "double""'");
@@ -28753,7 +30122,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_scaledenom_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28762,9 +30131,9 @@ SWIGINTERN PyObject *_wrap_mapObj_scaledenom_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_scaledenom_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaledenom_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaledenom_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (double) ((arg1)->scaledenom);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -28775,7 +30144,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_resolution_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28787,9 +30156,9 @@ SWIGINTERN PyObject *_wrap_mapObj_resolution_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_resolution_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_resolution_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_resolution_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_resolution_set" "', argument " "2"" of type '" "double""'");
@@ -28805,7 +30174,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_resolution_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28814,9 +30183,9 @@ SWIGINTERN PyObject *_wrap_mapObj_resolution_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_resolution_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_resolution_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_resolution_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (double) ((arg1)->resolution);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -28827,7 +30196,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_defresolution_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28839,9 +30208,9 @@ SWIGINTERN PyObject *_wrap_mapObj_defresolution_set(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_defresolution_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_defresolution_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_defresolution_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_defresolution_set" "', argument " "2"" of type '" "double""'");
@@ -28857,7 +30226,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_defresolution_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28866,9 +30235,9 @@ SWIGINTERN PyObject *_wrap_mapObj_defresolution_get(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_defresolution_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_defresolution_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_defresolution_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (double) ((arg1)->defresolution);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -28879,7 +30248,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_shapepath_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28888,9 +30257,9 @@ SWIGINTERN PyObject *_wrap_mapObj_shapepath_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_shapepath_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_shapepath_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_shapepath_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     if (arg1->shapepath) free((char*)arg1->shapepath);
     if (arg2) {
@@ -28909,7 +30278,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_shapepath_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28918,9 +30287,9 @@ SWIGINTERN PyObject *_wrap_mapObj_shapepath_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_shapepath_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_shapepath_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_shapepath_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (char *) ((arg1)->shapepath);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -28931,7 +30300,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_mappath_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28940,9 +30309,9 @@ SWIGINTERN PyObject *_wrap_mapObj_mappath_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_mappath_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_mappath_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_mappath_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     if (arg1->mappath) free((char*)arg1->mappath);
     if (arg2) {
@@ -28961,7 +30330,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_mappath_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -28970,9 +30339,9 @@ SWIGINTERN PyObject *_wrap_mapObj_mappath_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_mappath_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_mappath_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_mappath_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (char *) ((arg1)->mappath);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -28983,7 +30352,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_imagecolor_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   colorObj *arg2 = (colorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -28995,9 +30364,9 @@ SWIGINTERN PyObject *_wrap_mapObj_imagecolor_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_imagecolor_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagecolor_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagecolor_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_colorObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_imagecolor_set" "', argument " "2"" of type '" "colorObj *""'"); 
@@ -29013,7 +30382,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_imagecolor_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29022,9 +30391,9 @@ SWIGINTERN PyObject *_wrap_mapObj_imagecolor_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_imagecolor_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagecolor_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagecolor_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (colorObj *)& ((arg1)->imagecolor);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_colorObj, 0 |  0 );
   return resultobj;
@@ -29035,7 +30404,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_numoutputformats_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29044,9 +30413,9 @@ SWIGINTERN PyObject *_wrap_mapObj_numoutputformats_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_numoutputformats_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_numoutputformats_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_numoutputformats_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->numoutputformats);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -29055,31 +30424,9 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_mapObj_outputformatlist_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  outputFormatObj **result = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:mapObj_outputformatlist_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_outputformatlist_get" "', argument " "1"" of type '" "mapObj *""'"); 
-  }
-  arg1 = (mapObj *)(argp1);
-  result = (outputFormatObj **) ((arg1)->outputformatlist);
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_p_outputFormatObj, 0 |  0 );
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_mapObj_outputformat_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29088,9 +30435,9 @@ SWIGINTERN PyObject *_wrap_mapObj_outputformat_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_outputformat_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_outputformat_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_outputformat_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (outputFormatObj *) ((arg1)->outputformat);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_outputFormatObj, 0 |  0 );
   return resultobj;
@@ -29101,7 +30448,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_imagetype_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29110,9 +30457,9 @@ SWIGINTERN PyObject *_wrap_mapObj_imagetype_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_imagetype_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagetype_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_imagetype_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (char *) ((arg1)->imagetype);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -29123,7 +30470,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_reference_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29132,9 +30479,9 @@ SWIGINTERN PyObject *_wrap_mapObj_reference_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_reference_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_reference_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_reference_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (referenceMapObj *)& ((arg1)->reference);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_referenceMapObj, 0 |  0 );
   return resultobj;
@@ -29145,7 +30492,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_scalebar_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29154,9 +30501,9 @@ SWIGINTERN PyObject *_wrap_mapObj_scalebar_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_scalebar_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scalebar_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scalebar_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (scalebarObj *)& ((arg1)->scalebar);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_scalebarObj, 0 |  0 );
   return resultobj;
@@ -29167,7 +30514,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_legend_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29176,9 +30523,9 @@ SWIGINTERN PyObject *_wrap_mapObj_legend_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_legend_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_legend_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_legend_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (legendObj *)& ((arg1)->legend);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_legendObj, 0 |  0 );
   return resultobj;
@@ -29189,7 +30536,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_querymap_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29198,9 +30545,9 @@ SWIGINTERN PyObject *_wrap_mapObj_querymap_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_querymap_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_querymap_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_querymap_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (queryMapObj *)& ((arg1)->querymap);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_queryMapObj, 0 |  0 );
   return resultobj;
@@ -29211,7 +30558,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_web_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29220,9 +30567,9 @@ SWIGINTERN PyObject *_wrap_mapObj_web_get(PyObject *SWIGUNUSEDPARM(self), PyObje
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_web_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_web_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_web_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (webObj *)& ((arg1)->web);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_webObj, 0 |  0 );
   return resultobj;
@@ -29233,7 +30580,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_layerorder_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int *arg2 = (int *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29245,9 +30592,9 @@ SWIGINTERN PyObject *_wrap_mapObj_layerorder_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_layerorder_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_layerorder_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_layerorder_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_int, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_layerorder_set" "', argument " "2"" of type '" "int *""'"); 
@@ -29263,7 +30610,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_layerorder_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29272,9 +30619,9 @@ SWIGINTERN PyObject *_wrap_mapObj_layerorder_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_layerorder_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_layerorder_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_layerorder_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int *) ((arg1)->layerorder);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_int, 0 |  0 );
   return resultobj;
@@ -29285,7 +30632,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_debug_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29297,9 +30644,9 @@ SWIGINTERN PyObject *_wrap_mapObj_debug_set(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_debug_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_debug_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_debug_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_debug_set" "', argument " "2"" of type '" "int""'");
@@ -29315,7 +30662,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_debug_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29324,9 +30671,9 @@ SWIGINTERN PyObject *_wrap_mapObj_debug_get(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_debug_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_debug_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_debug_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (int) ((arg1)->debug);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -29337,7 +30684,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_datapattern_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29346,9 +30693,9 @@ SWIGINTERN PyObject *_wrap_mapObj_datapattern_set(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_datapattern_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_datapattern_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_datapattern_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     if (arg1->datapattern) free((char*)arg1->datapattern);
     if (arg2) {
@@ -29367,7 +30714,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_datapattern_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29376,9 +30723,9 @@ SWIGINTERN PyObject *_wrap_mapObj_datapattern_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_datapattern_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_datapattern_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_datapattern_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (char *) ((arg1)->datapattern);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -29389,7 +30736,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_templatepattern_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29398,9 +30745,9 @@ SWIGINTERN PyObject *_wrap_mapObj_templatepattern_set(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_templatepattern_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_templatepattern_set" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_templatepattern_set" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     if (arg1->templatepattern) free((char*)arg1->templatepattern);
     if (arg2) {
@@ -29419,7 +30766,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_templatepattern_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29428,9 +30775,9 @@ SWIGINTERN PyObject *_wrap_mapObj_templatepattern_get(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_templatepattern_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_templatepattern_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_templatepattern_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (char *) ((arg1)->templatepattern);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -29441,7 +30788,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_configoptions_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29450,9 +30797,9 @@ SWIGINTERN PyObject *_wrap_mapObj_configoptions_get(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_configoptions_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_configoptions_get" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_configoptions_get" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   result = (hashTableObj *)& ((arg1)->configoptions);
   resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_hashTableObj, 0 |  0 );
   return resultobj;
@@ -29464,11 +30811,11 @@ fail:
 SWIGINTERN PyObject *_wrap_new_mapObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   char *arg1 = (char *) "" ;
-  mapObj *result = 0 ;
+  struct mapObj *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"|z:new_mapObj",&arg1)) SWIG_fail;
   {
-    result = (mapObj *)new_mapObj(arg1); {
+    result = (struct mapObj *)new_mapObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -29502,7 +30849,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_delete_mapObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29510,9 +30857,9 @@ SWIGINTERN PyObject *_wrap_delete_mapObj(PyObject *SWIGUNUSEDPARM(self), PyObjec
   if (!PyArg_ParseTuple(args,(char *)"O:delete_mapObj",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mapObj" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_mapObj" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     delete_mapObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -29548,7 +30895,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_clone(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -29557,9 +30904,9 @@ SWIGINTERN PyObject *_wrap_mapObj_clone(PyObject *SWIGUNUSEDPARM(self), PyObject
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_clone",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_clone" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_clone" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (mapObj *)mapObj_clone(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -29595,7 +30942,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_insertLayer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   layerObj *arg2 = (layerObj *) 0 ;
   int arg3 = (int) -1 ;
   void *argp1 = 0 ;
@@ -29612,9 +30959,9 @@ SWIGINTERN PyObject *_wrap_mapObj_insertLayer(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO|O:mapObj_insertLayer",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_insertLayer" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_insertLayer" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_layerObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_insertLayer" "', argument " "2"" of type '" "layerObj *""'"); 
@@ -29662,7 +31009,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_removeLayer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29675,9 +31022,9 @@ SWIGINTERN PyObject *_wrap_mapObj_removeLayer(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_removeLayer",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeLayer" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeLayer" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_removeLayer" "', argument " "2"" of type '" "int""'");
@@ -29718,7 +31065,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setExtent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   double arg3 ;
   double arg4 ;
@@ -29743,9 +31090,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setExtent(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:mapObj_setExtent",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setExtent" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setExtent" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_setExtent" "', argument " "2"" of type '" "double""'");
@@ -29801,7 +31148,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_offsetExtent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   double arg3 ;
   void *argp1 = 0 ;
@@ -29818,9 +31165,9 @@ SWIGINTERN PyObject *_wrap_mapObj_offsetExtent(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OOO:mapObj_offsetExtent",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_offsetExtent" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_offsetExtent" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_offsetExtent" "', argument " "2"" of type '" "double""'");
@@ -29866,7 +31213,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_scaleExtent(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   double arg3 ;
   double arg4 ;
@@ -29887,9 +31234,9 @@ SWIGINTERN PyObject *_wrap_mapObj_scaleExtent(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OOOO:mapObj_scaleExtent",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaleExtent" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_scaleExtent" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_scaleExtent" "', argument " "2"" of type '" "double""'");
@@ -29940,7 +31287,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setCenter(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   pointObj *arg2 = (pointObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -29953,9 +31300,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setCenter(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_setCenter",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setCenter" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setCenter" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_pointObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setCenter" "', argument " "2"" of type '" "pointObj *""'"); 
@@ -29996,7 +31343,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   int arg3 ;
   void *argp1 = 0 ;
@@ -30013,9 +31360,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setSize(PyObject *SWIGUNUSEDPARM(self), PyObje
   if (!PyArg_ParseTuple(args,(char *)"OOO:mapObj_setSize",&obj0,&obj1,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setSize" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setSize" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_setSize" "', argument " "2"" of type '" "int""'");
@@ -30061,7 +31408,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setRotation(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30074,9 +31421,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setRotation(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_setRotation",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setRotation" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setRotation" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_setRotation" "', argument " "2"" of type '" "double""'");
@@ -30117,7 +31464,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getLayer(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30130,9 +31477,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getLayer(PyObject *SWIGUNUSEDPARM(self), PyObj
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_getLayer",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayer" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayer" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_getLayer" "', argument " "2"" of type '" "int""'");
@@ -30173,7 +31520,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getLayerByName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30183,9 +31530,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getLayerByName(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_getLayerByName",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayerByName" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayerByName" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (layerObj *)mapObj_getLayerByName(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -30221,7 +31568,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getSymbolByName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30231,9 +31578,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getSymbolByName(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_getSymbolByName",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getSymbolByName" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getSymbolByName" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_getSymbolByName(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -30269,7 +31616,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_prepareQuery(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -30277,9 +31624,9 @@ SWIGINTERN PyObject *_wrap_mapObj_prepareQuery(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_prepareQuery",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_prepareQuery" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_prepareQuery" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     mapObj_prepareQuery(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -30306,29 +31653,76 @@ SWIGINTERN PyObject *_wrap_mapObj_prepareQuery(PyObject *SWIGUNUSEDPARM(self), P
       
     }
   }
-  resultobj = SWIG_Py_Void();
+  resultobj = SWIG_Py_Void();
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
+SWIGINTERN PyObject *_wrap_mapObj_prepareImage(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  imageObj *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mapObj_prepareImage",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_prepareImage" "', argument " "1"" of type '" "struct mapObj *""'"); 
+  }
+  arg1 = (struct mapObj *)(argp1);
+  {
+    result = (imageObj *)mapObj_prepareImage(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_imageObj, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_mapObj_prepareImage(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_mapObj_setImageType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
+  char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
-  imageObj *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"O:mapObj_prepareImage",&obj0)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_setImageType",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_prepareImage" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setImageType" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
-    result = (imageObj *)mapObj_prepareImage(arg1); {
+    mapObj_setImageType(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -30353,29 +31747,29 @@ SWIGINTERN PyObject *_wrap_mapObj_prepareImage(PyObject *SWIGUNUSEDPARM(self), P
       
     }
   }
-  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_imageObj, SWIG_POINTER_OWN |  0 );
+  resultobj = SWIG_Py_Void();
   return resultobj;
 fail:
   return NULL;
 }
 
 
-SWIGINTERN PyObject *_wrap_mapObj_setImageType(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_mapObj_selectOutputFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_setImageType",&obj0,&arg2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_selectOutputFormat",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setImageType" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_selectOutputFormat" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
-    mapObj_setImageType(arg1,arg2); {
+    mapObj_selectOutputFormat(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -30407,22 +31801,31 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_mapObj_selectOutputFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+SWIGINTERN PyObject *_wrap_mapObj_getOutputFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
-  char *arg2 = (char *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
+  int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
+  int val2 ;
+  int ecode2 = 0 ;
   PyObject * obj0 = 0 ;
+  PyObject * obj1 = 0 ;
+  outputFormatObj *result = 0 ;
   
-  if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_selectOutputFormat",&obj0,&arg2)) SWIG_fail;
+  if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_getOutputFormat",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_selectOutputFormat" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getOutputFormat" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
+  ecode2 = SWIG_AsVal_int(obj1, &val2);
+  if (!SWIG_IsOK(ecode2)) {
+    SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_getOutputFormat" "', argument " "2"" of type '" "int""'");
+  } 
+  arg2 = (int)(val2);
   {
-    mapObj_selectOutputFormat(arg1,arg2); {
+    result = (outputFormatObj *)mapObj_getOutputFormat(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -30447,7 +31850,7 @@ SWIGINTERN PyObject *_wrap_mapObj_selectOutputFormat(PyObject *SWIGUNUSEDPARM(se
       
     }
   }
-  resultobj = SWIG_Py_Void();
+  resultobj = SWIG_NewPointerObj(SWIG_as_voidptr(result), SWIGTYPE_p_outputFormatObj, SWIG_POINTER_OWN |  0 );
   return resultobj;
 fail:
   return NULL;
@@ -30456,7 +31859,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setOutputFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   outputFormatObj *arg2 = (outputFormatObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30468,9 +31871,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setOutputFormat(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_setOutputFormat",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setOutputFormat" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setOutputFormat" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_outputFormatObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setOutputFormat" "', argument " "2"" of type '" "outputFormatObj *""'"); 
@@ -30511,7 +31914,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_draw(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -30520,9 +31923,9 @@ SWIGINTERN PyObject *_wrap_mapObj_draw(PyObject *SWIGUNUSEDPARM(self), PyObject
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_draw",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_draw" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_draw" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (imageObj *)mapObj_draw(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -30558,7 +31961,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_drawQuery(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -30567,9 +31970,9 @@ SWIGINTERN PyObject *_wrap_mapObj_drawQuery(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_drawQuery",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawQuery" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawQuery" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (imageObj *)mapObj_drawQuery(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -30605,7 +32008,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_drawLegend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -30614,9 +32017,9 @@ SWIGINTERN PyObject *_wrap_mapObj_drawLegend(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_drawLegend",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawLegend" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawLegend" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (imageObj *)mapObj_drawLegend(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -30652,7 +32055,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_drawScalebar(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -30661,9 +32064,9 @@ SWIGINTERN PyObject *_wrap_mapObj_drawScalebar(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_drawScalebar",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawScalebar" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawScalebar" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (imageObj *)mapObj_drawScalebar(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -30699,7 +32102,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_drawReferenceMap(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -30708,9 +32111,9 @@ SWIGINTERN PyObject *_wrap_mapObj_drawReferenceMap(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_drawReferenceMap",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawReferenceMap" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawReferenceMap" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (imageObj *)mapObj_drawReferenceMap(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -30746,7 +32149,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_embedScalebar(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *arg2 = (imageObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30759,9 +32162,9 @@ SWIGINTERN PyObject *_wrap_mapObj_embedScalebar(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_embedScalebar",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_embedScalebar" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_embedScalebar" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_imageObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_embedScalebar" "', argument " "2"" of type '" "imageObj *""'"); 
@@ -30802,7 +32205,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_embedLegend(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *arg2 = (imageObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30815,9 +32218,9 @@ SWIGINTERN PyObject *_wrap_mapObj_embedLegend(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_embedLegend",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_embedLegend" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_embedLegend" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_imageObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_embedLegend" "', argument " "2"" of type '" "imageObj *""'"); 
@@ -30858,7 +32261,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_drawLabelCache(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   imageObj *arg2 = (imageObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30871,9 +32274,9 @@ SWIGINTERN PyObject *_wrap_mapObj_drawLabelCache(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_drawLabelCache",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawLabelCache" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_drawLabelCache" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_imageObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_drawLabelCache" "', argument " "2"" of type '" "imageObj *""'"); 
@@ -30914,7 +32317,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getLabel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -30927,9 +32330,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getLabel(PyObject *SWIGUNUSEDPARM(self), PyObj
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_getLabel",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLabel" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLabel" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_getLabel" "', argument " "2"" of type '" "int""'");
@@ -30970,7 +32373,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_nextLabel(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -30979,9 +32382,9 @@ SWIGINTERN PyObject *_wrap_mapObj_nextLabel(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_nextLabel",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_nextLabel" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_nextLabel" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (labelCacheMemberObj *)mapObj_nextLabel(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -31017,7 +32420,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_queryByFilter(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31027,9 +32430,9 @@ SWIGINTERN PyObject *_wrap_mapObj_queryByFilter(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_queryByFilter",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByFilter" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByFilter" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_queryByFilter(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -31065,7 +32468,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_queryByPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   pointObj *arg2 = (pointObj *) 0 ;
   int arg3 ;
   double arg4 ;
@@ -31086,9 +32489,9 @@ SWIGINTERN PyObject *_wrap_mapObj_queryByPoint(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OOOO:mapObj_queryByPoint",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByPoint" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByPoint" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_pointObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_queryByPoint" "', argument " "2"" of type '" "pointObj *""'"); 
@@ -31139,7 +32542,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_queryByRect(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   rectObj arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31152,9 +32555,9 @@ SWIGINTERN PyObject *_wrap_mapObj_queryByRect(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_queryByRect",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByRect" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByRect" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     res2 = SWIG_ConvertPtr(obj1, &argp2, SWIGTYPE_p_rectObj,  0 );
     if (!SWIG_IsOK(res2)) {
@@ -31201,7 +32604,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_queryByFeatures(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31214,9 +32617,9 @@ SWIGINTERN PyObject *_wrap_mapObj_queryByFeatures(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_queryByFeatures",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByFeatures" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByFeatures" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_queryByFeatures" "', argument " "2"" of type '" "int""'");
@@ -31257,7 +32660,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_queryByShape(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   shapeObj *arg2 = (shapeObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31270,9 +32673,9 @@ SWIGINTERN PyObject *_wrap_mapObj_queryByShape(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_queryByShape",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByShape" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_queryByShape" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_shapeObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_queryByShape" "', argument " "2"" of type '" "shapeObj *""'"); 
@@ -31313,7 +32716,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setWKTProjection(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31323,9 +32726,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setWKTProjection(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_setWKTProjection",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setWKTProjection" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setWKTProjection" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_setWKTProjection(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -31361,7 +32764,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getProjection(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -31370,9 +32773,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getProjection(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_getProjection",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getProjection" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getProjection" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (char *)mapObj_getProjection(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -31409,7 +32812,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setProjection(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31419,9 +32822,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setProjection(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_setProjection",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setProjection" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setProjection" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_setProjection(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -31457,7 +32860,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_save(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31467,9 +32870,9 @@ SWIGINTERN PyObject *_wrap_mapObj_save(PyObject *SWIGUNUSEDPARM(self), PyObject
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_save",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_save" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_save" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_save(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -31505,7 +32908,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_saveQuery(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int arg3 = (int) 0 ;
   void *argp1 = 0 ;
@@ -31519,9 +32922,9 @@ SWIGINTERN PyObject *_wrap_mapObj_saveQuery(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"Oz|O:mapObj_saveQuery",&obj0,&arg2,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveQuery" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveQuery" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   if (obj2) {
     ecode3 = SWIG_AsVal_int(obj2, &val3);
     if (!SWIG_IsOK(ecode3)) {
@@ -31564,7 +32967,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_loadQuery(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31574,9 +32977,9 @@ SWIGINTERN PyObject *_wrap_mapObj_loadQuery(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_loadQuery",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadQuery" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadQuery" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_loadQuery(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -31612,7 +33015,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_freeQuery(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 = (int) -1 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31624,9 +33027,9 @@ SWIGINTERN PyObject *_wrap_mapObj_freeQuery(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"O|O:mapObj_freeQuery",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_freeQuery" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_freeQuery" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   if (obj1) {
     ecode2 = SWIG_AsVal_int(obj1, &val2);
     if (!SWIG_IsOK(ecode2)) {
@@ -31669,7 +33072,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_saveQueryAsGML(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) "GOMF" ;
   void *argp1 = 0 ;
@@ -31684,9 +33087,9 @@ SWIGINTERN PyObject *_wrap_mapObj_saveQueryAsGML(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz|O:mapObj_saveQueryAsGML",&obj0,&arg2,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveQueryAsGML" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveQueryAsGML" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   if (obj2) {
     res3 = SWIG_AsCharPtrAndSize(obj2, &buf3, NULL, &alloc3);
     if (!SWIG_IsOK(res3)) {
@@ -31731,7 +33134,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getMetaData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31741,9 +33144,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getMetaData(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_getMetaData",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getMetaData" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getMetaData" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (char *)mapObj_getMetaData(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -31779,7 +33182,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setMetaData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -31790,9 +33193,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setMetaData(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"Ozz:mapObj_setMetaData",&obj0,&arg2,&arg3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setMetaData" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setMetaData" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_setMetaData(arg1,arg2,arg3); {
       errorObj *ms_error = msGetErrorObj();
@@ -31828,7 +33231,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_removeMetaData(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31838,9 +33241,9 @@ SWIGINTERN PyObject *_wrap_mapObj_removeMetaData(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_removeMetaData",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeMetaData" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeMetaData" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_removeMetaData(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -31876,7 +33279,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getFirstMetaDataKey(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -31885,9 +33288,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getFirstMetaDataKey(PyObject *SWIGUNUSEDPARM(s
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_getFirstMetaDataKey",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getFirstMetaDataKey" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getFirstMetaDataKey" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (char *)mapObj_getFirstMetaDataKey(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -31923,7 +33326,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getNextMetaDataKey(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31933,9 +33336,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getNextMetaDataKey(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_getNextMetaDataKey",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getNextMetaDataKey" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getNextMetaDataKey" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (char *)mapObj_getNextMetaDataKey(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -31971,7 +33374,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setSymbolSet(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -31981,9 +33384,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setSymbolSet(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_setSymbolSet",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setSymbolSet" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setSymbolSet" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_setSymbolSet(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -32019,7 +33422,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getNumSymbols(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -32028,9 +33431,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getNumSymbols(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_getNumSymbols",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getNumSymbols" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getNumSymbols" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_getNumSymbols(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -32066,7 +33469,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setFontSet(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32076,9 +33479,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setFontSet(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_setFontSet",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setFontSet" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setFontSet" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_setFontSet(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -32114,7 +33517,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_saveMapContext(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32124,9 +33527,9 @@ SWIGINTERN PyObject *_wrap_mapObj_saveMapContext(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_saveMapContext",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveMapContext" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_saveMapContext" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_saveMapContext(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -32162,7 +33565,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_loadMapContext(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   int arg3 = (int) 0 ;
   void *argp1 = 0 ;
@@ -32176,9 +33579,9 @@ SWIGINTERN PyObject *_wrap_mapObj_loadMapContext(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"Oz|O:mapObj_loadMapContext",&obj0,&arg2,&obj2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadMapContext" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadMapContext" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   if (obj2) {
     ecode3 = SWIG_AsVal_int(obj2, &val3);
     if (!SWIG_IsOK(ecode3)) {
@@ -32221,7 +33624,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_moveLayerUp(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32234,9 +33637,9 @@ SWIGINTERN PyObject *_wrap_mapObj_moveLayerUp(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_moveLayerUp",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_moveLayerUp" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_moveLayerUp" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_moveLayerUp" "', argument " "2"" of type '" "int""'");
@@ -32277,7 +33680,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_moveLayerDown(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32290,9 +33693,9 @@ SWIGINTERN PyObject *_wrap_mapObj_moveLayerDown(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_moveLayerDown",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_moveLayerDown" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_moveLayerDown" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_moveLayerDown" "', argument " "2"" of type '" "int""'");
@@ -32333,7 +33736,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getLayersDrawingOrder(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -32342,9 +33745,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getLayersDrawingOrder(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_getLayersDrawingOrder",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayersDrawingOrder" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayersDrawingOrder" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (intarray *)mapObj_getLayersDrawingOrder(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -32380,7 +33783,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setLayersDrawingOrder(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int *arg2 = (int *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32393,9 +33796,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setLayersDrawingOrder(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_setLayersDrawingOrder",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setLayersDrawingOrder" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setLayersDrawingOrder" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_int, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_setLayersDrawingOrder" "', argument " "2"" of type '" "int *""'"); 
@@ -32436,7 +33839,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setConfigOption(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   char *arg3 = (char *) 0 ;
   void *argp1 = 0 ;
@@ -32446,9 +33849,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setConfigOption(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Ozz:mapObj_setConfigOption",&obj0,&arg2,&arg3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setConfigOption" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setConfigOption" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     mapObj_setConfigOption(arg1,arg2,arg3); {
       errorObj *ms_error = msGetErrorObj();
@@ -32484,7 +33887,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getConfigOption(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32494,9 +33897,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getConfigOption(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_getConfigOption",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getConfigOption" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getConfigOption" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (char *)mapObj_getConfigOption(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -32532,7 +33935,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_applyConfigOptions(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -32540,9 +33943,9 @@ SWIGINTERN PyObject *_wrap_mapObj_applyConfigOptions(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_applyConfigOptions",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applyConfigOptions" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applyConfigOptions" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     mapObj_applyConfigOptions(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -32578,7 +33981,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_applySLD(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32588,9 +33991,9 @@ SWIGINTERN PyObject *_wrap_mapObj_applySLD(PyObject *SWIGUNUSEDPARM(self), PyObj
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_applySLD",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applySLD" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applySLD" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_applySLD(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -32626,7 +34029,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_applySLDURL(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32636,9 +34039,9 @@ SWIGINTERN PyObject *_wrap_mapObj_applySLDURL(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_applySLDURL",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applySLDURL" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_applySLDURL" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_applySLDURL(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -32674,7 +34077,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_generateSLD(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -32683,9 +34086,9 @@ SWIGINTERN PyObject *_wrap_mapObj_generateSLD(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_generateSLD",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_generateSLD" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_generateSLD" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (char *)mapObj_generateSLD(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -32722,7 +34125,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_processTemplate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   char **arg3 = (char **) 0 ;
   char **arg4 = (char **) 0 ;
@@ -32747,9 +34150,9 @@ SWIGINTERN PyObject *_wrap_mapObj_processTemplate(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OOOOO:mapObj_processTemplate",&obj0,&obj1,&obj2,&obj3,&obj4)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processTemplate" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processTemplate" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_processTemplate" "', argument " "2"" of type '" "int""'");
@@ -32806,7 +34209,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_processLegendTemplate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char **arg2 = (char **) 0 ;
   char **arg3 = (char **) 0 ;
   int arg4 ;
@@ -32827,9 +34230,9 @@ SWIGINTERN PyObject *_wrap_mapObj_processLegendTemplate(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"OOOO:mapObj_processLegendTemplate",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processLegendTemplate" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processLegendTemplate" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_char, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_processLegendTemplate" "', argument " "2"" of type '" "char **""'"); 
@@ -32881,7 +34284,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_processQueryTemplate(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char **arg2 = (char **) 0 ;
   char **arg3 = (char **) 0 ;
   int arg4 ;
@@ -32902,9 +34305,9 @@ SWIGINTERN PyObject *_wrap_mapObj_processQueryTemplate(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"OOOO:mapObj_processQueryTemplate",&obj0,&obj1,&obj2,&obj3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processQueryTemplate" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_processQueryTemplate" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_p_char, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_processQueryTemplate" "', argument " "2"" of type '" "char **""'"); 
@@ -32956,7 +34359,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getOutputFormatByName(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -32966,9 +34369,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getOutputFormatByName(PyObject *SWIGUNUSEDPARM
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_getOutputFormatByName",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getOutputFormatByName" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getOutputFormatByName" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (outputFormatObj *)mapObj_getOutputFormatByName(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -33004,7 +34407,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_appendOutputFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   outputFormatObj *arg2 = (outputFormatObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -33017,9 +34420,9 @@ SWIGINTERN PyObject *_wrap_mapObj_appendOutputFormat(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_appendOutputFormat",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_appendOutputFormat" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_appendOutputFormat" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_outputFormatObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_appendOutputFormat" "', argument " "2"" of type '" "outputFormatObj *""'"); 
@@ -33060,7 +34463,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_removeOutputFormat(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -33070,9 +34473,9 @@ SWIGINTERN PyObject *_wrap_mapObj_removeOutputFormat(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"Oz:mapObj_removeOutputFormat",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeOutputFormat" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_removeOutputFormat" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (int)mapObj_removeOutputFormat(arg1,arg2); {
       errorObj *ms_error = msGetErrorObj();
@@ -33108,7 +34511,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_loadOWSParameters(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   cgiRequestObj *arg2 = (cgiRequestObj *) 0 ;
   char *arg3 = (char *) "1.1.1" ;
   void *argp1 = 0 ;
@@ -33122,9 +34525,9 @@ SWIGINTERN PyObject *_wrap_mapObj_loadOWSParameters(PyObject *SWIGUNUSEDPARM(sel
   if (!PyArg_ParseTuple(args,(char *)"OO|z:mapObj_loadOWSParameters",&obj0,&obj1,&arg3)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadOWSParameters" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_loadOWSParameters" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cgiRequestObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_loadOWSParameters" "', argument " "2"" of type '" "cgiRequestObj *""'"); 
@@ -33165,7 +34568,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_OWSDispatch(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   cgiRequestObj *arg2 = (cgiRequestObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -33178,9 +34581,9 @@ SWIGINTERN PyObject *_wrap_mapObj_OWSDispatch(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_OWSDispatch",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_OWSDispatch" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_OWSDispatch" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_cgiRequestObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_OWSDispatch" "', argument " "2"" of type '" "cgiRequestObj *""'"); 
@@ -33219,9 +34622,57 @@ fail:
 }
 
 
+SWIGINTERN PyObject *_wrap_mapObj_convertToString(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
+  PyObject *resultobj = 0;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
+  void *argp1 = 0 ;
+  int res1 = 0 ;
+  PyObject * obj0 = 0 ;
+  char *result = 0 ;
+  
+  if (!PyArg_ParseTuple(args,(char *)"O:mapObj_convertToString",&obj0)) SWIG_fail;
+  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
+  if (!SWIG_IsOK(res1)) {
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_convertToString" "', argument " "1"" of type '" "struct mapObj *""'"); 
+  }
+  arg1 = (struct mapObj *)(argp1);
+  {
+    result = (char *)mapObj_convertToString(arg1); {
+      errorObj *ms_error = msGetErrorObj();
+      
+      switch(ms_error->code) {
+      case MS_NOERR:
+        break;
+      case MS_NOTFOUND:
+        msResetErrorList();
+        break;
+      case -1:
+        break;
+      case MS_IOERR:
+        if (strcmp(ms_error->routine, "msSearchDiskTree()") != 0) {
+          _raise_ms_exception();
+          msResetErrorList();
+          return NULL;
+        }
+      default:
+        _raise_ms_exception();
+        msResetErrorList();
+        return NULL;
+      }
+      
+    }
+  }
+  resultobj = SWIG_FromCharPtr((const char *)result);
+  free((char*)result);
+  return resultobj;
+fail:
+  return NULL;
+}
+
+
 SWIGINTERN PyObject *_wrap_mapObj_zoomPoint(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   int arg2 ;
   pointObj *arg3 = (pointObj *) 0 ;
   int arg4 ;
@@ -33254,9 +34705,9 @@ SWIGINTERN PyObject *_wrap_mapObj_zoomPoint(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mapObj_zoomPoint",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomPoint" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomPoint" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_zoomPoint" "', argument " "2"" of type '" "int""'");
@@ -33322,7 +34773,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_zoomRectangle(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   rectObj *arg2 = (rectObj *) 0 ;
   int arg3 ;
   int arg4 ;
@@ -33351,9 +34802,9 @@ SWIGINTERN PyObject *_wrap_mapObj_zoomRectangle(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OOOOOO:mapObj_zoomRectangle",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomRectangle" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomRectangle" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_rectObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "mapObj_zoomRectangle" "', argument " "2"" of type '" "rectObj *""'"); 
@@ -33414,7 +34865,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_zoomScale(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   double arg2 ;
   pointObj *arg3 = (pointObj *) 0 ;
   int arg4 ;
@@ -33447,9 +34898,9 @@ SWIGINTERN PyObject *_wrap_mapObj_zoomScale(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"OOOOOOO:mapObj_zoomScale",&obj0,&obj1,&obj2,&obj3,&obj4,&obj5,&obj6)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomScale" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_zoomScale" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "mapObj_zoomScale" "', argument " "2"" of type '" "double""'");
@@ -33515,7 +34966,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getLayerOrder(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -33524,9 +34975,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getLayerOrder(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_getLayerOrder",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayerOrder" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getLayerOrder" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (PyObject *)mapObj_getLayerOrder(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -33562,7 +35013,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_setLayerOrder(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   PyObject *arg2 = (PyObject *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -33573,9 +35024,9 @@ SWIGINTERN PyObject *_wrap_mapObj_setLayerOrder(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:mapObj_setLayerOrder",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setLayerOrder" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_setLayerOrder" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   arg2 = obj1;
   {
     result = (int)mapObj_setLayerOrder(arg1,arg2); {
@@ -33612,7 +35063,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_mapObj_getSize(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  mapObj *arg1 = (mapObj *) 0 ;
+  struct mapObj *arg1 = (struct mapObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -33621,9 +35072,9 @@ SWIGINTERN PyObject *_wrap_mapObj_getSize(PyObject *SWIGUNUSEDPARM(self), PyObje
   if (!PyArg_ParseTuple(args,(char *)"O:mapObj_getSize",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_mapObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getSize" "', argument " "1"" of type '" "mapObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "mapObj_getSize" "', argument " "1"" of type '" "struct mapObj *""'"); 
   }
-  arg1 = (mapObj *)(argp1);
+  arg1 = (struct mapObj *)(argp1);
   {
     result = (PyObject *)mapObj_getSize(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -40293,8 +41744,8 @@ SWIGINTERN PyObject *_wrap_shapeObj_contains(PyObject *self, PyObject *args) {
   int ii;
   
   if (!PyTuple_Check(args)) SWIG_fail;
-  argc = (int)PyObject_Length(args);
-  for (ii = 0; (ii < argc) && (ii < 2); ii++) {
+  argc = args ? (int)PyObject_Length(args) : 0;
+  for (ii = 0; (ii < 2) && (ii < argc); ii++) {
     argv[ii] = PyTuple_GET_ITEM(args,ii);
   }
   if (argc == 2) {
@@ -40327,11 +41778,11 @@ SWIGINTERN PyObject *_wrap_shapeObj_contains(PyObject *self, PyObject *args) {
   }
   
 fail:
-  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number of arguments for overloaded function 'shapeObj_contains'.\n"
+  SWIG_SetErrorMsg(PyExc_NotImplementedError,"Wrong number or type of arguments for overloaded function 'shapeObj_contains'.\n"
     "  Possible C/C++ prototypes are:\n"
-    "    contains(shapeObj *,shapeObj *)\n"
-    "    contains(shapeObj *,pointObj *)\n");
-  return NULL;
+    "    shapeObj::contains(shapeObj *)\n"
+    "    shapeObj::contains(pointObj *)\n");
+  return 0;
 }
 
 
@@ -42868,7 +44319,7 @@ SWIGINTERN PyObject *colorObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyObj
 
 SWIGINTERN PyObject *_wrap_symbolObj_name_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -42877,9 +44328,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_name_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"Oz:symbolObj_name_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_name_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_name_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   {
     if (arg1->name) free((char*)arg1->name);
     if (arg2) {
@@ -42898,7 +44349,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_name_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -42907,9 +44358,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_name_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_name_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_name_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_name_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (char *) ((arg1)->name);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -42920,7 +44371,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_type_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -42932,9 +44383,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_type_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_type_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_type_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_type_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_type_set" "', argument " "2"" of type '" "int""'");
@@ -42950,7 +44401,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_type_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -42959,9 +44410,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_type_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_type_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_type_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_type_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (int) ((arg1)->type);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -42972,7 +44423,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_inmapfile_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -42984,9 +44435,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_inmapfile_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_inmapfile_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_inmapfile_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_inmapfile_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_inmapfile_set" "', argument " "2"" of type '" "int""'");
@@ -43002,7 +44453,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_inmapfile_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43011,9 +44462,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_inmapfile_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_inmapfile_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_inmapfile_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_inmapfile_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (int) ((arg1)->inmapfile);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -43024,7 +44475,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_sizex_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43036,9 +44487,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_sizex_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_sizex_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizex_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizex_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_sizex_set" "', argument " "2"" of type '" "double""'");
@@ -43054,7 +44505,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_sizex_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43063,9 +44514,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_sizex_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_sizex_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizex_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizex_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (double) ((arg1)->sizex);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -43076,7 +44527,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_sizey_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43088,9 +44539,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_sizey_set(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_sizey_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizey_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizey_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_sizey_set" "', argument " "2"" of type '" "double""'");
@@ -43106,7 +44557,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_sizey_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43115,9 +44566,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_sizey_get(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_sizey_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizey_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_sizey_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (double) ((arg1)->sizey);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -43128,7 +44579,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_minx_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43140,9 +44591,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_minx_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_minx_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_minx_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_minx_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_minx_set" "', argument " "2"" of type '" "double""'");
@@ -43158,7 +44609,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_minx_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43167,9 +44618,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_minx_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_minx_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_minx_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_minx_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (double) ((arg1)->minx);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -43180,7 +44631,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_miny_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43192,9 +44643,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_miny_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_miny_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_miny_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_miny_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_miny_set" "', argument " "2"" of type '" "double""'");
@@ -43210,7 +44661,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_miny_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43219,9 +44670,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_miny_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_miny_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_miny_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_miny_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (double) ((arg1)->miny);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -43232,7 +44683,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_maxx_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43244,9 +44695,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_maxx_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_maxx_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxx_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxx_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_maxx_set" "', argument " "2"" of type '" "double""'");
@@ -43262,7 +44713,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_maxx_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43271,9 +44722,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_maxx_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_maxx_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxx_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxx_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (double) ((arg1)->maxx);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -43284,7 +44735,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_maxy_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43296,9 +44747,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_maxy_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_maxy_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxy_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxy_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_maxy_set" "', argument " "2"" of type '" "double""'");
@@ -43314,7 +44765,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_maxy_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43323,9 +44774,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_maxy_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_maxy_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxy_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_maxy_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (double) ((arg1)->maxy);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -43336,7 +44787,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_refcount_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43345,9 +44796,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_refcount_get(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_refcount_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_refcount_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_refcount_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (int) ((arg1)->refcount);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -43358,7 +44809,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_numpoints_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43367,9 +44818,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_numpoints_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_numpoints_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_numpoints_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_numpoints_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (int) ((arg1)->numpoints);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -43380,7 +44831,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_filled_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43392,9 +44843,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_filled_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_filled_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_filled_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_filled_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_filled_set" "', argument " "2"" of type '" "int""'");
@@ -43410,7 +44861,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_filled_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43419,9 +44870,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_filled_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_filled_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_filled_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_filled_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (int) ((arg1)->filled);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -43432,7 +44883,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_anchorpoint_x_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43444,9 +44895,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_anchorpoint_x_set(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_anchorpoint_x_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_x_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_x_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_anchorpoint_x_set" "', argument " "2"" of type '" "double""'");
@@ -43462,7 +44913,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_anchorpoint_x_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43471,9 +44922,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_anchorpoint_x_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_anchorpoint_x_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_x_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_x_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (double) ((arg1)->anchorpoint_x);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -43484,7 +44935,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_anchorpoint_y_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   double arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43496,9 +44947,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_anchorpoint_y_set(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_anchorpoint_y_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_y_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_y_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_double(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_anchorpoint_y_set" "', argument " "2"" of type '" "double""'");
@@ -43514,7 +44965,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_anchorpoint_y_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43523,9 +44974,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_anchorpoint_y_get(PyObject *SWIGUNUSEDPARM(
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_anchorpoint_y_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_y_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_anchorpoint_y_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (double) ((arg1)->anchorpoint_y);
   resultobj = SWIG_From_double((double)(result));
   return resultobj;
@@ -43536,7 +44987,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_imagepath_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43545,9 +44996,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_imagepath_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_imagepath_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_imagepath_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_imagepath_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (char *) ((arg1)->imagepath);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -43558,7 +45009,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_transparent_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43570,9 +45021,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_transparent_set(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_transparent_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparent_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparent_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_transparent_set" "', argument " "2"" of type '" "int""'");
@@ -43588,7 +45039,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_transparent_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43597,9 +45048,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_transparent_get(PyObject *SWIGUNUSEDPARM(se
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_transparent_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparent_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparent_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (int) ((arg1)->transparent);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -43610,7 +45061,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_transparentcolor_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43622,9 +45073,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_transparentcolor_set(PyObject *SWIGUNUSEDPA
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_transparentcolor_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparentcolor_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparentcolor_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_transparentcolor_set" "', argument " "2"" of type '" "int""'");
@@ -43640,7 +45091,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_transparentcolor_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43649,9 +45100,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_transparentcolor_get(PyObject *SWIGUNUSEDPA
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_transparentcolor_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparentcolor_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_transparentcolor_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (int) ((arg1)->transparentcolor);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -43662,7 +45113,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_character_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43671,9 +45122,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_character_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"Oz:symbolObj_character_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_character_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_character_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   {
     if (arg1->character) free((char*)arg1->character);
     if (arg2) {
@@ -43692,7 +45143,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_character_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43701,9 +45152,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_character_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_character_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_character_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_character_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (char *) ((arg1)->character);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -43714,7 +45165,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_antialias_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43726,9 +45177,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_antialias_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_antialias_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_antialias_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_antialias_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "symbolObj_antialias_set" "', argument " "2"" of type '" "int""'");
@@ -43744,7 +45195,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_antialias_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43753,9 +45204,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_antialias_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_antialias_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_antialias_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_antialias_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (int) ((arg1)->antialias);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -43766,7 +45217,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_font_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43775,9 +45226,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_font_set(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"Oz:symbolObj_font_set",&obj0,&arg2)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_font_set" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_font_set" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   {
     if (arg1->font) free((char*)arg1->font);
     if (arg2) {
@@ -43796,7 +45247,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_font_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43805,9 +45256,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_font_get(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_font_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_font_get" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_font_get" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   result = (char *) ((arg1)->font);
   resultobj = SWIG_FromCharPtr((const char *)result);
   return resultobj;
@@ -43816,58 +45267,6 @@ fail:
 }
 
 
-SWIGINTERN PyObject *_wrap_symbolObj_svg_text_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
-  char *arg2 = (char *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"Oz:symbolObj_svg_text_set",&obj0,&arg2)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_svg_text_set" "', argument " "1"" of type '" "symbolObj *""'"); 
-  }
-  arg1 = (symbolObj *)(argp1);
-  {
-    if (arg1->svg_text) free((char*)arg1->svg_text);
-    if (arg2) {
-      arg1->svg_text = (char *) malloc(strlen(arg2)+1);
-      strcpy((char*)arg1->svg_text,arg2);
-    } else {
-      arg1->svg_text = 0;
-    }
-  }
-  resultobj = SWIG_Py_Void();
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
-SWIGINTERN PyObject *_wrap_symbolObj_svg_text_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
-  PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
-  void *argp1 = 0 ;
-  int res1 = 0 ;
-  PyObject * obj0 = 0 ;
-  char *result = 0 ;
-  
-  if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_svg_text_get",&obj0)) SWIG_fail;
-  res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
-  if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_svg_text_get" "', argument " "1"" of type '" "symbolObj *""'"); 
-  }
-  arg1 = (symbolObj *)(argp1);
-  result = (char *) ((arg1)->svg_text);
-  resultobj = SWIG_FromCharPtr((const char *)result);
-  return resultobj;
-fail:
-  return NULL;
-}
-
-
 SWIGINTERN PyObject *_wrap_new_symbolObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
   char *arg1 = (char *) 0 ;
@@ -43876,7 +45275,7 @@ SWIGINTERN PyObject *_wrap_new_symbolObj(PyObject *SWIGUNUSEDPARM(self), PyObjec
   char *buf2 = 0 ;
   int alloc2 = 0 ;
   PyObject * obj1 = 0 ;
-  symbolObj *result = 0 ;
+  struct symbolObj *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)"z|O:new_symbolObj",&arg1,&obj1)) SWIG_fail;
   if (obj1) {
@@ -43887,7 +45286,7 @@ SWIGINTERN PyObject *_wrap_new_symbolObj(PyObject *SWIGUNUSEDPARM(self), PyObjec
     arg2 = (char *)(buf2);
   }
   {
-    result = (symbolObj *)new_symbolObj(arg1,(char const *)arg2); {
+    result = (struct symbolObj *)new_symbolObj(arg1,(char const *)arg2); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -43923,7 +45322,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_delete_symbolObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -43931,9 +45330,9 @@ SWIGINTERN PyObject *_wrap_delete_symbolObj(PyObject *SWIGUNUSEDPARM(self), PyOb
   if (!PyArg_ParseTuple(args,(char *)"O:delete_symbolObj",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_symbolObj" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_symbolObj" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   {
     delete_symbolObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -43969,7 +45368,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_setImagepath(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   char *arg2 = (char *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -43983,9 +45382,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_setImagepath(PyObject *SWIGUNUSEDPARM(self)
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_setImagepath",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setImagepath" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setImagepath" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   res2 = SWIG_AsCharPtrAndSize(obj1, &buf2, NULL, &alloc2);
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_setImagepath" "', argument " "2"" of type '" "char const *""'");
@@ -44028,7 +45427,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_setPoints(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   lineObj *arg2 = (lineObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -44041,9 +45440,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_setPoints(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_setPoints",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setPoints" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setPoints" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_lineObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_setPoints" "', argument " "2"" of type '" "lineObj *""'"); 
@@ -44084,7 +45483,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_getPoints(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -44093,9 +45492,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_getPoints(PyObject *SWIGUNUSEDPARM(self), P
   if (!PyArg_ParseTuple(args,(char *)"O:symbolObj_getPoints",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_getPoints" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_getPoints" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   {
     result = (lineObj *)symbolObj_getPoints(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -44131,7 +45530,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_getImage(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   outputFormatObj *arg2 = (outputFormatObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -44144,9 +45543,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_getImage(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_getImage",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_getImage" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_getImage" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_outputFormatObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_getImage" "', argument " "2"" of type '" "outputFormatObj *""'"); 
@@ -44187,7 +45586,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_symbolObj_setImage(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  symbolObj *arg1 = (symbolObj *) 0 ;
+  struct symbolObj *arg1 = (struct symbolObj *) 0 ;
   imageObj *arg2 = (imageObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -44200,9 +45599,9 @@ SWIGINTERN PyObject *_wrap_symbolObj_setImage(PyObject *SWIGUNUSEDPARM(self), Py
   if (!PyArg_ParseTuple(args,(char *)"OO:symbolObj_setImage",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_symbolObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setImage" "', argument " "1"" of type '" "symbolObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "symbolObj_setImage" "', argument " "1"" of type '" "struct symbolObj *""'"); 
   }
-  arg1 = (symbolObj *)(argp1);
+  arg1 = (struct symbolObj *)(argp1);
   res2 = SWIG_ConvertPtr(obj1, &argp2,SWIGTYPE_p_imageObj, 0 |  0 );
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "symbolObj_setImage" "', argument " "2"" of type '" "imageObj *""'"); 
@@ -44250,7 +45649,7 @@ SWIGINTERN PyObject *symbolObj_swigregister(PyObject *SWIGUNUSEDPARM(self), PyOb
 
 SWIGINTERN PyObject *_wrap_errorObj_code_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -44262,9 +45661,9 @@ SWIGINTERN PyObject *_wrap_errorObj_code_set(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"OO:errorObj_code_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_code_set" "', argument " "1"" of type '" "errorObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_code_set" "', argument " "1"" of type '" "struct errorObj *""'"); 
   }
-  arg1 = (errorObj *)(argp1);
+  arg1 = (struct errorObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "errorObj_code_set" "', argument " "2"" of type '" "int""'");
@@ -44280,7 +45679,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_errorObj_code_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -44289,9 +45688,9 @@ SWIGINTERN PyObject *_wrap_errorObj_code_get(PyObject *SWIGUNUSEDPARM(self), PyO
   if (!PyArg_ParseTuple(args,(char *)"O:errorObj_code_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_code_get" "', argument " "1"" of type '" "errorObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_code_get" "', argument " "1"" of type '" "struct errorObj *""'"); 
   }
-  arg1 = (errorObj *)(argp1);
+  arg1 = (struct errorObj *)(argp1);
   result = (int) ((arg1)->code);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -44302,7 +45701,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_errorObj_routine_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   char *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -44314,9 +45713,9 @@ SWIGINTERN PyObject *_wrap_errorObj_routine_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:errorObj_routine_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_routine_set" "', argument " "1"" of type '" "errorObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_routine_set" "', argument " "1"" of type '" "struct errorObj *""'"); 
   }
-  arg1 = (errorObj *)(argp1);
+  arg1 = (struct errorObj *)(argp1);
   res2 = SWIG_AsCharArray(obj1, temp2, 64);
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "errorObj_routine_set" "', argument " "2"" of type '" "char [64]""'");
@@ -44333,7 +45732,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_errorObj_routine_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -44342,9 +45741,9 @@ SWIGINTERN PyObject *_wrap_errorObj_routine_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:errorObj_routine_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_routine_get" "', argument " "1"" of type '" "errorObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_routine_get" "', argument " "1"" of type '" "struct errorObj *""'"); 
   }
-  arg1 = (errorObj *)(argp1);
+  arg1 = (struct errorObj *)(argp1);
   result = (char *)(char *) ((arg1)->routine);
   {
     size_t size = 64;
@@ -44361,7 +45760,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_errorObj_message_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   char *arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -44373,9 +45772,9 @@ SWIGINTERN PyObject *_wrap_errorObj_message_set(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"OO:errorObj_message_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_message_set" "', argument " "1"" of type '" "errorObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_message_set" "', argument " "1"" of type '" "struct errorObj *""'"); 
   }
-  arg1 = (errorObj *)(argp1);
+  arg1 = (struct errorObj *)(argp1);
   res2 = SWIG_AsCharArray(obj1, temp2, 2048);
   if (!SWIG_IsOK(res2)) {
     SWIG_exception_fail(SWIG_ArgError(res2), "in method '" "errorObj_message_set" "', argument " "2"" of type '" "char [2048]""'");
@@ -44392,7 +45791,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_errorObj_message_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -44401,9 +45800,9 @@ SWIGINTERN PyObject *_wrap_errorObj_message_get(PyObject *SWIGUNUSEDPARM(self),
   if (!PyArg_ParseTuple(args,(char *)"O:errorObj_message_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_message_get" "', argument " "1"" of type '" "errorObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_message_get" "', argument " "1"" of type '" "struct errorObj *""'"); 
   }
-  arg1 = (errorObj *)(argp1);
+  arg1 = (struct errorObj *)(argp1);
   result = (char *)(char *) ((arg1)->message);
   {
     size_t size = 2048;
@@ -44420,7 +45819,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_errorObj_isreported_set(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   int arg2 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
@@ -44432,9 +45831,9 @@ SWIGINTERN PyObject *_wrap_errorObj_isreported_set(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"OO:errorObj_isreported_set",&obj0,&obj1)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_isreported_set" "', argument " "1"" of type '" "errorObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_isreported_set" "', argument " "1"" of type '" "struct errorObj *""'"); 
   }
-  arg1 = (errorObj *)(argp1);
+  arg1 = (struct errorObj *)(argp1);
   ecode2 = SWIG_AsVal_int(obj1, &val2);
   if (!SWIG_IsOK(ecode2)) {
     SWIG_exception_fail(SWIG_ArgError(ecode2), "in method '" "errorObj_isreported_set" "', argument " "2"" of type '" "int""'");
@@ -44450,7 +45849,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_errorObj_isreported_get(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -44459,9 +45858,9 @@ SWIGINTERN PyObject *_wrap_errorObj_isreported_get(PyObject *SWIGUNUSEDPARM(self
   if (!PyArg_ParseTuple(args,(char *)"O:errorObj_isreported_get",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_isreported_get" "', argument " "1"" of type '" "errorObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_isreported_get" "', argument " "1"" of type '" "struct errorObj *""'"); 
   }
-  arg1 = (errorObj *)(argp1);
+  arg1 = (struct errorObj *)(argp1);
   result = (int) ((arg1)->isreported);
   resultobj = SWIG_From_int((int)(result));
   return resultobj;
@@ -44472,11 +45871,11 @@ fail:
 
 SWIGINTERN PyObject *_wrap_new_errorObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  errorObj *result = 0 ;
+  struct errorObj *result = 0 ;
   
   if (!PyArg_ParseTuple(args,(char *)":new_errorObj")) SWIG_fail;
   {
-    result = (errorObj *)new_errorObj(); {
+    result = (struct errorObj *)new_errorObj(); {
       errorObj *ms_error = msGetErrorObj();
       
       switch(ms_error->code) {
@@ -44510,7 +45909,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_delete_errorObj(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -44518,9 +45917,9 @@ SWIGINTERN PyObject *_wrap_delete_errorObj(PyObject *SWIGUNUSEDPARM(self), PyObj
   if (!PyArg_ParseTuple(args,(char *)"O:delete_errorObj",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_errorObj, SWIG_POINTER_DISOWN |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_errorObj" "', argument " "1"" of type '" "errorObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "delete_errorObj" "', argument " "1"" of type '" "struct errorObj *""'"); 
   }
-  arg1 = (errorObj *)(argp1);
+  arg1 = (struct errorObj *)(argp1);
   {
     delete_errorObj(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -44556,7 +45955,7 @@ fail:
 
 SWIGINTERN PyObject *_wrap_errorObj_next(PyObject *SWIGUNUSEDPARM(self), PyObject *args) {
   PyObject *resultobj = 0;
-  errorObj *arg1 = (errorObj *) 0 ;
+  struct errorObj *arg1 = (struct errorObj *) 0 ;
   void *argp1 = 0 ;
   int res1 = 0 ;
   PyObject * obj0 = 0 ;
@@ -44565,9 +45964,9 @@ SWIGINTERN PyObject *_wrap_errorObj_next(PyObject *SWIGUNUSEDPARM(self), PyObjec
   if (!PyArg_ParseTuple(args,(char *)"O:errorObj_next",&obj0)) SWIG_fail;
   res1 = SWIG_ConvertPtr(obj0, &argp1,SWIGTYPE_p_errorObj, 0 |  0 );
   if (!SWIG_IsOK(res1)) {
-    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_next" "', argument " "1"" of type '" "errorObj *""'"); 
+    SWIG_exception_fail(SWIG_ArgError(res1), "in method '" "errorObj_next" "', argument " "1"" of type '" "struct errorObj *""'"); 
   }
-  arg1 = (errorObj *)(argp1);
+  arg1 = (struct errorObj *)(argp1);
   {
     result = (errorObj *)errorObj_next(arg1); {
       errorObj *ms_error = msGetErrorObj();
@@ -46171,6 +47570,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"clusterObj_region_set", _wrap_clusterObj_region_set, METH_VARARGS, NULL},
 	 { (char *)"clusterObj_region_get", _wrap_clusterObj_region_get, METH_VARARGS, NULL},
 	 { (char *)"clusterObj_updateFromString", _wrap_clusterObj_updateFromString, METH_VARARGS, NULL},
+	 { (char *)"clusterObj_convertToString", _wrap_clusterObj_convertToString, METH_VARARGS, NULL},
 	 { (char *)"clusterObj_setGroup", _wrap_clusterObj_setGroup, METH_VARARGS, NULL},
 	 { (char *)"clusterObj_getGroupString", _wrap_clusterObj_getGroupString, METH_VARARGS, NULL},
 	 { (char *)"clusterObj_setFilter", _wrap_clusterObj_setFilter, METH_VARARGS, NULL},
@@ -46178,6 +47578,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"new_clusterObj", _wrap_new_clusterObj, METH_VARARGS, NULL},
 	 { (char *)"delete_clusterObj", _wrap_delete_clusterObj, METH_VARARGS, NULL},
 	 { (char *)"clusterObj_swigregister", clusterObj_swigregister, METH_VARARGS, NULL},
+	 { (char *)"outputFormatObj_numformatoptions_get", _wrap_outputFormatObj_numformatoptions_get, METH_VARARGS, NULL},
 	 { (char *)"outputFormatObj_name_set", _wrap_outputFormatObj_name_set, METH_VARARGS, NULL},
 	 { (char *)"outputFormatObj_name_get", _wrap_outputFormatObj_name_get, METH_VARARGS, NULL},
 	 { (char *)"outputFormatObj_mimetype_set", _wrap_outputFormatObj_mimetype_set, METH_VARARGS, NULL},
@@ -46194,12 +47595,6 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"outputFormatObj_transparent_get", _wrap_outputFormatObj_transparent_get, METH_VARARGS, NULL},
 	 { (char *)"outputFormatObj_bands_set", _wrap_outputFormatObj_bands_set, METH_VARARGS, NULL},
 	 { (char *)"outputFormatObj_bands_get", _wrap_outputFormatObj_bands_get, METH_VARARGS, NULL},
-	 { (char *)"outputFormatObj_numformatoptions_set", _wrap_outputFormatObj_numformatoptions_set, METH_VARARGS, NULL},
-	 { (char *)"outputFormatObj_numformatoptions_get", _wrap_outputFormatObj_numformatoptions_get, METH_VARARGS, NULL},
-	 { (char *)"outputFormatObj_formatoptions_set", _wrap_outputFormatObj_formatoptions_set, METH_VARARGS, NULL},
-	 { (char *)"outputFormatObj_formatoptions_get", _wrap_outputFormatObj_formatoptions_get, METH_VARARGS, NULL},
-	 { (char *)"outputFormatObj_refcount_set", _wrap_outputFormatObj_refcount_set, METH_VARARGS, NULL},
-	 { (char *)"outputFormatObj_refcount_get", _wrap_outputFormatObj_refcount_get, METH_VARARGS, NULL},
 	 { (char *)"outputFormatObj_inmapfile_set", _wrap_outputFormatObj_inmapfile_set, METH_VARARGS, NULL},
 	 { (char *)"outputFormatObj_inmapfile_get", _wrap_outputFormatObj_inmapfile_get, METH_VARARGS, NULL},
 	 { (char *)"new_outputFormatObj", _wrap_new_outputFormatObj, METH_VARARGS, NULL},
@@ -46209,6 +47604,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"outputFormatObj_setOption", _wrap_outputFormatObj_setOption, METH_VARARGS, NULL},
 	 { (char *)"outputFormatObj_validate", _wrap_outputFormatObj_validate, METH_VARARGS, NULL},
 	 { (char *)"outputFormatObj_getOption", _wrap_outputFormatObj_getOption, METH_VARARGS, NULL},
+	 { (char *)"outputFormatObj_getOptionAt", _wrap_outputFormatObj_getOptionAt, METH_VARARGS, NULL},
 	 { (char *)"outputFormatObj_attachDevice", _wrap_outputFormatObj_attachDevice, METH_VARARGS, NULL},
 	 { (char *)"outputFormatObj_swigregister", outputFormatObj_swigregister, METH_VARARGS, NULL},
 	 { (char *)"queryMapObj_height_set", _wrap_queryMapObj_height_set, METH_VARARGS, NULL},
@@ -46222,6 +47618,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"queryMapObj_color_set", _wrap_queryMapObj_color_set, METH_VARARGS, NULL},
 	 { (char *)"queryMapObj_color_get", _wrap_queryMapObj_color_get, METH_VARARGS, NULL},
 	 { (char *)"queryMapObj_updateFromString", _wrap_queryMapObj_updateFromString, METH_VARARGS, NULL},
+	 { (char *)"queryMapObj_convertToString", _wrap_queryMapObj_convertToString, METH_VARARGS, NULL},
 	 { (char *)"new_queryMapObj", _wrap_new_queryMapObj, METH_VARARGS, NULL},
 	 { (char *)"delete_queryMapObj", _wrap_delete_queryMapObj, METH_VARARGS, NULL},
 	 { (char *)"queryMapObj_swigregister", queryMapObj_swigregister, METH_VARARGS, NULL},
@@ -46265,6 +47662,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"new_webObj", _wrap_new_webObj, METH_VARARGS, NULL},
 	 { (char *)"delete_webObj", _wrap_delete_webObj, METH_VARARGS, NULL},
 	 { (char *)"webObj_updateFromString", _wrap_webObj_updateFromString, METH_VARARGS, NULL},
+	 { (char *)"webObj_convertToString", _wrap_webObj_convertToString, METH_VARARGS, NULL},
 	 { (char *)"webObj_swigregister", webObj_swigregister, METH_VARARGS, NULL},
 	 { (char *)"styleObj_refcount_get", _wrap_styleObj_refcount_get, METH_VARARGS, NULL},
 	 { (char *)"styleObj_autoangle_set", _wrap_styleObj_autoangle_set, METH_VARARGS, NULL},
@@ -46342,6 +47740,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"new_styleObj", _wrap_new_styleObj, METH_VARARGS, NULL},
 	 { (char *)"delete_styleObj", _wrap_delete_styleObj, METH_VARARGS, NULL},
 	 { (char *)"styleObj_updateFromString", _wrap_styleObj_updateFromString, METH_VARARGS, NULL},
+	 { (char *)"styleObj_convertToString", _wrap_styleObj_convertToString, METH_VARARGS, NULL},
 	 { (char *)"styleObj_clone", _wrap_styleObj_clone, METH_VARARGS, NULL},
 	 { (char *)"styleObj_setSymbolByName", _wrap_styleObj_setSymbolByName, METH_VARARGS, NULL},
 	 { (char *)"styleObj_removeBinding", _wrap_styleObj_removeBinding, METH_VARARGS, NULL},
@@ -46442,6 +47841,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"new_labelObj", _wrap_new_labelObj, METH_VARARGS, NULL},
 	 { (char *)"delete_labelObj", _wrap_delete_labelObj, METH_VARARGS, NULL},
 	 { (char *)"labelObj_updateFromString", _wrap_labelObj_updateFromString, METH_VARARGS, NULL},
+	 { (char *)"labelObj_convertToString", _wrap_labelObj_convertToString, METH_VARARGS, NULL},
 	 { (char *)"labelObj_removeBinding", _wrap_labelObj_removeBinding, METH_VARARGS, NULL},
 	 { (char *)"labelObj_getBinding", _wrap_labelObj_getBinding, METH_VARARGS, NULL},
 	 { (char *)"labelObj_setBinding", _wrap_labelObj_setBinding, METH_VARARGS, NULL},
@@ -46489,6 +47889,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"new_classObj", _wrap_new_classObj, METH_VARARGS, NULL},
 	 { (char *)"delete_classObj", _wrap_delete_classObj, METH_VARARGS, NULL},
 	 { (char *)"classObj_updateFromString", _wrap_classObj_updateFromString, METH_VARARGS, NULL},
+	 { (char *)"classObj_convertToString", _wrap_classObj_convertToString, METH_VARARGS, NULL},
 	 { (char *)"classObj_clone", _wrap_classObj_clone, METH_VARARGS, NULL},
 	 { (char *)"classObj_setExpression", _wrap_classObj_setExpression, METH_VARARGS, NULL},
 	 { (char *)"classObj_getExpressionString", _wrap_classObj_getExpressionString, METH_VARARGS, NULL},
@@ -46603,6 +48004,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"referenceMapObj_maxboxsize_get", _wrap_referenceMapObj_maxboxsize_get, METH_VARARGS, NULL},
 	 { (char *)"referenceMapObj_map_get", _wrap_referenceMapObj_map_get, METH_VARARGS, NULL},
 	 { (char *)"referenceMapObj_updateFromString", _wrap_referenceMapObj_updateFromString, METH_VARARGS, NULL},
+	 { (char *)"referenceMapObj_convertToString", _wrap_referenceMapObj_convertToString, METH_VARARGS, NULL},
 	 { (char *)"new_referenceMapObj", _wrap_new_referenceMapObj, METH_VARARGS, NULL},
 	 { (char *)"delete_referenceMapObj", _wrap_delete_referenceMapObj, METH_VARARGS, NULL},
 	 { (char *)"referenceMapObj_swigregister", referenceMapObj_swigregister, METH_VARARGS, NULL},
@@ -46635,6 +48037,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"scalebarObj_align_set", _wrap_scalebarObj_align_set, METH_VARARGS, NULL},
 	 { (char *)"scalebarObj_align_get", _wrap_scalebarObj_align_get, METH_VARARGS, NULL},
 	 { (char *)"scalebarObj_updateFromString", _wrap_scalebarObj_updateFromString, METH_VARARGS, NULL},
+	 { (char *)"scalebarObj_convertToString", _wrap_scalebarObj_convertToString, METH_VARARGS, NULL},
 	 { (char *)"new_scalebarObj", _wrap_new_scalebarObj, METH_VARARGS, NULL},
 	 { (char *)"delete_scalebarObj", _wrap_delete_scalebarObj, METH_VARARGS, NULL},
 	 { (char *)"scalebarObj_swigregister", scalebarObj_swigregister, METH_VARARGS, NULL},
@@ -46665,6 +48068,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"legendObj_template_get", _wrap_legendObj_template_get, METH_VARARGS, NULL},
 	 { (char *)"legendObj_map_get", _wrap_legendObj_map_get, METH_VARARGS, NULL},
 	 { (char *)"legendObj_updateFromString", _wrap_legendObj_updateFromString, METH_VARARGS, NULL},
+	 { (char *)"legendObj_convertToString", _wrap_legendObj_convertToString, METH_VARARGS, NULL},
 	 { (char *)"new_legendObj", _wrap_new_legendObj, METH_VARARGS, NULL},
 	 { (char *)"delete_legendObj", _wrap_delete_legendObj, METH_VARARGS, NULL},
 	 { (char *)"legendObj_swigregister", legendObj_swigregister, METH_VARARGS, NULL},
@@ -46683,6 +48087,24 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"imageObj_write", _wrap_imageObj_write, METH_VARARGS, NULL},
 	 { (char *)"imageObj_saveToString", _wrap_imageObj_saveToString, METH_VARARGS, NULL},
 	 { (char *)"imageObj_swigregister", imageObj_swigregister, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenEntryObj_minscale_set", _wrap_scaleTokenEntryObj_minscale_set, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenEntryObj_minscale_get", _wrap_scaleTokenEntryObj_minscale_get, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenEntryObj_maxscale_set", _wrap_scaleTokenEntryObj_maxscale_set, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenEntryObj_maxscale_get", _wrap_scaleTokenEntryObj_maxscale_get, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenEntryObj_value_set", _wrap_scaleTokenEntryObj_value_set, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenEntryObj_value_get", _wrap_scaleTokenEntryObj_value_get, METH_VARARGS, NULL},
+	 { (char *)"new_scaleTokenEntryObj", _wrap_new_scaleTokenEntryObj, METH_VARARGS, NULL},
+	 { (char *)"delete_scaleTokenEntryObj", _wrap_delete_scaleTokenEntryObj, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenEntryObj_swigregister", scaleTokenEntryObj_swigregister, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenObj_name_set", _wrap_scaleTokenObj_name_set, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenObj_name_get", _wrap_scaleTokenObj_name_get, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenObj_n_entries_set", _wrap_scaleTokenObj_n_entries_set, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenObj_n_entries_get", _wrap_scaleTokenObj_n_entries_get, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenObj_tokens_set", _wrap_scaleTokenObj_tokens_set, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenObj_tokens_get", _wrap_scaleTokenObj_tokens_get, METH_VARARGS, NULL},
+	 { (char *)"new_scaleTokenObj", _wrap_new_scaleTokenObj, METH_VARARGS, NULL},
+	 { (char *)"delete_scaleTokenObj", _wrap_delete_scaleTokenObj, METH_VARARGS, NULL},
+	 { (char *)"scaleTokenObj_swigregister", scaleTokenObj_swigregister, METH_VARARGS, NULL},
 	 { (char *)"layerObj_classitem_set", _wrap_layerObj_classitem_set, METH_VARARGS, NULL},
 	 { (char *)"layerObj_classitem_get", _wrap_layerObj_classitem_get, METH_VARARGS, NULL},
 	 { (char *)"layerObj_refcount_get", _wrap_layerObj_refcount_get, METH_VARARGS, NULL},
@@ -46746,6 +48168,8 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"layerObj_tileitem_get", _wrap_layerObj_tileitem_get, METH_VARARGS, NULL},
 	 { (char *)"layerObj_tileindex_set", _wrap_layerObj_tileindex_set, METH_VARARGS, NULL},
 	 { (char *)"layerObj_tileindex_get", _wrap_layerObj_tileindex_get, METH_VARARGS, NULL},
+	 { (char *)"layerObj_tilesrs_set", _wrap_layerObj_tilesrs_set, METH_VARARGS, NULL},
+	 { (char *)"layerObj_tilesrs_get", _wrap_layerObj_tilesrs_get, METH_VARARGS, NULL},
 	 { (char *)"layerObj_units_set", _wrap_layerObj_units_set, METH_VARARGS, NULL},
 	 { (char *)"layerObj_units_get", _wrap_layerObj_units_get, METH_VARARGS, NULL},
 	 { (char *)"layerObj_connection_set", _wrap_layerObj_connection_set, METH_VARARGS, NULL},
@@ -46788,6 +48212,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"delete_layerObj", _wrap_delete_layerObj, METH_VARARGS, NULL},
 	 { (char *)"layerObj_clone", _wrap_layerObj_clone, METH_VARARGS, NULL},
 	 { (char *)"layerObj_updateFromString", _wrap_layerObj_updateFromString, METH_VARARGS, NULL},
+	 { (char *)"layerObj_convertToString", _wrap_layerObj_convertToString, METH_VARARGS, NULL},
 	 { (char *)"layerObj_insertClass", _wrap_layerObj_insertClass, METH_VARARGS, NULL},
 	 { (char *)"layerObj_removeClass", _wrap_layerObj_removeClass, METH_VARARGS, NULL},
 	 { (char *)"layerObj_open", _wrap_layerObj_open, METH_VARARGS, NULL},
@@ -46841,6 +48266,8 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"layerObj_clearProcessing", _wrap_layerObj_clearProcessing, METH_VARARGS, NULL},
 	 { (char *)"layerObj_setConnectionType", _wrap_layerObj_setConnectionType, METH_VARARGS, NULL},
 	 { (char *)"layerObj_getClassIndex", _wrap_layerObj_getClassIndex, METH_VARARGS, NULL},
+	 { (char *)"layerObj_getGeomTransform", _wrap_layerObj_getGeomTransform, METH_VARARGS, NULL},
+	 { (char *)"layerObj_setGeomTransform", _wrap_layerObj_setGeomTransform, METH_VARARGS, NULL},
 	 { (char *)"layerObj_swigregister", layerObj_swigregister, METH_VARARGS, NULL},
 	 { (char *)"mapObj_name_set", _wrap_mapObj_name_set, METH_VARARGS, NULL},
 	 { (char *)"mapObj_name_get", _wrap_mapObj_name_get, METH_VARARGS, NULL},
@@ -46883,7 +48310,6 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"mapObj_imagecolor_set", _wrap_mapObj_imagecolor_set, METH_VARARGS, NULL},
 	 { (char *)"mapObj_imagecolor_get", _wrap_mapObj_imagecolor_get, METH_VARARGS, NULL},
 	 { (char *)"mapObj_numoutputformats_get", _wrap_mapObj_numoutputformats_get, METH_VARARGS, NULL},
-	 { (char *)"mapObj_outputformatlist_get", _wrap_mapObj_outputformatlist_get, METH_VARARGS, NULL},
 	 { (char *)"mapObj_outputformat_get", _wrap_mapObj_outputformat_get, METH_VARARGS, NULL},
 	 { (char *)"mapObj_imagetype_get", _wrap_mapObj_imagetype_get, METH_VARARGS, NULL},
 	 { (char *)"mapObj_reference_get", _wrap_mapObj_reference_get, METH_VARARGS, NULL},
@@ -46918,6 +48344,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"mapObj_prepareImage", _wrap_mapObj_prepareImage, METH_VARARGS, NULL},
 	 { (char *)"mapObj_setImageType", _wrap_mapObj_setImageType, METH_VARARGS, NULL},
 	 { (char *)"mapObj_selectOutputFormat", _wrap_mapObj_selectOutputFormat, METH_VARARGS, NULL},
+	 { (char *)"mapObj_getOutputFormat", _wrap_mapObj_getOutputFormat, METH_VARARGS, NULL},
 	 { (char *)"mapObj_setOutputFormat", _wrap_mapObj_setOutputFormat, METH_VARARGS, NULL},
 	 { (char *)"mapObj_draw", _wrap_mapObj_draw, METH_VARARGS, NULL},
 	 { (char *)"mapObj_drawQuery", _wrap_mapObj_drawQuery, METH_VARARGS, NULL},
@@ -46970,6 +48397,7 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"mapObj_removeOutputFormat", _wrap_mapObj_removeOutputFormat, METH_VARARGS, NULL},
 	 { (char *)"mapObj_loadOWSParameters", _wrap_mapObj_loadOWSParameters, METH_VARARGS, NULL},
 	 { (char *)"mapObj_OWSDispatch", _wrap_mapObj_OWSDispatch, METH_VARARGS, NULL},
+	 { (char *)"mapObj_convertToString", _wrap_mapObj_convertToString, METH_VARARGS, NULL},
 	 { (char *)"mapObj_zoomPoint", _wrap_mapObj_zoomPoint, METH_VARARGS, NULL},
 	 { (char *)"mapObj_zoomRectangle", _wrap_mapObj_zoomRectangle, METH_VARARGS, NULL},
 	 { (char *)"mapObj_zoomScale", _wrap_mapObj_zoomScale, METH_VARARGS, NULL},
@@ -47265,8 +48693,6 @@ static PyMethodDef SwigMethods[] = {
 	 { (char *)"symbolObj_antialias_get", _wrap_symbolObj_antialias_get, METH_VARARGS, NULL},
 	 { (char *)"symbolObj_font_set", _wrap_symbolObj_font_set, METH_VARARGS, NULL},
 	 { (char *)"symbolObj_font_get", _wrap_symbolObj_font_get, METH_VARARGS, NULL},
-	 { (char *)"symbolObj_svg_text_set", _wrap_symbolObj_svg_text_set, METH_VARARGS, NULL},
-	 { (char *)"symbolObj_svg_text_get", _wrap_symbolObj_svg_text_get, METH_VARARGS, NULL},
 	 { (char *)"new_symbolObj", _wrap_new_symbolObj, METH_VARARGS, NULL},
 	 { (char *)"delete_symbolObj", _wrap_delete_symbolObj, METH_VARARGS, NULL},
 	 { (char *)"symbolObj_setImagepath", _wrap_symbolObj_setImagepath, METH_VARARGS, NULL},
@@ -47342,7 +48768,7 @@ static swig_type_info _swigt__p_DBFInfo = {"_p_DBFInfo", "DBFInfo *", 0, 0, (voi
 static swig_type_info _swigt__p_FILE = {"_p_FILE", "FILE *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_cgiRequestObj = {"_p_cgiRequestObj", "cgiRequestObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_char = {"_p_char", "char *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_classObj = {"_p_classObj", "struct classObj *|classObj *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_classObj = {"_p_classObj", "classObj *|struct classObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_clusterObj = {"_p_clusterObj", "clusterObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_colorObj = {"_p_colorObj", "colorObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_debugLevel = {"_p_debugLevel", "enum debugLevel *|debugLevel *", 0, 0, (void*)0, 0};
@@ -47350,15 +48776,15 @@ static swig_type_info _swigt__p_double = {"_p_double", "double *", 0, 0, (void*)
 static swig_type_info _swigt__p_errorObj = {"_p_errorObj", "struct errorObj *|errorObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_fontSetObj = {"_p_fontSetObj", "fontSetObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_hashTableObj = {"_p_hashTableObj", "hashTableObj *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_imageObj = {"_p_imageObj", "imageObj *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_imageObj = {"_p_imageObj", "imageObj *|struct imageObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_int = {"_p_int", "int *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_int32_t = {"_p_int32_t", "int32_t *|ms_int32 *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_intarray = {"_p_intarray", "struct intarray *|intarray *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_intarray = {"_p_intarray", "intarray *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_labelCacheMemberObj = {"_p_labelCacheMemberObj", "labelCacheMemberObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_labelCacheObj = {"_p_labelCacheObj", "labelCacheObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_labelCacheSlotObj = {"_p_labelCacheSlotObj", "labelCacheSlotObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_labelLeaderObj = {"_p_labelLeaderObj", "labelLeaderObj *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_labelObj = {"_p_labelObj", "labelObj *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_labelObj = {"_p_labelObj", "struct labelObj *|labelObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_labelStyleObj = {"_p_labelStyleObj", "labelStyleObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_layerObj = {"_p_layerObj", "struct layerObj *|layerObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_legendObj = {"_p_legendObj", "legendObj *", 0, 0, (void*)0, 0};
@@ -47367,7 +48793,6 @@ static swig_type_info _swigt__p_mapObj = {"_p_mapObj", "struct mapObj *|mapObj *
 static swig_type_info _swigt__p_markerCacheMemberObj = {"_p_markerCacheMemberObj", "markerCacheMemberObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_outputFormatObj = {"_p_outputFormatObj", "outputFormatObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_p_char = {"_p_p_char", "char **", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_p_outputFormatObj = {"_p_p_outputFormatObj", "outputFormatObj **", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_pointObj = {"_p_pointObj", "pointObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_projectionObj = {"_p_projectionObj", "projectionObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_queryMapObj = {"_p_queryMapObj", "queryMapObj *", 0, 0, (void*)0, 0};
@@ -47376,12 +48801,14 @@ static swig_type_info _swigt__p_referenceMapObj = {"_p_referenceMapObj", "refere
 static swig_type_info _swigt__p_rendererVTableObj = {"_p_rendererVTableObj", "struct rendererVTableObj *|rendererVTableObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_resultCacheObj = {"_p_resultCacheObj", "resultCacheObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_resultObj = {"_p_resultObj", "resultObj *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_scaleTokenEntryObj = {"_p_scaleTokenEntryObj", "scaleTokenEntryObj *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_scaleTokenObj = {"_p_scaleTokenObj", "scaleTokenObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_scalebarObj = {"_p_scalebarObj", "scalebarObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_shapeObj = {"_p_shapeObj", "shapeObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_shapefileObj = {"_p_shapefileObj", "shapefileObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_strokeStyleObj = {"_p_strokeStyleObj", "strokeStyleObj *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_styleObj = {"_p_styleObj", "styleObj *", 0, 0, (void*)0, 0};
-static swig_type_info _swigt__p_symbolObj = {"_p_symbolObj", "symbolObj *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_styleObj = {"_p_styleObj", "struct styleObj *|styleObj *", 0, 0, (void*)0, 0};
+static swig_type_info _swigt__p_symbolObj = {"_p_symbolObj", "symbolObj *|struct symbolObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_symbolSetObj = {"_p_symbolSetObj", "symbolSetObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_symbolStyleObj = {"_p_symbolStyleObj", "symbolStyleObj *", 0, 0, (void*)0, 0};
 static swig_type_info _swigt__p_tileCacheObj = {"_p_tileCacheObj", "struct tileCacheObj *|tileCacheObj *", 0, 0, (void*)0, 0};
@@ -47420,7 +48847,6 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_markerCacheMemberObj,
   &_swigt__p_outputFormatObj,
   &_swigt__p_p_char,
-  &_swigt__p_p_outputFormatObj,
   &_swigt__p_pointObj,
   &_swigt__p_projectionObj,
   &_swigt__p_queryMapObj,
@@ -47429,6 +48855,8 @@ static swig_type_info *swig_type_initial[] = {
   &_swigt__p_rendererVTableObj,
   &_swigt__p_resultCacheObj,
   &_swigt__p_resultObj,
+  &_swigt__p_scaleTokenEntryObj,
+  &_swigt__p_scaleTokenObj,
   &_swigt__p_scalebarObj,
   &_swigt__p_shapeObj,
   &_swigt__p_shapefileObj,
@@ -47473,7 +48901,6 @@ static swig_cast_info _swigc__p_mapObj[] = {  {&_swigt__p_mapObj, 0, 0, 0},{0, 0
 static swig_cast_info _swigc__p_markerCacheMemberObj[] = {  {&_swigt__p_markerCacheMemberObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_outputFormatObj[] = {  {&_swigt__p_outputFormatObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_p_char[] = {  {&_swigt__p_p_char, 0, 0, 0},{0, 0, 0, 0}};
-static swig_cast_info _swigc__p_p_outputFormatObj[] = {  {&_swigt__p_p_outputFormatObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_pointObj[] = {  {&_swigt__p_pointObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_projectionObj[] = {  {&_swigt__p_projectionObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_queryMapObj[] = {  {&_swigt__p_queryMapObj, 0, 0, 0},{0, 0, 0, 0}};
@@ -47482,6 +48909,8 @@ static swig_cast_info _swigc__p_referenceMapObj[] = {  {&_swigt__p_referenceMapO
 static swig_cast_info _swigc__p_rendererVTableObj[] = {  {&_swigt__p_rendererVTableObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_resultCacheObj[] = {  {&_swigt__p_resultCacheObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_resultObj[] = {  {&_swigt__p_resultObj, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_scaleTokenEntryObj[] = {  {&_swigt__p_scaleTokenEntryObj, 0, 0, 0},{0, 0, 0, 0}};
+static swig_cast_info _swigc__p_scaleTokenObj[] = {  {&_swigt__p_scaleTokenObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_scalebarObj[] = {  {&_swigt__p_scalebarObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_shapeObj[] = {  {&_swigt__p_shapeObj, 0, 0, 0},{0, 0, 0, 0}};
 static swig_cast_info _swigc__p_shapefileObj[] = {  {&_swigt__p_shapefileObj, 0, 0, 0},{0, 0, 0, 0}};
@@ -47526,7 +48955,6 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_markerCacheMemberObj,
   _swigc__p_outputFormatObj,
   _swigc__p_p_char,
-  _swigc__p_p_outputFormatObj,
   _swigc__p_pointObj,
   _swigc__p_projectionObj,
   _swigc__p_queryMapObj,
@@ -47535,6 +48963,8 @@ static swig_cast_info *swig_cast_initial[] = {
   _swigc__p_rendererVTableObj,
   _swigc__p_resultCacheObj,
   _swigc__p_resultObj,
+  _swigc__p_scaleTokenEntryObj,
+  _swigc__p_scaleTokenObj,
   _swigc__p_scalebarObj,
   _swigc__p_shapeObj,
   _swigc__p_shapefileObj,
@@ -47929,24 +49359,23 @@ extern "C" {
   swig_varlink_type(void) {
     static char varlink__doc__[] = "Swig var link object";
     static PyTypeObject varlink_type;
-    static int type_init = 0;  
+    static int type_init = 0;
     if (!type_init) {
-      const PyTypeObject tmp
-      = {
+      const PyTypeObject tmp = {
         /* PyObject header changed in Python 3 */
 #if PY_VERSION_HEX >= 0x03000000
-        PyVarObject_HEAD_INIT(&PyType_Type, 0)
+        PyVarObject_HEAD_INIT(NULL, 0)
 #else
         PyObject_HEAD_INIT(NULL)
-        0,                                  /* Number of items in variable part (ob_size) */
+        0,                                  /* ob_size */
 #endif
-        (char *)"swigvarlink",              /* Type name (tp_name) */
-        sizeof(swig_varlinkobject),         /* Basic size (tp_basicsize) */
-        0,                                  /* Itemsize (tp_itemsize) */
-        (destructor) swig_varlink_dealloc,  /* Deallocator (tp_dealloc) */ 
-        (printfunc) swig_varlink_print,     /* Print (tp_print) */
-        (getattrfunc) swig_varlink_getattr, /* get attr (tp_getattr) */
-        (setattrfunc) swig_varlink_setattr, /* Set attr (tp_setattr) */
+        (char *)"swigvarlink",              /* tp_name */
+        sizeof(swig_varlinkobject),         /* tp_basicsize */
+        0,                                  /* tp_itemsize */
+        (destructor) swig_varlink_dealloc,  /* tp_dealloc */
+        (printfunc) swig_varlink_print,     /* tp_print */
+        (getattrfunc) swig_varlink_getattr, /* tp_getattr */
+        (setattrfunc) swig_varlink_setattr, /* tp_setattr */
         0,                                  /* tp_compare */
         (reprfunc) swig_varlink_repr,       /* tp_repr */
         0,                                  /* tp_as_number */
@@ -47970,16 +49399,21 @@ extern "C" {
 #if PY_VERSION_HEX >= 0x02030000
         0,                                  /* tp_del */
 #endif
+#if PY_VERSION_HEX >= 0x02060000
+        0,                                  /* tp_version */
+#endif
 #ifdef COUNT_ALLOCS
         0,0,0,0                             /* tp_alloc -> tp_next */
 #endif
       };
       varlink_type = tmp;
-      /* for Python 3 we already assigned ob_type in PyVarObject_HEAD_INIT() */
-#if PY_VERSION_HEX < 0x03000000
+      type_init = 1;
+#if PY_VERSION_HEX < 0x02020000
       varlink_type.ob_type = &PyType_Type;
+#else
+      if (PyType_Ready(&varlink_type) < 0)
+      return NULL;
 #endif
-      type_init = 1;
     }
     return &varlink_type;
   }
@@ -48030,7 +49464,7 @@ extern "C" {
     for (i = 0; constants[i].type; ++i) {
       switch(constants[i].type) {
       case SWIG_PY_POINTER:
-        obj = SWIG_NewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
+        obj = SWIG_InternalNewPointerObj(constants[i].pvalue, *(constants[i]).ptype,0);
         break;
       case SWIG_PY_BINARY:
         obj = SWIG_NewPackedObj(constants[i].pvalue, constants[i].lvalue, *(constants[i].ptype));
@@ -48070,15 +49504,15 @@ extern "C" {
           }
         }
         if (ci) {
-          size_t shift = (ci->ptype) - types;
-          swig_type_info *ty = types_initial[shift];
-          size_t ldoc = (c - methods[i].ml_doc);
-          size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
-          char *ndoc = (char*)malloc(ldoc + lptr + 10);
-          if (ndoc) {
-            char *buff = ndoc;
-            void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
-            if (ptr) {
+          void *ptr = (ci->type == SWIG_PY_POINTER) ? ci->pvalue : 0;
+          if (ptr) {
+            size_t shift = (ci->ptype) - types;
+            swig_type_info *ty = types_initial[shift];
+            size_t ldoc = (c - methods[i].ml_doc);
+            size_t lptr = strlen(ty->name)+2*sizeof(void*)+2;
+            char *ndoc = (char*)malloc(ldoc + lptr + 10);
+            if (ndoc) {
+              char *buff = ndoc;
               strncpy(buff, methods[i].ml_doc, ldoc);
               buff += ldoc;
               strncpy(buff, "swig_ptr: ", 10);
@@ -48111,10 +49545,19 @@ PyObject*
 void
 #endif
 SWIG_init(void) {
-  PyObject *m, *d;  
+  PyObject *m, *d, *md;
 #if PY_VERSION_HEX >= 0x03000000
   static struct PyModuleDef SWIG_module = {
+# if PY_VERSION_HEX >= 0x03020000
     PyModuleDef_HEAD_INIT,
+# else
+    {
+      PyObject_HEAD_INIT(NULL)
+      NULL, /* m_init */
+      0,    /* m_index */
+      NULL, /* m_copy */
+    },
+# endif
     (char *) SWIG_name,
     NULL,
     -1,
@@ -48126,6 +49569,49 @@ SWIG_init(void) {
   };
 #endif
   
+#if defined(SWIGPYTHON_BUILTIN)
+  static SwigPyClientData SwigPyObject_clientdata = {
+    0, 0, 0, 0, 0, 0, 0
+  };
+  static PyGetSetDef this_getset_def = {
+    (char *)"this", &SwigPyBuiltin_ThisClosure, NULL, NULL, NULL
+  };
+  static SwigPyGetSet thisown_getset_closure = {
+    (PyCFunction) SwigPyObject_own,
+    (PyCFunction) SwigPyObject_own
+  };
+  static PyGetSetDef thisown_getset_def = {
+    (char *)"thisown", SwigPyBuiltin_GetterClosure, SwigPyBuiltin_SetterClosure, NULL, &thisown_getset_closure
+  };
+  PyObject *metatype_args;
+  PyTypeObject *builtin_pytype;
+  int builtin_base_count;
+  swig_type_info *builtin_basetype;
+  PyObject *tuple;
+  PyGetSetDescrObject *static_getset;
+  PyTypeObject *metatype;
+  SwigPyClientData *cd;
+  PyObject *public_interface, *public_symbol;
+  PyObject *this_descr;
+  PyObject *thisown_descr;
+  int i;
+  
+  (void)builtin_pytype;
+  (void)builtin_base_count;
+  (void)builtin_basetype;
+  (void)tuple;
+  (void)static_getset;
+  
+  /* metatype is used to implement static member variables. */
+  metatype_args = Py_BuildValue("(s(O){})", "SwigPyObjectType", &PyType_Type);
+  assert(metatype_args);
+  metatype = (PyTypeObject *) PyType_Type.tp_call((PyObject *) &PyType_Type, metatype_args, NULL);
+  assert(metatype);
+  Py_DECREF(metatype_args);
+  metatype->tp_setattro = (setattrofunc) &SwigPyObjectType_setattro;
+  assert(PyType_Ready(metatype) >= 0);
+#endif
+  
   /* Fix SwigMethods to carry the callback ptrs when needed */
   SWIG_Python_FixMethods(SwigMethods, swig_const_table, swig_types, swig_type_initial);
   
@@ -48134,11 +49620,47 @@ SWIG_init(void) {
 #else
   m = Py_InitModule((char *) SWIG_name, SwigMethods);
 #endif
-  d = PyModule_GetDict(m);
+  md = d = PyModule_GetDict(m);
   
   SWIG_InitializeModule(0);
-  SWIG_InstallConstants(d,swig_const_table);
   
+#ifdef SWIGPYTHON_BUILTIN
+  SwigPyObject_stype = SWIG_MangledTypeQuery("_p_SwigPyObject");
+  assert(SwigPyObject_stype);
+  cd = (SwigPyClientData*) SwigPyObject_stype->clientdata;
+  if (!cd) {
+    SwigPyObject_stype->clientdata = &SwigPyObject_clientdata;
+    SwigPyObject_clientdata.pytype = SwigPyObject_TypeOnce();
+  } else if (SwigPyObject_TypeOnce()->tp_basicsize != cd->pytype->tp_basicsize) {
+    PyErr_SetString(PyExc_RuntimeError, "Import error: attempted to load two incompatible swig-generated modules.");
+# if PY_VERSION_HEX >= 0x03000000
+    return NULL;
+# else
+    return;
+# endif
+  }
+  
+  /* All objects have a 'this' attribute */
+  this_descr = PyDescr_NewGetSet(SwigPyObject_type(), &this_getset_def);
+  (void)this_descr;
+  
+  /* All objects have a 'thisown' attribute */
+  thisown_descr = PyDescr_NewGetSet(SwigPyObject_type(), &thisown_getset_def);
+  (void)thisown_descr;
+  
+  public_interface = PyList_New(0);
+  public_symbol = 0;
+  (void)public_symbol;
+  
+  PyDict_SetItemString(md, "__all__", public_interface);
+  Py_DECREF(public_interface);
+  for (i = 0; SwigMethods[i].ml_name != NULL; ++i)
+  SwigPyBuiltin_AddPublicSymbol(public_interface, SwigMethods[i].ml_name);
+  for (i = 0; swig_const_table[i].name != 0; ++i)
+  SwigPyBuiltin_AddPublicSymbol(public_interface, swig_const_table[i].name);
+#endif
+  
+  SWIG_InstallConstants(d,swig_const_table);
   
   
   
@@ -48162,11 +49684,6 @@ SWIG_init(void) {
   PyDict_SetItemString(d, "MapServerChildError", MSExc_MapServerChildError);
   
   
-  SWIG_Python_SetConstant(d, "MS_VERSION",SWIG_FromCharPtr("6.2.1"));
-  SWIG_Python_SetConstant(d, "MS_VERSION_MAJOR",SWIG_From_int((int)(6)));
-  SWIG_Python_SetConstant(d, "MS_VERSION_MINOR",SWIG_From_int((int)(2)));
-  SWIG_Python_SetConstant(d, "MS_VERSION_REV",SWIG_From_int((int)(1)));
-  SWIG_Python_SetConstant(d, "MS_VERSION_NUM",SWIG_From_int((int)((6*10000+2*100+1))));
   SWIG_Python_SetConstant(d, "MS_TRUE",SWIG_From_int((int)(1)));
   SWIG_Python_SetConstant(d, "MS_FALSE",SWIG_From_int((int)(0)));
   SWIG_Python_SetConstant(d, "MS_UNKNOWN",SWIG_From_int((int)(-1)));
@@ -48264,6 +49781,7 @@ SWIG_init(void) {
   SWIG_Python_SetConstant(d, "MS_PLUGIN",SWIG_From_int((int)(MS_PLUGIN)));
   SWIG_Python_SetConstant(d, "MS_UNION",SWIG_From_int((int)(MS_UNION)));
   SWIG_Python_SetConstant(d, "MS_UVRASTER",SWIG_From_int((int)(MS_UVRASTER)));
+  SWIG_Python_SetConstant(d, "MS_CONTOUR",SWIG_From_int((int)(MS_CONTOUR)));
   SWIG_Python_SetConstant(d, "MS_DB_XBASE",SWIG_From_int((int)(MS_DB_XBASE)));
   SWIG_Python_SetConstant(d, "MS_DB_CSV",SWIG_From_int((int)(MS_DB_CSV)));
   SWIG_Python_SetConstant(d, "MS_DB_MYSQL",SWIG_From_int((int)(MS_DB_MYSQL)));
@@ -48377,11 +49895,17 @@ SWIG_init(void) {
   SWIG_Python_SetConstant(d, "MS_TOKEN_FUNCTION_FROMTEXT",SWIG_From_int((int)(MS_TOKEN_FUNCTION_FROMTEXT)));
   SWIG_Python_SetConstant(d, "MS_TOKEN_FUNCTION_BUFFER",SWIG_From_int((int)(MS_TOKEN_FUNCTION_BUFFER)));
   SWIG_Python_SetConstant(d, "MS_TOKEN_FUNCTION_DIFFERENCE",SWIG_From_int((int)(MS_TOKEN_FUNCTION_DIFFERENCE)));
+  SWIG_Python_SetConstant(d, "MS_TOKEN_FUNCTION_SIMPLIFY",SWIG_From_int((int)(MS_TOKEN_FUNCTION_SIMPLIFY)));
+  SWIG_Python_SetConstant(d, "MS_TOKEN_FUNCTION_SIMPLIFYPT",SWIG_From_int((int)(MS_TOKEN_FUNCTION_SIMPLIFYPT)));
+  SWIG_Python_SetConstant(d, "MS_TOKEN_FUNCTION_GENERALIZE",SWIG_From_int((int)(MS_TOKEN_FUNCTION_GENERALIZE)));
+  SWIG_Python_SetConstant(d, "MS_TOKEN_FUNCTION_SMOOTHSIA",SWIG_From_int((int)(MS_TOKEN_FUNCTION_SMOOTHSIA)));
   SWIG_Python_SetConstant(d, "MS_TOKEN_BINDING_DOUBLE",SWIG_From_int((int)(MS_TOKEN_BINDING_DOUBLE)));
   SWIG_Python_SetConstant(d, "MS_TOKEN_BINDING_INTEGER",SWIG_From_int((int)(MS_TOKEN_BINDING_INTEGER)));
   SWIG_Python_SetConstant(d, "MS_TOKEN_BINDING_STRING",SWIG_From_int((int)(MS_TOKEN_BINDING_STRING)));
   SWIG_Python_SetConstant(d, "MS_TOKEN_BINDING_TIME",SWIG_From_int((int)(MS_TOKEN_BINDING_TIME)));
   SWIG_Python_SetConstant(d, "MS_TOKEN_BINDING_SHAPE",SWIG_From_int((int)(MS_TOKEN_BINDING_SHAPE)));
+  SWIG_Python_SetConstant(d, "MS_TOKEN_BINDING_MAP_CELLSIZE",SWIG_From_int((int)(MS_TOKEN_BINDING_MAP_CELLSIZE)));
+  SWIG_Python_SetConstant(d, "MS_TOKEN_BINDING_DATA_CELLSIZE",SWIG_From_int((int)(MS_TOKEN_BINDING_DATA_CELLSIZE)));
   SWIG_Python_SetConstant(d, "MS_PARSE_TYPE_BOOLEAN",SWIG_From_int((int)(MS_PARSE_TYPE_BOOLEAN)));
   SWIG_Python_SetConstant(d, "MS_PARSE_TYPE_STRING",SWIG_From_int((int)(MS_PARSE_TYPE_STRING)));
   SWIG_Python_SetConstant(d, "MS_PARSE_TYPE_SHAPE",SWIG_From_int((int)(MS_PARSE_TYPE_SHAPE)));
diff --git a/mapscript/python/wxs.py b/mapscript/python/wxs.py
new file mode 100644
index 0000000..0d8a9e8
--- /dev/null
+++ b/mapscript/python/wxs.py
@@ -0,0 +1,31 @@
+import mapscript
+
+map = mapscript.mapObj('../../tests/test.map')
+map.setMetaData( "ows_onlineresource", "http://dummy.org/" )
+ows_req = mapscript.OWSRequest()
+
+ows_req.type = mapscript.MS_GET_REQUEST
+
+ows_req.setParameter( "SERVICE", "WMS" );
+ows_req.setParameter( "VERSION", "1.1.0" );
+ows_req.setParameter( "REQUEST", "GetCapabilities" );
+
+mapscript.msIO_installStdoutToBuffer()
+dispatch_status = map.OWSDispatch(ows_req)
+if dispatch_status:
+    status = '200 OK'
+else:
+    status = '500 Internal Server Error'
+content_type = mapscript.msIO_stripStdoutBufferContentType()
+mapscript.msIO_stripStdoutBufferContentHeaders()
+result = mapscript.msIO_getStdoutBufferBytes()
+
+try:
+    # MapServer 6.0:
+    mapscript.msCleanup()
+except:
+    # MapServer 6.1:
+    mapscript.msCleanup(1)
+
+response_headers = [('Content-Type', content_type),
+                    ('Content-Length', str(len(result)))]
diff --git a/mapscript/ruby/CMakeLists.txt b/mapscript/ruby/CMakeLists.txt
new file mode 100644
index 0000000..7a24922
--- /dev/null
+++ b/mapscript/ruby/CMakeLists.txt
@@ -0,0 +1,20 @@
+FIND_PACKAGE(SWIG REQUIRED)
+INCLUDE(${SWIG_USE_FILE})
+FIND_PACKAGE(Ruby REQUIRED)
+INCLUDE_DIRECTORIES(${RUBY_INCLUDE_DIRS})
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/swiginc)
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/)
+include_directories(${PROJECT_SOURCE_DIR}/mapscript/ruby)
+SWIG_ADD_MODULE(rubymapscript ruby ../mapscript.i)
+
+SWIG_LINK_LIBRARIES(rubymapscript ${RUBY_LIBRARY} ${MAPSERVER_LIBMAPSERVER})
+
+set_target_properties(${SWIG_MODULE_rubymapscript_REAL_NAME} PROPERTIES PREFIX "")
+set_target_properties(${SWIG_MODULE_rubymapscript_REAL_NAME} PROPERTIES OUTPUT_NAME mapscript)
+
+#get_target_property(LOC_MAPSCRIPT_LIB ${SWIG_MODULE_mapscript_REAL_NAME} LOCATION)
+#set(mapscript_files ${LOC_MAPSCRIPT_LIB} ${CMAKE_CURRENT_BINARY_DIR}/mapscript.py)
+#install(FILES ${mapscript_files} DESTINATION ${PYTHON_SITE_PACKAGES})
+
+#install(FILES ${CMAKE_CURRENT_BINARY_DIR}/mapscript.py DESTINATION ${PYTHON_SITE_PACKAGES})
+#install(TARGETS mapscript DESTINATION ${PYTHON_SITE_PACKAGES})
diff --git a/mapscript/swiginc/class.i b/mapscript/swiginc/class.i
index 15d5cc1..bf153df 100644
--- a/mapscript/swiginc/class.i
+++ b/mapscript/swiginc/class.i
@@ -80,6 +80,12 @@
     {
         return msUpdateClassFromString(self, snippet, MS_FALSE);
     }
+    
+    %newobject convertToString;
+    char* convertToString()
+    {
+        return msWriteClassToString(self);
+    }
 
 #ifdef SWIGJAVA
     %newobject cloneClass;
@@ -172,12 +178,12 @@
   }
   
   int drawLegendIcon(mapObj *map, layerObj *layer, int width, int height, imageObj *dstImage, int dstX, int dstY) {
-    return msDrawLegendIcon(map, layer, self, width, height, dstImage, dstX, dstY);
+    return msDrawLegendIcon(map, layer, self, width, height, dstImage, dstX, dstY, MS_TRUE, NULL);
   }
  
   %newobject createLegendIcon;
   imageObj *createLegendIcon(mapObj *map, layerObj *layer, int width, int height) {
-    return msCreateLegendIcon(map, layer, self, width, height);
+    return msCreateLegendIcon(map, layer, self, width, height, MS_TRUE);
   } 
 
   %newobject getLabel;
diff --git a/mapscript/swiginc/cluster.i b/mapscript/swiginc/cluster.i
index 220f401..0d950a8 100644
--- a/mapscript/swiginc/cluster.i
+++ b/mapscript/swiginc/cluster.i
@@ -1,64 +1,70 @@
-/* ===========================================================================
-   $Id$
-
-   Project:  MapServer
-   Purpose:  SWIG interface file for mapscript clusterObj extensions
-   Author:   Tamas Szekeres
-
-   ===========================================================================
-   Copyright (c) 1996-2007 Regents of the University of Minnesota.
-
-   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 OR COPYRIGHT HOLDERS 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.
-   ===========================================================================
-*/
-
-%extend clusterObj
-{
-  int updateFromString(char *snippet)
-  {
-    return msUpdateClusterFromString(self, snippet);
-  }
-  
-  int setGroup(char *group) 
-  {
-    if (!group || strlen(group) == 0) {
-       freeExpression(&self->group);
-       return MS_SUCCESS;
-    }
-    else return msLoadExpressionString(&self->group, group);
-  }
-
-  %newobject getGroupString;
-  char *getGroupString() {
-    return msGetExpressionString(&(self->group));
-  }
-
-  int setFilter(char *filter) {
-    if (!filter || strlen(filter) == 0) {
-      freeExpression(&self->filter);
-      return MS_SUCCESS;
-    }	
-    else return msLoadExpressionString(&self->filter, filter);
-  }
-
-  %newobject getFilterString;
-  char *getFilterString() {
-    return msGetExpressionString(&(self->filter));
-  }
-}
+/* ===========================================================================
+   $Id$
+
+   Project:  MapServer
+   Purpose:  SWIG interface file for mapscript clusterObj extensions
+   Author:   Tamas Szekeres
+
+   ===========================================================================
+   Copyright (c) 1996-2007 Regents of the University of Minnesota.
+
+   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 OR COPYRIGHT HOLDERS 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.
+   ===========================================================================
+*/
+
+%extend clusterObj
+{
+  int updateFromString(char *snippet)
+  {
+    return msUpdateClusterFromString(self, snippet);
+  }
+  
+  %newobject convertToString;
+  char* convertToString()
+  {
+    return msWriteClusterToString(self);
+  }
+  
+  int setGroup(char *group) 
+  {
+    if (!group || strlen(group) == 0) {
+       freeExpression(&self->group);
+       return MS_SUCCESS;
+    }
+    else return msLoadExpressionString(&self->group, group);
+  }
+
+  %newobject getGroupString;
+  char *getGroupString() {
+    return msGetExpressionString(&(self->group));
+  }
+
+  int setFilter(char *filter) {
+    if (!filter || strlen(filter) == 0) {
+      freeExpression(&self->filter);
+      return MS_SUCCESS;
+    }	
+    else return msLoadExpressionString(&self->filter, filter);
+  }
+
+  %newobject getFilterString;
+  char *getFilterString() {
+    return msGetExpressionString(&(self->filter));
+  }
+}
diff --git a/mapscript/swiginc/label.i b/mapscript/swiginc/label.i
index 838b849..a2efe47 100644
--- a/mapscript/swiginc/label.i
+++ b/mapscript/swiginc/label.i
@@ -54,6 +54,12 @@
   {
     return msUpdateLabelFromString(self, snippet,MS_FALSE);
   }
+  
+  %newobject convertToString;
+  char* convertToString()
+  {
+    return msWriteLabelToString(self);
+  }
 
   int removeBinding(int binding) 
   {
diff --git a/mapscript/swiginc/layer.i b/mapscript/swiginc/layer.i
index da7d81e..52a9558 100644
--- a/mapscript/swiginc/layer.i
+++ b/mapscript/swiginc/layer.i
@@ -121,6 +121,12 @@
     {
         return msUpdateLayerFromString(self, snippet, MS_FALSE);
     }
+    
+    %newobject convertToString;
+    char* convertToString()
+    {
+        return msWriteLayerToString(self);
+    }
 
 #ifdef SWIGCSHARP   
 %apply SWIGTYPE *SETREFERENCE {classObj *classobj};
@@ -646,4 +652,21 @@
         return msShapeGetClass(self, map, shape, classgroup, numclasses);
     }
 
+    char *getGeomTransform() 
+    {
+      return self->_geomtransform.string;
+    }
+    
+    void setGeomTransform(char *transform) 
+    {
+      msFree(self->_geomtransform.string);
+      if (!transform || strlen(transform) > 0) {
+        self->_geomtransform.string = msStrdup(transform);
+        self->_geomtransform.type = MS_GEOMTRANSFORM_EXPRESSION;
+      }
+      else {
+        self->_geomtransform.type = MS_GEOMTRANSFORM_NONE;
+        self->_geomtransform.string = NULL;
+      }
+    }    
 }
diff --git a/mapscript/swiginc/legend.i b/mapscript/swiginc/legend.i
index 12ed58b..2f04454 100644
--- a/mapscript/swiginc/legend.i
+++ b/mapscript/swiginc/legend.i
@@ -34,4 +34,10 @@
   {
     return msUpdateLegendFromString(self, snippet, MS_FALSE);
   }
+  
+  %newobject convertToString;
+  char* convertToString()
+  {
+    return msWriteLegendToString(self);
+  }
 }
diff --git a/mapscript/swiginc/map.i b/mapscript/swiginc/map.i
index f2e965e..daaaf7a 100644
--- a/mapscript/swiginc/map.i
+++ b/mapscript/swiginc/map.i
@@ -184,6 +184,17 @@
                                  MS_NOOVERRIDE, MS_NOOVERRIDE );
         }
     }
+
+  %newobject getOutputFormat;
+  outputFormatObj *getOutputFormat(int i) {
+    if(i >= 0 && i < self->numoutputformats) {
+    	MS_REFCNT_INCR(self->outputformatlist[i]);
+        return (self->outputformatlist[i]); 
+    } else {
+      return NULL;
+    }
+  }
+
         
   void setOutputFormat( outputFormatObj *format ) {
       msApplyOutputFormat( &(self->outputformat), format, MS_NOOVERRIDE, 
@@ -202,7 +213,7 @@
 
   %newobject drawLegend;
   imageObj *drawLegend() {
-    return msDrawLegend(self, MS_FALSE);
+    return msDrawLegend(self, MS_FALSE, NULL);
   }
 
   %newobject drawScalebar;
@@ -491,5 +502,11 @@
     {
 	return msOWSDispatch( self, req, MS_TRUE );
     }
+    
+    %newobject convertToString;
+    char* convertToString()
+    {
+        return msWriteMapToString(self);
+    }
 
 }
diff --git a/mapscript/swiginc/outputformat.i b/mapscript/swiginc/outputformat.i
index bcbd73e..2f4433a 100644
--- a/mapscript/swiginc/outputformat.i
+++ b/mapscript/swiginc/outputformat.i
@@ -49,8 +49,7 @@
         
         msInitializeRendererVTable(format);
 
-        /* Else, continue */
-        format->refcount++;
+        MS_REFCNT_INIT(format);
 	format->inmapfile = MS_TRUE;
 
         return format;
@@ -58,8 +57,7 @@
 
     ~outputFormatObj() 
     {
-        if ( --self->refcount < 1 )
-            msFreeOutputFormat( self );
+        msFreeOutputFormat( self );
     }
 
 #ifndef SWIGJAVA
@@ -89,9 +87,15 @@
     %newobject getOption;
     char *getOption(const char *key, const char *value="") 
     {
-        const char *retval;
-        retval = msGetOutputFormatOption(self, key, value);
-        return strdup(retval);
+        return strdup(msGetOutputFormatOption(self, key, value));
+    }
+
+    %newobject getOptionAt;
+    char* getOptionAt(int i) {
+       if( i >= 0 && i < self->numformatoptions ) {
+          return strdup(self->formatoptions[i]);
+       }
+       return NULL;
     }
     
     void attachDevice( void *device ) 
diff --git a/mapscript/swiginc/querymap.i b/mapscript/swiginc/querymap.i
index 0d32539..463c63f 100644
--- a/mapscript/swiginc/querymap.i
+++ b/mapscript/swiginc/querymap.i
@@ -34,4 +34,10 @@
   {
     return msUpdateQueryMapFromString(self, snippet, MS_FALSE);
   }
+  
+  %newobject convertToString;
+  char* convertToString()
+  {
+    return msWriteQueryMapToString(self);
+  }
 }
diff --git a/mapscript/swiginc/referencemap.i b/mapscript/swiginc/referencemap.i
index 8589b4e..59a92e8 100644
--- a/mapscript/swiginc/referencemap.i
+++ b/mapscript/swiginc/referencemap.i
@@ -34,4 +34,10 @@
   {
     return msUpdateReferenceMapFromString(self, snippet, MS_FALSE);
   }
+  
+  %newobject convertToString;
+  char* convertToString()
+  {
+    return msWriteReferenceMapToString(self);
+  }
 }
diff --git a/mapscript/swiginc/scalebar.i b/mapscript/swiginc/scalebar.i
index d913731..1227f9e 100644
--- a/mapscript/swiginc/scalebar.i
+++ b/mapscript/swiginc/scalebar.i
@@ -34,4 +34,10 @@
   {
     return msUpdateScalebarFromString(self, snippet, MS_FALSE);
   }
+  
+  %newobject convertToString;
+  char* convertToString()
+  {
+    return msWriteScalebarToString(self);
+  }
 }
diff --git a/mapscript/swiginc/style.i b/mapscript/swiginc/style.i
index 2a76d94..5b186d5 100644
--- a/mapscript/swiginc/style.i
+++ b/mapscript/swiginc/style.i
@@ -80,6 +80,12 @@
     {
         return msUpdateStyleFromString(self, snippet, MS_FALSE);
     }
+    
+    %newobject convertToString;
+    char* convertToString()
+    {
+        return msWriteStyleToString(self);
+    }
 
 #ifdef SWIGJAVA
     %newobject cloneStyle;
diff --git a/mapscript/swiginc/web.i b/mapscript/swiginc/web.i
index 269810f..4b1790d 100644
--- a/mapscript/swiginc/web.i
+++ b/mapscript/swiginc/web.i
@@ -57,6 +57,12 @@
     {
         return msUpdateWebFromString(self, snippet, MS_FALSE);
     }
+    
+    %newobject convertToString;
+    char* convertToString()
+    {
+        return msWriteWebToString(self);
+    }
 }
 
 
diff --git a/mapsde.c b/mapsde.c
index 49fa0f9..76c1b6a 100644
--- a/mapsde.c
+++ b/mapsde.c
@@ -59,7 +59,7 @@ typedef struct {
   SE_LAYERINFO layerinfo;
   SE_COORDREF coordref;
   SE_STREAM stream;
-  long state_id;
+  SE_INT32 state_id;
   char *table;
   char *column;
   char *row_id_column;
@@ -73,7 +73,7 @@ typedef struct {
 } msSDELayerInfo;
 
 typedef struct {
-  long layerId;
+  SE_INT32 layerId;
   char *table;
   char *column;
   char *connection;
@@ -179,7 +179,7 @@ static void sde_error(long error_code, char *routine, char *sde_routine)
 char *msSDELayerGetRowIDColumn(layerObj *layer)
 {
 #ifdef USE_SDE
-  long status, column_type;
+  SE_INT32 status, column_type;
   char* column_name;
   char* full_column_name;
   char* proc_key;
@@ -317,7 +317,7 @@ long msSDELCacheAdd( layerObj *layer,
 {
 
   layerId *lid = NULL;
-  long status = 0;
+  SE_INT32 status = 0;
 
   msAcquireLock( TLOCK_SDE );
 
@@ -450,12 +450,12 @@ static int sdeShapeCopy(SE_SHAPE inshp, shapeObj *outshp)
 
   SE_POINT *points=NULL;
   SE_ENVELOPE envelope;
-  long type, status;
-  long *part_offsets = NULL;
-  long *subpart_offsets = NULL;
-  long num_parts = -1;
-  long num_subparts = -1;
-  long num_points = -1;
+  SE_INT32 type, status;
+  SE_INT32 *part_offsets = NULL;
+  SE_INT32 *subpart_offsets = NULL;
+  SE_INT32 num_parts = -1;
+  SE_INT32 num_subparts = -1;
+  SE_INT32 num_points = -1;
 
   lineObj line= {0,NULL};
 
@@ -463,9 +463,7 @@ static int sdeShapeCopy(SE_SHAPE inshp, shapeObj *outshp)
 
   status = SE_shape_get_type(inshp, &type);
   if(status != SE_SUCCESS) {
-    sde_error(status,
-              "sdeCopyShape()",
-              "SE_shape_get_type()");
+    sde_error(status, "sdeShapeCopy()", "SE_shape_get_type()");
     return(MS_FAILURE);
   }
 
@@ -488,10 +486,7 @@ static int sdeShapeCopy(SE_SHAPE inshp, shapeObj *outshp)
       outshp->type = MS_SHAPE_POLYGON;
       break;
     default:
-      msSetError( MS_SDEERR,
-                  "Unsupported SDE shape type (%ld).",
-                  "sdeCopyShape()",
-                  type);
+      msSetError( MS_SDEERR, "Unsupported SDE shape type.", "sdeShapeCopy()");
       return(MS_FAILURE);
   }
 
@@ -507,26 +502,18 @@ static int sdeShapeCopy(SE_SHAPE inshp, shapeObj *outshp)
     return(MS_FAILURE);
   }
 
-  part_offsets = (long *) msSmallMalloc( (num_parts + 1) * sizeof(long));
-  subpart_offsets = (long *) msSmallMalloc( (num_subparts + 1)  * sizeof(long));
+  part_offsets = (SE_INT32 *) msSmallMalloc( (num_parts + 1) * sizeof(SE_INT32));
+  subpart_offsets = (SE_INT32 *) msSmallMalloc( (num_subparts + 1)  * sizeof(SE_INT32));
   part_offsets[num_parts] = num_subparts;
   subpart_offsets[num_subparts] = num_points;
 
   points = (SE_POINT *) msSmallMalloc (num_points*sizeof(SE_POINT));
   if(!points) {
-    msSetError( MS_MEMERR,
-                "Unable to allocate points array.",
-                "sdeCopyShape()");
+    msSetError( MS_MEMERR, "Unable to allocate points array.", "sdeShapeCopy()");
     return(MS_FAILURE);
   }
 
-  status = SE_shape_get_all_points(   inshp,
-                                      SE_DEFAULT_ROTATION,
-                                      part_offsets,
-                                      subpart_offsets,
-                                      points,
-                                      NULL,
-                                      NULL);
+  status = SE_shape_get_all_points(inshp, SE_DEFAULT_ROTATION, part_offsets, subpart_offsets, points, NULL, NULL);
   if(status != SE_SUCCESS) {
     sde_error(status, "sdeCopyShape()", "SE_shape_get_all_points()");
     return(MS_FAILURE);
@@ -560,7 +547,7 @@ static int sdeShapeCopy(SE_SHAPE inshp, shapeObj *outshp)
   /* finally copy the bounding box for the entire shape */
   status = SE_shape_get_extent(inshp, 0, &envelope);
   if(status != SE_SUCCESS) {
-    sde_error(status, "sdeCopyShape()", "SE_shape_get_extent()");
+    sde_error(status, "sdeShapeCopy()", "SE_shape_get_extent()");
     return(MS_FAILURE);
   }
   outshp->bounds.minx = envelope.minx;
@@ -580,10 +567,10 @@ static int sdeShapeCopy(SE_SHAPE inshp, shapeObj *outshp)
 static int sdeGetRecord(layerObj *layer, shapeObj *shape)
 {
   int i;
-  long status;
+  SE_INT32 status;
 
   double doubleval;
-  long longval;
+  SE_INT32 longval;
   struct tm dateval;
 
   short shortval; /* new gdv */
@@ -635,11 +622,14 @@ static int sdeGetRecord(layerObj *layer, shapeObj *shape)
 
     /* do something special */
     if(strcmp(layer->items[i],sde->row_id_column) == 0) {
-      status = SE_stream_get_integer(sde->connPoolInfo->stream, (short)(i+1), &shape->index);
+      SE_INT32 shape_index;      
+
+      status = SE_stream_get_integer(sde->connPoolInfo->stream, (short)(i+1), &shape_index);
       if(status != SE_SUCCESS) {
         sde_error(status, "sdeGetRecord()", "SE_stream_get_integer()");
         return(MS_FAILURE);
       }
+      shape->index = shape_index;
 
       shape->values[i] = (char *)msSmallMalloc(64); /* should be enough */
       sprintf(shape->values[i], "%ld", shape->index);
@@ -649,62 +639,46 @@ static int sdeGetRecord(layerObj *layer, shapeObj *shape)
     switch(itemdefs[i].sde_type) {
       case SE_SMALLINT_TYPE:
         /* changed by gdv */
-        status = SE_stream_get_smallint(sde->connPoolInfo->stream,
-                                        (short)(i+1),
-                                        &shortval);
+        status = SE_stream_get_smallint(sde->connPoolInfo->stream, (short)(i+1), &shortval);
         if(status == SE_SUCCESS)
           shape->values[i] = msLongToString(shortval);
         else if(status == SE_NULL_VALUE)
           shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
         else {
-          sde_error(  status,
-                      "sdeGetRecord()",
-                      "SE_stream_get_smallint()");
+          sde_error(status, "sdeGetRecord()", "SE_stream_get_smallint()");
           return(MS_FAILURE);
         }
         break;
       case SE_INTEGER_TYPE:
-        status = SE_stream_get_integer( sde->connPoolInfo->stream,
-                                        (short)(i+1),
-                                        &longval);
+        status = SE_stream_get_integer(sde->connPoolInfo->stream, (short)(i+1), &longval);
         if(status == SE_SUCCESS)
           shape->values[i] = msLongToString(longval);
         else if(status == SE_NULL_VALUE)
           shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
         else {
-          sde_error(  status,
-                      "sdeGetRecord()",
-                      "SE_stream_get_integer()");
+          sde_error(status, "sdeGetRecord()", "SE_stream_get_integer()");
           return(MS_FAILURE);
         }
         break;
       case SE_FLOAT_TYPE:
-        status = SE_stream_get_float(   sde->connPoolInfo->stream,
-                                        (short)(i+1),
-                                        &floatval);
+        status = SE_stream_get_float(sde->connPoolInfo->stream, (short)(i+1), &floatval);
         if(status == SE_SUCCESS)
           shape->values[i] = msDoubleToString(floatval, MS_FALSE);
         else if(status == SE_NULL_VALUE)
           shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
         else {
-          sde_error(  status,
-                      "sdeGetRecord()",
-                      "SE_stream_get_float()");
+          sde_error( status, "sdeGetRecord()", "SE_stream_get_float()");
           return(MS_FAILURE);
         }
         break;
       case SE_DOUBLE_TYPE:
-        status = SE_stream_get_double(  sde->connPoolInfo->stream,
-                                        (short) (i+1),
-                                        &doubleval);
+        status = SE_stream_get_double(sde->connPoolInfo->stream, (short) (i+1), &doubleval);
         if(status == SE_SUCCESS)
           shape->values[i] = msDoubleToString(doubleval, MS_FALSE);
         else if(status == SE_NULL_VALUE)
           shape->values[i] = msStrdup(MS_SDE_NULLSTRING);
         else {
-          sde_error(  status,
-                      "sdeGetRecord()",
-                      "SE_stream_get_double()");
+          sde_error(status, "sdeGetRecord()", "SE_stream_get_double()");
           return(MS_FAILURE);
         }
         break;
@@ -2116,16 +2090,14 @@ void msSDELayerFreeItemInfo(layerObj *layer)
   msSDELayerInfo *sde = NULL;
   int i;
   if (!msSDELayerIsOpen(layer)) {
-    msSetError( MS_SDEERR,
-                "SDE layer has not been opened.",
-                "msSDELayerFreeItemInfo()");
+    msSetError( MS_SDEERR, "SDE layer has not been opened.", "msSDELayerFreeItemInfo()");
   }
   sde = layer->layerinfo;
-  if (sde->basedefs) {
+  if (sde != NULL && sde->basedefs) {
     SE_table_free_descriptions(sde->basedefs);
     sde->basedefs = NULL;
   }
-  if (sde->joindefs) {
+  if (sde != NULL && sde->joindefs) {
     SE_table_free_descriptions(sde->joindefs);
     sde->joindefs = NULL;
   }
diff --git a/mapserv.c b/mapserv.c
index e71438d..e9499c5 100644
--- a/mapserv.c
+++ b/mapserv.c
@@ -26,7 +26,7 @@
  * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
  * DEALINGS IN THE SOFTWARE.
  ****************************************************************************/
-
+#include "mapserver-config.h"
 #ifdef USE_FASTCGI
 #define NO_FCGI_DEFINES
 #include "fcgi_stdio.h"
diff --git a/mapserver-api.c b/mapserver-api.c
new file mode 100644
index 0000000..e1ec1fd
--- /dev/null
+++ b/mapserver-api.c
@@ -0,0 +1,20 @@
+#include "mapserver.h"
+
+
+mapObj* umnms_new_map(char *filename) {
+  mapObj *map = NULL;
+  if(filename) {  
+    map = msLoadMap(filename,NULL);
+  } else {
+    map = (mapObj *)msSmallCalloc(sizeof(mapObj),1);
+    if(initMap(map) == -1) {
+      free(map);
+      return NULL;
+    }
+  }
+  return map;
+}
+layerObj* umnms_new_layer(mapObj *map);
+classObj* umnms_new_class(layerObj *layer);
+styleObj* umnms_new_style(classObj *theclass);
+labelObj* umnms_new_label(classObj *theclass);
diff --git a/mapserver-api.h b/mapserver-api.h
new file mode 100644
index 0000000..3be93bc
--- /dev/null
+++ b/mapserver-api.h
@@ -0,0 +1,39 @@
+/* 
+ * File:   mapserver-api.h
+ * Author: tbonfort
+ *
+ * Created on March 14, 2013, 1:12 PM
+ */
+
+#ifndef MAPSERVER_API_H
+#define	MAPSERVER_API_H
+
+#include "mapserver-version.h"
+
+#ifdef	__cplusplus
+extern "C" {
+#endif
+
+typedef struct mapObj mapObj;
+typedef struct layerObj layerObj;
+typedef struct classObj classObj;
+typedef struct styleObj styleObj;
+typedef struct labelObj labelObj;
+typedef struct symbolObj symbolObj;
+typedef struct imageObj imageObj;
+
+mapObj* umnms_new_map(char *filename);
+layerObj* umnms_new_layer(mapObj *map);
+classObj* umnms_new_class(layerObj *layer);
+styleObj* umnms_new_style(classObj *theclass);
+labelObj* umnms_new_label(classObj *theclass);
+
+
+
+
+#ifdef	__cplusplus
+}
+#endif
+
+#endif	/* MAPSERVER_API_H */
+
diff --git a/mapserver-config.h.in b/mapserver-config.h.in
new file mode 100644
index 0000000..c8a0292
--- /dev/null
+++ b/mapserver-config.h.in
@@ -0,0 +1,66 @@
+#ifndef _MAPSERVER_CONFIG_H
+#define _MAPSERVER_CONFIG_H
+
+#cmakedefine USE_PROJ 1
+#cmakedefine USE_GD 1
+#cmakedefine USE_GD_GIF 1
+#cmakedefine USE_GD_PNG 1
+#cmakedefine USE_GD_JPEG 1
+#cmakedefine USE_GD_FREETYPE 1
+#cmakedefine USE_POSTGIS 1
+#cmakedefine USE_GDAL 1
+#cmakedefine USE_OGR 1
+#cmakedefine USE_WMS_SVR 1
+#cmakedefine USE_WCS_SVR 1
+#cmakedefine USE_WFS_SVR 1
+#cmakedefine USE_SOS_SVR 1
+#cmakedefine USE_WFS_LYR 1
+#cmakedefine USE_WMS_LYR 1
+#cmakedefine USE_CURL 1
+#cmakedefine USE_CAIRO 1
+#cmakedefine USE_GEOS 1
+#cmakedefine USE_GIF 1
+#cmakedefine USE_JPEG 1
+#cmakedefine USE_PNG 1
+#cmakedefine USE_ICONV 1
+#cmakedefine USE_FRIBIDI 1
+#cmakedefine USE_LIBXML2 1
+#cmakedefine USE_FASTCGI 1
+#cmakedefine USE_MYSQL 1
+#cmakedefine USE_THREAD 1
+#cmakedefine USE_KML 1
+#cmakedefine USE_POINT_Z_M 1
+#cmakedefine USE_ORACLESPATIAL 1
+#cmakedefine USE_EXEMPI 1
+#cmakedefine USE_XMLMAPFILE 1
+#cmakedefine USE_GENERIC_MS_NINT 1
+#cmakedefine POSTGIS_HAS_SERVER_VERSION 1
+#cmakedefine USE_SVG_CAIRO 1
+#cmakedefine USE_RSVG 1
+#cmakedefine USE_SDE 1
+#cmakedefine SDE64 1
+
+/*windows specific hacks*/
+#if defined(_WIN32)
+#cmakedefine REGEX_MALLOC 1
+#cmakedefine USE_GENERIC_MS_NINT 1
+#endif
+
+
+#cmakedefine HAVE_STRRSTR 1
+#cmakedefine HAVE_STRCASECMP 1
+#cmakedefine HAVE_STRCASESTR 1
+#cmakedefine HAVE_STRDUP 1
+#cmakedefine HAVE_STRLCAT 1
+#cmakedefine HAVE_STRLCPY 1
+#cmakedefine HAVE_STRLEN 1
+#cmakedefine HAVE_STRNCASECMP 1
+#cmakedefine HAVE_VSNPRINTF 1
+#cmakedefine HAVE_DLFCN_H 1
+
+#cmakedefine HAVE_LRINTF 1
+#cmakedefine HAVE_LRINT 1
+#cmakedefine HAVE_SYNC_FETCH_AND_ADD 1
+     
+
+#endif
diff --git a/mapserver-config.in b/mapserver-config.in
deleted file mode 100755
index 7d71813..0000000
--- a/mapserver-config.in
+++ /dev/null
@@ -1,49 +0,0 @@
-usage()
-{
-	cat <<EOF
-Usage: mapserver-config [OPTIONS]
-Options:
-	[--libs]
-	[--dep-libs]
-	[--cflags]
-	[--defines]
-	[--includes]
-	[--version]
-EOF
-	exit $1
-}
-
-if test $# -eq 0; then
-	usage 1 1>&2
-fi
-
-case $1 in 
-  --libs)
-    echo $CONFIG_LIBS
-    ;;
-
-  --defines)
-    echo $CONFIG_DEFINES
-    ;;
-
-  --includes)
-    echo $CONFIG_INCLUDES
-    ;;
-
-  --dep-libs)
-    echo $CONFIG_DEP_LIBS
-    ;;
-
-  --cflags)
-    echo $CONFIG_CFLAGS
-    ;;
-
-  --version)
-    echo $CONFIG_VERSION
-    ;;
-
-  *)
-    usage 1 1>&2
-    ;;
-
-esac
diff --git a/mapserver-version.h.in b/mapserver-version.h.in
new file mode 100644
index 0000000..9f5e41b
--- /dev/null
+++ b/mapserver-version.h.in
@@ -0,0 +1,11 @@
+#ifndef _MAPSERVER_VERSION_H
+#define _MAPSERVER_VERSION_H
+
+#define MS_VERSION_MAJOR @MapServer_VERSION_MAJOR@
+#define MS_VERSION_MINOR @MapServer_VERSION_MINOR@
+#define MS_VERSION_REV @MapServer_VERSION_REVISION@
+#define MS_VERSION "@MapServer_VERSION_STRING@"
+#define MS_VERSION_NUM  @MapServer_VERSION_NUM@ 
+
+#endif
+
diff --git a/mapserver.def b/mapserver.def
deleted file mode 100644
index c5aa397..0000000
--- a/mapserver.def
+++ /dev/null
@@ -1,6 +0,0 @@
-EXPORTS gdFree
-	gdImagePngPtr
-	gdImageColorTransparent
-	gdImageInterlace
-	gdImageSaveAlpha
-	gdImageDestroy
diff --git a/mapserver.h b/mapserver.h
index 9987a33..dec6972 100644
--- a/mapserver.h
+++ b/mapserver.h
@@ -29,23 +29,15 @@
 #ifndef MAP_H
 #define MAP_H
 
-/*
-** MapServer version - to be updated for every release
-*/
-#define MS_VERSION "6.2.1"
-
-#define MS_VERSION_MAJOR    6
-#define MS_VERSION_MINOR    2
-#define MS_VERSION_REV      1
+#include "mapserver-config.h"
 
-#define MS_VERSION_NUM (MS_VERSION_MAJOR*10000+MS_VERSION_MINOR*100+MS_VERSION_REV)
 
 
 /*
 ** Main includes. If a particular header was needed by several .c files then
 ** I just put it here. What the hell, it works and it's all right here. -SDL-
 */
-#if !defined(NEED_STRCASESTR) && !defined(_GNU_SOURCE)
+#if defined(HAVE_STRCASESTR) && !defined(_GNU_SOURCE)
 #define _GNU_SOURCE /* Required for <string.h> strcasestr() defn */
 #endif
 
@@ -104,10 +96,14 @@ typedef uint32_t        ms_uint32;
 #define vsnprintf _vsnprintf
 #endif
 
+#include "mapserver-api.h"
+
+
 /*forward declaration of rendering object*/
 typedef struct rendererVTableObj rendererVTableObj;
 typedef struct tileCacheObj tileCacheObj;
-
+#ifndef SWIG
+#endif
 
 /* ms_bitarray is used by the bit mask in mapbit.c */
 typedef ms_uint32 *     ms_bitarray;
@@ -127,10 +123,6 @@ typedef ms_uint32 *     ms_bitarray;
 #include <gd.h>
 #endif
 
-#if defined USE_PDF
-#include <pdflib.h>
-#endif
-
 
 #include <sys/types.h> /* regular expression support */
 
@@ -183,14 +175,14 @@ extern "C" {
 #define MS_CHECK_ALLOC(var, size, retval)     \
     if (!var) {   \
         msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", __FUNCTION__, \
-                   __FILE__, __LINE__, size);  \
+                   __FILE__, __LINE__, (unsigned int)(size));  \
         return retval;                         \
     }
 
 #define MS_CHECK_ALLOC_NO_RET(var, size)                                   \
     if (!var) {                                                       \
         msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", __FUNCTION__, \
-                   __FILE__, __LINE__, size);                           \
+                   __FILE__, __LINE__, (unsigned int)(size));                           \
         return;                                                         \
     }
 
@@ -296,6 +288,7 @@ extern "C" {
 #define MS_IREGEX 2005
 #define MS_ISTRING 2006
 #define MS_BINDING 2007
+#define MS_LIST 2008
 
   /* string split flags */
 #define MS_HONOURSTRINGS      0x0001
@@ -326,7 +319,7 @@ extern "C" {
      conversion to nearest int.  We avoid lrint() for now because it
      would be hard to include math.h "properly". */
 
-#if defined(WE_HAVE_THE_C99_LRINT) && !defined(USE_GENERIC_MS_NINT)
+#if defined(HAVE_LRINT) && !defined(USE_GENERIC_MS_NINT)
 #   define MS_NINT(x) lrint(x)
   /*#   define MS_NINT(x) lround(x) */
 #elif defined(_MSC_VER) && defined(_WIN32) && !defined(USE_GENERIC_MS_NINT)
@@ -474,6 +467,8 @@ extern "C" {
 
 #define MS_IS_VALID_ARRAY_INDEX(index, size) ((index<0 || index>=size)?MS_FALSE:MS_TRUE)
 
+#define MS_CONVERT_UNIT(src_unit, dst_unit, value) (value * msInchesPerUnit(src_unit,0) / msInchesPerUnit(dst_unit,0))
+  
 #endif
 
   /* General enumerated types - needed by scripts */
@@ -488,7 +483,7 @@ extern "C" {
 
   enum MS_BITMAP_FONT_SIZES {MS_TINY , MS_SMALL, MS_MEDIUM, MS_LARGE, MS_GIANT};
   enum MS_QUERYMAP_STYLES {MS_NORMAL, MS_HILITE, MS_SELECTED};
-  enum MS_CONNECTION_TYPE {MS_INLINE, MS_SHAPEFILE, MS_TILED_SHAPEFILE, MS_SDE, MS_OGR, MS_UNUSED_1, MS_POSTGIS, MS_WMS, MS_ORACLESPATIAL, MS_WFS, MS_GRATICULE, MS_MYSQL, MS_RASTER, MS_PLUGIN, MS_UNION, MS_UVRASTER };
+  enum MS_CONNECTION_TYPE {MS_INLINE, MS_SHAPEFILE, MS_TILED_SHAPEFILE, MS_SDE, MS_OGR, MS_UNUSED_1, MS_POSTGIS, MS_WMS, MS_ORACLESPATIAL, MS_WFS, MS_GRATICULE, MS_MYSQL, MS_RASTER, MS_PLUGIN, MS_UNION, MS_UVRASTER, MS_CONTOUR };
   enum MS_JOIN_CONNECTION_TYPE {MS_DB_XBASE, MS_DB_CSV, MS_DB_MYSQL, MS_DB_ORACLE, MS_DB_POSTGRES};
   enum MS_JOIN_TYPE {MS_JOIN_ONE_TO_ONE, MS_JOIN_ONE_TO_MANY};
 
@@ -648,9 +643,9 @@ extern "C" {
   };
   enum MS_TOKEN_FUNCTION_ENUM {
     MS_TOKEN_FUNCTION_LENGTH=340, MS_TOKEN_FUNCTION_TOSTRING, MS_TOKEN_FUNCTION_COMMIFY, MS_TOKEN_FUNCTION_AREA, MS_TOKEN_FUNCTION_ROUND, MS_TOKEN_FUNCTION_FROMTEXT,
-    MS_TOKEN_FUNCTION_BUFFER, MS_TOKEN_FUNCTION_DIFFERENCE
+    MS_TOKEN_FUNCTION_BUFFER, MS_TOKEN_FUNCTION_DIFFERENCE, MS_TOKEN_FUNCTION_SIMPLIFY, MS_TOKEN_FUNCTION_SIMPLIFYPT, MS_TOKEN_FUNCTION_GENERALIZE, MS_TOKEN_FUNCTION_SMOOTHSIA
   };
-  enum MS_TOKEN_BINDING_ENUM { MS_TOKEN_BINDING_DOUBLE=350, MS_TOKEN_BINDING_INTEGER, MS_TOKEN_BINDING_STRING, MS_TOKEN_BINDING_TIME, MS_TOKEN_BINDING_SHAPE };
+  enum MS_TOKEN_BINDING_ENUM { MS_TOKEN_BINDING_DOUBLE=360, MS_TOKEN_BINDING_INTEGER, MS_TOKEN_BINDING_STRING, MS_TOKEN_BINDING_TIME, MS_TOKEN_BINDING_SHAPE, MS_TOKEN_BINDING_MAP_CELLSIZE, MS_TOKEN_BINDING_DATA_CELLSIZE };
   enum MS_PARSE_TYPE_ENUM { MS_PARSE_TYPE_BOOLEAN, MS_PARSE_TYPE_STRING, MS_PARSE_TYPE_SHAPE };
 
 #ifndef SWIG
@@ -697,6 +692,8 @@ extern "C" {
   typedef struct {
     colorObj *pixel; /* for raster layers */
     shapeObj *shape; /* for vector layers */
+    double dblval; /* for map cellsize used by simplify */
+    double dblval2; /* for data cellsize */    
     expressionObj *expr; /* expression to be evaluated (contains tokens) */
     int type; /* type of parse: boolean, string/text or shape/geometry */
     parseResultObj result; /* parse result */
@@ -752,6 +749,17 @@ extern "C" {
   /************************************************************************/
 
   typedef struct {
+#ifndef SWIG
+    int refcount;
+    char **formatoptions;
+#endif /* SWIG */
+#ifdef SWIG
+    %immutable;
+#endif /* SWIG */
+    int  numformatoptions;
+#ifdef SWIG
+    %mutable;
+#endif /* SWIG */
     char *name;
     char *mimetype;
     char *driver;
@@ -760,9 +768,6 @@ extern "C" {
     int  imagemode; /* MS_IMAGEMODE_* value. */
     int  transparent;
     int  bands;
-    int  numformatoptions;
-    char **formatoptions;
-    int  refcount;
     int inmapfile; /* boolean value for writing */
 #ifndef SWIG
     rendererVTableObj *vtable;
@@ -873,7 +878,7 @@ extern "C" {
   /*      applied within a classObj                                       */
   /************************************************************************/
 
-  typedef struct {
+  struct styleObj{
 #ifdef SWIG
     %immutable;
 #endif /* SWIG */
@@ -937,7 +942,7 @@ extern "C" {
     attributeBindingObj bindings[MS_STYLE_BINDING_LENGTH];
     int numbindings;
 #endif
-  } styleObj;
+  };
 
 
 
@@ -973,7 +978,7 @@ extern "C" {
   /*      parameters needed to annotate a layer, legend or scalebar       */
   /************************************************************************/
 
-  typedef struct {
+  struct labelObj{
 #ifdef SWIG
     %immutable;
 #endif /* SWIG */
@@ -1050,15 +1055,15 @@ extern "C" {
     shapeObj *annopoly;
 
     labelLeaderObj leader;
-  } labelObj;
+  };
 
   /************************************************************************/
   /*                               classObj                               */
   /*                                                                      */
   /*      basic symbolization and classification information              */
   /************************************************************************/
-
-  typedef struct classObj {
+  
+  struct classObj {
 #ifndef SWIG
     expressionObj expression; /* the expression to be matched */
 #endif
@@ -1124,7 +1129,7 @@ extern "C" {
 
     char *group;
     labelLeaderObj leader;
-  } classObj;
+  };
 
   /************************************************************************/
   /*                         labelCacheMemberObj                          */
@@ -1403,7 +1408,7 @@ extern "C" {
   /*                                                                      */
   /*      A wrapper for GD and other images.                              */
   /************************************************************************/
-  typedef struct {
+  struct imageObj{
 #ifdef SWIG
     %immutable;
 #endif
@@ -1437,7 +1442,7 @@ extern "C" {
     ms_bitarray  img_mask;
     pointObj refpt;
 #endif
-  } imageObj;
+  };
 
   /************************************************************************/
   /*                               layerObj                               */
@@ -1445,7 +1450,19 @@ extern "C" {
   /*      base unit of a map.                                             */
   /************************************************************************/
 
-  typedef struct layerObj {
+  typedef struct {
+    double minscale;
+    double maxscale;
+    char *value;
+  } scaleTokenEntryObj;
+  
+  typedef struct {
+     char *name;
+     int n_entries;
+     scaleTokenEntryObj *tokens;
+  } scaleTokenObj;
+  
+  struct layerObj {
 
     char *classitem; /* .DBF item to be used for symbol lookup */
 
@@ -1486,6 +1503,20 @@ extern "C" {
     char *group; /* shouldn't be unique it's supposed to be a group right? */
 
     int status; /* on or off */
+
+#ifndef SWIG
+    /* RFC86 Scale-dependent token replacements */
+    scaleTokenObj *scaletokens;
+    int numscaletokens;
+    
+    /* The following store original members if they have been modified at runtime by a rfc86 scaletoken */
+    char *orig_data;
+    char *orig_tileitem;
+    char *orig_tileindex;
+    char *orig_filteritem;
+    char *orig_filter; 
+#endif
+
     char *data; /* filename, can be relative or full path */
 
     enum MS_LAYER_TYPE type;
@@ -1517,6 +1548,7 @@ extern "C" {
 
     char *tileitem;
     char *tileindex; /* layer index file for tiling support */
+    char *tilesrs;
 
 #ifndef SWIG
     int tileitemindex;
@@ -1607,7 +1639,10 @@ extern "C" {
 #endif
     char *mask;
 
-  } layerObj;
+#ifndef SWIG    
+    expressionObj _geomtransform;
+#endif    
+  };
 
   /************************************************************************/
   /*                                mapObj                                */
@@ -1617,7 +1652,7 @@ extern "C" {
   /************************************************************************/
 
   /* MAP OBJECT -  */
-  typedef struct mapObj { /* structure for a map */
+  struct mapObj { /* structure for a map */
     char *name; /* small identifier for naming etc. */
     int status; /* is map creation on or off */
     int height, width;
@@ -1673,7 +1708,9 @@ extern "C" {
     %immutable;
 #endif /* SWIG */
     int numoutputformats;
+#ifndef SWIG
     outputFormatObj **outputformatlist;
+#endif /*SWIG*/
     outputFormatObj *outputformat;
 
     char *imagetype; /* name of current outputformat */
@@ -1721,7 +1758,7 @@ extern "C" {
 
     queryObj query;
 #endif
-  } mapObj;
+  };
 
   /************************************************************************/
   /*                             layerVTable                              */
@@ -1789,6 +1826,8 @@ extern "C" {
   MS_DLL_EXPORT int initLayer(layerObj *layer, mapObj *map);
   MS_DLL_EXPORT int freeLayer( layerObj * );
   MS_DLL_EXPORT classObj *msGrowLayerClasses( layerObj *layer );
+  MS_DLL_EXPORT scaleTokenObj *msGrowLayerScaletokens( layerObj *layer );
+  MS_DLL_EXPORT int initScaleToken(scaleTokenObj *scaleToken);
   MS_DLL_EXPORT int initClass(classObj *_class);
   MS_DLL_EXPORT int freeClass( classObj * );
   MS_DLL_EXPORT styleObj *msGrowClassStyles( classObj *_class );
@@ -1884,6 +1923,17 @@ extern "C" {
   MS_DLL_EXPORT int msUpdateClassFromString(classObj *_class, char *string, int url_string);
   MS_DLL_EXPORT int msUpdateLayerFromString(layerObj *layer, char *string, int url_string);
   MS_DLL_EXPORT int msUpdateMapFromURL(mapObj *map, char *variable, char *string);
+  MS_DLL_EXPORT char *msWriteLayerToString(layerObj *layer);
+  MS_DLL_EXPORT char *msWriteMapToString(mapObj *map);
+  MS_DLL_EXPORT char *msWriteClassToString(classObj *_class);
+  MS_DLL_EXPORT char *msWriteStyleToString(styleObj *style);
+  MS_DLL_EXPORT char *msWriteLabelToString(labelObj *label);
+  MS_DLL_EXPORT char *msWriteWebToString(webObj *web);
+  MS_DLL_EXPORT char *msWriteScalebarToString(scalebarObj *scalebar);
+  MS_DLL_EXPORT char *msWriteQueryMapToString(queryMapObj *querymap);
+  MS_DLL_EXPORT char *msWriteReferenceMapToString(referenceMapObj *ref);
+  MS_DLL_EXPORT char *msWriteLegendToString(legendObj *legend);
+  MS_DLL_EXPORT char *msWriteClusterToString(clusterObj *cluster);
   MS_DLL_EXPORT int msEvalRegex(char *e, char *s);
 #ifdef USE_MSFREE
   MS_DLL_EXPORT void msFree(void *p);
@@ -2004,36 +2054,38 @@ extern "C" {
   MS_DLL_EXPORT char* msStringEscape( const char * pszString );
   MS_DLL_EXPORT int msStringInArray( const char * pszString, char **array, int numelements);
 
-#ifdef NEED_STRDUP
+#ifndef HAVE_STRDUP
   MS_DLL_EXPORT char *strdup(char *s);
 #endif /* NEED_STRDUP */
 
-#ifdef NEED_STRRSTR
+#ifndef HAVE_STRRSTR
   MS_DLL_EXPORT char *strrstr(char *string, char *find);
 #endif /* NEED_STRRSTR */
 
-#ifdef NEED_STRCASESTR
+#ifndef HAVE_STRCASESTR
   MS_DLL_EXPORT char *strcasestr(const char *s, const char *find);
 #endif /* NEED_STRCASESTR */
 
-#ifdef NEED_STRNCASECMP
+#ifndef HAVE_STRNCASECMP
   MS_DLL_EXPORT int strncasecmp(const char *s1, const char *s2, int len);
 #endif /* NEED_STRNCASECMP */
 
-#ifdef NEED_STRCASECMP
+#ifndef HAVE_STRCASECMP
   MS_DLL_EXPORT int strcasecmp(const char *s1, const char *s2);
 #endif /* NEED_STRCASECMP */
 
-#ifdef NEED_STRLCAT
+#ifndef HAVE_STRLCAT
   MS_DLL_EXPORT size_t strlcat(char *dst, const char *src, size_t siz);
 #endif /* NEED_STRLCAT */
 
-#ifdef NEED_STRLCPY
+#ifndef HAVE_STRLCPY
   MS_DLL_EXPORT size_t strlcpy(char *dst, const char *src, size_t siz);
 #endif /* NEED_STRLCAT */
 
   MS_DLL_EXPORT char *msStrdup( const char * pszString );
 
+#include "hittest.h"
+
   /* in mapsymbol.c */
   /* Use this function *only* with mapfile loading phase */
   MS_DLL_EXPORT int loadSymbolSet(symbolSetObj *symbolset, mapObj *map);
@@ -2041,6 +2093,7 @@ extern "C" {
   MS_DLL_EXPORT int msLoadSymbolSet(symbolSetObj *symbolset, mapObj *map);
   MS_DLL_EXPORT int msCopySymbol(symbolObj *dst, symbolObj *src, mapObj *map);
   MS_DLL_EXPORT int msCopySymbolSet(symbolSetObj *dst, symbolSetObj *src, mapObj *map);
+  MS_DLL_EXPORT int msCopyHashTable(hashTableObj *dst, hashTableObj *src);
   MS_DLL_EXPORT void msInitSymbolSet(symbolSetObj *symbolset);
   MS_DLL_EXPORT symbolObj *msGrowSymbolSet( symbolSetObj *symbolset );
   MS_DLL_EXPORT int msAddImageSymbol(symbolSetObj *symbolset, char *filename);
@@ -2060,12 +2113,12 @@ extern "C" {
   MS_DLL_EXPORT double msSymbolGetDefaultSize(symbolObj *s);
   MS_DLL_EXPORT void freeImageCache(struct imageCacheObj *ic);
 
-  MS_DLL_EXPORT imageObj *msDrawLegend(mapObj *map, int scale_independent); /* in maplegend.c */
+  MS_DLL_EXPORT imageObj *msDrawLegend(mapObj *map, int scale_independent, map_hittest *hittest); /* in maplegend.c */
   MS_DLL_EXPORT int msLegendCalcSize(mapObj *map, int scale_independent, int *size_x, int *size_y,
-                                     int *alayers, int numl_ayer);
+                                     int *alayers, int numl_ayer, map_hittest *hittest, int resolutionfactor);
   MS_DLL_EXPORT int msEmbedLegend(mapObj *map, imageObj *img);
-  MS_DLL_EXPORT int msDrawLegendIcon(mapObj* map, layerObj* lp, classObj* myClass, int width, int height, imageObj *img, int dstX, int dstY);
-  MS_DLL_EXPORT imageObj *msCreateLegendIcon(mapObj* map, layerObj* lp, classObj* myClass, int width, int height);
+  MS_DLL_EXPORT int msDrawLegendIcon(mapObj* map, layerObj* lp, classObj* myClass, int width, int height, imageObj *img, int dstX, int dstY, int scale_independant, class_hittest *hittest);
+  MS_DLL_EXPORT imageObj *msCreateLegendIcon(mapObj* map, layerObj* lp, classObj* myClass, int width, int height, int scale_independant);
 
   MS_DLL_EXPORT int msLoadFontSet(fontSetObj *fontSet, mapObj *map); /* in maplabel.c */
   MS_DLL_EXPORT int msInitFontSet(fontSetObj *fontset);
@@ -2150,6 +2203,8 @@ extern "C" {
   MS_DLL_EXPORT void msLayerFreeItemInfo(layerObj *layer);
 
   MS_DLL_EXPORT int msLayerOpen(layerObj *layer); /* in maplayer.c */
+  MS_DLL_EXPORT int msLayerApplyScaletokens(layerObj *layer, double scale);
+  MS_DLL_EXPORT int msLayerRestoreFromScaletokens(layerObj *layer);
   MS_DLL_EXPORT int msClusterLayerOpen(layerObj *layer); /* in mapcluster.c */
   MS_DLL_EXPORT int msLayerIsOpen(layerObj *layer);
   MS_DLL_EXPORT void msLayerClose(layerObj *layer);
@@ -2231,6 +2286,7 @@ extern "C" {
   MS_DLL_EXPORT int msGraticuleLayerInitializeVirtualTable(layerObj *layer);
   MS_DLL_EXPORT int msRASTERLayerInitializeVirtualTable(layerObj *layer);
   MS_DLL_EXPORT int msUVRASTERLayerInitializeVirtualTable(layerObj *layer);
+  MS_DLL_EXPORT int msContourLayerInitializeVirtualTable(layerObj *layer);  
   MS_DLL_EXPORT int msPluginLayerInitializeVirtualTable(layerObj *layer);
   MS_DLL_EXPORT int msUnionLayerInitializeVirtualTable(layerObj *layer);
   MS_DLL_EXPORT void msPluginFreeVirtualTableFactory(void);
@@ -2277,7 +2333,6 @@ extern "C" {
   MS_DLL_EXPORT int msDrawMarkerSymbol(symbolSetObj *symbolset,imageObj *image, pointObj *p, styleObj *style, double scalefactor);
   MS_DLL_EXPORT int msDrawLineSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p, styleObj *style, double scalefactor);
   MS_DLL_EXPORT int msDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, shapeObj *p, styleObj *style, double scalefactor);
-  MS_DLL_EXPORT int msCircleDrawLineSymbol(symbolSetObj *symbolset, imageObj *image, pointObj *p, double r, styleObj *style, double scalefactor);
   MS_DLL_EXPORT int msCircleDrawShadeSymbol(symbolSetObj *symbolset, imageObj *image, pointObj *p, double r, styleObj *style, double scalefactor);
   MS_DLL_EXPORT int msDrawPieSlice(symbolSetObj *symbolset, imageObj *image, pointObj *p, styleObj *style, double radius, double start, double end);
 
@@ -2387,7 +2442,7 @@ extern "C" {
   MS_DLL_EXPORT unsigned char *msSaveImageBuffer(imageObj* image, int *size_ptr, outputFormatObj *format);
   MS_DLL_EXPORT shapeObj* msOffsetPolyline(shapeObj* shape, double offsetx, double offsety);
   MS_DLL_EXPORT int msMapSetLayerProjections(mapObj* map);
-
+  
   /* Functions to chnage the drawing order of the layers. */
   /* Defined in mapobject.c */
   MS_DLL_EXPORT int msMoveLayerUp(mapObj *map, int nLayerIndex);
@@ -2448,6 +2503,8 @@ extern "C" {
   MS_DLL_EXPORT int *msAllocateValidClassGroups(layerObj *lp, int *nclasses);
 
   MS_DLL_EXPORT void msFreeRasterBuffer(rasterBufferObj *b);
+
+  MS_DLL_EXPORT shapeObj* msGeneralize(shapeObj * shape, double tolerance);
   /* ==================================================================== */
   /*      End of prototypes for functions in maputil.c                    */
   /* ==================================================================== */
@@ -2509,6 +2566,7 @@ extern "C" {
   /* ==================================================================== */
   MS_DLL_EXPORT int msCopyMap(mapObj *dst, mapObj *src);
   MS_DLL_EXPORT int msCopyLayer(layerObj *dst, layerObj *src);
+  MS_DLL_EXPORT int msCopyScaleToken(scaleTokenObj *src, scaleTokenObj *dst);
   MS_DLL_EXPORT int msCopyPoint(pointObj *dst, pointObj *src);
   MS_DLL_EXPORT int msCopyFontSet(fontSetObj *dst, fontSetObj *src, mapObj *map);
   MS_DLL_EXPORT void copyProperty(void *dst, void *src, int size);
@@ -2548,6 +2606,7 @@ extern "C" {
   /* ==================================================================== */
 #include "mapows.h"
 
+
   /* ==================================================================== */
   /*      prototypes for functions in mapgeos.c                         */
   /* ==================================================================== */
@@ -2569,6 +2628,7 @@ extern "C" {
   MS_DLL_EXPORT shapeObj *msGEOSIntersection(shapeObj *shape1, shapeObj *shape2);
   MS_DLL_EXPORT shapeObj *msGEOSDifference(shapeObj *shape1, shapeObj *shape2);
   MS_DLL_EXPORT shapeObj *msGEOSSymDifference(shapeObj *shape1, shapeObj *shape2);
+  MS_DLL_EXPORT shapeObj *msGEOSOffsetCurve(shapeObj *p, double offset);
 
   MS_DLL_EXPORT int msGEOSContains(shapeObj *shape1, shapeObj *shape2);
   MS_DLL_EXPORT int msGEOSOverlaps(shapeObj *shape1, shapeObj *shape2);
@@ -2618,8 +2678,11 @@ extern "C" {
   };
 
   MS_DLL_EXPORT int msDrawTransformedShape(mapObj *map, symbolSetObj *symbolset, imageObj *image, shapeObj *shape, styleObj *style, double scalefactor);
-  MS_DLL_EXPORT void msStyleSetGeomTransform(styleObj *style, char *transform);
+  MS_DLL_EXPORT void msStyleSetGeomTransform(styleObj *s, char *transform);
   MS_DLL_EXPORT char *msStyleGetGeomTransform(styleObj *style);
+
+  MS_DLL_EXPORT int msGeomTransformShape(mapObj *map, layerObj *layer, shapeObj *shape);  
+  
   /* ==================================================================== */
   /*      end of prototypes for functions in mapgeomtransform.c                 */
   /* ==================================================================== */
@@ -2635,6 +2698,14 @@ extern "C" {
   /*      end of prototypes for functions in mapgraticule.c               */
   /* ==================================================================== */
 
+  /* ==================================================================== */
+  /*      prototypes for functions in mapsmoothing.c                      */
+  /* ==================================================================== */
+  MS_DLL_EXPORT shapeObj* msSmoothShapeSIA(shapeObj *shape, int ss, int si, char *preprocessing);
+  
+  /* ==================================================================== */
+  /*      end of prototypes for functions in mapsmoothing.c               */
+  /* ==================================================================== */
 #endif
 
 
@@ -2864,13 +2935,18 @@ extern "C" {
   } ;
   MS_DLL_EXPORT int msRenderRasterizedSVGSymbol(imageObj* img, double x, double y, symbolObj* symbol, symbolStyleObj* style);
 
-#endif /* SWIG */
-
 #define MS_IMAGE_RENDERER(im) ((im)->format->vtable)
 #define MS_RENDERER_CACHE(renderer) ((renderer)->renderer_data)
 #define MS_IMAGE_RENDERER_CACHE(im) MS_RENDERER_CACHE(MS_IMAGE_RENDERER((im)))
 #define MS_MAP_RENDERER(map) ((map)->outputformat->vtable)
 
+shapeObj *msOffsetCurve(shapeObj *p, double offset);
+#if defined USE_GEOS && (GEOS_VERSION_MAJOR > 3 || (GEOS_VERSION_MAJOR == 3 && GEOS_VERSION_MINOR >= 3))
+shapeObj *msGEOSOffsetCurve(shapeObj *p, double offset);
+#endif
+
+#endif /* SWIG */
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/mapservutil.c b/mapservutil.c
index 2278622..bb791be 100644
--- a/mapservutil.c
+++ b/mapservutil.c
@@ -35,11 +35,11 @@
 /*
 ** Enumerated types, keep the query modes in sequence and at the end of the enumeration (mode enumeration is in maptemplate.h).
 */
-static int numModes = 21;
-static char *modeStrings[21] = {"BROWSE","ZOOMIN","ZOOMOUT","MAP","LEGEND","LEGENDICON","REFERENCE","SCALEBAR","COORDINATE",
+static int numModes = 23;
+static char *modeStrings[23] = {"BROWSE","ZOOMIN","ZOOMOUT","MAP","LEGEND","LEGENDICON","REFERENCE","SCALEBAR","COORDINATE",
                                 "QUERY","NQUERY","ITEMQUERY","ITEMNQUERY",
                                 "FEATUREQUERY","FEATURENQUERY","ITEMFEATUREQUERY","ITEMFEATURENQUERY",
-                                "INDEXQUERY","TILE","OWS", "WFS"
+                                "INDEXQUERY","TILE","OWS", "WFS", "MAPLEGEND", "MAPLEGENDICON"
                                };
 
 
@@ -57,7 +57,7 @@ int msCGIWriteLog(mapservObj *mapserv, int show_error)
 
   if((stream = fopen(msBuildPath(szPath, mapserv->map->mappath,
                                  mapserv->map->web.log),"a")) == NULL) {
-    msSetError(MS_IOERR, mapserv->map->web.log, "msCGIWriteLog()");
+    msSetError(MS_IOERR, "%s", "msCGIWriteLog()", mapserv->map->web.log);
     return(MS_FAILURE);
   }
 
@@ -322,6 +322,18 @@ int msCGISetMode(mapservObj *mapserv)
     }
   }
 
+  if (mapserv->Mode >= 0)
+  {
+    int disabled = MS_FALSE;
+    const char* enable_modes = msLookupHashTable(&mapserv->map->web.metadata, "ms_enable_modes");
+
+    if (!msOWSParseRequestMetadata(enable_modes, mode, &disabled) && disabled) {
+      /* the current mode is disabled */
+      msSetError(MS_WEBERR, "The specified mode '%s' is not supported by the current map configuration", "msCGISetMode()", mode);
+      return MS_FAILURE;
+    }
+  }
+
   return MS_SUCCESS;
 }
 
@@ -1118,7 +1130,7 @@ int msCGIDispatchBrowseRequest(mapservObj *mapserv)
   } else {
     if(TEMPLATE_TYPE(mapserv->map->web.template) == MS_FILE) { /* if thers's an html template, then use it */
       if(mapserv->sendheaders) {
-        msIO_setHeader("Content-Type",mapserv->map->web.browseformat); /* write MIME header */
+        msIO_setHeader("Content-Type","%s", mapserv->map->web.browseformat); /* write MIME header */
         msIO_sendHeaders();
       }
       if(msReturnPage(mapserv, mapserv->map->web.template, BROWSE, NULL) != MS_SUCCESS)
@@ -1172,7 +1184,7 @@ int msCGIDispatchQueryRequest(mapservObj *mapserv)
         /* validate the qstring parameter */
         if(msValidateParameter(mapserv->QueryString, msLookupHashTable(&(GET_LAYER(mapserv->map, mapserv->SelectLayerIndex)->validation), "qstring"),
                                msLookupHashTable(&(mapserv->map->web.validation), "qstring"),
-                               msLookupHashTable(&(GET_LAYER(mapserv->map, mapserv->SelectLayerIndex)->metadata), "qstring_validation_pattern"), NULL) != MS_SUCCESS) {
+                               NULL, NULL) != MS_SUCCESS) {
           msSetError(MS_WEBERR, "Parameter 'qstring' value fails to validate.", "mapserv()");
           return MS_FAILURE;
         }
@@ -1264,7 +1276,7 @@ int msCGIDispatchQueryRequest(mapservObj *mapserv)
         /* validate the qstring parameter */
         if(msValidateParameter(mapserv->QueryString, msLookupHashTable(&(GET_LAYER(mapserv->map, mapserv->QueryLayerIndex)->validation), "qstring"),
                                msLookupHashTable(&(mapserv->map->web.validation), "qstring"),
-                               msLookupHashTable(&(GET_LAYER(mapserv->map, mapserv->QueryLayerIndex)->metadata), "qstring_validation_pattern"), NULL) != MS_SUCCESS) {
+                               NULL, NULL) != MS_SUCCESS) {
           msSetError(MS_WEBERR, "Parameter 'qstring' value fails to validate.", "mapserv()");
           return MS_FAILURE;
         }
@@ -1459,7 +1471,11 @@ int msCGIDispatchImageRequest(mapservObj *mapserv)
       img = msTileDraw(mapserv);
       break;
     case LEGEND:
-      img = msDrawLegend(mapserv->map, MS_FALSE);
+    case MAPLEGEND:
+      img = msDrawLegend(mapserv->map, MS_FALSE, mapserv->hittest);
+      break;
+    default:
+      msSetError(MS_CGIERR,"Invalid CGI mode", "msCGIDispatchImageRequest()");
       break;
   }
 
@@ -1476,7 +1492,7 @@ int msCGIDispatchImageRequest(mapservObj *mapserv)
     const char *attachment = msGetOutputFormatOption(mapserv->map->outputformat, "ATTACHMENT", NULL );
     if(attachment)
       msIO_setHeader("Content-disposition","attachment; filename=%s", attachment);
-    msIO_setHeader("Content-Type",MS_IMAGE_MIME_TYPE(mapserv->map->outputformat));
+    msIO_setHeader("Content-Type","%s", MS_IMAGE_MIME_TYPE(mapserv->map->outputformat));
     msIO_sendHeaders();
   }
 
@@ -1494,12 +1510,21 @@ int msCGIDispatchImageRequest(mapservObj *mapserv)
 
 int msCGIDispatchLegendRequest(mapservObj *mapserv)
 {
+  int status;
+  if(mapserv->Mode == MAPLEGEND) {
+    if(setExtent(mapserv) != MS_SUCCESS) return MS_FAILURE;
+    if(checkWebScale(mapserv) != MS_SUCCESS) return MS_FAILURE;
+    mapserv->hittest = msSmallMalloc(sizeof(map_hittest));
+    initMapHitTests(mapserv->map,mapserv->hittest);
+    status = msHitTestMap(mapserv->map,mapserv->hittest);
+    if(status != MS_SUCCESS) return MS_FAILURE;
+  }
   if(mapserv->map->legend.template) {
     char *legendTemplate;
     legendTemplate = generateLegendTemplate(mapserv);
     if(legendTemplate) {
       if(mapserv->sendheaders) {
-        msIO_setHeader("Content-Type",mapserv->map->web.legendformat);
+        msIO_setHeader("Content-Type","%s",mapserv->map->web.legendformat);
         msIO_sendHeaders();
       }
       msIO_fwrite(legendTemplate, strlen(legendTemplate), 1, stdout);
@@ -1518,7 +1543,7 @@ int msCGIDispatchLegendIconRequest(mapservObj *mapserv)
 {
   char **tokens;
   int numtokens=0;
-  int layerindex=-1, classindex=0;
+  int layerindex=-1, classindex=0, status;
   outputFormatObj *format = NULL;
   imageObj *img;
 
@@ -1551,6 +1576,15 @@ int msCGIDispatchLegendIconRequest(mapservObj *mapserv)
     }
   }
 
+  if(mapserv->Mode == MAPLEGENDICON) {
+    if(setExtent(mapserv) != MS_SUCCESS) return MS_FAILURE;
+    if(checkWebScale(mapserv) != MS_SUCCESS) return MS_FAILURE;
+    mapserv->hittest = msSmallMalloc(sizeof(map_hittest));
+    initMapHitTests(mapserv->map,mapserv->hittest);
+    status = msHitTestLayer(mapserv->map, GET_LAYER(mapserv->map,layerindex),&mapserv->hittest->layerhits[layerindex]);
+    if(status != MS_SUCCESS) return MS_FAILURE;
+  }
+
   /* ensure we have an image format representing the options for the legend. */
   msApplyOutputFormat(&format, mapserv->map->outputformat, mapserv->map->legend.transparent, mapserv->map->legend.interlace, MS_NOOVERRIDE);
 
@@ -1566,11 +1600,12 @@ int msCGIDispatchLegendIconRequest(mapservObj *mapserv)
   /* drop this reference to output format */
   msApplyOutputFormat(&format, NULL, MS_NOOVERRIDE, MS_NOOVERRIDE, MS_NOOVERRIDE);
 
-  if(msDrawLegendIcon(mapserv->map, GET_LAYER(mapserv->map, layerindex), GET_LAYER(mapserv->map, layerindex)->class[classindex], mapserv->map->legend.keysizex,  mapserv->map->legend.keysizey, img, 0, 0) != MS_SUCCESS)
+  if(msDrawLegendIcon(mapserv->map, GET_LAYER(mapserv->map, layerindex), GET_LAYER(mapserv->map, layerindex)->class[classindex], mapserv->map->legend.keysizex,  mapserv->map->legend.keysizey, img, 0, 0, MS_TRUE,
+      ((mapserv->hittest)?(&mapserv->hittest->layerhits[layerindex].classhits[classindex]):(NULL))) != MS_SUCCESS)
     return MS_FAILURE;
 
   if(mapserv->sendheaders) {
-    msIO_setHeader("Content-Type",MS_IMAGE_MIME_TYPE(mapserv->map->outputformat));
+    msIO_setHeader("Content-Type","%s",MS_IMAGE_MIME_TYPE(mapserv->map->outputformat));
     msIO_sendHeaders();
   }
   /*
@@ -1688,9 +1723,9 @@ int msCGIDispatchRequest(mapservObj *mapserv)
     if(setExtent(mapserv) != MS_SUCCESS) return MS_FAILURE;
     if(checkWebScale(mapserv) != MS_SUCCESS) return MS_FAILURE;
     return msCGIDispatchImageRequest(mapserv);
-  } else if(mapserv->Mode == LEGEND) {
+  } else if(mapserv->Mode == LEGEND || mapserv->Mode == MAPLEGEND) {
     return msCGIDispatchLegendRequest(mapserv);
-  } else if(mapserv->Mode == LEGENDICON) {
+  } else if(mapserv->Mode == LEGENDICON || mapserv->Mode == MAPLEGENDICON) {
     return msCGIDispatchLegendIconRequest(mapserv);
   } else if(mapserv->Mode >= QUERY) {
     return msCGIDispatchQueryRequest(mapserv);
diff --git a/mapshape.c b/mapshape.c
index ea0f684..b88ca4c 100644
--- a/mapshape.c
+++ b/mapshape.c
@@ -38,7 +38,10 @@
 #include <assert.h>
 #include "mapserver.h"
 
-
+#if defined(USE_GDAL) || defined(USE_OGR)
+#include <cpl_conv.h>
+#include <ogr_srs_api.h>
+#endif
 
 /* Only use this macro on 32-bit integers! */
 #define SWAP_FOUR_BYTES(data) \
@@ -250,6 +253,10 @@ SHPHandle msSHPOpen( const char * pszLayer, const char * pszAccess )
   sprintf( pszFullname, "%s.shp", pszBasename );
   psSHP->fpSHP = fopen(pszFullname, pszAccess );
   if( psSHP->fpSHP == NULL ) {
+    sprintf( pszFullname, "%s.SHP", pszBasename );
+    psSHP->fpSHP = fopen(pszFullname, pszAccess );
+  }
+  if( psSHP->fpSHP == NULL ) {
     msFree(pszBasename);
     msFree(pszFullname);
     msFree(psSHP);
@@ -259,6 +266,10 @@ SHPHandle msSHPOpen( const char * pszLayer, const char * pszAccess )
   sprintf( pszFullname, "%s.shx", pszBasename );
   psSHP->fpSHX = fopen(pszFullname, pszAccess );
   if( psSHP->fpSHX == NULL ) {
+    sprintf( pszFullname, "%s.SHX", pszBasename );
+    psSHP->fpSHX = fopen(pszFullname, pszAccess );
+  }
+  if( psSHP->fpSHX == NULL ) {
     msFree(pszBasename);
     msFree(pszFullname);
     msFree(psSHP);
@@ -1268,7 +1279,7 @@ void msSHPReadShape( SHPHandle psSHP, int hEntity, shapeObj *shape )
 
         shape->type = MS_SHAPE_NULL;
         msSetError(MS_MEMERR, "Out of memory. Cannot allocate %d bytes. Probably broken shapefile at feature %d",
-                   "msSHPReadShape()", nParts * sizeof(int), hEntity);
+                   "msSHPReadShape()", (int)(nParts * sizeof(int)), hEntity);
         return;
       }
       psSHP->nPartMax = nParts;
@@ -1753,9 +1764,14 @@ int msShapefileWhichShapes(shapefileObj *shpfile, rectObj rect, int debug)
 
     /* deal with case where sourcename is of the form 'file.shp' */
     sourcename = msStrdup(shpfile->source);
-    /* TODO: need to add case-insensitive handling! */
     s = strstr(sourcename, ".shp");
-    if( s ) *s = '\0';
+    if( s )
+      *s = '\0';
+    else {
+      s = strstr(sourcename, ".SHP");
+      if( s )
+        *s = '\0';
+    }
 
     filename = (char *)malloc(strlen(sourcename)+strlen(MS_INDEX_EXTENSION)+1);
     MS_CHECK_ALLOC(filename, strlen(sourcename)+strlen(MS_INDEX_EXTENSION)+1, MS_FAILURE);
@@ -1861,7 +1877,7 @@ int msTiledSHPOpenFile(layerObj *layer)
   tSHP->shpfile = (shapefileObj *) malloc(sizeof(shapefileObj));
   if (tSHP->shpfile == NULL) {
     msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msTiledSHPOpenFile()",
-               __FILE__, __LINE__, sizeof(shapefileObj));
+               __FILE__, __LINE__, (unsigned int)sizeof(shapefileObj));
     free(tSHP);
     return MS_FAILURE;
   }
@@ -1897,7 +1913,7 @@ int msTiledSHPOpenFile(layerObj *layer)
     tSHP->tileshpfile = (shapefileObj *) malloc(sizeof(shapefileObj));
     if (tSHP->tileshpfile == NULL) {
       msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msTiledSHPOpenFile()",
-                 __FILE__, __LINE__, sizeof(shapefileObj));
+                 __FILE__, __LINE__, (unsigned int)sizeof(shapefileObj));
       free(tSHP->shpfile);
       free(tSHP);
       layer->layerinfo = NULL;
@@ -1912,6 +1928,13 @@ int msTiledSHPOpenFile(layerObj *layer)
 
   if((layer->tileitemindex = msDBFGetItemIndex(tSHP->tileshpfile->hDBF, layer->tileitem)) == -1) return(MS_FAILURE);
 
+  if( layer->tilesrs != NULL ) {
+    msSetError(MS_OGRERR,
+                "TILESRS not supported in vector layers.",
+                "msTiledSHPOpenFile()");
+    return MS_FAILURE;
+  }
+
   msTileIndexAbsoluteDir(tiFileAbsDir, layer);
 
   /* position the source at the FIRST tile to use as a template, this is so the functions that fill the iteminfo array have something to work from */
@@ -2500,6 +2523,55 @@ int msSHPLayerOpen(layerObj *layer)
       return MS_FAILURE;
     }
   }
+  
+  if (layer->projection.numargs > 0 &&
+      EQUAL(layer->projection.args[0], "auto"))
+  {
+#if defined(USE_GDAL) || defined(USE_OGR)
+    const char* pszPRJFilename = CPLResetExtension(szPath, "prj");
+    int bOK = MS_FALSE;
+    FILE* fp = fopen(pszPRJFilename, "rb");
+    if( fp != NULL )
+    {
+        char szPRJ[2048];
+        OGRSpatialReferenceH hSRS;
+        int nRead;
+
+        nRead = (int)fread(szPRJ, 1, sizeof(szPRJ) - 1, fp);
+        szPRJ[nRead] = '\0';
+        hSRS = OSRNewSpatialReference(szPRJ);
+        if( hSRS != NULL )
+        {
+            if( OSRMorphFromESRI( hSRS ) == OGRERR_NONE )
+            {
+                char* pszWKT = NULL;
+                if( OSRExportToWkt( hSRS, &pszWKT ) == OGRERR_NONE )
+                {
+                    if( msOGCWKT2ProjectionObj(pszWKT, &(layer->projection),
+                                               layer->debug ) == MS_SUCCESS )
+                    {
+                        bOK = MS_TRUE;
+                    }
+                }
+                CPLFree(pszWKT);
+            }
+            OSRDestroySpatialReference(hSRS);
+        }
+    }
+    fclose(fp);
+
+    if( bOK != MS_TRUE )
+    {
+        if( layer->debug || (layer->map && layer->map->debug) ) {
+            msDebug( "Unable to get SRS from shapefile '%s' for layer '%s'.\n", szPath, layer->name );
+        }
+    }
+#else /* !(defined(USE_GDAL) || defined(USE_OGR)) */
+    if( layer->debug || (layer->map && layer->map->debug) ) {
+        msDebug( "Unable to get SRS from shapefile '%s' for layer '%s'. GDAL or OGR support needed\n", szPath, layer->name );
+    }
+#endif /* defined(USE_GDAL) || defined(USE_OGR) */
+  }
 
   return MS_SUCCESS;
 }
diff --git a/mapsmoothing.c b/mapsmoothing.c
new file mode 100644
index 0000000..2ebf48c
--- /dev/null
+++ b/mapsmoothing.c
@@ -0,0 +1,307 @@
+/******************************************************************************
+ * $Id$
+ *
+ * Project:  MapServer
+ * Purpose:  RFC94 Shape smoothing
+ * Author:   Alan Boudreault (aboudreault at mapgears.com)
+ * Author:   Daniel Morissette (dmorissette at mapgears.com)
+ *
+ ******************************************************************************
+ * Copyright (c) 1996-2005 Regents of the University of Minnesota.
+ *
+ * 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 of this Software or works derived from this 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 OR COPYRIGHT HOLDERS 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.
+ *****************************************************************************/
+
+#include "mapserver.h"
+
+#define FP_EPSILON 1e-12
+#define FP_EQ(a, b) (fabs((a)-(b)) < FP_EPSILON)
+
+/* Internal Use, represent a line window (points) */
+typedef struct {
+  int pos; /* current point position in line */
+  int size;
+  int index; /* index of the current point in points array */
+  lineObj *line;
+  int lineIsRing; /* closed ring? */  
+  pointObj **points;
+} lineWindow;
+
+static void initLineWindow(lineWindow *lw, lineObj *line, int size)
+{ 
+  lw->pos = -1;
+  lw->lineIsRing = MS_FALSE;
+  lw->size = size;
+  lw->line = line;
+  lw->index = floor(lw->size/2); /* index of current position in points array */
+  lw->points = (pointObj**)msSmallMalloc(sizeof(pointObj*)*size);
+  
+  if ( (line->numpoints >= 2) &&
+       ((FP_EQ(line->point[0].x,
+               line->point[line->numpoints-1].x)) &&
+        (FP_EQ(line->point[0].y,
+               line->point[line->numpoints-1].y))) ) {
+    lw->lineIsRing = 1; 
+  }
+}
+
+static void freeLineWindow(lineWindow *lw)
+{  
+  free(lw->points);
+}
+
+static int nextLineWindow(lineWindow *lw)
+{
+  int i;
+
+  if (++lw->pos >= lw->line->numpoints)
+    return MS_DONE;
+
+  lw->points[lw->index] = &lw->line->point[lw->pos];
+
+  for (i=0;i<lw->index;++i) {
+    int r, l;
+    r = lw->pos-(i+1);
+    l = lw->pos+(i+1);
+
+    /* adjust values */
+    if ((r < 0) && lw->lineIsRing)
+      r = lw->line->numpoints-(i+2);
+    if ((l >= lw->line->numpoints) && lw->lineIsRing)
+      l = 1+(l-lw->line->numpoints);
+    
+    /* return if the window in not valid.. */
+    if (r<0 || l>=lw->line->numpoints)
+      return MS_FALSE;
+    
+    lw->points[lw->index-(i+1)] = &lw->line->point[r];
+    lw->points[lw->index+(i+1)] = &lw->line->point[l];
+  }
+
+  return MS_TRUE;
+}
+
+/* Calculates the distance ratio between the total distance of a path and the distance
+   between the first and last point (to detect a loop). */
+static double computePathDistanceRatio(pointObj **points, int len)
+{
+  double sum;
+  int i;
+
+  for (sum=0,i=1;i<len;++i) {
+    sum += msDistancePointToPoint(points[i-1], points[i]);
+  }
+
+  return sum/msDistancePointToPoint(points[0], points[len-1]);
+}
+
+/* Pre-Processing of a shape. It modifies the shape by adding intermediate
+   points where a loop is detected to improve the smoothing result. */
+static int processShapePathDistance(shapeObj *shape, int force)
+{
+  shapeObj initialShape, *newShape;
+  int i;
+  
+  /* initial shape to process */
+  msInitShape(&initialShape);    
+  msCopyShape(shape, &initialShape);
+
+  newShape = shape; /* we modify the shape object directly */
+  shape = &initialShape;
+  
+  /* Clean our shape object */
+  for (i= 0; i < newShape->numlines; i++)
+    free(newShape->line[i].point);
+  newShape->numlines = 0;
+  if (newShape->line) free(newShape->line);
+  
+  for (i=0;i<shape->numlines;++i) {
+    const int windowSize = 5;
+    int res;
+    lineWindow lw;
+    lineObj line = {0, NULL};
+
+    initLineWindow(&lw, &shape->line[i], windowSize);
+    msAddLine(newShape, &line);
+
+    while ((res = nextLineWindow(&lw)) != MS_DONE) {
+      double ratio = 0;
+      pointObj point;
+
+      if (lw.lineIsRing && lw.pos==lw.line->numpoints-1) {
+        point = newShape->line[i].point[0];
+        msAddPointToLine(&newShape->line[i],
+                         &point);
+        continue;
+      }
+
+      if (res == MS_FALSE) { /* invalid window */
+        msAddPointToLine(&newShape->line[i],
+                         lw.points[lw.index]);
+        continue;
+      }
+
+      if (!force)
+        ratio = computePathDistanceRatio(lw.points, windowSize);
+                      
+      if (force || (ratio > 1.3)) {
+        point.x = (lw.line->point[lw.pos].x + lw.points[lw.index-1]->x)/2;
+        point.y = (lw.line->point[lw.pos].y + lw.points[lw.index-1]->y)/2;
+        msAddPointToLine(&newShape->line[i],
+                         &point);
+      }
+      
+      point = lw.line->point[lw.pos];
+      msAddPointToLine(&newShape->line[i],
+                       &point);
+      
+      if (force || (ratio > 1.3)) {
+        point.x = (lw.line->point[lw.pos].x + lw.points[lw.index+1]->x)/2;
+        point.y = (lw.line->point[lw.pos].y + lw.points[lw.index+1]->y)/2;
+        msAddPointToLine(&newShape->line[i],
+                         &point);
+      }
+      
+    }
+       
+    freeLineWindow(&lw);
+  }
+    
+  msFreeShape(shape);
+  
+  return MS_SUCCESS;
+}
+
+shapeObj* msSmoothShapeSIA(shapeObj *shape, int ss, int si, char *preprocessing)
+{
+  int i, j;
+  pointObj *p;
+  double *coeff;
+  shapeObj *newShape;
+
+  newShape = (shapeObj *) msSmallMalloc(sizeof (shapeObj));
+  msInitShape(newShape);
+
+  if (ss < 3)
+    ss = 3;
+  
+  if (si < 1)
+    si = 1;
+
+  /* Apply preprocessing */
+  if (preprocessing)
+  {
+    if (strcasecmp(preprocessing, "all") == 0)
+      processShapePathDistance(shape, MS_TRUE);
+    else if (strcasecmp(preprocessing, "angle") == 0)
+      processShapePathDistance(shape, MS_FALSE);
+  }
+  
+  p = (pointObj *) msSmallMalloc(ss*sizeof(pointObj));
+  coeff = (double *) msSmallMalloc(ss*sizeof (double));        
+  
+  for (i=0;i<si;++i) {
+    shapeObj initialShape;
+    
+    if (si > 1 && i>0) {
+      msInitShape(&initialShape);    
+      msCopyShape(shape, &initialShape);
+      
+      /* Clean our shape object */
+      for (j=0; j < newShape->numlines; ++j)
+        free(newShape->line[j].point);
+      newShape->numlines = 0;
+      if (newShape->line) free(newShape->line);
+
+      shape = &initialShape;
+    }
+    
+    for (j=0;j<shape->numlines;++j) {
+      int k, ws, res;      
+      lineObj newLine = {0,NULL};
+      lineWindow lw;
+
+      /* determine if we can use the ss for this line */
+      ws = ss;      
+      if (ws >= shape->line[j].numpoints) {
+        ws = shape->line[j].numpoints-1;
+      }
+
+      if (ws%2==0)
+        ws-=1;  
+
+      initLineWindow(&lw, &shape->line[j], ws);
+      msAddLine(newShape, &newLine);
+
+      coeff[lw.index] = 1;
+      for (k=0;k<lw.index;++k) {
+        coeff[lw.index+(k+1)] = coeff[lw.index-k]/2;
+        coeff[lw.index-(k+1)] = coeff[lw.index+k]/2;    
+      }
+      
+      
+      while ((res = nextLineWindow(&lw)) != MS_DONE) {
+        double sum_x=0, sum_y=0, sum = 0;
+        pointObj point;
+        int k = 0;        
+
+        if (res == MS_FALSE) { /* invalid window */
+          msAddPointToLine(&newShape->line[j],
+                           lw.points[lw.index]);
+          continue;
+        }
+
+        /* Apply Coefficient */
+        p[lw.index] = *lw.points[lw.index];
+        for (k=0; k<lw.index; ++k) {
+          p[lw.index-(k+1)] = *lw.points[lw.index-(k+1)];
+          p[lw.index-(k+1)].x *= coeff[lw.index-(k+1)];
+          p[lw.index-(k+1)].y *= coeff[lw.index-(k+1)];
+          p[lw.index+(k+1)] = *lw.points[lw.index+(k+1)];
+          p[lw.index+(k+1)].x *= coeff[lw.index+(k+1)];
+          p[lw.index+(k+1)].y *= coeff[lw.index+(k+1)];
+        }
+        
+        for (k=0; k<lw.size; ++k) {
+          sum += coeff[k];
+          sum_x += p[k].x;
+          sum_y += p[k].y;          
+        }
+      
+        point.x = sum_x/sum;
+        point.y = sum_y/sum;
+        msAddPointToLine(&newShape->line[j],
+                         &point);
+      }
+
+      freeLineWindow(&lw);      
+    }
+    
+    if (i>0) {
+      msFreeShape(shape);
+      shape = newShape;
+    }
+    
+  }
+  
+  free(p);
+  free(coeff);
+  
+  return newShape;
+}
diff --git a/mapstring.c b/mapstring.c
index 0ea53aa..d1be3e9 100644
--- a/mapstring.c
+++ b/mapstring.c
@@ -32,7 +32,7 @@
  ****************************************************************************/
 
 #include "mapserver.h"
-
+#include "mapthread.h"
 
 
 #include <ctype.h>
@@ -44,7 +44,7 @@
  */
 
 #ifdef USE_FRIBIDI
-#if (defined(_WIN32) && !defined(__CYGWIN__)) || defined(USE_FRIBIDI2)
+#if (defined(_WIN32) && !defined(__CYGWIN__)) || defined(HAVE_FRIBIDI2)
 #include "fribidi.h"
 #else
 #include <fribidi/fribidi.h>
@@ -59,7 +59,7 @@
 
 #include "mapentities.h"
 
-#ifdef NEED_STRRSTR
+#ifndef HAVE_STRRSTR
 /*
 ** Copyright (c) 2000-2004  University of Illinois Board of Trustees
 ** Copyright (c) 2000-2005  Mark D. Roth
@@ -114,7 +114,7 @@ char *strrstr(char *string, char *find)
 }
 #endif
 
-#ifdef NEED_STRLCAT
+#ifndef HAVE_STRLCAT
 /*
  * Copyright (c) 1998 Todd C. Miller <Todd.Miller at courtesan.com>
  *
@@ -166,7 +166,7 @@ size_t strlcat(char *dst, const char *src, size_t siz)
 }
 #endif
 
-#ifdef NEED_STRLCPY
+#ifndef HAVE_STRLCPY
 /*
  * Copyright (c) 1998 Todd C. Miller <Todd.Miller at courtesan.com>
  * All rights reserved.
@@ -226,7 +226,7 @@ strlcpy(char *dst, const char *src, size_t siz)
 }
 #endif
 
-#ifdef NEED_STRCASESTR
+#ifndef HAVE_STRCASESTR
 /*-
  * Copyright (c) 1990, 1993
  *  The Regents of the University of California.  All rights reserved.
@@ -278,7 +278,7 @@ char *strcasestr(const char *s, const char *find)
 }
 #endif
 
-#ifdef NEED_STRDUP
+#ifndef HAVE_STRDUP
 char  *strdup(char *s)
 {
   char  *s1;
@@ -294,7 +294,7 @@ char  *strdup(char *s)
 }
 #endif
 
-#ifdef NEED_STRNCASECMP
+#ifndef HAVE_STRNCASECMP
 int strncasecmp(const char *s1, const char *s2, int len)
 {
   register const char *cp1, *cp2;
@@ -332,7 +332,7 @@ int strncasecmp(const char *s1, const char *s2, int len)
 }
 #endif
 
-#ifdef NEED_STRCASECMP
+#ifndef HAVE_STRCASECMP
 int strcasecmp(const char *s1, const char *s2)
 {
   register const char *cp1, *cp2;
@@ -1490,7 +1490,7 @@ int msHexToInt(char *hex)
 char *msGetFriBidiEncodedString(const char *string, const char *encoding)
 {
   FriBidiChar logical[MAX_STR_LEN];
-  FriBidiCharType base = FRIBIDI_TYPE_ON;
+  FriBidiParType base;
   size_t len;
 
 #ifdef FRIBIDI_NO_CHARSETS
@@ -1608,8 +1608,13 @@ char *msGetEncodedString(const char *string, const char *encoding)
   size_t len, bufsize, bufleft, iconv_status;
 
 #ifdef USE_FRIBIDI
-  if(fribidi_parse_charset ((char*)encoding))
-    return msGetFriBidiEncodedString(string, encoding);
+  msAcquireLock(TLOCK_FRIBIDI);
+  if(fribidi_parse_charset ((char*)encoding)) {
+    char *ret = msGetFriBidiEncodedString(string, encoding);
+    msReleaseLock(TLOCK_FRIBIDI);
+    return ret;
+  }
+  msReleaseLock(TLOCK_FRIBIDI);
 #endif
   len = strlen(string);
 
diff --git a/mapsymbol.c b/mapsymbol.c
index 6505b9f..2fd876a 100644
--- a/mapsymbol.c
+++ b/mapsymbol.c
@@ -85,13 +85,13 @@ double msSymbolGetDefaultSize(symbolObj *s)
       break;
     case(MS_SYMBOL_SVG):
       size = 1;
-#ifdef USE_SVG_CAIRO
+#if defined(USE_SVG_CAIRO) || defined (USE_RSVG)
       assert(s->renderer_cache != NULL);
       size = s->sizey;
 #endif
       break;
     default: /* vector and ellipses, scalable */
-      size = s->sizey;
+      size = (s->sizey<=0)?s->sizex:s->sizey;
       break;
   }
 
@@ -112,6 +112,7 @@ void initSymbol(symbolObj *s)
   s->filled = MS_FALSE;
   s->numpoints=0;
   s->renderer=NULL;
+  s->renderer_free_func = NULL;
   s->renderer_cache = NULL;
   s->pixmap_buffer=NULL;
   s->imagepath = NULL;
@@ -124,8 +125,6 @@ void initSymbol(symbolObj *s)
   s->character = NULL;
   s->anchorpoint_x = s->anchorpoint_y = 0.5;
 
-  s->svg_text = NULL;
-
 }
 
 int msFreeSymbol(symbolObj *s)
@@ -136,8 +135,12 @@ int msFreeSymbol(symbolObj *s)
   }
 
   if(s->name) free(s->name);
-  if(s->renderer!=NULL) {
-    s->renderer->freeSymbol(s);
+  if(s->renderer_free_func) {
+    s->renderer_free_func(s);
+  } else {
+    if(s->renderer!=NULL) {
+      s->renderer->freeSymbol(s);
+    }
   }
   if(s->pixmap_buffer) {
     msFreeRasterBuffer(s->pixmap_buffer);
@@ -151,9 +154,6 @@ int msFreeSymbol(symbolObj *s)
   if(s->imagepath) free(s->imagepath);
   if(s->character) free(s->character);
 
-  if (s->svg_text)
-    msFree(s->svg_text);
-
   return MS_SUCCESS;
 }
 
@@ -291,49 +291,49 @@ void writeSymbol(symbolObj *s, FILE *stream)
 {
   int i;
 
-  fprintf(stream, "  SYMBOL\n");
-  if(s->name != NULL) fprintf(stream, "    NAME \"%s\"\n", s->name);
+  msIO_fprintf(stream, "  SYMBOL\n");
+  if(s->name != NULL) msIO_fprintf(stream, "    NAME \"%s\"\n", s->name);
 
   switch (s->type) {
     case(MS_SYMBOL_HATCH):
-      fprintf(stream, "    TYPE HATCH\n");
+      msIO_fprintf(stream, "    TYPE HATCH\n");
       break;
     case(MS_SYMBOL_PIXMAP):
-      fprintf(stream, "    TYPE PIXMAP\n");
-      if(s->imagepath != NULL) fprintf(stream, "    IMAGE \"%s\"\n", s->imagepath);
-      fprintf(stream, "    TRANSPARENT %d\n", s->transparentcolor);
+      msIO_fprintf(stream, "    TYPE PIXMAP\n");
+      if(s->imagepath != NULL) msIO_fprintf(stream, "    IMAGE \"%s\"\n", s->imagepath);
+      msIO_fprintf(stream, "    TRANSPARENT %d\n", s->transparentcolor);
       break;
     case(MS_SYMBOL_TRUETYPE):
-      fprintf(stream, "    TYPE TRUETYPE\n");
-      if(s->antialias == MS_TRUE) fprintf(stream, "    ANTIALIAS TRUE\n");
-      if (s->character != NULL) fprintf(stream, "    CHARACTER \"%s\"\n", s->character);
-      if (s->font != NULL) fprintf(stream, "    FONT \"%s\"\n", s->font);
+      msIO_fprintf(stream, "    TYPE TRUETYPE\n");
+      if(s->antialias == MS_TRUE) msIO_fprintf(stream, "    ANTIALIAS TRUE\n");
+      if (s->character != NULL) msIO_fprintf(stream, "    CHARACTER \"%s\"\n", s->character);
+      if (s->font != NULL) msIO_fprintf(stream, "    FONT \"%s\"\n", s->font);
       break;
     default:
       if(s->type == MS_SYMBOL_ELLIPSE)
-        fprintf(stream, "    TYPE ELLIPSE\n");
+        msIO_fprintf(stream, "    TYPE ELLIPSE\n");
       else if(s->type == MS_SYMBOL_VECTOR)
-        fprintf(stream, "    TYPE VECTOR\n");
+        msIO_fprintf(stream, "    TYPE VECTOR\n");
       else if(s->type == MS_SYMBOL_SVG)
-        fprintf(stream, "    TYPE SVG\n");
+        msIO_fprintf(stream, "    TYPE SVG\n");
       else
-        fprintf(stream, "    TYPE SIMPLE\n");
+        msIO_fprintf(stream, "    TYPE SIMPLE\n");
 
-      if(s->filled == MS_TRUE) fprintf(stream, "    FILLED TRUE\n");
-      if(s->imagepath != NULL) fprintf(stream, "    IMAGE \"%s\"\n", s->imagepath);
+      if(s->filled == MS_TRUE) msIO_fprintf(stream, "    FILLED TRUE\n");
+      if(s->imagepath != NULL) msIO_fprintf(stream, "    IMAGE \"%s\"\n", s->imagepath);
 
       /* POINTS */
       if(s->numpoints != 0) {
-        fprintf(stream, "    POINTS\n");
+        msIO_fprintf(stream, "    POINTS\n");
         for(i=0; i<s->numpoints; i++) {
-          fprintf(stream, "      %g %g\n", s->points[i].x, s->points[i].y);
+          msIO_fprintf(stream, "      %g %g\n", s->points[i].x, s->points[i].y);
         }
-        fprintf(stream, "    END\n");
+        msIO_fprintf(stream, "    END\n");
       }
       break;
   }
 
-  fprintf(stream, "  END\n\n");
+  msIO_fprintf(stream, "  END\n\n");
 }
 
 
@@ -375,9 +375,14 @@ int msAddImageSymbol(symbolSetObj *symbolset, char *filename)
       tmpfullfilename = msBuildPath(szPath, tmppath, tmpfilename);
       if (tmpfullfilename) {
         /*use the url for now as a caching mechanism*/
-        if (msHTTPGetFile(filename, tmpfullfilename, &status, -1, bCheckLocalCache, 0) == MS_SUCCESS) {
+        if (msHTTPGetFile(filename, tmpfullfilename, &status, -1, bCheckLocalCache, 0, 1024*1024 /* 1 MegaByte */) == MS_SUCCESS) {
           symbol->imagepath = msStrdup(tmpfullfilename);
           symbol->full_pixmap_path = msStrdup(tmpfullfilename);
+        } else {
+          unlink(tmpfullfilename); 
+          msFree(tmpfilename);
+          msFree(tmppath);
+          return MS_FAILURE;
         }
       }
       msFree(tmpfilename);
@@ -628,7 +633,7 @@ int msGetMarkerSize(symbolSetObj *symbolset, styleObj *style, double *width, dou
       return MS_FAILURE;
   }
   if(symbol->type == MS_SYMBOL_SVG && !symbol->renderer_cache) {
-#ifdef USE_SVG_CAIRO
+#if defined(USE_SVG_CAIRO) || defined (USE_RSVG)
     if(MS_SUCCESS != msPreloadSVGSymbol(symbol))
       return MS_FAILURE;
 #else
@@ -748,6 +753,33 @@ symbolObj *msRemoveSymbol(symbolSetObj *symbolset, int nSymbolIndex)
     symbolset->symbol[i-1]=NULL;
     symbolset->numsymbols--;
     MS_REFCNT_DECR(symbol);
+    /* update symbol references in the map */
+    if (symbolset->map) {
+        int l,c,s,lb;
+        layerObj *layer;
+        classObj *cl;
+        styleObj *style;
+        labelObj *label;
+        for (l = 0; l < symbolset->map->numlayers; l++) {
+            layer = GET_LAYER(symbolset->map, l);
+            for (c = 0; c < layer->numclasses; c++) {
+                cl = layer->class[c];
+                for (s = 0; s < cl->numstyles; s++) {
+                    style = cl->styles[s];
+                    if (style->symbol >= nSymbolIndex)
+                        --style->symbol;
+                }
+                for (lb = 0; lb < cl->numlabels; lb++) {
+                    label = cl->labels[lb];
+                    for (s = 0; s < label->numstyles; s++) {
+                        style = label->styles[s];
+                        if (style->symbol >= nSymbolIndex)
+                            --style->symbol;
+                    }
+                }
+            }
+        }
+    }
     return symbol;
   }
 }
diff --git a/mapsymbol.h b/mapsymbol.h
index 45ed296..4739f22 100644
--- a/mapsymbol.h
+++ b/mapsymbol.h
@@ -34,6 +34,7 @@
 #include <gd.h>
 #endif
 
+#include "mapserver-api.h"
 #include <assert.h>
 
 enum MS_SYMBOL_TYPE {MS_SYMBOL_SIMPLE=1000, MS_SYMBOL_VECTOR, MS_SYMBOL_ELLIPSE, MS_SYMBOL_PIXMAP, MS_SYMBOL_TRUETYPE, MS_SYMBOL_HATCH, MS_SYMBOL_SVG};
@@ -154,7 +155,7 @@ struct imageCacheObj {
 #endif /* SWIG */
 
 
-typedef struct {
+struct symbolObj{
   char *name;
   int type;
   int inmapfile; /* boolean value for writing */
@@ -192,6 +193,7 @@ typedef struct {
   */
 #ifndef SWIG
   rendererVTableObj *renderer;
+  void (*renderer_free_func)(symbolObj *self);
   rasterBufferObj *pixmap_buffer;
   void *renderer_cache;
   char *full_font_path;
@@ -215,9 +217,6 @@ typedef struct {
   char *character;
   int antialias;
   char *font;
-
-  char* svg_text;
-
-} symbolObj;
+} ;
 
 #endif /* MAPSYMBOL_H */
diff --git a/maptemplate.c b/maptemplate.c
index 6b1e12b..4b59053 100644
--- a/maptemplate.c
+++ b/maptemplate.c
@@ -97,8 +97,8 @@ static int isValidTemplate(FILE *stream, const char *filename)
 int msRedirect(char *url)
 {
   msIO_setHeader("Status","302 Found");
-  msIO_setHeader("Uri",url);
-  msIO_setHeader("Location",url);
+  msIO_setHeader("Uri","%s",url);
+  msIO_setHeader("Location","%s",url);
   msIO_setHeader("Content-Type","text/html");
   msIO_sendHeaders();
   return MS_SUCCESS;
@@ -274,7 +274,7 @@ int msReturnTemplateQuery(mapservObj *mapserv, char *queryFormat, char **papszBu
       map->outputformat = tempOutputFormat; /* restore format */
 
       if(mapserv == NULL || mapserv->sendheaders) {
-        msIO_setHeader("Content-Type", MS_IMAGE_MIME_TYPE(outputFormat));
+        msIO_setHeader("Content-Type", "%s", MS_IMAGE_MIME_TYPE(outputFormat));
         msIO_sendHeaders();
       }
       status = msSaveImage(map, img, NULL);
@@ -306,7 +306,7 @@ int msReturnTemplateQuery(mapservObj *mapserv, char *queryFormat, char **papszBu
       const char *attachment = msGetOutputFormatOption( outputFormat, "ATTACHMENT", NULL );
       if(attachment)
         msIO_setHeader("Content-disposition","attachment; filename=%s", attachment);
-      msIO_setHeader("Content-Type", outputFormat->mimetype);
+      msIO_setHeader("Content-Type", "%s", outputFormat->mimetype);
       msIO_sendHeaders();
     }
     if((status = msReturnPage(mapserv, (char *) file, BROWSE, papszBuffer)) != MS_SUCCESS)
@@ -1131,7 +1131,7 @@ static int processIncludeTag(mapservObj *mapserv, char **line, FILE *stream, int
     if(!src) return(MS_SUCCESS); /* don't process the tag, could be something else so return MS_SUCCESS */
 
     if((includeStream = fopen(msBuildPath(path, mapserv->map->mappath, src), "r")) == NULL) {
-      msSetError(MS_IOERR, src, "processIncludeTag()");
+      msSetError(MS_IOERR, "%s", "processIncludeTag()", src);
       return MS_FAILURE;
     }
 
@@ -2058,7 +2058,7 @@ static int processShpxyTag(layerObj *layer, char **line, shapeObj *shape)
     }
 
     /* build the per point format strings (version 1 contains the coordinate seperator, version 2 doesn't) */
-    pointFormatLength = strlen("xh") + strlen("xf") + strlen("yh") + strlen("yf") + strlen("cs") + 10 + 1;
+    pointFormatLength = strlen(xh) + strlen(xf) + strlen(yh) + strlen(yf) + strlen(cs) + 12 + 1;
     pointFormat1 = (char *) msSmallMalloc(pointFormatLength);
     snprintf(pointFormat1, pointFormatLength, "%s%%.%dlf%s%s%%.%dlf%s%s", xh, precision, xf, yh, precision, yf, cs);
     pointFormat2 = (char *) msSmallMalloc(pointFormatLength);
@@ -2407,10 +2407,10 @@ int processIcon(mapObj *map, int nIdxLayer, int nIdxClass, char** pszInstr, char
 
       if(thisClass == NULL) {
         /* Nonexistent class.  Create an empty image */
-        img = msCreateLegendIcon(map, NULL, NULL, nWidth, nHeight);
+        img = msCreateLegendIcon(map, NULL, NULL, nWidth, nHeight, MS_TRUE);
       } else {
         img = msCreateLegendIcon(map, GET_LAYER(map, nIdxLayer),
-                                 thisClass, nWidth, nHeight);
+                                 thisClass, nWidth, nHeight, MS_TRUE);
       }
 
       if(!img) {
@@ -3172,6 +3172,9 @@ char *generateLegendTemplate(mapservObj *mapserv)
                 continue;
             }
           }
+          if(mapserv->hittest && mapserv->hittest->layerhits[mapserv->map->layerorder[j]].status == 0) {
+            continue;
+          }
 
           if(GET_LAYER(mapserv->map, mapserv->map->layerorder[j])->group && strcmp(GET_LAYER(mapserv->map, mapserv->map->layerorder[j])->group, papszGroups[i]) == 0) {
             /* process all layer tags */
@@ -3198,6 +3201,9 @@ char *generateLegendTemplate(mapservObj *mapserv)
                 /* process all class tags */
                 if(!GET_LAYER(mapserv->map, mapserv->map->layerorder[j])->class[k]->name)
                   continue;
+                if(mapserv->hittest && mapserv->hittest->layerhits[mapserv->map->layerorder[j]].classhits[k].status == 0) {
+                  continue;
+                }
 
                 if(generateClassTemplate(legClassHtml, mapserv->map, mapserv->map->layerorder[j], k, classArgs, &legClassHtmlCopy, pszPrefix) != MS_SUCCESS) {
                   if(pszResult)
@@ -3233,6 +3239,9 @@ char *generateLegendTemplate(mapservObj *mapserv)
                 continue;
             }
           }
+          if(mapserv->hittest && mapserv->hittest->layerhits[mapserv->map->layerorder[j]].status == 0) {
+            continue;
+          }
 
           if(GET_LAYER(mapserv->map, mapserv->map->layerorder[j])->group && strcmp(GET_LAYER(mapserv->map, mapserv->map->layerorder[j])->group, papszGroups[i]) == 0) {
             /* for all classes in layer */
@@ -3241,6 +3250,9 @@ char *generateLegendTemplate(mapservObj *mapserv)
                 /* process all class tags */
                 if(!GET_LAYER(mapserv->map, mapserv->map->layerorder[j])->class[k]->name)
                   continue;
+                if(mapserv->hittest && mapserv->hittest->layerhits[mapserv->map->layerorder[j]].classhits[k].status == 0) {
+                  continue;
+                }
 
                 if(generateClassTemplate(legClassHtml, mapserv->map, mapserv->map->layerorder[j], k, classArgs, &legClassHtmlCopy, pszPrefix) != MS_SUCCESS) {
                   if(pszResult)
@@ -3281,6 +3293,9 @@ char *generateLegendTemplate(mapservObj *mapserv)
           } else
             nLegendOrder=0;
         }
+        if(mapserv->hittest && mapserv->hittest->layerhits[mapserv->map->layerorder[j]].status == 0) {
+          continue;
+        }
 
         /* process a layer tags */
         if(generateLayerTemplate(legLayerHtml, mapserv->map, mapserv->map->layerorder[j], layerArgs, &legLayerHtmlCopy, pszPrefix) != MS_SUCCESS) {
@@ -3304,6 +3319,9 @@ char *generateLegendTemplate(mapservObj *mapserv)
             /* process all class tags */
             if(!GET_LAYER(mapserv->map, mapserv->map->layerorder[j])->class[k]->name)
               continue;
+            if(mapserv->hittest && mapserv->hittest->layerhits[mapserv->map->layerorder[j]].classhits[k].status == 0) {
+              continue;
+            }
 
             if(generateClassTemplate(legClassHtml, mapserv->map, mapserv->map->layerorder[j], k, classArgs, &legClassHtmlCopy, pszPrefix) != MS_SUCCESS) {
               if(pszResult)
@@ -3339,10 +3357,16 @@ char *generateLegendTemplate(mapservObj *mapserv)
                 continue;
             }
           }
+          if(mapserv->hittest && mapserv->hittest->layerhits[mapserv->map->layerorder[j]].status == 0) {
+            continue;
+          }
 
           for (k=0; k<GET_LAYER(mapserv->map, mapserv->map->layerorder[j])->numclasses; k++) {
             if(!GET_LAYER(mapserv->map, mapserv->map->layerorder[j])->class[k]->name)
               continue;
+            if(mapserv->hittest && mapserv->hittest->layerhits[mapserv->map->layerorder[j]].classhits[k].status == 0) {
+              continue;
+            }
 
             if(generateClassTemplate(legClassHtml, mapserv->map, mapserv->map->layerorder[j], k, classArgs, &legClassHtmlCopy, pszPrefix) != MS_SUCCESS) {
               if(pszResult)
@@ -4002,16 +4026,18 @@ static char *processLine(mapservObj *mapserv, char *instr, FILE *stream, int mod
 
   for(i=0; i<mapserv->request->NumParams; i++) {
     /* Replace [variable] tags using values from URL. We cannot offer a
-     * [variable_raw] option here due to the risk of XSS
+     * [variable_raw] option here due to the risk of XSS.
+     *
+     * Replacement is case-insensitive. (#4511)
      */
     snprintf(substr, PROCESSLINE_BUFLEN, "[%s]", mapserv->request->ParamNames[i]);
     encodedstr = msEncodeHTMLEntities(mapserv->request->ParamValues[i]);
-    outstr = msReplaceSubstring(outstr, substr, encodedstr);
+    outstr = msCaseReplaceSubstring(outstr, substr, encodedstr);
     free(encodedstr);
 
     snprintf(substr, PROCESSLINE_BUFLEN, "[%s_esc]", mapserv->request->ParamNames[i]);
     encodedstr = msEncodeUrl(mapserv->request->ParamValues[i]);
-    outstr = msReplaceSubstring(outstr, substr, encodedstr);
+    outstr = msCaseReplaceSubstring(outstr, substr, encodedstr);
     free(encodedstr);
   }
 
@@ -4049,7 +4075,7 @@ int msReturnPage(mapservObj *mapserv, char *html, int mode, char **papszBuffer)
   ms_regfree(&re);
 
   if((stream = fopen(msBuildPath(szPath, mapserv->map->mappath, html), "r")) == NULL) {
-    msSetError(MS_IOERR, html, "msReturnPage()");
+    msSetError(MS_IOERR, "%s", "msReturnPage()", html);
     return MS_FAILURE;
   }
 
@@ -4245,7 +4271,7 @@ int msReturnNestedTemplateQuery(mapservObj* mapserv, char* pszMimeType, char **p
     strcat((*papszBuffer), buffer);
     nCurrentSize += strlen(buffer);
   } else if(mapserv->sendheaders) {
-    msIO_setHeader("Content-Type",pszMimeType);
+    msIO_setHeader("Content-Type","%s",pszMimeType);
     msIO_sendHeaders();
   }
 
@@ -4471,6 +4497,8 @@ mapservObj *msAllocMapServObj()
   mapserv->QueryCoordSource=NONE;
   mapserv->ZoomSize=0; /* zoom absolute magnitude (i.e. > 0) */
 
+  mapserv->hittest = NULL;
+
   return mapserv;
 }
 
@@ -4480,6 +4508,10 @@ void msFreeMapServObj(mapservObj* mapserv)
 
   if(mapserv) {
     if( mapserv->map ) {
+      if(mapserv->hittest) {
+        freeMapHitTests(mapserv->map,mapserv->hittest);
+        free(mapserv->hittest);
+      }
       msFreeMap(mapserv->map);
       mapserv->map = NULL;
     }
@@ -4577,7 +4609,7 @@ int msGenerateImages(mapservObj *mapserv, int bQueryMap, int bReturnOnError)
     /* render the legend */
     if(mapserv->map->legend.status == MS_ON) {
       imageObj *image = NULL;
-      image = msDrawLegend(mapserv->map, MS_FALSE);
+      image = msDrawLegend(mapserv->map, MS_FALSE, NULL);
       if(image) {
         snprintf(buffer, sizeof(buffer), "%s%sleg%s.%s", mapserv->map->web.imagepath, mapserv->map->name, mapserv->Id, MS_IMAGE_EXTENSION(mapserv->map->outputformat));
 
diff --git a/maptemplate.h b/maptemplate.h
index 712eee5..9248e0f 100644
--- a/maptemplate.h
+++ b/maptemplate.h
@@ -45,7 +45,7 @@ enum coordSources {NONE, FROMIMGPNT, FROMIMGBOX, FROMIMGSHAPE, FROMREFPNT, FROMU
 enum modes {BROWSE, ZOOMIN, ZOOMOUT, MAP, LEGEND, LEGENDICON, REFERENCE, SCALEBAR, COORDINATE,
             QUERY, NQUERY, ITEMQUERY, ITEMNQUERY,
             FEATUREQUERY, FEATURENQUERY, ITEMFEATUREQUERY, ITEMFEATURENQUERY,
-            INDEXQUERY, TILE, OWS, WFS
+            INDEXQUERY, TILE, OWS, WFS, MAPLEGEND, MAPLEGENDICON
            };
 
 
@@ -132,6 +132,8 @@ typedef struct {
   int NL; /* total number of layers with results */
   int NR; /* total number or results */
   int NLR; /* number of results in a layer */
+
+  map_hittest *hittest;
 } mapservObj;
 
 
diff --git a/mapthread.h b/mapthread.h
index 4b413bc..1f5488b 100644
--- a/mapthread.h
+++ b/mapthread.h
@@ -66,6 +66,8 @@ extern "C" {
 #define TLOCK_DEBUGOBJ  13
 #define TLOCK_OGR       14
 #define TLOCK_TIME      15
+#define TLOCK_FRIBIDI   16
+#define TLOCK_WxS       17
 
 #define TLOCK_STATIC_MAX 20
 #define TLOCK_MAX       100
diff --git a/maptree.c b/maptree.c
index 178fb42..805a554 100644
--- a/maptree.c
+++ b/maptree.c
@@ -126,6 +126,10 @@ SHPTreeHandle msSHPDiskTreeOpen(const char * pszTree, int debug)
   pszFullname = (char *) msSmallMalloc(strlen(pszBasename) + 5);
   sprintf( pszFullname, "%s%s", pszBasename, MS_INDEX_EXTENSION);
   psTree->fp = fopen(pszFullname, "rb" );
+  if( psTree->fp == NULL ) {
+      sprintf( pszFullname, "%s.QIX", pszBasename);
+      psTree->fp = fopen(pszFullname, "rb" );
+  }
 
   msFree(pszBasename); /* don't need these any more */
   msFree(pszFullname);
diff --git a/maputil.c b/maputil.c
index c088fab..48c8e57 100644
--- a/maputil.c
+++ b/maputil.c
@@ -46,6 +46,12 @@
 #include <process.h>
 #endif
 
+#ifdef USE_RSVG
+#include <glib-object.h>
+#endif
+#ifdef USE_GEOS
+#include <geos_c.h>
+#endif
 
 
 extern char *msyystring_buffer;
@@ -199,7 +205,7 @@ static void bindLabel(layerObj *layer, shapeObj *shape, labelObj *label, int dra
   /* check the label styleObj's (TODO: do we need to use querymapMode here? */
   for(i=0; i<label->numstyles; i++) {
     /* force MS_DRAWMODE_FEATURES for label styles */
-    bindStyle(layer, shape, label->styles[i], drawmode|MS_DRAWMODE_FEATURES); 
+    bindStyle(layer, shape, label->styles[i], drawmode|MS_DRAWMODE_FEATURES);
   }
 
   if(label->numbindings > 0) {
@@ -466,6 +472,25 @@ int msEvalExpression(layerObj *layer, shapeObj *shape, expressionObj *expression
         if(strcmp(expression->string, shape->values[itemindex]) == 0) return MS_TRUE; /* got a match */
       }
       break;
+    case(MS_LIST):
+      if(itemindex == -1) {
+        msSetError(MS_MISCERR, "Cannot evaluate expression, no item index defined.", "msEvalExpression()");
+        return MS_FALSE;
+      }
+      if(itemindex >= layer->numitems || itemindex >= shape->numvalues) {
+        msSetError(MS_MISCERR, "Invalid item index.", "msEvalExpression()");
+        return MS_FALSE;
+      }
+      {
+        char *start,*end;
+        start = expression->string;
+        while((end = strchr(start,',')) != NULL) {
+          if(!strncmp(start,shape->values[itemindex],end-start)) return MS_TRUE;
+          start = end+1;
+        }
+        if(!strcmp(start,shape->values[itemindex])) return MS_TRUE;
+      }
+      break;
     case(MS_EXPRESSION): {
       int status;
       parseObj p;
@@ -1610,18 +1635,23 @@ imageObj *msImageCreate(int width, int height, outputFormatObj *format,
 void  msTransformPoint(pointObj *point, rectObj *extent, double cellsize,
                        imageObj *image)
 {
+  double invcellsize;
   /*We should probabaly have a function defined at all the renders*/
-  if (image != NULL && MS_RENDERER_PLUGIN(image->format) &&
-      image->format->renderer == MS_RENDER_WITH_KML)
-    return;
-
-  point->x = MS_MAP2IMAGE_X(point->x, extent->minx, cellsize);
-  point->y = MS_MAP2IMAGE_Y(point->y, extent->maxy, cellsize);
+  if (image != NULL && MS_RENDERER_PLUGIN(image->format)) {
+    if(image->format->renderer == MS_RENDER_WITH_KML) {
+      return;
+    } else if(image->format->renderer == MS_RENDER_WITH_GD) {
+      point->x = MS_MAP2IMAGE_X(point->x, extent->minx, cellsize);
+      point->y = MS_MAP2IMAGE_Y(point->y, extent->maxy, cellsize);
+      return;
+    }
+  }
+  invcellsize = 1.0/cellsize;
+  point->x = MS_MAP2IMAGE_X_IC_DBL(point->x, extent->minx, invcellsize);
+  point->y = MS_MAP2IMAGE_Y_IC_DBL(point->y, extent->maxy, invcellsize);
 }
 
 
-
-
 /*
 ** Helper functions supplied as part of bug #2868 solution. Consider moving these to
 ** mapprimitive.c for more general use.
@@ -1717,18 +1747,24 @@ static double point_cross(const pointObj a, const pointObj b)
   return a.x*b.y-a.y*b.x;
 }
 
-/*
-** For offset corner point calculation 1/sin() is used
-** to avoid 1/0 division (and long spikes) we define a
-** limit for sin().
-*/
-#define CURVE_SIN_LIMIT 0.3
-
-shapeObj *msOffsetPolyline(shapeObj *p, double offsetx, double offsety)
+shapeObj *msOffsetCurve(shapeObj *p, double offset)
 {
-  int i, j, first,idx;
-
-  shapeObj *ret = (shapeObj*)msSmallMalloc(sizeof(shapeObj));
+  shapeObj *ret;
+  int i, j, first,idx,ok=0;
+#if defined USE_GEOS && (GEOS_VERSION_MAJOR > 3 || (GEOS_VERSION_MAJOR == 3 && GEOS_VERSION_MINOR >= 3))
+  ret = msGEOSOffsetCurve(p,offset);
+  /* GEOS curve offsetting can fail sometimes, we continue with our own implementation
+   if that is the case.*/
+  if(ret)
+    return ret;
+#endif
+  /*
+  ** For offset corner point calculation 1/sin() is used
+  ** to avoid 1/0 division (and long spikes) we define a
+  ** limit for sin().
+  */
+#define CURVE_SIN_LIMIT 0.3
+  ret = (shapeObj*)msSmallMalloc(sizeof(shapeObj));
   msInitShape(ret);
   ret->numlines = p->numlines;
   ret->line=(lineObj*)msSmallMalloc(sizeof(lineObj)*ret->numlines);
@@ -1736,81 +1772,106 @@ shapeObj *msOffsetPolyline(shapeObj *p, double offsetx, double offsety)
     ret->line[i].numpoints=p->line[i].numpoints;
     ret->line[i].point=(pointObj*)msSmallMalloc(sizeof(pointObj)*ret->line[i].numpoints);
   }
-
-  if(offsety == -99) { /* complex calculations */
-    int ok = 0;
-    for (i = 0; i < p->numlines; i++) {
-      pointObj old_pt, old_diffdir, old_offdir;
-      if(p->line[i].numpoints<2) {
-        ret->line[i].numpoints = 0;
-        continue; /* skip degenerate lines */
-      }
-      ok =1;
-      /* initialize old_offdir and old_diffdir, as gcc isn't smart enough to see that it
-       * is not an error to do so, and prints a warning */
-      old_offdir.x=old_offdir.y=old_diffdir.x=old_diffdir.y = 0;
-
-      idx=0;
-      first = 1;
-
-      /* saved metrics of the last processed point */
-      if (p->line[i].numpoints>0)
-        old_pt=p->line[i].point[0];
-      for(j=1; j<p->line[i].numpoints; j++) {
-        const pointObj pt = p->line[i].point[j]; /* place of the point */
-        const pointObj diffdir = point_norm(point_diff(pt,old_pt)); /* direction of the line */
-        const pointObj offdir = point_rotz90(diffdir); /* direction where the distance between the line and the offset is measured */
-        pointObj offpt; /* this will be the corner point of the offset line */
-
-        /* offset line points computation */
-        if(first == 1) { /* first point */
-          first = 0;
-          offpt = point_sum(old_pt,point_mul(offdir,offsetx));
-        } else { /* middle points */
-          /* curve is the angle of the last and the current line's direction (supplementary angle of the shape's inner angle) */
-          double sin_curve = point_cross(diffdir,old_diffdir);
-          double cos_curve = point_cross(old_offdir,diffdir);
-          if ((-1.0)*CURVE_SIN_LIMIT < sin_curve && sin_curve < CURVE_SIN_LIMIT) {
-            /* do not calculate 1/sin, instead use a corner point approximation: average of the last and current offset direction and length */
-
-            /*
-            ** TODO: fair for obtuse inner angles, however, positive and negative
-            ** acute inner angles would need special handling - similar to LINECAP
-            ** to avoid drawing of long spikes
-            */
-            offpt = point_sum(old_pt, point_mul(point_sum(offdir, old_offdir),0.5*offsetx));
-          } else {
-            double base_shift = -1.0*(1.0+cos_curve)/sin_curve;
-            offpt = point_sum(old_pt, point_mul(point_sum(point_mul(diffdir,base_shift),offdir), offsetx));
-          }
+  for (i = 0; i < p->numlines; i++) {
+    pointObj old_pt, old_diffdir, old_offdir;
+    if(p->line[i].numpoints<2) {
+      ret->line[i].numpoints = 0;
+      continue; /* skip degenerate points */
+    }
+    ok = 1;
+    /* initialize old_offdir and old_diffdir, as gcc isn't smart enough to see that it
+     * is not an error to do so, and prints a warning */
+    old_offdir.x=old_offdir.y=old_diffdir.x=old_diffdir.y = 0;
+
+    idx=0;
+    first = 1;
+
+    /* saved metrics of the last processed point */
+    if (p->line[i].numpoints>0)
+      old_pt=p->line[i].point[0];
+    for(j=1; j<p->line[i].numpoints; j++) {
+      const pointObj pt = p->line[i].point[j]; /* place of the point */
+      const pointObj diffdir = point_norm(point_diff(pt,old_pt)); /* direction of the line */
+      const pointObj offdir = point_rotz90(diffdir); /* direction where the distance between the line and the offset is measured */
+      pointObj offpt; /* this will be the corner point of the offset line */
+
+      /* offset line points computation */
+      if(first == 1) { /* first point */
+        first = 0;
+        offpt = point_sum(old_pt,point_mul(offdir,offset));
+      } else { /* middle points */
+        /* curve is the angle of the last and the current line's direction (supplementary angle of the shape's inner angle) */
+        double sin_curve = point_cross(diffdir,old_diffdir);
+        double cos_curve = point_cross(old_offdir,diffdir);
+        if ((-1.0)*CURVE_SIN_LIMIT < sin_curve && sin_curve < CURVE_SIN_LIMIT) {
+          /* do not calculate 1/sin, instead use a corner point approximation: average of the last and current offset direction and length */
+
+          /*
+          ** TODO: fair for obtuse inner angles, however, positive and negative
+          ** acute inner angles would need special handling - similar to LINECAP
+          ** to avoid drawing of long spikes
+          */
+          offpt = point_sum(old_pt, point_mul(point_sum(offdir, old_offdir),0.5*offset));
+        } else {
+          double base_shift = -1.0*(1.0+cos_curve)/sin_curve;
+          offpt = point_sum(old_pt, point_mul(point_sum(point_mul(diffdir,base_shift),offdir), offset));
         }
-        ret->line[i].point[idx]=offpt;
-        idx++;
-        old_pt=pt;
-        old_diffdir=diffdir;
-        old_offdir=offdir;
       }
+      ret->line[i].point[idx]=offpt;
+      idx++;
+      old_pt=pt;
+      old_diffdir=diffdir;
+      old_offdir=offdir;
+    }
 
-      /* last point */
-      if(first == 0) {
-        pointObj offpt=point_sum(old_pt,point_mul(old_offdir,offsetx));
-        ret->line[i].point[idx]=offpt;
-        idx++;
-      }
+    /* last point */
+    if(first == 0) {
+      pointObj offpt=point_sum(old_pt,point_mul(old_offdir,offset));
+      ret->line[i].point[idx]=offpt;
+      idx++;
+    }
 
-      if(idx != p->line[i].numpoints) {
-        /* printf("shouldn't happen :(\n"); */
-        ret->line[i].numpoints=idx;
-        ret->line=msSmallRealloc(ret->line,ret->line[i].numpoints*sizeof(pointObj));
-      }
+    if(idx != p->line[i].numpoints) {
+      /* printf("shouldn't happen :(\n"); */
+      ret->line[i].numpoints=idx;
+      ret->line=msSmallRealloc(ret->line,ret->line[i].numpoints*sizeof(pointObj));
     }
-    if(!ok) ret->numlines = 0; /* all lines where degenerate */
-  } else { /* normal offset (eg. drop shadow) */
-    for (i = 0; i < p->numlines; i++) {
-      for(j=0; j<p->line[i].numpoints; j++) {
-        ret->line[i].point[j].x=p->line[i].point[j].x+offsetx;
-        ret->line[i].point[j].y=p->line[i].point[j].y+offsety;
-      }
+  }
+  if(!ok) ret->numlines = 0; /* all lines where degenerate */
+  return ret;
+}
+
+shapeObj *msOffsetPolyline(shapeObj *p, double offsetx, double offsety)
+{
+  int i, j;
+  shapeObj *ret;
+  if(offsety == -99) { /* complex calculations */
+    return msOffsetCurve(p,offsetx);
+  } else if(offsety == -999) {
+    shapeObj *tmp1;
+    ret = msOffsetCurve(p,offsetx/2.0);
+    tmp1 = msOffsetCurve(p, -offsetx/2.0);
+    for(i=0;i<tmp1->numlines; i++) {
+      msAddLineDirectly(ret,tmp1->line + i);
+    }
+    msFreeShape(tmp1);
+    free(tmp1);
+    return ret;
+  }
+
+  ret = (shapeObj*)msSmallMalloc(sizeof(shapeObj));
+  msInitShape(ret);
+  ret->numlines = p->numlines;
+  ret->line=(lineObj*)msSmallMalloc(sizeof(lineObj)*ret->numlines);
+  for(i=0; i<ret->numlines; i++) {
+    ret->line[i].numpoints=p->line[i].numpoints;
+    ret->line[i].point=(pointObj*)msSmallMalloc(sizeof(pointObj)*ret->line[i].numpoints);
+  }
+
+  for (i = 0; i < p->numlines; i++) {
+    for(j=0; j<p->line[i].numpoints; j++) {
+      ret->line[i].point[j].x=p->line[i].point[j].x+offsetx;
+      ret->line[i].point[j].y=p->line[i].point[j].y+offsety;
     }
   }
 
@@ -1845,11 +1906,22 @@ int msSetup()
   msGEOSSetup();
 #endif
 
+#ifdef USE_RSVG
+#if !GLIB_CHECK_VERSION(2, 35, 0)
+  g_type_init();
+#endif
+#endif
+
   return MS_SUCCESS;
 }
 
 /* This is intended to be a function to cleanup anything that "hangs around"
    when all maps are destroyed, like Registered GDAL drivers, and so forth. */
+#ifndef NDEBUG
+#if defined(USE_LIBXML2)
+#include "maplibxml2.h"
+#endif
+#endif
 void msCleanup(int signal)
 {
   msForceTmpFileBase( NULL );
@@ -2058,7 +2130,7 @@ int msCheckParentPointer(void* p, char *objname)
     } else {
       msg="A required parent object is null";
     }
-    msSetError(MS_NULLPARENTERR, msg, "");
+    msSetError(MS_NULLPARENTERR, "%s", "", msg);
     return MS_FAILURE;
   }
   return MS_SUCCESS;
@@ -2374,3 +2446,61 @@ int msMapSetLayerProjections(mapObj* map)
   msFree(mapProjStr);
   return(MS_SUCCESS);
 }
+
+/* Generalize a shape based of the tolerance.
+   Ref: http://trac.osgeo.org/gdal/ticket/966 */
+shapeObj* msGeneralize(shapeObj *shape, double tolerance)
+{
+  shapeObj *newShape;
+  lineObj newLine = {0,NULL};
+  double sqTolerance = tolerance*tolerance;
+  
+  double dX0, dY0, dX1, dY1, dX, dY, dSqDist;
+  int i;
+
+  newShape = (shapeObj*)msSmallMalloc(sizeof(shapeObj));
+  msInitShape(newShape);
+  msCopyShape(shape, newShape);
+
+  if (shape->numlines<1)
+    return newShape;
+  
+  /* Clean shape */
+  for (i=0; i < newShape->numlines; i++)
+    free(newShape->line[i].point);
+  newShape->numlines = 0;
+  if (newShape->line) free(newShape->line);
+    
+  msAddLine(newShape, &newLine);
+  
+  if (shape->line[0].numpoints>0) {
+    msAddPointToLine(&newShape->line[0],
+                     &shape->line[0].point[0]);              
+    dX0 = shape->line[0].point[0].x;
+    dY0 = shape->line[0].point[0].y;    
+  }
+  
+  for(i=1; i<shape->line[0].numpoints; i++)
+  {
+      dX1 = shape->line[0].point[i].x;
+      dY1 = shape->line[0].point[i].y;
+     
+      dX = dX1-dX0;
+      dY = dY1-dY0;
+      dSqDist = dX*dX + dY*dY;
+      if (i == shape->line[0].numpoints-1 || dSqDist >= sqTolerance)
+      {
+          pointObj p;
+          p.x = dX1;
+          p.y = dY1;
+          
+          /* Keep this point (always keep the last point) */
+          msAddPointToLine(&newShape->line[0],
+                           &p);          
+          dX0 = dX1;
+          dY0 = dY1;
+        }
+    }
+   
+  return newShape;
+}
diff --git a/mapuvraster.c b/mapuvraster.c
index 6f6a04d..471fefc 100644
--- a/mapuvraster.c
+++ b/mapuvraster.c
@@ -128,9 +128,9 @@ static int msUVRASTERLayerInitItemInfo(layerObj *layer)
 
     if(itemindexes[i] == -1) {
       msSetError(MS_OGRERR,
-                 (char*)CPLSPrintf("Invalid Field name: %s",
-                                   layer->items[i]),
-                 "msUVRASTERLayerInitItemInfo()");
+                 "Invalid Field name: %s",
+                 "msUVRASTERLayerInitItemInfo()",
+                 layer->items[i]);
       return(MS_FAILURE);
     }
   }
@@ -333,13 +333,23 @@ int msUVRASTERLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
 {
   uvRasterLayerInfo *uvlinfo = (uvRasterLayerInfo *) layer->layerinfo;
   imageObj *image_tmp;
-  mapObj   map_tmp;
+  outputFormatObj *outputformat = NULL;
+  mapObj *map_tmp;
   double map_cellsize;
   unsigned int spacing;
   int width, height, u_src_off, v_src_off, i, x, y;
   char   **alteredProcessing = NULL;
   char **savedProcessing = NULL;
 
+  /*
+  ** Allocate mapObj structure
+  */
+  map_tmp = (mapObj *)msSmallCalloc(sizeof(mapObj),1);
+  if(initMap(map_tmp) == -1) { /* initialize this map */
+    msFree(map_tmp);
+    return(MS_FAILURE);
+  }
+  
   if (layer->debug)
     msDebug("Entering msUVRASTERLayerWhichShapes().\n");
 
@@ -358,6 +368,7 @@ int msUVRASTERLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
                 "msUVRASTERLayerWhichShapes()" );
     return MS_FAILURE;
   }
+
   /* -------------------------------------------------------------------- */
   /*      Determine desired spacing.  Default to 32 if not otherwise set  */
   /* -------------------------------------------------------------------- */
@@ -371,58 +382,59 @@ int msUVRASTERLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
   height = (int)ceil(layer->map->height/spacing);
   map_cellsize = MS_MAX(MS_CELLSIZE(rect.minx, rect.maxx,layer->map->width),
                         MS_CELLSIZE(rect.miny,rect.maxy,layer->map->height));
-  map_tmp.cellsize = map_cellsize*spacing;
+  map_tmp->cellsize = map_cellsize*spacing;
   
   if (layer->debug)
     msDebug("msUVRASTERLayerWhichShapes(): width: %d, height: %d, cellsize: %g\n",
-            width, height, map_tmp.cellsize);
+            width, height, map_tmp->cellsize);
 
   /* Initialize our dummy map */
-  MS_INIT_COLOR(map_tmp.imagecolor, 255,255,255,255);
-  map_tmp.resolution = layer->map->resolution;
-  map_tmp.defresolution = layer->map->defresolution;
-  map_tmp.outputformat = (outputFormatObj *) msSmallCalloc(1,sizeof(outputFormatObj));
-  uvlinfo->band_count = map_tmp.outputformat->bands = 2;
-  map_tmp.outputformat->name = NULL;
-  map_tmp.outputformat->driver = NULL;
-  map_tmp.outputformat->refcount = 0;
-  map_tmp.outputformat->vtable = NULL;
-  map_tmp.outputformat->device = NULL;
-  map_tmp.outputformat->renderer = MS_RENDER_WITH_RAWDATA;
-  map_tmp.outputformat->imagemode = MS_IMAGEMODE_FLOAT32;
-
-  map_tmp.configoptions = layer->map->configoptions;
-  map_tmp.mappath = layer->map->mappath;
-  map_tmp.shapepath = layer->map->shapepath;
-  map_tmp.extent.minx = rect.minx-(0.5*map_cellsize)+(0.5*map_tmp.cellsize);
-  map_tmp.extent.miny = rect.miny-(0.5*map_cellsize)+(0.5*map_tmp.cellsize);
-  map_tmp.extent.maxx = map_tmp.extent.minx+((width-1)*map_tmp.cellsize);
-  map_tmp.extent.maxy = map_tmp.extent.miny+((height-1)*map_tmp.cellsize);
-  map_tmp.gt.rotation_angle = 0.0;
-
-  msInitProjection(&map_tmp.projection);
-  msCopyProjection(&map_tmp.projection, &layer->projection);
+  MS_INIT_COLOR(map_tmp->imagecolor, 255,255,255,255);
+  map_tmp->resolution = layer->map->resolution;
+  map_tmp->defresolution = layer->map->defresolution;
+
+  outputformat = (outputFormatObj *) msSmallCalloc(1,sizeof(outputFormatObj));
+  outputformat->bands = uvlinfo->band_count = 2;
+  outputformat->name = NULL;
+  outputformat->driver = NULL;
+  outputformat->refcount = 0;
+  outputformat->vtable = NULL;
+  outputformat->device = NULL;
+  outputformat->renderer = MS_RENDER_WITH_RAWDATA;
+  outputformat->imagemode = MS_IMAGEMODE_FLOAT32;
+  msAppendOutputFormat(map_tmp, outputformat);
+  
+  msCopyHashTable(&map_tmp->configoptions, &layer->map->configoptions);
+  map_tmp->mappath = msStrdup(layer->map->mappath);
+  map_tmp->shapepath = msStrdup(layer->map->shapepath);
+  map_tmp->extent.minx = rect.minx-(0.5*map_cellsize)+(0.5*map_tmp->cellsize);
+  map_tmp->extent.miny = rect.miny-(0.5*map_cellsize)+(0.5*map_tmp->cellsize);
+  map_tmp->extent.maxx = map_tmp->extent.minx+((width-1)*map_tmp->cellsize);
+  map_tmp->extent.maxy = map_tmp->extent.miny+((height-1)*map_tmp->cellsize);
+  map_tmp->gt.rotation_angle = 0.0;
+
+   msCopyProjection(&map_tmp->projection, &layer->projection);
 
   if (layer->debug == 5)
-    msDebug("msUVRASTERLayerWhichShapes(): extent: %g %d %g %g\n",
-            map_tmp.extent.minx, map_tmp.extent.miny,
-            map_tmp.extent.maxx, map_tmp.extent.maxy);
+    msDebug("msUVRASTERLayerWhichShapes(): extent: %g %g %g %g\n",
+            map_tmp->extent.minx, map_tmp->extent.miny,
+            map_tmp->extent.maxx, map_tmp->extent.maxy);
 
   /* important to use that function, to compute map
      geotransform, used by the resampling*/
-  msMapSetSize(&map_tmp, width, height);
+   msMapSetSize(map_tmp, width, height);
 
   if (layer->debug == 5)
     msDebug("msUVRASTERLayerWhichShapes(): geotransform: %g %g %g %g %g %g\n",
-            map_tmp.gt.geotransform[0], map_tmp.gt.geotransform[1],
-            map_tmp.gt.geotransform[2], map_tmp.gt.geotransform[3],
-            map_tmp.gt.geotransform[4], map_tmp.gt.geotransform[5]);
+            map_tmp->gt.geotransform[0], map_tmp->gt.geotransform[1],
+            map_tmp->gt.geotransform[2], map_tmp->gt.geotransform[3],
+            map_tmp->gt.geotransform[4], map_tmp->gt.geotransform[5]);
 
-  uvlinfo->extent = map_tmp.extent;
+  uvlinfo->extent = map_tmp->extent;
 
-  image_tmp = msImageCreate(width, height, map_tmp.outputformat,
-                            NULL, NULL, map_tmp.resolution, map_tmp.defresolution,
-                            &(map_tmp.imagecolor));
+  image_tmp = msImageCreate(width, height, map_tmp->outputformatlist[0],
+                            NULL, NULL, map_tmp->resolution, map_tmp->defresolution,
+                            &(map_tmp->imagecolor));
 
   /* Default set to AVERAGE resampling */
   if( CSLFetchNameValue( layer->processing, "RESAMPLE" ) == NULL ) {
@@ -434,14 +446,16 @@ int msUVRASTERLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
     layer->processing = alteredProcessing;
   }
 
-  if (msDrawRasterLayerLow(&map_tmp, layer, image_tmp, NULL ) == MS_FAILURE) {
-    msSetError(MS_MISCERR, "Unable to draw raster data.", NULL, "msUVRASTERLayerWhichShapes()" );
+  if (msDrawRasterLayerLow(map_tmp, layer, image_tmp, NULL ) == MS_FAILURE) {
+    msSetError(MS_MISCERR, "Unable to draw raster data.", "msUVRASTERLayerWhichShapes()");
     return MS_FAILURE;
   }
 
   /* restore the saved processing */
-  if (alteredProcessing != NULL)
+  if (alteredProcessing != NULL) {
     layer->processing = savedProcessing;
+    CSLDestroy(alteredProcessing);
+  }
 
   /* free old query arrays */
   if (uvlinfo->u) {
@@ -484,6 +498,7 @@ int msUVRASTERLayerWhichShapes(layerObj *layer, rectObj rect, int isQuery)
   }
 
   msFreeImage(image_tmp); /* we do not need the imageObj anymore */
+  msFreeMap(map_tmp);
 
   uvlinfo->next_shape = 0;
 
@@ -503,7 +518,7 @@ int msUVRASTERLayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
 
   if( shapeindex < 0 || shapeindex >= uvlinfo->query_results ) {
     msSetError(MS_MISCERR,
-               "Out of range shape index requested.  Requested %d\n"
+               "Out of range shape index requested.  Requested %ld\n"
                "but only %d shapes available.",
                "msUVRASTERLayerGetShape()",
                shapeindex, uvlinfo->query_results );
@@ -524,7 +539,7 @@ int msUVRASTERLayerGetShape(layerObj *layer, shapeObj *shape, resultObj *record)
   point.y = Pix2Georef(y, 0, uvlinfo->height-1,
                        uvlinfo->extent.miny, uvlinfo->extent.maxy, MS_TRUE);
   if (layer->debug == 5)
-    msDebug("msUVRASTERLayerWhichShapes(): shapeindex: %d, x: %g, y: %g\n",
+    msDebug("msUVRASTERLayerWhichShapes(): shapeindex: %ld, x: %g, y: %g\n",
             shapeindex, point.x, point.y);
 
 #ifdef USE_POINT_Z_M
diff --git a/mapwcs.c b/mapwcs.c
index ceacabf..2edeab6 100644
--- a/mapwcs.c
+++ b/mapwcs.c
@@ -139,17 +139,18 @@ int msWCSException(mapObj *map, const char *code, const char *locator,
 {
   char *pszEncodedVal = NULL;
   const char *encoding;
+  char version_string[OWS_VERSION_MAXLEN];
 
   if( version == NULL )
     version = "1.0.0";
 
 #if defined(USE_LIBXML2)
   if( msOWSParseVersionString(version) >= OWS_2_0_0 )
-    return msWCSException20( map, code, locator, version );
+    return msWCSException20( map, code, locator, msOWSGetVersionString(msOWSParseVersionString(version), version_string) );
 #endif
 
   if( msOWSParseVersionString(version) >= OWS_1_1_0 )
-    return msWCSException11( map, code, locator, version );
+    return msWCSException11( map, code, locator, msOWSGetVersionString(msOWSParseVersionString(version), version_string) );
 
   encoding = msOWSLookupMetadata(&(map->web.metadata), "CO", "encoding");
   if (encoding)
@@ -250,7 +251,7 @@ void msWCSFreeParams(wcsParamsObj *params)
 int msWCSIsLayerSupported(layerObj *layer)
 {
   /* only raster layers, are elligible to be served via WCS, WMS rasters are not ok */
-  if((layer->type == MS_LAYER_RASTER) && layer->connectiontype != MS_WMS) return MS_TRUE;
+  if((layer->type == MS_LAYER_RASTER) && layer->connectiontype != MS_WMS && layer->name != NULL) return MS_TRUE;
 
   return MS_FALSE;
 }
@@ -1335,7 +1336,7 @@ static int msWCSDescribeCoverage(mapObj *map, wcsParamsObj *params, owsRequestOb
 
         for(i=0; i<map->numlayers; i++) {
           coverageName = msOWSGetEncodeMetadata(&(GET_LAYER(map, i)->metadata), "CO", "name", GET_LAYER(map, i)->name);
-          if( EQUAL(coverageName, coverages[k]) &&
+          if( coverageName != NULL && EQUAL(coverageName, coverages[k]) &&
               (msIntegerInArray(GET_LAYER(map, i)->index, ows_request->enabled_layers, ows_request->numlayers)) ) {
             msFree(coverageName);
             break;
@@ -1356,7 +1357,7 @@ this request. Check wcs/ows_enable_request settings.", "msWCSDescribeCoverage()"
 
   updatesequence = msOWSLookupMetadata(&(map->web.metadata), "CO", "updatesequence");
   if (!updatesequence)
-    updatesequence = msStrdup("0");
+    updatesequence = "0";
 
   /* printf("Content-Type: application/vnd.ogc.se_xml%c%c",10,10); */
   if (encoding)
@@ -1383,7 +1384,7 @@ this request. Check wcs/ows_enable_request settings.", "msWCSDescribeCoverage()"
       for(k=0; k<numcoverages; k++) {
         for(i=0; i<map->numlayers; i++) {
           coverageName = msOWSGetEncodeMetadata(&(GET_LAYER(map, i)->metadata), "CO", "name", GET_LAYER(map, i)->name);
-          if( EQUAL(coverageName, coverages[k]) ) {
+          if( coverageName != NULL && EQUAL(coverageName, coverages[k]) ) {
             msFree(coverageName);
             break;
           }
@@ -1617,7 +1618,7 @@ static int msWCSGetCoverage(mapObj *map, cgiRequestObj *request,
   lp = NULL;
   for(i=0; i<map->numlayers; i++) {
     coverageName = msOWSGetEncodeMetadata(&(GET_LAYER(map, i)->metadata), "CO", "name", GET_LAYER(map, i)->name);
-    if( EQUAL(coverageName, params->coverages[0]) &&
+    if( coverageName != NULL && EQUAL(coverageName, params->coverages[0]) &&
         (msIntegerInArray(GET_LAYER(map, i)->index, ows_request->enabled_layers, ows_request->numlayers)) ) {
       lp = GET_LAYER(map, i);
       free( coverageName );
@@ -1936,6 +1937,69 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage()", par
     msSetError(MS_WCSERR, "Map outputformat not supported for WCS!", "msWCSGetCoverage()");
     return msWCSException(map, NULL, NULL, params->version );
   }
+  
+  if(lp->mask) {
+    int maskLayerIdx = msGetLayerIndex(map,lp->mask);
+    layerObj *maskLayer;
+    outputFormatObj *altFormat;
+    if(maskLayerIdx == -1) {
+      msSetError(MS_MISCERR, "Layer (%s) references unknown mask layer (%s)", "msDrawLayer()",
+                 lp->name,lp->mask);
+      return (MS_FAILURE);
+    }
+    maskLayer = GET_LAYER(map, maskLayerIdx);
+    if(!maskLayer->maskimage) {
+      int i,retcode;
+      int origstatus, origlabelcache;
+      char *origImageType = msStrdup(map->imagetype);
+      altFormat =  msSelectOutputFormat(map, "png24");
+      msInitializeRendererVTable(altFormat);
+      /* TODO: check the png24 format hasn't been tampered with, i.e. it's agg */
+      maskLayer->maskimage= msImageCreate(image->width, image->height,altFormat,
+                                          image->imagepath, image->imageurl, map->resolution, map->defresolution, NULL);
+      if (!maskLayer->maskimage) {
+        msSetError(MS_MISCERR, "Unable to initialize mask image.", "msDrawLayer()");
+        return (MS_FAILURE);
+      }
+
+      /*
+       * force the masked layer to status on, and turn off the labelcache so that
+       * eventual labels are added to the temporary image instead of being added
+       * to the labelcache
+       */
+      origstatus = maskLayer->status;
+      origlabelcache = maskLayer->labelcache;
+      maskLayer->status = MS_ON;
+      maskLayer->labelcache = MS_OFF;
+
+      /* draw the mask layer in the temporary image */
+      retcode = msDrawLayer(map, maskLayer, maskLayer->maskimage);
+      maskLayer->status = origstatus;
+      maskLayer->labelcache = origlabelcache;
+      if(retcode != MS_SUCCESS) {
+        return MS_FAILURE;
+      }
+      /*
+       * hack to work around bug #3834: if we have use an alternate renderer, the symbolset may contain
+       * symbols that reference it. We want to remove those references before the altFormat is destroyed
+       * to avoid a segfault and/or a leak, and so the the main renderer doesn't pick the cache up thinking
+       * it's for him.
+       */
+      for(i=0; i<map->symbolset.numsymbols; i++) {
+        if (map->symbolset.symbol[i]!=NULL) {
+          symbolObj *s = map->symbolset.symbol[i];
+          if(s->renderer == MS_IMAGE_RENDERER(maskLayer->maskimage)) {
+            MS_IMAGE_RENDERER(maskLayer->maskimage)->freeSymbol(s);
+            s->renderer = NULL;
+          }
+        }
+      }
+      /* set the imagetype from the original outputformat back (it was removed by msSelectOutputFormat() */
+      msFree(map->imagetype);
+      map->imagetype = origImageType;
+      
+    }
+  }
 
   if( image == NULL )
     return msWCSException(map, NULL, NULL, params->version );
@@ -1964,7 +2028,7 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage()", par
                      fo_filename );
 
     /* Emit back to client. */
-    msIO_setHeader("Content-Type",MS_IMAGE_MIME_TYPE(map->outputformat));
+    msIO_setHeader("Content-Type","%s",MS_IMAGE_MIME_TYPE(map->outputformat));
     msIO_sendHeaders();
     status = msSaveImage(map, image, NULL);
 
@@ -2162,6 +2226,13 @@ int msWCSDispatch(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_reques
         return msWCSException(map, "InvalidParameterValue",
                               "request", "2.0.1");
       }
+      else if (status == MS_DONE) {
+        /* MS_DONE means, that the exception has already been written to the IO 
+          buffer. 
+        */
+        msWCSFreeParamsObj20(params);
+        return MS_FAILURE;
+      }
     }
 
     /* check if all layer names are valid NCNames */
diff --git a/mapwcs20.c b/mapwcs20.c
index 33a282d..402b3a2 100644
--- a/mapwcs20.c
+++ b/mapwcs20.c
@@ -29,6 +29,7 @@
  * DEALINGS IN THE SOFTWARE.
  ****************************************************************************/
 
+#include "mapserver-config.h"
 #if defined(USE_WCS_SVR)
 
 #include <assert.h>
@@ -140,7 +141,7 @@ static int msWCSParseTimeOrScalar20(timeScalarUnion *u, const char *string)
   else {
     msSetError(MS_WCSERR,
                "String %s could not be parsed to a time or scalar value",
-               "msWCSParseTimeOrScalar20()");
+               "msWCSParseTimeOrScalar20()",string);
     return MS_WCS20_ERROR_VALUE;
   }
 }
@@ -545,7 +546,7 @@ static int msWCSParseResolutionString20(char *string,
   number = strchr(string, '(');
 
   if(NULL == number) {
-    msSetError(MS_WCSERR, "Invalid resolution parameter value.",
+    msSetError(MS_WCSERR, "Invalid resolution parameter value : %s.",
                "msWCSParseSize20()", string);
     return MS_FAILURE;
   }
@@ -566,8 +567,8 @@ static int msWCSParseResolutionString20(char *string,
 
   if(msStringParseDouble(number, outResolution) != MS_SUCCESS) {
     *outResolution = MS_WCS20_UNBOUNDED;
-    msSetError(MS_WCSERR, "Invalid resolution parameter value.",
-               "msWCSParseSize20()", string);
+    msSetError(MS_WCSERR, "Invalid resolution parameter value : %s.",
+               "msWCSParseSize20()", number);
     return MS_FAILURE;
   }
 
@@ -667,7 +668,7 @@ static int msWCSParseRequest20_XMLDescribeCoverage(
 /************************************************************************/
 #if defined(USE_LIBXML2)
 static int msWCSParseRequest20_XMLGetCoverage(
-  xmlNodePtr root, wcs20ParamsObjPtr params)
+  mapObj* map, xmlNodePtr root, wcs20ParamsObjPtr params)
 {
   xmlNodePtr child;
   int numIds = 0;
@@ -696,6 +697,12 @@ static int msWCSParseRequest20_XMLGetCoverage(
                           || EQUAL(content, "multipart/related"))) {
         params->multipart = MS_TRUE;
       }
+      else {
+        msSetError(MS_WCSERR, "Invalid value '%s' for parameter 'Mediatype'.",
+                  "msWCSParseRequest20()", content);
+        xmlFree(content);
+        return MS_FAILURE;
+      }
       xmlFree(content);
     } else if (EQUAL((char *) child->name, "DimensionTrim")) {
       wcs20AxisObjPtr axis = NULL;
@@ -745,7 +752,8 @@ static int msWCSParseRequest20_XMLGetCoverage(
       if (msWCSParseSubset20(subset, axisName, crs, min, max)
           == MS_FAILURE) {
         msWCSFreeSubsetObj20(subset);
-        return MS_FAILURE;
+        msWCSException(map, "InvalidSubsetting", "subset", "2.0.1");
+        return MS_DONE;
       }
 
       if(NULL == (axis = msWCSFindAxis20(params, subset->axis))) {
@@ -806,7 +814,7 @@ static int msWCSParseRequest20_XMLGetCoverage(
       if(NULL == (axisName = (char *) xmlGetProp(child, BAD_CAST "dimension"))) {
         msSetError(MS_WCSERR, "Attribute 'dimension' is missing "
                    "in element 'Resolution'.",
-                   "msWCSParseRequest20_XMLGetCoverage()", (char *)child->name);
+                   "msWCSParseRequest20_XMLGetCoverage()");
         return MS_FAILURE;
       }
 
@@ -844,6 +852,8 @@ static int msWCSParseRequest20_XMLGetCoverage(
           CSLAddString(params->range_subset, content);
         xmlFree(content);
       }
+    } else if (EQUAL((char *)child->name, "Extension")) {
+      continue;
     } else {
       XML_UNKNOWN_NODE_ERROR(child);
     }
@@ -923,14 +933,14 @@ int msWCSParseRequest20(mapObj *map,
       if(EQUAL(params->request, "DescribeCoverage")) {
         ret = msWCSParseRequest20_XMLDescribeCoverage(root, params);
       } else if(EQUAL(params->request, "GetCoverage")) {
-        ret = msWCSParseRequest20_XMLGetCoverage(root, params);
+        ret = msWCSParseRequest20_XMLGetCoverage(map, root, params);
       }
     }
     return ret;
 
 #else /* defined(USE_LIBXML2) */
     /* TODO: maybe with CPLXML? */
-    return MS_DONE;
+    return MS_FAILURE;
 #endif /* defined(USE_LIBXML2) */
   }
 
@@ -982,6 +992,11 @@ int msWCSParseRequest20(mapObj *map,
       if(EQUAL(value, "multipart/mixed") || EQUAL(value, "multipart/related")) {
         params->multipart = MS_TRUE;
       }
+      else {
+         msSetError(MS_WCSERR, "Invalid value '%s' for parameter 'Mediatype'.",
+                    "msWCSParseRequest20()", value);
+         return MS_FAILURE;
+      }
     } else if (EQUAL(key, "INTERPOLATION")) {
       params->interpolation = msStrdup(value);
     } else if (EQUAL(key, "OUTPUTCRS")) {
@@ -1043,7 +1058,8 @@ int msWCSParseRequest20(mapObj *map,
       }
       if (msWCSParseSubsetKVPString20(subset, value) == MS_FAILURE) {
         msWCSFreeSubsetObj20(subset);
-        return MS_FAILURE;
+        msWCSException(map, "InvalidSubsetting", "subset", ows_request->version);
+        return MS_DONE;
       }
 
       if(NULL == (axis = msWCSFindAxis20(params, subset->axis))) {
@@ -1058,7 +1074,8 @@ int msWCSParseRequest20(mapObj *map,
         msSetError(MS_WCSERR, "The axis '%s' is already subsetted.",
                    "msWCSParseRequest20()", axis->name);
         msWCSFreeSubsetObj20(subset);
-        return MS_FAILURE;
+        msWCSException(map, "InvalidAxisLabel", "subset", ows_request->version);
+        return MS_DONE;
       }
       axis->subset = subset;
     } else if(EQUAL(key, "RANGESUBSET")) {
@@ -1087,12 +1104,17 @@ int msWCSParseRequest20(mapObj *map,
 /************************************************************************/
 static int msWCSValidateAndFindAxes20(
   wcs20ParamsObjPtr params,
-  char*** validAxisNames,
-  int numAxis,
   wcs20AxisObjPtr outAxes[])
 {
+  static const int numAxis = 2;
+  char *validXAxisNames[] = {"x", "xaxis", "x-axis", "x_axis", "long", "long_axis", "long-axis", "lon", "lon_axis", "lon-axis", NULL};
+  char *validYAxisNames[] = {"y", "yaxis", "y-axis", "y_axis", "lat", "lat_axis", "lat-axis", NULL};
+  char **validAxisNames[2]; 
   int iParamAxis, iAcceptedAxis, iName, i;
 
+  validAxisNames[0] = validXAxisNames;
+  validAxisNames[1] = validYAxisNames;
+
   for(i = 0; i < numAxis; ++i) {
     outAxes[i] = NULL;
   }
@@ -1105,12 +1127,12 @@ static int msWCSValidateAndFindAxes20(
     if(params->axes[iParamAxis]->subset != NULL) {
       if(params->axes[iParamAxis]->subset->timeOrScalar == MS_WCS20_TIME_VALUE) {
         msSetError(MS_WCSERR, "Time values for subsets are not supported. ",
-                   "msWCSCreateBoundingBox20()");
+                   "msWCSValidateAndFindAxes20()");
         return MS_FAILURE;
       }
       if(params->axes[iParamAxis]->subset->operation == MS_WCS20_SLICE) {
         msSetError(MS_WCSERR, "Subset operation 'slice' is not supported.",
-                   "msWCSCreateBoundingBox20()");
+                   "msWCSValidateAndFindAxes20()");
         return MS_FAILURE;
       }
     }
@@ -1125,7 +1147,7 @@ static int msWCSValidateAndFindAxes20(
           if(outAxes[iAcceptedAxis] != NULL) {
             msSetError(MS_WCSERR, "The axis with the name '%s' corresponds "
                        "to the same axis as the subset with the name '%s'.",
-                       "msWCSValidateAndFindSubsets20()",
+                       "msWCSValidateAndFindAxes20()",
                        outAxes[iAcceptedAxis]->name, params->axes[iParamAxis]->name);
             return MS_FAILURE;
           }
@@ -1145,7 +1167,7 @@ static int msWCSValidateAndFindAxes20(
     /* exit and throw error                             */
     if(found == 0) {
       msSetError(MS_WCSERR, "Invalid subset axis '%s'.",
-                 "msWCSValidateAndFindSubsets20()", params->axes[iParamAxis]->name);
+                 "msWCSValidateAndFindAxes20()", params->axes[iParamAxis]->name);
       return MS_FAILURE;
     }
   }
@@ -1690,7 +1712,7 @@ static int msWCSWriteFile20(mapObj* map, imageObj* image, wcs20ParamsObjPtr para
                       "Content-Disposition: INLINE\r\n\r\n",
                       MS_IMAGE_EXTENSION(map->outputformat));
     } else {
-      msIO_setHeader("Content-Type",MS_IMAGE_MIME_TYPE(map->outputformat));
+      msIO_setHeader("Content-Type","%s",MS_IMAGE_MIME_TYPE(map->outputformat));
       msIO_setHeader("Content-Description","coverage data");
       msIO_setHeader("Content-Transfer-Encoding","binary");
 
@@ -1780,7 +1802,7 @@ static int msWCSWriteFile20(mapObj* map, imageObj* image, wcs20ParamsObjPtr para
           all_files[i],
           all_files[i]);
       } else {
-        msIO_setHeader("Content-Type",mimetype);
+        msIO_setHeader("Content-Type","%s",mimetype);
         msIO_setHeader("Content-Description","coverage data");
         msIO_setHeader("Content-Transfer-Encoding","binary");
         msIO_setHeader("Content-ID","coverage/%s",all_files[i]);
@@ -1855,6 +1877,7 @@ static int msWCSGetCoverageMetadata20(layerObj *layer, wcs20coverageMetadataObj
 {
   char  *srs_uri = NULL;
   int i = 0;
+  memset(cm,0,sizeof(wcs20coverageMetadataObj));
   if ( msCheckParentPointer(layer->map,"map") == MS_FAILURE )
     return MS_FAILURE;
 
@@ -2080,7 +2103,7 @@ static int msWCSGetCoverageMetadata20(layerObj *layer, wcs20coverageMetadataObj
         msSetError( MS_WCSERR,
                     "Wrong number of band names given in layer '%s'. "
                     "Expected %d, got %d.", "msWCSGetCoverageMetadata20()",
-                    layer->name, cm->numbands, num_band_names );
+                    layer->name, (int)cm->numbands, num_band_names );
         return MS_FAILURE;
       }
 
@@ -2351,6 +2374,7 @@ int msWCSException20(mapObj *map, const char *exceptionCode,
                      const char *locator, const char *version)
 {
   int size = 0;
+  char *status = "400 Bad Request";
   char *errorString = NULL;
   char *errorMessage = NULL;
   char *schemasLocation = NULL;
@@ -2417,6 +2441,18 @@ int msWCSException20(mapObj *map, const char *exceptionCode,
 
   xmlDocSetRootElement(psDoc, psRootNode);
 
+  if(EQUAL(exceptionCode, "OperationNotSupported")
+     || EQUAL(exceptionCode, "OptionNotSupported")) {
+    status = "501 Not Implemented";
+  }
+  else if (EQUAL(exceptionCode, "NoSuchCoverage")
+           || EQUAL(exceptionCode, "emptyCoverageIdList")
+           || EQUAL(exceptionCode, "InvalidAxisLabel")
+           || EQUAL(exceptionCode, "InvalidSubsetting")) {
+    status = "404 Not Found";
+  }
+
+  msIO_setHeader("Status", "%s", status);
   if (encoding)
     msIO_setHeader("Content-Type","text/xml; charset=%s", encoding);
   else
@@ -2957,29 +2993,10 @@ int msWCSDescribeCoverage20(mapObj *map, wcs20ParamsObjPtr params, owsRequestObj
 /*      is found out.                                                   */
 /************************************************************************/
 
-static int msWCSGetCoverage20_FinalizeParamsObj(wcs20ParamsObjPtr params)
+static int msWCSGetCoverage20_FinalizeParamsObj(wcs20ParamsObjPtr params, wcs20AxisObjPtr *axes)
 {
-  int returnValue;
-  static const int numAxis = 2;
-  char *validXAxisNames[] = {"x", "xaxis", "x-axis", "x_axis", "long", "long_axis", "long-axis", "lon", "lon_axis", "lon-axis", NULL};
-  char *validYAxisNames[] = {"y", "yaxis", "y-axis", "y_axis", "lat", "lat_axis", "lat-axis", NULL};
-  char ***validAxisNames;
   char *crs = NULL;
-  wcs20AxisObjPtr *axes;
-
-  axes = (wcs20AxisObjPtr*)msSmallMalloc(sizeof(wcs20AxisObjPtr) * numAxis);
-
-  validAxisNames = msSmallCalloc(sizeof(char**), numAxis);
-  validAxisNames[0] = validXAxisNames;
-  validAxisNames[1] = validYAxisNames;
-
-  returnValue = msWCSValidateAndFindAxes20(params, validAxisNames, numAxis, axes);
-  msFree(validAxisNames);
-  if(returnValue != MS_SUCCESS) {
-    msFree(axes);
-    return MS_FAILURE;
-  }
-
+  
   if (axes[0] != NULL) {
     if(axes[0]->subset != NULL) {
       msDebug("Subset for X-axis found: %s\n", axes[0]->subset->axis);
@@ -3007,7 +3024,6 @@ static int msWCSGetCoverage20_FinalizeParamsObj(wcs20ParamsObjPtr params)
         if(!EQUAL(crs, axes[1]->subset->crs)) {
           msSetError(MS_WCSERR, "CRS for axis %s and axis %s are not the same.",
                      "msWCSCreateBoundingBox20()", axes[0]->name, axes[1]->name);
-          msFree(axes);
           return MS_FAILURE;
         }
       } else {
@@ -3024,13 +3040,10 @@ static int msWCSGetCoverage20_FinalizeParamsObj(wcs20ParamsObjPtr params)
       msSetError(MS_WCSERR, "The units of measure of the resolution for"
                  "axis %s and axis %s are not the same.",
                  "msWCSCreateBoundingBox20()", axes[0]->name, axes[1]->name);
-      msFree(axes);
       return MS_FAILURE;
     }
   }
 
-  msFree(axes);
-
   /* check if projections are equal */
   if(crs != NULL) {
     params->subsetcrs = msStrdup(crs);
@@ -3167,9 +3180,9 @@ int msWCSGetCoverage20(mapObj *map, cgiRequestObj *request,
   /* throw exception if no Layer was found */
   if (layer == NULL) {
     msSetError(MS_WCSERR,
-               "COVERAGE=%s not found, not in supported layer list. A layer might be disabled for \
+               "COVERAGEID=%s not found, not in supported layer list. A layer might be disabled for \
 this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", params->ids[0]);
-    return msWCSException(map, "InvalidParameterValue", "coverage",
+    return msWCSException(map, "NoSuchCoverage", "coverageid",
                           params->version);
   }
   /* retrieve coverage metadata  */
@@ -3203,9 +3216,20 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
                           "projection", params->version);
   }
 
-  if(msWCSGetCoverage20_FinalizeParamsObj(params) == MS_FAILURE) {
-    msWCSClearCoverageMetadata20(&cm);
-    return msWCSException(map, "InvalidParameterValue", "extent", params->version);
+  {
+    wcs20AxisObjPtr *axes;
+    axes = msSmallMalloc(sizeof(wcs20AxisObjPtr) * 2);
+    if(msWCSValidateAndFindAxes20(params, axes) == MS_FAILURE) {
+      msWCSClearCoverageMetadata20(&cm);
+      msFree(axes);
+      return msWCSException(map, "InvalidAxisLabel", "subset", params->version);
+    }
+    if(msWCSGetCoverage20_FinalizeParamsObj(params, axes) == MS_FAILURE) {
+      msWCSClearCoverageMetadata20(&cm);
+      msFree(axes);
+      return msWCSException(map, "InvalidParameterValue", "extent", params->version);
+    }
+    msFree(axes);
   }
 
   subsets = params->bbox;
@@ -3505,6 +3529,69 @@ this request. Check wcs/ows_enable_request settings.", "msWCSGetCoverage20()", p
     return msWCSException(map, NULL, NULL, params->version);
   }
 
+  if(layer->mask) {
+    int maskLayerIdx = msGetLayerIndex(map,layer->mask);
+    layerObj *maskLayer;
+    outputFormatObj *altFormat;
+    if(maskLayerIdx == -1) {
+      msSetError(MS_MISCERR, "Layer (%s) references unknown mask layer (%s)", "msDrawLayer()",
+                 layer->name,layer->mask);
+      return (MS_FAILURE);
+    }
+    maskLayer = GET_LAYER(map, maskLayerIdx);
+    if(!maskLayer->maskimage) {
+      int i,retcode;
+      int origstatus, origlabelcache;
+      char *origImageType = msStrdup(map->imagetype);
+      altFormat =  msSelectOutputFormat(map, "png24");
+      msInitializeRendererVTable(altFormat);
+      /* TODO: check the png24 format hasn't been tampered with, i.e. it's agg */
+      maskLayer->maskimage= msImageCreate(image->width, image->height,altFormat,
+                                          image->imagepath, image->imageurl, map->resolution, map->defresolution, NULL);
+      if (!maskLayer->maskimage) {
+        msSetError(MS_MISCERR, "Unable to initialize mask image.", "msDrawLayer()");
+        return (MS_FAILURE);
+      }
+
+      /*
+       * force the masked layer to status on, and turn off the labelcache so that
+       * eventual labels are added to the temporary image instead of being added
+       * to the labelcache
+       */
+      origstatus = maskLayer->status;
+      origlabelcache = maskLayer->labelcache;
+      maskLayer->status = MS_ON;
+      maskLayer->labelcache = MS_OFF;
+
+      /* draw the mask layer in the temporary image */
+      retcode = msDrawLayer(map, maskLayer, maskLayer->maskimage);
+      maskLayer->status = origstatus;
+      maskLayer->labelcache = origlabelcache;
+      if(retcode != MS_SUCCESS) {
+        return MS_FAILURE;
+      }
+      /*
+       * hack to work around bug #3834: if we have use an alternate renderer, the symbolset may contain
+       * symbols that reference it. We want to remove those references before the altFormat is destroyed
+       * to avoid a segfault and/or a leak, and so the the main renderer doesn't pick the cache up thinking
+       * it's for him.
+       */
+      for(i=0; i<map->symbolset.numsymbols; i++) {
+        if (map->symbolset.symbol[i]!=NULL) {
+          symbolObj *s = map->symbolset.symbol[i];
+          if(s->renderer == MS_IMAGE_RENDERER(maskLayer->maskimage)) {
+            MS_IMAGE_RENDERER(maskLayer->maskimage)->freeSymbol(s);
+            s->renderer = NULL;
+          }
+        }
+      }
+      /* set the imagetype from the original outputformat back (it was removed by msSelectOutputFormat() */
+      msFree(map->imagetype);
+      map->imagetype = origImageType;
+      
+    }
+  }
+
   /* Actually produce the "grid". */
   if( MS_RENDERER_RAWDATA(map->outputformat) ) {
     status = msDrawRasterLayerLow( map, layer, image, NULL );
diff --git a/mapwfs.c b/mapwfs.c
index 1b1d10b..8fc30bc 100644
--- a/mapwfs.c
+++ b/mapwfs.c
@@ -34,6 +34,7 @@
 
 /* There is a dependency to GDAL/OGR for the GML driver and MiniXML parser */
 #include "cpl_minixml.h"
+#include "cpl_conv.h"
 
 #include "mapogcfilter.h"
 #include "mapowscommon.h"
@@ -615,7 +616,7 @@ int msWFSGetCapabilities(mapObj *map, wfsParamsObj *wfsparams, cgiRequestObj *re
       iVersion = msOWSParseVersionString(tokens[i]);
 
       if (iVersion == -1) {
-        msSetError(MS_WFSERR, "Invalid version format.", "msWFSGetCapabilities()", tokens[i]);
+        msSetError(MS_WFSERR, "Invalid version format : %s.", "msWFSGetCapabilities()", tokens[i]);
         msFreeCharArray(tokens, j);
         return msWFSException(map, "acceptversions", "VersionNegotiationFailed",wmtver);
       }
@@ -1117,7 +1118,7 @@ this request. Check wfs/ows_enable_request settings.", "msWFSDescribeFeatureType
   if (value)
     msIO_setHeader("Content-Type","%s; charset=%s",mimetype, value);
   else
-    msIO_setHeader("Content-Type",mimetype);
+    msIO_setHeader("Content-Type","%s",mimetype);
   msIO_sendHeaders();
 
   if (mimetype)
@@ -1540,7 +1541,7 @@ static int msWFSGetFeature_GMLPostfix( mapObj *map,
     msIO_printf("</wfs:FeatureCollection>\n\n");
   else {
     if(paramsObj->pszVersion && strncmp(paramsObj->pszVersion,"1.1",3) == 0)
-      msIO_printf("</wfs:FeatureCollection>\n\n", gmlinfo->user_namespace_prefix, gmlinfo->collection_name);
+      msIO_printf("</wfs:FeatureCollection>\n\n");
     else
       msIO_printf("</%s:%s>\n\n", gmlinfo->user_namespace_prefix, gmlinfo->collection_name);
   }
@@ -1952,13 +1953,15 @@ int msWFSGetFeature(mapObj *map, wfsParamsObj *paramsObj, cgiRequestObj *req, ow
     layerObj *lp;
     lp = GET_LAYER(map, j);
     if (lp->status == MS_ON) {
+      /* No reason to handle tolerances for WFS GetFeature */
+      lp->tolerance = 0;
       lpQueried = GET_LAYER(map, j);
       nQueriedLayers++;
     }
   }
 
-  if (paramsObj->nStartIndex > 0) {
-    startindex = paramsObj->nStartIndex;
+  if (paramsObj->nStartIndex > -1) {
+    startindex = 1 + paramsObj->nStartIndex;
     map->query.startindex = startindex;    
   } 
 
@@ -2125,7 +2128,7 @@ this request. Check wfs/ows_enable_request settings.", "msWFSGetFeature()", laye
         ms_error = msGetErrorObj();
 
         if(ms_error->code != MS_NOTFOUND) {
-          msSetError(MS_WFSERR, "FLTApplyFilterToLayer() failed", "msWFSGetFeature()", pszFilter);
+          msSetError(MS_WFSERR, "FLTApplyFilterToLayer() failed", "msWFSGetFeature()");
           return msWFSException(map, "mapserv", "NoApplicableCode", paramsObj->pszVersion);
         }
       }
@@ -2397,7 +2400,7 @@ this request. Check wfs/ows_enable_request settings.", "msWFSGetFeature()",
     if (value)
       msIO_setHeader("Content-Type","%s; charset=%s", output_mime_type,value);
     else
-      msIO_setHeader("Content-Type",output_mime_type);
+      msIO_setHeader("Content-Type","%s",output_mime_type);
     msIO_sendHeaders();
 
     status = msWFSGetFeature_GMLPreamble( map, req, &gmlinfo, paramsObj,
@@ -3170,7 +3173,7 @@ int msWFSParseRequest(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_re
           while (psQuery &&  psQuery->pszValue &&
                  strcasecmp(psQuery->pszValue, "Query") == 0) {
             /* get SRS */
-            pszValue = CPLGetXMLValue(psGetFeature,  "srsName",
+            pszValue = CPLGetXMLValue(psQuery,  "srsName",
                                       NULL);
             if (pszValue)
               wfsparams->pszSrs = msStrdup(pszValue);
@@ -3245,14 +3248,17 @@ int msWFSParseRequest(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_re
             psFilter = CPLGetXMLNode(psQuery, "Filter");
 
             if (psFilter) {
-              if (!bMultiLayer)
-                wfsparams->pszFilter = CPLSerializeXMLTree(psFilter);
+              if (!bMultiLayer) {
+                char* pszCPLTmp = CPLSerializeXMLTree(psFilter);
+                wfsparams->pszFilter = msStrdup(pszCPLTmp);
+                CPLFree(pszCPLTmp);
+              }
               else {
                 pszSerializedFilter = CPLSerializeXMLTree(psFilter);
                 pszTmp = (char *)msSmallMalloc(sizeof(char)*
                                                (strlen(pszSerializedFilter)+3));
                 sprintf(pszTmp, "(%s)", pszSerializedFilter);
-                free(pszSerializedFilter);
+                CPLFree(pszSerializedFilter);
 
                 if (wfsparams->pszFilter == NULL)
                   wfsparams->pszFilter = msStrdup(pszTmp);
@@ -3352,7 +3358,7 @@ int msWFSParseRequest(mapObj *map, cgiRequestObj *request, owsRequestObj *ows_re
 
       }/* end of DescibeFeatureType */
     }
-#endif /*USE_LIBXML2_WFS*/
+#endif /*WFS_USE_LIBXML2*/
 
   }
 #endif
diff --git a/mapwfs11.c b/mapwfs11.c
index aac9f5b..93cbd4a 100644
--- a/mapwfs11.c
+++ b/mapwfs11.c
@@ -209,11 +209,10 @@ static xmlNodePtr msWFSDumpLayer11(mapObj *map, layerObj *lp, xmlNsPtr psNsOws)
   /*bbox*/
   if (msOWSGetLayerExtent(map, lp, "FO", &ext) == MS_SUCCESS) {
     /*convert to latlong*/
-    if (lp->projection.numargs > 0) {
-      if (!pj_is_latlong(&lp->projection.proj))
-        msProjectRect(&lp->projection, NULL, &ext);
-    } else if (map->projection.numargs > 0 && !pj_is_latlong(&map->projection.proj))
-      msProjectRect(&map->projection, NULL, &ext);
+    if (lp->projection.numargs > 0)
+      msOWSProjectToWGS84(&lp->projection, &ext);
+    else
+      msOWSProjectToWGS84(&map->projection, &ext);
 
     xmlAddChild(psRootNode,
                 msOWSCommonWGS84BoundingBox( psNsOws, 2,
diff --git a/mapwfslayer.c b/mapwfslayer.c
index 61473b1..0b73c48 100644
--- a/mapwfslayer.c
+++ b/mapwfslayer.c
@@ -29,6 +29,7 @@
 #include "mapserver.h"
 #include "maperror.h"
 #include "mapows.h"
+#include "mapproject.h"
 
 #include <time.h>
 #include <assert.h>
@@ -68,7 +69,7 @@ static wfsParamsObj *msBuildRequestParams(mapObj *map, layerObj *lp,
   rectObj bbox;
   const char *pszTmp;
   int nLength, i = 0;
-  char *pszVersion, *pszTypeName, *pszGeometryName = NULL;
+  char *pszVersion, *pszTypeName;
 
   if (!map || !lp || !bbox_ret)
     return NULL;
@@ -417,10 +418,43 @@ static char *msBuildWFSLayerGetURL(mapObj *map, layerObj *lp, rectObj *bbox,
   if (psParams->pszFilter) {
     snprintf(pszURL + strlen(pszURL), bufferSize-strlen(pszURL), "&FILTER=%s",
              msEncodeUrl(psParams->pszFilter));
-  } else
-    snprintf(pszURL + strlen(pszURL), bufferSize-strlen(pszURL),
-             "&BBOX=%.15g,%.15g,%.15g,%.15g",
-             bbox->minx, bbox->miny, bbox->maxx, bbox->maxy);
+  } else {
+	  /*
+	   * take care about the axis order for WFS 1.1
+	   */
+	  char *projUrn;
+	  const char *projEpsg;
+	  projUrn = msOWSGetProjURN(&(lp->projection), &(lp->metadata), "FO", 1);
+	  projEpsg = msOWSGetEPSGProj(&(lp->projection), &(lp->metadata), "FO", 1);
+
+	  /*
+	   * WFS 1.1 supports including the SRS in the BBOX parameter, should
+	   * respect axis order in the BBOX and has a separate SRSNAME parameter for
+	   * the desired result SRS.
+	   * WFS 1.0 is always easting, northing, doesn't include the SRS as part of
+	   * the BBOX parameter and has no SRSNAME parameter: if we don't have a
+	   * URN then fallback to WFS 1.0 style */
+	  if ((strncmp(pszVersion, "1.1", 3) == 0) && projUrn) {
+		 if (projEpsg && (strncmp(projEpsg, "EPSG:", 5) == 0) &&
+				 msIsAxisInverted(atoi(projEpsg + 5))) {
+			 snprintf(pszURL + strlen(pszURL), bufferSize - strlen(pszURL),
+					 "&BBOX=%.15g,%.15g,%.15g,%.15g,%s&SRSNAME=%s",
+					 bbox->miny, bbox->minx, bbox->maxy, bbox->maxx,
+					 projUrn, projUrn);
+		 } else {
+			 snprintf(pszURL + strlen(pszURL), bufferSize - strlen(pszURL),
+					 "&BBOX=%.15g,%.15g,%.15g,%.15g,%s&SRSNAME=%s",
+					 bbox->minx, bbox->miny, bbox->maxy, bbox->maxy,
+					 projUrn, projUrn);
+		 }
+	  } else {
+		  snprintf(pszURL + strlen(pszURL), bufferSize - strlen(pszURL),
+				  "&BBOX=%.15g,%.15g,%.15g,%.15g",
+				  bbox->minx, bbox->miny, bbox->maxx, bbox->maxy);
+	  }
+
+	  msFree(projUrn);
+  }
 
   if (psParams->nMaxFeatures > 0)
     snprintf(pszURL + strlen(pszURL), bufferSize-strlen(pszURL),
@@ -540,19 +574,15 @@ int msPrepareWFSLayerRequest(int nLayerId, mapObj *map, layerObj *lp,
     pszURL = msStrdup(lp->connection);
   }
 
-
   /* ------------------------------------------------------------------
    * check to see if a the metadata wfs_connectiontimeout is set. If it is
    * the case we will use it, else we use the default which is 30 seconds.
    * First check the metadata in the layer object and then in the map object.
    * ------------------------------------------------------------------ */
   nTimeout = 30;  /* Default is 30 seconds  */
-  if ((pszTmp = msOWSLookupMetadata(&(lp->metadata),
+  if ((pszTmp = msOWSLookupMetadata2(&(lp->metadata), &(map->web.metadata),
                                     "FO", "connectiontimeout")) != NULL) {
     nTimeout = atoi(pszTmp);
-  } else if ((pszTmp = msOWSLookupMetadata(&(map->web.metadata),
-                       "FO", "connectiontimeout")) != NULL) {
-    nTimeout = atoi(pszTmp);
   }
 
   /*------------------------------------------------------------------
@@ -561,7 +591,7 @@ int msPrepareWFSLayerRequest(int nLayerId, mapObj *map, layerObj *lp,
    * the connection
    * ------------------------------------------------------------------ */
   if ((pszTmp = msOWSLookupMetadata(&(lp->metadata),
-                                    "MO", "http_cookie")) != NULL) {
+                                    "FO", "http_cookie")) != NULL) {
     if(strcasecmp(pszTmp, "forward") == 0) {
       pszTmp= msLookupHashTable(&(map->web.metadata),"http_cookie_data");
       if(pszTmp != NULL) {
@@ -571,7 +601,7 @@ int msPrepareWFSLayerRequest(int nLayerId, mapObj *map, layerObj *lp,
       pszHTTPCookieData = msStrdup(pszTmp);
     }
   } else if ((pszTmp = msOWSLookupMetadata(&(map->web.metadata),
-                       "MO", "http_cookie")) != NULL) {
+                       "FO", "http_cookie")) != NULL) {
     if(strcasecmp(pszTmp, "forward") == 0) {
       pszTmp= msLookupHashTable(&(map->web.metadata),"http_cookie_data");
       if(pszTmp != NULL) {
@@ -623,6 +653,10 @@ int msPrepareWFSLayerRequest(int nLayerId, mapObj *map, layerObj *lp,
   pasReqInfo[(*numRequests)].bbox = bbox;
   pasReqInfo[(*numRequests)].debug = lp->debug;
 
+  if (msHTTPAuthProxySetup(&(map->web.metadata), &(lp->metadata),
+                           pasReqInfo, *numRequests, map, "FO") != MS_SUCCESS)
+    return MS_FAILURE;
+  
   /* ------------------------------------------------------------------
    * Pre-Open the layer now, (i.e. alloc and fill msWFSLayerInfo inside
    * layer obj).  Layer will be ready for use when the main mapserver
diff --git a/mapwms.c b/mapwms.c
index 2b96574..5568970 100644
--- a/mapwms.c
+++ b/mapwms.c
@@ -31,6 +31,7 @@
 
 #include "mapserver.h"
 #include "maperror.h"
+#include "mapthread.h"
 #include "mapgml.h"
 #include <ctype.h>
 #include "maptemplate.h"
@@ -204,54 +205,57 @@ int msWMSException(mapObj *map, int nVersion, const char *exception_code,
   return MS_FAILURE; /* so that we can call 'return msWMSException();' anywhere */
 }
 
-void msWMSSetTimePattern(const char *timepatternstring, char *timestring)
+int msWMSSetTimePattern(const char *timepatternstring, char *timestring, int checkonly)
 {
-  char *time = NULL;
-  char **atimes, **tokens = NULL;
-  int numtimes, ntmp, i = 0;
+  char **atimes, **ranges, **patterns;
+  int numtimes, numpatterns, numranges, i, j, k;
   char *tmpstr = NULL;
+  int ret = MS_SUCCESS;
 
   if (timepatternstring && timestring) {
     /* parse the time parameter to extract a distinct time. */
     /* time value can be dicrete times (eg 2004-09-21), */
     /* multiple times (2004-09-21, 2004-09-22, ...) */
     /* and range(s) (2004-09-21/2004-09-25, 2004-09-27/2004-09-29) */
-    if (strstr(timestring, ",") == NULL &&
-        strstr(timestring, "/") == NULL) { /* discrete time */
-      time = msStrdup(timestring);
-    } else {
-      atimes = msStringSplit (timestring, ',', &numtimes);
-      if (numtimes >=1 && atimes) {
-        tokens = msStringSplit(atimes[0],  '/', &ntmp);
-        if (ntmp == 2 && tokens) { /* range */
-          time = msStrdup(tokens[0]);
-        } else { /* multiple times */
-          time = msStrdup(atimes[0]);
-        }
-        msFreeCharArray(tokens, ntmp);
-        msFreeCharArray(atimes, numtimes);
-      }
-    }
+    atimes = msStringSplit(timestring, ',', &numtimes);
+    
     /* get the pattern to use */
-    if (time) {
-      tokens = msStringSplit(timepatternstring, ',', &ntmp);
-      if (tokens && ntmp >= 1) {
-        for (i=0; i<ntmp; i++) {
-          if (tokens[i] && strlen(tokens[i]) > 0) {
-            msStringTrimBlanks(tokens[i]);
-            tmpstr = msStringTrimLeft(tokens[i]);
-            if (msTimeMatchPattern(time, tmpstr) == MS_TRUE) {
-              msSetLimitedPattersToUse(tmpstr);
-              break;
+    if (numtimes>0) {      
+      patterns = msStringSplit(timepatternstring, ',', &numpatterns);      
+      for (j=0; j<numtimes;++j) {
+        ranges = msStringSplit(atimes[j],  '/', &numranges);
+        for (k=0; k<numranges;++k) {
+          int match = MS_FALSE;
+          for (i=0; i<numpatterns; ++i) {
+            if (patterns[i] && strlen(patterns[i]) > 0) {
+              msStringTrimBlanks(patterns[i]);
+              tmpstr = msStringTrimLeft(patterns[i]);
+              if (msTimeMatchPattern(ranges[k], tmpstr) == MS_TRUE) {
+                if (!checkonly) msSetLimitedPattersToUse(tmpstr);
+                match = MS_TRUE;
+                break;
+              }
             }
           }
+          if (match == MS_FALSE) {
+            msSetError(MS_WMSERR, "Time value %s given does not match the time format pattern.",
+                   "msWMSSetTimePattern", ranges[k]);            
+            ret = MS_FAILURE;
+            break;
+          }
         }
-        msFreeCharArray(tokens, ntmp);
+         msFreeCharArray(ranges, numranges);
+         if (ret == MS_FAILURE)
+           break;
       }
-      free(time);
-    }
 
+      msFreeCharArray(patterns, numpatterns);
+      msFreeCharArray(atimes, numtimes);              
+
+    }
   }
+
+  return ret;
 }
 
 /*
@@ -262,8 +266,12 @@ int msWMSApplyTime(mapObj *map, int version, char *time, char *wms_exception_for
   int i=0;
   layerObj *lp = NULL;
   const char *timeextent, *timefield, *timedefault, *timpattern = NULL;
-
+    
   if (map) {
+
+    timpattern = msOWSLookupMetadata(&(map->web.metadata), "MO",
+                                     "timeformat");
+    
     for (i=0; i<map->numlayers; i++) {
       lp = (GET_LAYER(map, i));
       if (lp->status != MS_ON && lp->status != MS_DEFAULT)
@@ -293,6 +301,17 @@ int msWMSApplyTime(mapObj *map, int version, char *time, char *wms_exception_for
             msLayerSetTimeFilter(lp, timedefault, timefield);
           }
         } else {
+          /* check to see if there is a list of possible patterns defined */
+          /* if it is the case, use it to set the time pattern to use */
+          /* for the request.
+
+             Last argument is set to TRUE (checkonly) to not trigger the
+             patterns info setting.. to only apply the wms_timeformats on the
+             user request values, not the mapfile values. */
+          if (timpattern && time && strlen(time) > 0) 
+            if (msWMSSetTimePattern(timpattern, time, MS_TRUE) == MS_FAILURE) 
+              return msWMSException(map, version,"InvalidDimensionValue", wms_exception_format);
+          
           /* check if given time is in the range */
           if (msValidateTimeValue(time, timeextent) == MS_FALSE) {
             if (timedefault == NULL) {
@@ -318,14 +337,13 @@ int msWMSApplyTime(mapObj *map, int version, char *time, char *wms_exception_for
         }
       }
     }
-    /* check to see if there is a list of possible patterns defined */
-    /* if it is the case, use it to set the time pattern to use */
-    /* for the request */
 
-    timpattern = msOWSLookupMetadata(&(map->web.metadata), "MO",
-                                     "timeformat");
+    /* last argument is MS_FALSE to trigger a method call that set the patterns
+       info. some drivers use it */
     if (timpattern && time && strlen(time) > 0)
-      msWMSSetTimePattern(timpattern, time);
+      if (msWMSSetTimePattern(timpattern, time, MS_FALSE) == MS_FAILURE)
+        return msWMSException(map, version,"InvalidDimensionValue", wms_exception_format);
+    
   }
 
   return MS_SUCCESS;
@@ -749,7 +767,7 @@ int msWMSApplyDimension(layerObj *lp, int version, char *dimensionname, char *va
       }
     } else
       msSetError(MS_WMSERR, "Dimension %s : invalid settings. Make sure that item, units and extent are set.", "msWMSApplyDimension",
-                 dimension, currentvalue);
+                 dimension);
 
     msFree(dimensionitemname);
     msFree(dimensionextentname);
@@ -772,6 +790,7 @@ int msWMSLoadGetMapParams(mapObj *map, int nVersion,
   int iUnits = -1;
   int nLayerOrder = 0;
   int transparent = MS_NOOVERRIDE;
+  int bbox_pixel_is_point = MS_FALSE;
   outputFormatObj *format = NULL;
   int validlayers = 0;
   char *styles = NULL;
@@ -1108,6 +1127,10 @@ int msWMSLoadGetMapParams(mapObj *map, int nVersion,
     else if (strcasecmp(names[i], "ANGLE") == 0) {
       msMapSetRotation(map, atof(values[i]));
     }
+    /* Vendor-specific bbox_pixel_is_point, added in ticket #4652 */
+    else if (strcasecmp(names[i], "BBOX_PIXEL_IS_POINT") == 0) {
+      bbox_pixel_is_point = (strcasecmp(values[i], "TRUE") == 0);
+    }
   }
 
   /*validate the exception format WMS 1.3.0 section 7.3.3.11*/
@@ -1664,7 +1687,7 @@ this request. Check wms/ows_enable_request settings.",
   ** in by half a pixel.  We wait till here because we want to ensure we
   ** are doing this in terms of the correct WIDTH and HEIGHT.
   */
-  if( adjust_extent && map->width>1 && map->height>1 ) {
+  if( adjust_extent && map->width>1 && map->height>1 && !bbox_pixel_is_point) {
     double  dx, dy;
 
     dx = (map->extent.maxx - map->extent.minx) / map->width;
@@ -2276,7 +2299,6 @@ int msDumpLayer(mapObj *map, layerObj *lp, int nVersion, const char *script_url_
                       MS_FALSE, MS_FALSE, MS_FALSE, MS_TRUE, MS_TRUE,
                       NULL, NULL, NULL, NULL, NULL, "        ");
 
-
   /* The LegendURL reside in a style. The Web Map Context spec already  */
   /* included the support on this in mapserver. However, it is not in the  */
   /* wms_legendurl_... metadatas it's in the styles metadata, */
@@ -2390,7 +2412,7 @@ int msDumpLayer(mapObj *map, layerObj *lp, int nVersion, const char *script_url_
             }
             group_layers =(int *)msSmallRealloc(group_layers, sizeof(int)*num_layers);
             
-            if (msLegendCalcSize(map, 1, &size_x, &size_y,  group_layers, num_layers) == MS_SUCCESS) {
+            if (msLegendCalcSize(map, 1, &size_x, &size_y,  group_layers, num_layers, NULL, 1) == MS_SUCCESS) {
               const char *styleName = NULL;
               char *pszEncodedStyleName = NULL;
               layerObj *lp2 = NULL;
@@ -2446,7 +2468,7 @@ int msDumpLayer(mapObj *map, layerObj *lp, int nVersion, const char *script_url_
                           break;
                         }
                       }
-                      if (l < lp2->numclasses)
+                      if (lp2 && l < lp2->numclasses)
                         break;
                     }
                     if (j < numNestedGroups[lp->index])
@@ -3265,7 +3287,7 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
           char width[10], height[10];
 
           group_layers =(int *)msSmallRealloc(group_layers, sizeof(int)*num_layers);
-          if (msLegendCalcSize(map, 1, &size_x, &size_y,  group_layers , num_layers) == MS_SUCCESS) {
+          if (msLegendCalcSize(map, 1, &size_x, &size_y,  group_layers , num_layers, NULL, 1) == MS_SUCCESS) {
             bufferSize = strlen(script_url_encoded)+300;
             pszLegendURL = (char*)msSmallMalloc(bufferSize);
             snprintf(width, sizeof(width), "%d", size_x);
@@ -3310,6 +3332,7 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
       msIO_fprintf(stdout, "    </Style>\n");
       msFree(pszEncodedName);
       msFree(pszEncodedStyleName);
+
     }
 
     if (nVersion <  OWS_1_3_0)
@@ -3441,7 +3464,7 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
                   char width[10], height[10];
 
                   group_layers =(int *)msSmallRealloc(group_layers,  sizeof(int)*num_layers);
-                  if (msLegendCalcSize(map, 1, &size_x, &size_y,  group_layers , num_layers) == MS_SUCCESS) {
+                  if (msLegendCalcSize(map, 1, &size_x, &size_y,  group_layers , num_layers, NULL, 1) == MS_SUCCESS) {
                     bufferSize = strlen(script_url_encoded)+300;
                     pszLegendURL = (char*)msSmallMalloc(bufferSize);
                     snprintf(width, sizeof(width), "%d", size_x);
@@ -3541,69 +3564,75 @@ int msWMSGetCapabilities(mapObj *map, int nVersion, cgiRequestObj *req, owsReque
  * This function look for params that can be used
  * by mapserv when generating template.
 */
-int msTranslateWMS2Mapserv(char **names, char **values, int *numentries)
+int msTranslateWMS2Mapserv(const char **names, const char **values, int numentries, char ***translated_names, char ***translated_values, int *translated_numentries)
 {
-  int i=0;
-  int tmpNumentries = *numentries;;
-
-  for (i=0; i<*numentries; i++) {
+  int i=0, num_allocated = numentries;
+  *translated_names = (char**)msSmallMalloc(num_allocated * sizeof(char*));
+  *translated_values = (char**)msSmallMalloc(num_allocated * sizeof(char*));
+  *translated_numentries = 0;
+  for (i=0; i<numentries; i++) {
+    (*translated_values)[*translated_numentries] = msStrdup(values[i]);
+    (*translated_names)[*translated_numentries] = msStrdup(names[i]);
+    (*translated_numentries)++;
     if (strcasecmp("X", names[i]) == 0) {
-      values[tmpNumentries] = msStrdup(values[i]);
-      names[tmpNumentries] = msStrdup("img.x");
-
-      tmpNumentries++;
+      num_allocated++;
+      *translated_names = (char**)msSmallRealloc(*translated_names, num_allocated * sizeof(char*));
+      *translated_values = (char**)msSmallRealloc(*translated_values, num_allocated * sizeof(char*));
+      (*translated_values)[*translated_numentries] = msStrdup(values[i]);
+      (*translated_names)[*translated_numentries] = msStrdup("img.x");
+      (*translated_numentries)++;
     } else if (strcasecmp("Y", names[i]) == 0) {
-      values[tmpNumentries] = msStrdup(values[i]);
-      names[tmpNumentries] = msStrdup("img.y");
-
-      tmpNumentries++;
+      num_allocated++;
+      *translated_names = (char**)msSmallRealloc(*translated_names, num_allocated * sizeof(char*));
+      *translated_values = (char**)msSmallRealloc(*translated_values, num_allocated * sizeof(char*));
+      (*translated_values)[*translated_numentries] = msStrdup(values[i]);
+      (*translated_names)[*translated_numentries] = msStrdup("img.y");
+      (*translated_numentries)++;
     } else if (strcasecmp("LAYERS", names[i]) == 0) {
       char **layers;
       int tok;
       int j;
-
       layers = msStringSplit(values[i], ',', &tok);
-
+      num_allocated += tok;
+      *translated_names = (char**)msSmallRealloc(*translated_names, num_allocated * sizeof(char*));
+      *translated_values = (char**)msSmallRealloc(*translated_values, num_allocated * sizeof(char*));
       for (j=0; j<tok; j++) {
-        values[tmpNumentries] = layers[j];
+        (*translated_values)[*translated_numentries] = layers[j];
+        (*translated_names)[*translated_numentries] = msStrdup("layer");
+        (*translated_numentries)++;
         layers[j] = NULL;
-        names[tmpNumentries] = msStrdup("layer");
-
-        tmpNumentries++;
       }
-
       free(layers);
     } else if (strcasecmp("QUERY_LAYERS", names[i]) == 0) {
       char **layers;
       int tok;
       int j;
-
       layers = msStringSplit(values[i], ',', &tok);
-
+      num_allocated += tok;
+      *translated_names = (char**)msSmallRealloc(*translated_names, num_allocated * sizeof(char*));
+      *translated_values = (char**)msSmallRealloc(*translated_values, num_allocated * sizeof(char*));
       for (j=0; j<tok; j++) {
-        values[tmpNumentries] = layers[j];
+        (*translated_values)[*translated_numentries] = layers[j];
+        (*translated_names)[*translated_numentries] = msStrdup("qlayer");
+        (*translated_numentries)++;
         layers[j] = NULL;
-        names[tmpNumentries] = msStrdup("qlayer");
-
-        tmpNumentries++;
       }
-
       free(layers);
     } else if (strcasecmp("BBOX", names[i]) == 0) {
       char *imgext;
+      num_allocated++;
+      *translated_names = (char**)msSmallRealloc(*translated_names, num_allocated * sizeof(char*));
+      *translated_values = (char**)msSmallRealloc(*translated_values, num_allocated * sizeof(char*));
 
       /* Note msReplaceSubstring() works on the string itself, so we need to make a copy */
       imgext = msStrdup(values[i]);
       imgext = msReplaceSubstring(imgext, ",", " ");
-
-      values[tmpNumentries] = imgext;
-      names[tmpNumentries] = msStrdup("imgext");
-
-      tmpNumentries++;
+      (*translated_values)[*translated_numentries] = imgext;
+      (*translated_names)[*translated_numentries] = msStrdup("imgext");
+      (*translated_numentries)++;
     }
   }
 
-  *numentries = tmpNumentries;
 
   return MS_SUCCESS;
 }
@@ -3699,7 +3728,7 @@ int msWMSGetMap(mapObj *map, int nVersion, char **names, char **values, int nume
   }
 
   if (strcasecmp(map->imagetype, "application/openlayers")!=0) {
-    msIO_setHeader("Content-Type",MS_IMAGE_MIME_TYPE(map->outputformat));
+    msIO_setHeader("Content-Type", "%s", MS_IMAGE_MIME_TYPE(map->outputformat));
     msIO_sendHeaders();
     if (msSaveImage(map, img, NULL) != MS_SUCCESS) {
       msFreeImage(img);
@@ -3723,6 +3752,10 @@ int msDumpResult(mapObj *map, int bFormatHtml, int nVersion, char *wms_exception
     char **excitems=NULL;
     int numexcitems=0;
     const char *value;
+    size_t bufferSize=0;
+    size_t reqBuffSize;
+    char *tag=NULL;
+    const char *lineTemplate="    %s = '%s'\n";
 
     layerObj *lp;
     lp = (GET_LAYER(map, i));
@@ -3780,6 +3813,7 @@ int msDumpResult(mapObj *map, int bFormatHtml, int nVersion, char *wms_exception
 
       msInitShape(&shape);
       if (msLayerGetShape(lp, &shape, &(lp->resultcache->results[j])) != MS_SUCCESS) {
+        if (tag != NULL) msFree(tag);
         msFree(itemvisible);
         return msWMSException(map, nVersion, NULL, wms_exception_format);
       }
@@ -3787,14 +3821,30 @@ int msDumpResult(mapObj *map, int bFormatHtml, int nVersion, char *wms_exception
       msIO_printf("  Feature %ld: \n", lp->resultcache->results[j].shapeindex);
 
       for(k=0; k<lp->numitems; k++) {
-        if (itemvisible[k])
-          msIO_printf("    %s = '%s'\n", lp->items[k], shape.values[k]);
-      }
+        if (itemvisible[k]) {
+          reqBuffSize = strlen(lp->items[k]) + 7;
+          if (reqBuffSize > bufferSize) {
+            if (tag != NULL) msFree(tag);
+            /* allocate more buffer than we need to try and avoid need for
+               repeated reallocation */
+            bufferSize = reqBuffSize * 2;
+            tag = (char*)msSmallMalloc(bufferSize);
+          }
+          snprintf(tag, reqBuffSize, "%s_alias", lp->items[k]);
 
+          if((value = msOWSLookupMetadata(&(lp->metadata), "MO", tag)) != NULL)
+            msIO_printf(lineTemplate, value, shape.values[k]);
+          else
+            msIO_printf(lineTemplate, lp->items[k], shape.values[k]);
+
+        }
+      }
+ 
       msFreeShape(&shape);
       numresults++;
     }
 
+    if (tag != NULL) msFree(tag);
     msFree(itemvisible);
 
     /* msLayerClose(lp); */
@@ -4082,18 +4132,20 @@ int msWMSFeatureInfo(mapObj *map, int nVersion, char **names, char **values, int
   } else {
     mapservObj *msObj;
 
+    char **translated_names, **translated_values;
+    int translated_numentries;
     msObj = msAllocMapServObj();
 
     /* Translate some vars from WMS to mapserv */
-    msTranslateWMS2Mapserv(names, values, &numentries);
+    msTranslateWMS2Mapserv((const char**)names, (const char**)values, numentries, &translated_names, &translated_values, &translated_numentries);
 
     msObj->map = map;
     msFreeCharArray(msObj->request->ParamNames, msObj->request->NumParams);
     msFreeCharArray(msObj->request->ParamValues, msObj->request->NumParams);
-    msObj->request->ParamNames = names;
-    msObj->request->ParamValues = values;
+    msObj->request->ParamNames = translated_names;
+    msObj->request->ParamValues = translated_values;
     msObj->Mode = QUERY;
-    msObj->request->NumParams = numentries;
+    msObj->request->NumParams = translated_numentries;
     msObj->mappnt.x = point.x;
     msObj->mappnt.y = point.y;
 
@@ -4103,12 +4155,9 @@ int msWMSFeatureInfo(mapObj *map, int nVersion, char **names, char **values, int
     } else if (msReturnTemplateQuery(msObj, (char *)info_format, NULL) != MS_SUCCESS)
       return msWMSException(map, nVersion, NULL, wms_exception_format);
 
-    /* We don't want to free the map, and param names/values since they */
-    /* belong to the caller, set them to NULL before freeing the mapservObj */
+    /* We don't want to free the map since it */
+    /* belongs to the caller, set it to NULL before freeing the mapservObj */
     msObj->map = NULL;
-    msObj->request->ParamNames = NULL;
-    msObj->request->ParamValues = NULL;
-    msObj->request->NumParams = 0;
 
     msFreeMapServObj(msObj);
   }
@@ -4326,7 +4375,8 @@ int msWMSDescribeLayer(mapObj *map, int nVersion, char **names,
 ** msWMSGetLegendGraphic()
 */
 int msWMSLegendGraphic(mapObj *map, int nVersion, char **names,
-                       char **values, int numentries, char *wms_exception_format, owsRequestObj *ows_request)
+                       char **values, int numentries, char *wms_exception_format, owsRequestObj *ows_request,
+                       map_hittest *hittest)
 {
   char *pszLayer = NULL;
   char *pszFormat = NULL;
@@ -4348,197 +4398,210 @@ int msWMSLegendGraphic(mapObj *map, int nVersion, char **names,
   int *numNestedGroups = NULL;
   int *isUsedInNestedGroup = NULL;
 
-  sldenabled = msOWSLookupMetadata(&(map->web.metadata), "MO", "sld_enabled");
+  if(!hittest) {
+    /* we can skip alot of testing if we already have a hittest, as it has already been done in the hittesting phase */
 
-  if (sldenabled == NULL)
-    sldenabled = "true";
 
-  for(i=0; map && i<numentries; i++) {
-    if (strcasecmp(names[i], "LAYER") == 0) {
-      pszLayer = values[i];
-    } else if (strcasecmp(names[i], "WIDTH") == 0)
-      nWidth = atoi(values[i]);
-    else if (strcasecmp(names[i], "HEIGHT") == 0)
-      nHeight = atoi(values[i]);
-    else if (strcasecmp(names[i], "FORMAT") == 0)
-      pszFormat = values[i];
-    else if (strcasecmp(names[i], "SCALE") == 0)
-      psScale = values[i];
+    sldenabled = msOWSLookupMetadata(&(map->web.metadata), "MO", "sld_enabled");
+
+    if (sldenabled == NULL)
+      sldenabled = "true";
+
+    for(i=0; map && i<numentries; i++) {
+      if (strcasecmp(names[i], "LAYER") == 0) {
+        pszLayer = values[i];
+      } else if (strcasecmp(names[i], "WIDTH") == 0)
+        nWidth = atoi(values[i]);
+      else if (strcasecmp(names[i], "HEIGHT") == 0)
+        nHeight = atoi(values[i]);
+      else if (strcasecmp(names[i], "FORMAT") == 0)
+        pszFormat = values[i];
+      else if (strcasecmp(names[i], "SCALE") == 0)
+        psScale = values[i];
 #ifdef USE_OGR
-    /* -------------------------------------------------------------------- */
-    /*      SLD support :                                                   */
-    /*        - check if the SLD parameter is there. it is supposed to      */
-    /*      refer a valid URL containing an SLD document.                   */
-    /*        - check the SLD_BODY parameter that should contain the SLD    */
-    /*      xml string.                                                     */
-    /* -------------------------------------------------------------------- */
-    else if (strcasecmp(names[i], "SLD") == 0 &&
-             values[i] && strlen(values[i]) > 0 && strcasecmp(sldenabled, "true") == 0)
-      msSLDApplySLDURL(map, values[i], -1, NULL, NULL);
-    else if (strcasecmp(names[i], "SLD_BODY") == 0 &&
-             values[i] && strlen(values[i]) > 0 && strcasecmp(sldenabled, "true") == 0)
-      msSLDApplySLD(map, values[i], -1, NULL, NULL);
-    else if (strcasecmp(names[i], "RULE") == 0)
-      psRule = values[i];
-    else if (strcasecmp(names[i], "STYLE") == 0)
-      pszStyle = values[i];
+      /* -------------------------------------------------------------------- */
+      /*      SLD support :                                                   */
+      /*        - check if the SLD parameter is there. it is supposed to      */
+      /*      refer a valid URL containing an SLD document.                   */
+      /*        - check the SLD_BODY parameter that should contain the SLD    */
+      /*      xml string.                                                     */
+      /* -------------------------------------------------------------------- */
+      else if (strcasecmp(names[i], "SLD") == 0 &&
+          values[i] && strlen(values[i]) > 0 && strcasecmp(sldenabled, "true") == 0)
+        msSLDApplySLDURL(map, values[i], -1, NULL, NULL);
+      else if (strcasecmp(names[i], "SLD_BODY") == 0 &&
+          values[i] && strlen(values[i]) > 0 && strcasecmp(sldenabled, "true") == 0)
+        msSLDApplySLD(map, values[i], -1, NULL, NULL);
+      else if (strcasecmp(names[i], "RULE") == 0)
+        psRule = values[i];
+      else if (strcasecmp(names[i], "STYLE") == 0)
+        pszStyle = values[i];
 #endif
-    /* -------------------------------------------------------------------- */
-    /*      SLD support:                                                    */
-    /*        - because the request parameter "sld_version" is required in  */
-    /*          in WMS 1.3.0, it will be set regardless of OGR support.     */
-    /* -------------------------------------------------------------------- */
-    else if(strcasecmp(names[i], "SLD_VERSION") == 0)
-      sld_version = values[i];
-  }
+      /* -------------------------------------------------------------------- */
+      /*      SLD support:                                                    */
+      /*        - because the request parameter "sld_version" is required in  */
+      /*          in WMS 1.3.0, it will be set regardless of OGR support.     */
+      /* -------------------------------------------------------------------- */
+      else if(strcasecmp(names[i], "SLD_VERSION") == 0)
+        sld_version = values[i];
+    }
 
-  if (!pszLayer) {
-    msSetError(MS_WMSERR, "Mandatory LAYER parameter missing in GetLegendGraphic request.", "msWMSGetLegendGraphic()");
-    return msWMSException(map, nVersion, "LayerNotDefined", wms_exception_format);
-  }
-  if (!pszFormat) {
-    msSetError(MS_WMSERR, "Mandatory FORMAT parameter missing in GetLegendGraphic request.", "msWMSGetLegendGraphic()");
-    return msWMSException(map, nVersion, "InvalidFormat", wms_exception_format);
-  }
+    if (!pszLayer) {
+      msSetError(MS_WMSERR, "Mandatory LAYER parameter missing in GetLegendGraphic request.", "msWMSGetLegendGraphic()");
+      return msWMSException(map, nVersion, "LayerNotDefined", wms_exception_format);
+    }
+    if (!pszFormat) {
+      msSetError(MS_WMSERR, "Mandatory FORMAT parameter missing in GetLegendGraphic request.", "msWMSGetLegendGraphic()");
+      return msWMSException(map, nVersion, "InvalidFormat", wms_exception_format);
+    }
 
-  if (nVersion >= OWS_1_3_0 && sld_version == NULL) {
-    msSetError(MS_WMSERR, "Missing required parameter SLD_VERSION", "GetLegendGraphic()");
-    return msWMSException(map, nVersion, "MissingParameterValue", wms_exception_format);
-  }
-  if (nVersion >= OWS_1_3_0 && strcasecmp(sld_version, "1.1.0") != 0) {
-    msSetError(MS_WMSERR, "SLD_VERSION must be 1.1.0", "GetLegendGraphic()");
-    return msWMSException(map, nVersion, "InvalidParameterValue", wms_exception_format);
-  }
+    if (nVersion >= OWS_1_3_0 && sld_version == NULL) {
+      msSetError(MS_WMSERR, "Missing required parameter SLD_VERSION", "GetLegendGraphic()");
+      return msWMSException(map, nVersion, "MissingParameterValue", wms_exception_format);
+    }
+    if (nVersion >= OWS_1_3_0 && strcasecmp(sld_version, "1.1.0") != 0) {
+      msSetError(MS_WMSERR, "SLD_VERSION must be 1.1.0", "GetLegendGraphic()");
+      return msWMSException(map, nVersion, "InvalidParameterValue", wms_exception_format);
+    }
 
-  nestedGroups = (char***)msSmallCalloc(map->numlayers, sizeof(char**));
-  numNestedGroups = (int*)msSmallCalloc(map->numlayers, sizeof(int));
-  isUsedInNestedGroup = (int*)msSmallCalloc(map->numlayers, sizeof(int));
-  msWMSPrepareNestedGroups(map, nVersion, nestedGroups, numNestedGroups, isUsedInNestedGroup);
+    nestedGroups = (char***)msSmallCalloc(map->numlayers, sizeof(char**));
+    numNestedGroups = (int*)msSmallCalloc(map->numlayers, sizeof(int));
+    isUsedInNestedGroup = (int*)msSmallCalloc(map->numlayers, sizeof(int));
+    msWMSPrepareNestedGroups(map, nVersion, nestedGroups, numNestedGroups, isUsedInNestedGroup);
 
-  /* check if layer name is valid. we check for layer's and group's name */
-  /* as well as wms_layer_group names */
-  for (i=0; i<map->numlayers; i++) {
-    lp = GET_LAYER(map, i);
-    if (  ((map->name && strcasecmp(map->name, pszLayer) == 0) ||
-           (lp->name && strcasecmp(lp->name, pszLayer) == 0) ||
-           (lp->group && strcasecmp(lp->group, pszLayer) == 0) ||
-           ((numNestedGroups[i] >0) && (msStringInArray(pszLayer, nestedGroups[i], numNestedGroups[i]))) ) &&
+    /* check if layer name is valid. we check for layer's and group's name */
+    /* as well as wms_layer_group names */
+    for (i=0; i<map->numlayers; i++) {
+      lp = GET_LAYER(map, i);
+      if (  ((map->name && strcasecmp(map->name, pszLayer) == 0) ||
+          (lp->name && strcasecmp(lp->name, pszLayer) == 0) ||
+          (lp->group && strcasecmp(lp->group, pszLayer) == 0) ||
+          ((numNestedGroups[i] >0) && (msStringInArray(pszLayer, nestedGroups[i], numNestedGroups[i]))) ) &&
           (msIntegerInArray(lp->index, ows_request->enabled_layers, ows_request->numlayers)) ) {
-      nLayers++;
-      lp->status = MS_ON;
-      iLayerIndex = i;
-      if (GET_LAYER(map, i)->connectiontype == MS_WMS) {
-        /* we do not cascade a wms layer if it contains at least
-         * one class with the property name set */
-        wms_layer = MS_TRUE;
-        for (j=0; j<lp->numclasses; j++) {
-          if (lp->class[j]->name != NULL && strlen(lp->class[j]->name)>0) {
-            wms_layer = MS_FALSE;
-            break;
+        nLayers++;
+        lp->status = MS_ON;
+        iLayerIndex = i;
+        if (GET_LAYER(map, i)->connectiontype == MS_WMS) {
+          /* we do not cascade a wms layer if it contains at least
+           * one class with the property name set */
+          wms_layer = MS_TRUE;
+          for (j=0; j<lp->numclasses; j++) {
+            if (lp->class[j]->name != NULL && strlen(lp->class[j]->name)>0) {
+              wms_layer = MS_FALSE;
+              break;
+            }
           }
         }
-      }
-    } else
-      lp->status = MS_OFF;
-  }
+      } else
+        lp->status = MS_OFF;
+    }
 
-  /* free the stuff used for nested layers */
-  for (i = 0; i < map->numlayers; i++) {
-    if (numNestedGroups[i] > 0) {
-      msFreeCharArray(nestedGroups[i], numNestedGroups[i]);
+    /* free the stuff used for nested layers */
+    for (i = 0; i < map->numlayers; i++) {
+      if (numNestedGroups[i] > 0) {
+        msFreeCharArray(nestedGroups[i], numNestedGroups[i]);
+      }
     }
-  }
-  free(nestedGroups);
-  free(numNestedGroups);
-  free(isUsedInNestedGroup);
+    free(nestedGroups);
+    free(numNestedGroups);
+    free(isUsedInNestedGroup);
 
-  if (nLayers == 0) {
-    msSetError(MS_WMSERR, "Invalid layer given in the LAYER parameter. A layer might be disabled for \
+    if (nLayers == 0) {
+      msSetError(MS_WMSERR, "Invalid layer given in the LAYER parameter. A layer might be disabled for \
 this request. Check wms/ows_enable_request settings.",
-               "msWMSGetLegendGraphic()");
-    return msWMSException(map, nVersion, "LayerNotDefined", wms_exception_format);
-  }
+"msWMSGetLegendGraphic()");
+      return msWMSException(map, nVersion, "LayerNotDefined", wms_exception_format);
+    }
+
+
+    /* if SCALE was provided in request, calculate an extent and use a default width and height */
+    if ( psScale != NULL ) {
+      double scale, cellsize;
+
+      scale = atof(psScale);
+      map->width = 600;
+      map->height = 600;
+
+      cellsize = (scale/map->resolution)/msInchesPerUnit(map->units, 0.0);
 
+      map->extent.maxx = cellsize*map->width/2.0;
+      map->extent.maxy = cellsize*map->height/2.0;
+      map->extent.minx = -map->extent.maxx;
+      map->extent.miny = -map->extent.maxy;
+    }
+
+    /* It's a valid Cascading WMS GetLegendGraphic request */
+    if (wms_layer)
+      return msWMSLayerExecuteRequest(map, 1, 0, 0,
+          0, NULL, WMS_GETLEGENDGRAPHIC);
+
+    /*if STYLE is set, check if it is a valid style (valid = at least one
+    of the classes have a the group value equals to the style */
+    /*style is only validated when there is only one layer #3411*/
+    if (nLayers == 1 &&  pszStyle && strlen(pszStyle) > 0 && strcasecmp(pszStyle, "default") != 0) {
+      for (i=0; i<GET_LAYER(map, iLayerIndex)->numclasses; i++) {
+        if (GET_LAYER(map, iLayerIndex)->class[i]->group &&
+            strcasecmp(GET_LAYER(map, iLayerIndex)->class[i]->group, pszStyle) == 0)
+          break;
+      }
+
+      if (i == GET_LAYER(map, iLayerIndex)->numclasses) {
+        msSetError(MS_WMSERR, "style used in the STYLE parameter is not defined on the layer.",
+            "msWMSGetLegendGraphic()");
+        return msWMSException(map, nVersion, "StyleNotDefined", wms_exception_format);
+      } else {
+        msFree(GET_LAYER(map, iLayerIndex)->classgroup);
+        GET_LAYER(map, iLayerIndex)->classgroup = msStrdup(pszStyle);
+
+      }
+    }
+  } else {
+    /* extract the parameters we need */
+    for(i=0; map && i<numentries; i++) {
+      if (strcasecmp(names[i], "FORMAT") == 0)
+        pszFormat = values[i];
+      else if (strcasecmp(names[i], "RULE") == 0)
+        psRule = values[i];
+    }
+  }
   /* validate format */
 
   /*check to see if a predefined list is given*/
   format_list = msOWSLookupMetadata(&(map->web.metadata), "M","getlegendgraphic_formatlist");
   if (format_list) {
     psFormat = msOwsIsOutputFormatValid(map, pszFormat, &(map->web.metadata),
-                                        "M", "getlegendgraphic_formatlist");
+        "M", "getlegendgraphic_formatlist");
     if (psFormat == NULL) {
       msSetError(MS_IMGERR,
-                 "Unsupported output format (%s).",
-                 "msWMSGetLegendGraphic()",
-                 pszFormat);
+          "Unsupported output format (%s).",
+          "msWMSGetLegendGraphic()",
+          pszFormat);
       return msWMSException(map, nVersion, "InvalidFormat", wms_exception_format);
     }
   } else {
     psFormat = msSelectOutputFormat( map, pszFormat);
     if( psFormat == NULL || ! MS_RENDERER_PLUGIN(psFormat) )
       /* msDrawLegend and msCreateLegendIcon both switch the alpha channel to gd
-      ** after creation, so they can be called here without going through
-      ** the msAlphaGD2AGG functions */
+       ** after creation, so they can be called here without going through
+       ** the msAlphaGD2AGG functions */
     {
       msSetError(MS_IMGERR,
-                 "Unsupported output format (%s).",
-                 "msWMSGetLegendGraphic()",
-                 pszFormat);
+          "Unsupported output format (%s).",
+          "msWMSGetLegendGraphic()",
+          pszFormat);
       return msWMSException(map, nVersion, "InvalidFormat", wms_exception_format);
     }
   }
   msApplyOutputFormat(&(map->outputformat), psFormat, MS_NOOVERRIDE,
-                      MS_NOOVERRIDE, MS_NOOVERRIDE );
-
-  /* if SCALE was provided in request, calculate an extent and use a default width and height */
-  if ( psScale != NULL ) {
-    double scale, cellsize;
-
-    scale = atof(psScale);
-    map->width = 600;
-    map->height = 600;
-
-    cellsize = (scale/map->resolution)/msInchesPerUnit(map->units, 0.0);
-
-    map->extent.maxx = cellsize*map->width/2.0;
-    map->extent.maxy = cellsize*map->height/2.0;
-    map->extent.minx = -map->extent.maxx;
-    map->extent.miny = -map->extent.maxy;
-  }
+      MS_NOOVERRIDE, MS_NOOVERRIDE );
   
-  /* It's a valid Cascading WMS GetLegendGraphic request */
-  if (wms_layer)
-    return msWMSLayerExecuteRequest(map, 1, 0, 0,
-                                    0, NULL, WMS_GETLEGENDGRAPHIC);
-
-  /*if STYLE is set, check if it is a valid style (valid = at least one
-    of the classes have a the group value equals to the style */
-  /*style is only validated when there is only one layer #3411*/
-  if (nLayers == 1 &&  pszStyle && strlen(pszStyle) > 0 && strcasecmp(pszStyle, "default") != 0) {
-    for (i=0; i<GET_LAYER(map, iLayerIndex)->numclasses; i++) {
-      if (GET_LAYER(map, iLayerIndex)->class[i]->group &&
-          strcasecmp(GET_LAYER(map, iLayerIndex)->class[i]->group, pszStyle) == 0)
-        break;
-    }
-
-    if (i == GET_LAYER(map, iLayerIndex)->numclasses) {
-      msSetError(MS_WMSERR, "style used in the STYLE parameter is not defined on the layer.",
-                 "msWMSGetLegendGraphic()");
-      return msWMSException(map, nVersion, "StyleNotDefined", wms_exception_format);
-    } else {
-      msFree(GET_LAYER(map, iLayerIndex)->classgroup);
-      GET_LAYER(map, iLayerIndex)->classgroup = msStrdup(pszStyle);
-
-    }
-  }
-
   if ( psRule == NULL || nLayers > 1) {
     if ( psScale != NULL ) {
       /* Scale-dependent legend. map->scaledenom will be calculated in msDrawLegend */
-      img = msDrawLegend(map, MS_FALSE);
+      img = msDrawLegend(map, MS_FALSE, NULL);
     } else {
       /* Scale-independent legend */
-      img = msDrawLegend(map, MS_TRUE);
+      img = msDrawLegend(map, MS_TRUE, hittest);
     }
   } else {
     /* RULE was specified. Get the class corresponding to the RULE */
@@ -4573,9 +4636,19 @@ this request. Check wms/ows_enable_request settings.",
           nHeight = 20;
       }
 
-      img = msCreateLegendIcon(map, GET_LAYER(map, iLayerIndex),
-                               GET_LAYER(map, iLayerIndex)->class[i],
-                               nWidth, nHeight);
+      if ( psScale != NULL ) {
+        /* Scale-dependent legend. calculate map->scaledenom */
+        map->cellsize = msAdjustExtent(&(map->extent), map->width, map->height);
+        msCalculateScale(map->extent, map->units, map->width, map->height, map->resolution, &map->scaledenom);
+        img = msCreateLegendIcon(map, GET_LAYER(map, iLayerIndex),
+                                 GET_LAYER(map, iLayerIndex)->class[i],
+                                 nWidth, nHeight, MS_FALSE);
+      } else {
+        /* Scale-independent legend */
+        img = msCreateLegendIcon(map, GET_LAYER(map, iLayerIndex),
+                                 GET_LAYER(map, iLayerIndex)->class[i],
+                                 nWidth, nHeight, MS_TRUE);
+      }
     }
     if (img == NULL) {
       msSetError(MS_IMGERR,
@@ -4589,7 +4662,7 @@ this request. Check wms/ows_enable_request settings.",
   if (img == NULL)
     return msWMSException(map, nVersion, NULL, wms_exception_format);
 
-  msIO_setHeader("Content-Type",MS_IMAGE_MIME_TYPE(map->outputformat));
+  msIO_setHeader("Content-Type", "%s", MS_IMAGE_MIME_TYPE(map->outputformat));
   msIO_sendHeaders();
   if (msSaveImage(map, img, NULL) != MS_SUCCESS)
     return msWMSException(map, nVersion, NULL, wms_exception_format);
@@ -4599,6 +4672,31 @@ this request. Check wms/ows_enable_request settings.",
   return(MS_SUCCESS);
 }
 
+/*
+** msWMSGetContentDependantLegend()
+*/
+int msWMSGetContentDependantLegend(mapObj *map, int nVersion, char **names, char **values, int numentries,
+                char *wms_exception_format, owsRequestObj *ows_request) {
+
+  int i,status;
+  map_hittest hittest;
+  /* turn off layer if WMS GetMap is not enabled */
+  for (i=0; i<map->numlayers; i++)
+    if (!msIntegerInArray(GET_LAYER(map, i)->index, ows_request->enabled_layers, ows_request->numlayers))
+      GET_LAYER(map, i)->status = MS_OFF;
+
+  initMapHitTests(map,&hittest);
+  status = msHitTestMap(map,&hittest);
+  if(status == MS_SUCCESS) {
+    status = msWMSLegendGraphic(map,nVersion,names,values,numentries,wms_exception_format,ows_request,&hittest);
+  }
+  freeMapHitTests(map,&hittest);
+  if(status != MS_SUCCESS) {
+    return msWMSException(map, nVersion, NULL, wms_exception_format);
+  } else {
+    return MS_SUCCESS;
+  }
+}
 
 /*
 ** msWMSGetStyles() : return an SLD document for all layers that
@@ -4743,7 +4841,7 @@ int msWMSGetSchemaExtension(mapObj *map)
 int msWMSDispatch(mapObj *map, cgiRequestObj *req, owsRequestObj *ows_request, int force_wms_mode)
 {
 #ifdef USE_WMS_SVR
-  int i, status, nVersion=OWS_VERSION_NOTSET;
+  int i, status, nVersion=OWS_VERSION_NOTSET, isContentDependantLegend = 0;
   const char *version=NULL, *request=NULL, *service=NULL, *format=NULL, *updatesequence=NULL, *language=NULL;
   const char * encoding;
   char *wms_exception_format = NULL;
@@ -4830,7 +4928,10 @@ int msWMSDispatch(mapObj *map, cgiRequestObj *req, owsRequestObj *ows_request, i
       msSetError(MS_WMSERR, "WMS request not enabled. Check wms/ows_enable_request settings.", "msWMSGetCapabilities()");
       return msWMSException(map, nVersion, NULL, wms_exception_format);
     }
-    return msWMSGetCapabilities(map, nVersion, req, ows_request, updatesequence, wms_exception_format, language);
+    msAcquireLock(TLOCK_WxS);
+    status=msWMSGetCapabilities(map, nVersion, req, ows_request, updatesequence, wms_exception_format, language);
+    msReleaseLock(TLOCK_WxS);
+    return status;
   } else if (request && (strcasecmp(request, "context") == 0 ||
                          strcasecmp(request, "GetContext") == 0) ) {
     /* Return a context document with all layers in this mapfile
@@ -4955,9 +5056,35 @@ int msWMSDispatch(mapObj *map, cgiRequestObj *req, owsRequestObj *ows_request, i
   if ((status = msOWSMakeAllLayersUnique(map)) != MS_SUCCESS)
     return msWMSException(map, nVersion, NULL, wms_exception_format);
 
-  if (strcasecmp(request, "GetLegendGraphic") == 0)
-    return msWMSLegendGraphic(map, nVersion, req->ParamNames, req->ParamValues, req->NumParams,
-                              wms_exception_format, ows_request);
+  if (strcasecmp(request, "GetLegendGraphic") == 0) {
+    /*
+     * check for a BBOX in the request, in that case we have a content-dependant legend request,
+     * and should be following the GetMap path a bit more
+     */
+    for(i=0; i<req->NumParams; i++) {
+      if(strcasecmp(req->ParamNames[i], "BBOX") == 0) {
+        if(req->ParamValues[i] && *req->ParamValues[i]) {
+          break;
+        }
+      }
+    }
+    if(i != req->NumParams) {
+      isContentDependantLegend = 1;
+      /* getLegendGraphic uses LAYER= , we need to create a LAYERS= value that is identical
+       * we'll suppose that the client is conformat and hasn't included a LAYERS= parameter
+       * in its request */
+      for(i=0; i<req->NumParams; i++) {
+        if(strcasecmp(req->ParamNames[i], "LAYER") == 0) {
+          req->ParamNames[req->NumParams] = msStrdup("LAYERS");
+          req->ParamValues[req->NumParams] = msStrdup(req->ParamValues[i]);
+          req->NumParams++;
+        }
+      }
+    } else {
+      return msWMSLegendGraphic(map, nVersion, req->ParamNames, req->ParamValues, req->NumParams,
+                              wms_exception_format, ows_request, NULL);
+    }
+  }
 
   if (strcasecmp(request, "GetStyles") == 0)
     return msWMSGetStyles(map, nVersion, req->ParamNames, req->ParamValues, req->NumParams,
@@ -4966,9 +5093,9 @@ int msWMSDispatch(mapObj *map, cgiRequestObj *req, owsRequestObj *ows_request, i
   else if (request && strcasecmp(request, "GetSchemaExtension") == 0)
     return msWMSGetSchemaExtension(map);
 
-  /* getMap parameters are used by both getMap and getFeatureInfo */
+  /* getMap parameters are used by both getMap, getFeatureInfo, and content dependant legendgraphics */
   if (strcasecmp(request, "map") == 0 || strcasecmp(request, "GetMap") == 0 ||
-      strcasecmp(request, "feature_info") == 0 || strcasecmp(request, "GetFeatureInfo") == 0 || strcasecmp(request, "DescribeLayer") == 0) {
+      strcasecmp(request, "feature_info") == 0 || strcasecmp(request, "GetFeatureInfo") == 0 || strcasecmp(request, "DescribeLayer") == 0 || isContentDependantLegend) {
 
     status = msWMSLoadGetMapParams(map, nVersion, req->ParamNames, req->ParamValues, req->NumParams,
                                    wms_exception_format, request, ows_request);
@@ -4993,6 +5120,8 @@ int msWMSDispatch(mapObj *map, cgiRequestObj *req, owsRequestObj *ows_request, i
   else if (strcasecmp(request, "DescribeLayer") == 0) {
     return msWMSDescribeLayer(map, nVersion, req->ParamNames, req->ParamValues, req->NumParams,
                               wms_exception_format);
+  } else if (isContentDependantLegend) {
+    return msWMSGetContentDependantLegend(map,nVersion, req->ParamNames, req->ParamValues, req->NumParams, wms_exception_format, ows_request);
   }
 
   /* Hummmm... incomplete or unsupported WMS request */
diff --git a/mapwmslayer.c b/mapwmslayer.c
index 5a98671..98e1736 100644
--- a/mapwmslayer.c
+++ b/mapwmslayer.c
@@ -908,14 +908,6 @@ int msPrepareWMSLayerRequest(int nLayerId, mapObj *map, layerObj *lp,
   int nTimeout, bOkToMerge, bForceSeparateRequest, bCacheToDisk;
   wmsParamsObj sThisWMSParams;
 
-  char    *pszProxyHost=NULL;
-  long     nProxyPort=0;
-  char    *pszProxyUsername=NULL, *pszProxyPassword=NULL;
-  char    *pszHttpAuthUsername=NULL, *pszHttpAuthPassword=NULL;
-  enum MS_HTTP_AUTH_TYPE eHttpAuthType = MS_BASIC;
-  enum MS_HTTP_AUTH_TYPE eProxyAuthType = MS_BASIC;
-  enum MS_HTTP_PROXY_TYPE eProxyType = MS_HTTP;
-
   if (lp->connectiontype != MS_WMS)
     return MS_FAILURE;
 
@@ -1006,105 +998,9 @@ int msPrepareWMSLayerRequest(int nLayerId, mapObj *map, layerObj *lp,
    * First check the metadata in the layer object and then in the map object.
    * ------------------------------------------------------------------ */
   nTimeout = 30;  /* Default is 30 seconds  */
-  if ((pszTmp = msOWSLookupMetadata(&(lp->metadata),
+  if ((pszTmp = msOWSLookupMetadata2(&(lp->metadata), &(map->web.metadata),
                                     "MO", "connectiontimeout")) != NULL) {
     nTimeout = atoi(pszTmp);
-  } else if ((pszTmp = msOWSLookupMetadata(&(map->web.metadata),
-                       "MO", "connectiontimeout")) != NULL) {
-    nTimeout = atoi(pszTmp);
-  }
-
-  /* ------------------------------------------------------------------
-   * Check for authentication and proxying metadata. If the metadata is not found
-   * in the layer metadata, check the map-level metadata.
-   * ------------------------------------------------------------------ */
-  if ((pszTmp = msOWSLookupMetadata2(&(lp->metadata), &(map->web.metadata),
-                                     "MO", "proxy_host")) != NULL) {
-    pszProxyHost = msStrdup(pszTmp);
-  }
-
-  if ((pszTmp = msOWSLookupMetadata2(&(lp->metadata), &(map->web.metadata),
-                                     "MO", "proxy_port")) != NULL) {
-    nProxyPort = atol(pszTmp);
-  }
-
-  if ((pszTmp = msOWSLookupMetadata2(&(lp->metadata), &(map->web.metadata),
-                                     "MO", "proxy_type")) != NULL) {
-
-    if (strcasecmp(pszTmp, "HTTP") == 0)
-      eProxyType = MS_HTTP;
-    else if (strcasecmp(pszTmp, "SOCKS5") == 0)
-      eProxyType = MS_SOCKS5;
-    else {
-      msSetError(MS_WMSERR, "Invalid proxy_type metadata '%s' specified",
-                 "msPrepareWMSLayerRequest()", pszTmp);
-      return MS_FAILURE;
-    }
-  }
-
-  if ((pszTmp = msOWSLookupMetadata2(&(lp->metadata), &(map->web.metadata),
-                                     "MO", "proxy_auth_type")) != NULL) {
-    if (strcasecmp(pszTmp, "BASIC") == 0)
-      eProxyAuthType = MS_BASIC;
-    else if (strcasecmp(pszTmp, "DIGEST") == 0)
-      eProxyAuthType = MS_DIGEST;
-    else if (strcasecmp(pszTmp, "NTLM") == 0)
-      eProxyAuthType = MS_NTLM;
-    else if (strcasecmp(pszTmp, "ANY") == 0)
-      eProxyAuthType = MS_ANY;
-    else if (strcasecmp(pszTmp, "ANYSAFE") == 0)
-      eProxyAuthType = MS_ANYSAFE;
-    else {
-      msSetError(MS_WMSERR, "Invalid proxy_auth_type metadata '%s' specified",
-                 "msPrepareWMSLayerRequest()", pszTmp);
-      return MS_FAILURE;
-    }
-  }
-
-
-  if ((pszTmp = msOWSLookupMetadata2(&(lp->metadata), &(map->web.metadata),
-                                     "MO", "proxy_username")) != NULL) {
-    pszProxyUsername = msStrdup(pszTmp);
-  }
-
-  if ((pszTmp = msOWSLookupMetadata2(&(lp->metadata), &(map->web.metadata),
-                                     "MO", "proxy_password")) != NULL) {
-    pszProxyPassword = msDecryptStringTokens(map, pszTmp);
-    if (pszProxyPassword == NULL) {
-      return(MS_FAILURE);  /* An error should already have been produced */
-    }
-  }
-
-  if ((pszTmp = msOWSLookupMetadata2(&(lp->metadata), &(map->web.metadata),
-                                     "MO", "auth_type")) != NULL) {
-    if (strcasecmp(pszTmp, "BASIC") == 0)
-      eHttpAuthType = MS_BASIC;
-    else if (strcasecmp(pszTmp, "DIGEST") == 0)
-      eHttpAuthType = MS_DIGEST;
-    else if (strcasecmp(pszTmp, "NTLM") == 0)
-      eHttpAuthType = MS_NTLM;
-    else if (strcasecmp(pszTmp, "ANY") == 0)
-      eHttpAuthType = MS_ANY;
-    else if (strcasecmp(pszTmp, "ANYSAFE") == 0)
-      eHttpAuthType = MS_ANYSAFE;
-    else {
-      msSetError(MS_WMSERR, "Invalid auth_type metadata '%s' specified",
-                 "msPrepareWMSLayerRequest()", pszTmp);
-      return MS_FAILURE;
-    }
-  }
-
-  if ((pszTmp = msOWSLookupMetadata2(&(lp->metadata), &(map->web.metadata),
-                                     "MO", "auth_username")) != NULL) {
-    pszHttpAuthUsername = msStrdup(pszTmp);
-  }
-
-  if ((pszTmp = msOWSLookupMetadata2(&(lp->metadata), &(map->web.metadata),
-                                     "MO", "auth_password")) != NULL) {
-    pszHttpAuthPassword = msDecryptStringTokens(map, pszTmp);
-    if (pszHttpAuthPassword == NULL) {
-      return(MS_FAILURE);  /* An error should already have been produced */
-    }
   }
 
   /* ------------------------------------------------------------------
@@ -1273,15 +1169,9 @@ int msPrepareWMSLayerRequest(int nLayerId, mapObj *map, layerObj *lp,
     pasReqInfo[(*numRequests)].height = bbox_height;
     pasReqInfo[(*numRequests)].debug = lp->debug;
 
-    pasReqInfo[(*numRequests)].pszProxyAddress  = pszProxyHost;
-    pasReqInfo[(*numRequests)].nProxyPort       = nProxyPort;
-    pasReqInfo[(*numRequests)].eProxyType       = eProxyType;
-    pasReqInfo[(*numRequests)].eProxyAuthType   = eProxyAuthType;
-    pasReqInfo[(*numRequests)].pszProxyUsername = pszProxyUsername;
-    pasReqInfo[(*numRequests)].pszProxyPassword = pszProxyPassword;
-    pasReqInfo[(*numRequests)].eHttpAuthType    = eHttpAuthType;
-    pasReqInfo[(*numRequests)].pszHttpUsername  = pszHttpAuthUsername;
-    pasReqInfo[(*numRequests)].pszHttpPassword  = pszHttpAuthPassword;
+    if (msHTTPAuthProxySetup(&(map->web.metadata), &(lp->metadata),
+                             pasReqInfo, *numRequests, map, "MO") != MS_SUCCESS)
+      return MS_FAILURE;
 
     (*numRequests)++;
   }
diff --git a/mapxbase.c b/mapxbase.c
index 2dfc38a..2800066 100644
--- a/mapxbase.c
+++ b/mapxbase.c
@@ -162,11 +162,11 @@ DBFHandle msDBFOpen( const char * pszFilename, const char * pszAccess )
   pszDBFFilename = (char *) msSmallMalloc(strlen(pszFilename)+1);
   strcpy( pszDBFFilename, pszFilename );
 
-  if( strcmp(pszFilename+strlen(pszFilename)-4,".shp")
-      || strcmp(pszFilename+strlen(pszFilename)-4,".shx") ) {
+  if( strcmp(pszFilename+strlen(pszFilename)-4,".shp") == 0
+      || strcmp(pszFilename+strlen(pszFilename)-4,".shx") == 0 ) {
     strcpy( pszDBFFilename+strlen(pszDBFFilename)-4, ".dbf");
-  } else if( strcmp(pszFilename+strlen(pszFilename)-4,".SHP")
-             || strcmp(pszFilename+strlen(pszFilename)-4,".SHX") ) {
+  } else if( strcmp(pszFilename+strlen(pszFilename)-4,".SHP") == 0
+             || strcmp(pszFilename+strlen(pszFilename)-4,".SHX") == 0 ) {
     strcpy( pszDBFFilename+strlen(pszDBFFilename)-4, ".DBF");
   }
 
@@ -177,6 +177,13 @@ DBFHandle msDBFOpen( const char * pszFilename, const char * pszAccess )
   MS_CHECK_ALLOC(psDBF, sizeof(DBFInfo), NULL);
   psDBF->fp = fopen( pszDBFFilename, pszAccess );
   if( psDBF->fp == NULL )
+  {
+    if( strcmp(pszDBFFilename+strlen(pszDBFFilename)-4,".dbf") == 0 ) {
+      strcpy( pszDBFFilename+strlen(pszDBFFilename)-4, ".DBF");
+      psDBF->fp = fopen( pszDBFFilename, pszAccess );
+    }
+  }
+  if( psDBF->fp == NULL )
     return( NULL );
 
   psDBF->bNoHeader = MS_FALSE;
@@ -330,7 +337,7 @@ DBFHandle msDBFCreate( const char * pszFilename )
   psDBF = (DBFHandle) malloc(sizeof(DBFInfo));
   if (psDBF == NULL) {
     msSetError(MS_MEMERR, "%s: %d: Out of memory allocating %u bytes.\n", "msDBFCreate()",
-               __FILE__, __LINE__, sizeof(DBFInfo));
+               __FILE__, __LINE__, (unsigned int)sizeof(DBFInfo));
     fclose(fp);
     return NULL;
   }
diff --git a/mapxmp.c b/mapxmp.c
index f394fb4..70e2f4d 100644
--- a/mapxmp.c
+++ b/mapxmp.c
@@ -248,12 +248,12 @@ msXmpWrite( mapObj *map, const char *filename )
       }
       /* Or perhaps we're screwed. */
       else {
-        msFreeHashItems(&hash_ns);
-        msFree(ns_name);
-        msFree(ns_tag);
         msSetError( MS_MISCERR,
                     "Unable to identify XMP namespace '%s' in metadata key '%s'",
                     "msXmpWrite()", ns_name, key );
+        msFreeHashItems(&hash_ns);
+        msFree(ns_name);
+        msFree(ns_tag);
         return MS_FAILURE;
       }
       msFree(ns_name);
diff --git a/print-test-results.sh b/print-test-results.sh
index 0d68b92..ece557a 100755
--- a/print-test-results.sh
+++ b/print-test-results.sh
@@ -45,7 +45,7 @@ for testcase in "${tests[@]}"; do
       fi
       if echo "$failedtest" | egrep -q "(png|gif|tif)$"; then
         if echo "$failedtest" | egrep -v -q "\\.diff\\.png$"; then
-           if [ -n $COMPARE ]; then
+           if [ -n "$COMPARE" ]; then
               $COMPARE ../expected/$failedtest $failedtest -compose Src $failedtest.diff.png
            fi
         fi
diff --git a/renderers/agg/include/agg_span_image_filter_rgba.h b/renderers/agg/include/agg_span_image_filter_rgba.h
index 9876391..1d51566 100644
--- a/renderers/agg/include/agg_span_image_filter_rgba.h
+++ b/renderers/agg/include/agg_span_image_filter_rgba.h
@@ -895,9 +895,9 @@ namespace mapserver
                 if(fg[3] < 0) fg[3] = 0;
 
                 if(fg[order_type::A] > base_mask)         fg[order_type::A] = base_mask;
-                if(fg[order_type::R] > fg[order_type::R]) fg[order_type::R] = fg[order_type::R];
-                if(fg[order_type::G] > fg[order_type::G]) fg[order_type::G] = fg[order_type::G];
-                if(fg[order_type::B] > fg[order_type::B]) fg[order_type::B] = fg[order_type::B];
+                if(fg[order_type::R] > fg[order_type::A]) fg[order_type::R] = fg[order_type::A];
+                if(fg[order_type::G] > fg[order_type::A]) fg[order_type::G] = fg[order_type::A];
+                if(fg[order_type::B] > fg[order_type::A]) fg[order_type::B] = fg[order_type::A];
 
                 span->r = (value_type)fg[order_type::R];
                 span->g = (value_type)fg[order_type::G];
diff --git a/renderers/agg/include/clipper.hpp b/renderers/agg/include/clipper.hpp
index a56a461..a476a2f 100644
--- a/renderers/agg/include/clipper.hpp
+++ b/renderers/agg/include/clipper.hpp
@@ -26,7 +26,7 @@
 * Paper no. DETC2005-85513 pp. 565-575                                         *
 * ASME 2005 International Design Engineering Technical Conferences             *
 * and Computers and Information in Engineering Conference (IDETC/CIE2005)      *
-* September 24–28, 2005 , Long Beach, California, USA                          *
+* September 24-28, 2005 , Long Beach, California, USA                          *
 * http://www.me.berkeley.edu/~mcmains/pubs/DAC05OffsetPolygon.pdf              *
 *                                                                              *
 *******************************************************************************/
diff --git a/renderers/agg/src/clipper.cpp b/renderers/agg/src/clipper.cpp
index daea1d4..ec7c15b 100644
--- a/renderers/agg/src/clipper.cpp
+++ b/renderers/agg/src/clipper.cpp
@@ -26,7 +26,7 @@
 * Paper no. DETC2005-85513 pp. 565-575                                         *
 * ASME 2005 International Design Engineering Technical Conferences             *
 * and Computers and Information in Engineering Conference (IDETC/CIE2005)      *
-* September 24–28, 2005 , Long Beach, California, USA                          *
+* September 24-28, 2005 , Long Beach, California, USA                          *
 * http://www.me.berkeley.edu/~mcmains/pubs/DAC05OffsetPolygon.pdf              *
 *                                                                              *
 *******************************************************************************/
@@ -38,7 +38,7 @@
 *                                                                              *
 *******************************************************************************/
 
-#include "clipper.hpp"
+#include "../include/clipper.hpp"
 #include <cmath>
 #include <vector>
 #include <algorithm>
diff --git a/run-test-suite.sh b/run-test-suite.sh
index 89ef609..b42281a 100755
--- a/run-test-suite.sh
+++ b/run-test-suite.sh
@@ -12,14 +12,7 @@ cd ..
 git submodule update
 
 if [ -f CMakeLists.txt ]; then
-   #cmake build
-   rm -rf build
-   mkdir -p build
-   cd build
-   cmake .. -DWITH_GD=1 -DWITH_CLIENT_WMS=1 -DWITH_CLIENT_WFS=1 -DWITH_KML=1 -DWITH_SOS=1 -DWITH_PHP=1 -DWITH_PYTHON=1 -DWITH_FRIBIDI=0 -DWITH_FCGI=0 -DCMAKE_BUILD_TYPE=Release
-   make -j4
-   cd ..
-   make -f Makefile.autotest -j4 test
+   make -j4 test
 else
    #autoconf build
    ./configure --with-gd --with-postgis --with-wmsclient --with-proj --with-wfsclient --with-kml --with-cairo --with-wcs --with-sos --with-geos --with-gdal --with-ogr --with-wfs
diff --git a/run_code_coverage_upload.sh b/run_code_coverage_upload.sh
new file mode 100755
index 0000000..7dd6d3d
--- /dev/null
+++ b/run_code_coverage_upload.sh
@@ -0,0 +1,37 @@
+#!/bin/bash
+lcov --directory . --capture --output-file mapserver.info 
+
+cp /usr/bin/genhtml .
+# to remove date and occurences number, so that only real differences show up
+patch -p0 < genhtml.patch
+
+./genhtml -o ./mapserver_coverage_html --num-spaces 2 mapserver.info  
+
+# build the chunks of the private key together
+
+# This is a bashism !
+echo -n $id_rsa_{00..30} >> ~/.ssh/id_rsa-upstream-msautotest-coverage-results_base64
+base64 --decode --ignore-garbage ~/.ssh/id_rsa-upstream-msautotest-coverage-results_base64 > ~/.ssh/id_rsa-upstream-msautotest-coverage-results
+chmod 600 ~/.ssh/id_rsa-upstream-msautotest-coverage-results
+
+echo "Host foo.github.com" >> ~/.ssh/config
+echo "    StrictHostKeyChecking no" >> ~/.ssh/config
+echo "    Hostname github.com" >> ~/.ssh/config
+echo "    IdentityFile ~/.ssh/id_rsa-upstream-msautotest-coverage-results" >> ~/.ssh/config
+
+mkdir msautotest-coverage-results
+cd msautotest-coverage-results
+git init
+git config user.email "mapserverbot at mapserver.bot"
+git config user.name "MapServer coveragebot"
+git config push.default matching
+git remote add origin git at foo.github.com:mapserver/coverage.git
+git fetch
+git pull origin master
+rm -rf *
+cp -r ../mapserver_coverage_html .
+echo "Results of coverage of MapServer msautotest" > README.md
+echo "See http://rawgithub.com/mapserver/coverage/master/mapserver_coverage_html/home/travis/build/mapserver/mapserver/index.html" >> README.md
+git add -A
+git commit -m "update with results of commit https://github.com/mapserver/mapserver/commit/$TRAVIS_COMMIT"
+git push origin master
diff --git a/strptime.c b/strptime.c
index b7f9f83..a62df90 100644
--- a/strptime.c
+++ b/strptime.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 1999 Kungliga Tekniska Högskolan
+ * Copyright (c) 1999 Kungliga Tekniska Högskolan
  * (Royal Institute of Technology, Stockholm, Sweden).
  * All rights reserved.
  *
diff --git a/sym2img.c b/sym2img.c
index f3f270c..d46712c 100644
--- a/sym2img.c
+++ b/sym2img.c
@@ -164,7 +164,7 @@ int main(int argc, char *argv[])
     fprintf(stderr, "Unable to open output file: %s\n", argv[2]);
     exit(1);
   }
-#ifndef USE_GD_1_6
+#ifndef USE_GD_GIF
   gdImageGif(img, stream);
 #else
   gdImagePng(img, stream);
diff --git a/tile4ms.c b/tile4ms.c
index 445aced..266bf3b 100644
--- a/tile4ms.c
+++ b/tile4ms.c
@@ -213,6 +213,7 @@ int process_shapefiles(char *metaFileNameP, char *tileFileNameP,
     /* create and add shape object.  Returns link to entry in DBF file */
     /* --------------------------------------------------------------- */
 
+    shapeRect.type = MS_SHAPE_POLYGON;
     msAddLine(&shapeRect, &line);
     entityNum = msSHPWriteShape( tileSHP, &shapeRect );
 
diff --git a/xmlmapfile/mapfile.xsd b/xmlmapfile/mapfile.xsd
index 0e83beb..310b90d 100644
--- a/xmlmapfile/mapfile.xsd
+++ b/xmlmapfile/mapfile.xsd
@@ -1,5 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ms="http://www.mapserver.org/mapserver" targetNamespace="http://www.mapserver.org/mapserver" elementFormDefault="qualified" attributeFormDefault="unqualified" version="6.0.1">
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ms="http://www.mapserver.org/mapserver" targetNamespace="http://www.mapserver.org/mapserver" elementFormDefault="qualified" attributeFormDefault="unqualified" version="6.2.1">
 	<!-- Definition of types -->
 	<xs:simpleType name="rgbColorValueType">
 		<xs:restriction base="xs:integer">
@@ -347,7 +347,8 @@
 				</xs:simpleType>
 			</xs:element>
 			<xs:element name="Style" type="ms:Style" minOccurs="0" maxOccurs="unbounded"/>
-			<xs:element name="wrap" type="xs:string" minOccurs="0"/>
+		        <xs:element name="text" type="xs:string" minOccurs="0"/>                
+		        <xs:element name="wrap" type="xs:string" minOccurs="0"/>
 		</xs:sequence>
 		<xs:attribute name="type" use="required">
 			<xs:simpleType>
diff --git a/xmlmapfile/mapfile.xsl b/xmlmapfile/mapfile.xsl
index a113474..13cfa04 100644
--- a/xmlmapfile/mapfile.xsl
+++ b/xmlmapfile/mapfile.xsl
@@ -682,6 +682,11 @@
     </xsl:apply-templates>
     <xsl:call-template name="print">
       <xsl:with-param name="indent" select="$indent"/>
+      <xsl:with-param name="node" select="'ms:text'"/>
+      <xsl:with-param name="quote" select="1"/>
+    </xsl:call-template>    
+    <xsl:call-template name="print">
+      <xsl:with-param name="indent" select="$indent"/>
       <xsl:with-param name="node" select="'ms:wrap'"/>
       <xsl:with-param name="quote" select="1"/>
     </xsl:call-template>
diff --git a/xmlmapfile/tests/layerset.xml b/xmlmapfile/tests/layerset.xml
index a347fb1..92a7696 100644
--- a/xmlmapfile/tests/layerset.xml
+++ b/xmlmapfile/tests/layerset.xml
@@ -32,6 +32,7 @@
         <shadowColor red="244" green="43" blue="22"/>
         <shadowSize x="15" y="14"/>
         <size>TINY</size>
+        <text>Test</text>
         <wrap>\n</wrap>
       </Label>
       <LabelLeader>

-- 
Packaging for MapServer



More information about the Pkg-grass-devel mailing list